diff --git a/.gitignore b/.gitignore index 0592392..4683650 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target +/local-eval-results .DS_Store diff --git a/Cargo.lock b/Cargo.lock index ef845ab..f8175b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -826,6 +826,7 @@ dependencies = [ "regex", "rfd", "rustc-hash 2.1.3", + "self_cell", "serde", "serde_json", "serde_norway", diff --git a/Cargo.toml b/Cargo.toml index 2c9d2d4..9a3149f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,7 @@ pulldown-cmark = "0.12.2" regex = "1.13.1" rfd = { version = "0.15.4", default-features = false } rustc-hash = "2.1.3" +self_cell = "1.3.0" serde = { version = "1.0.228", features = ["derive"] } serde_json = { version = "1.0.149", features = ["preserve_order", "raw_value"] } serde_norway = "0.9.42" @@ -55,3 +56,7 @@ minimum-system-version = "15.0" [[bin]] name = "qwen38-artifacts" path = "tools/qwen38-artifacts.rs" + +[[bin]] +name = "test-supervisor" +path = "tools/test-supervisor.rs" diff --git a/README.md b/README.md index d0fd64c..49d4b81 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,90 @@ pie-natural`, `--case composed-basics`, `--attempts 3`, `--model MODEL_ID`, or `--endpoint URL` to narrow or repeat runs. This slow, model-dependent suite is intentionally separate from `cargo test`. +### Headless model evaluation + +Run a bounded, instrumented generation through the production runtime without +opening the UI: + +```sh +cargo run --release -- model-eval \ + --model qwen3.8-flash-next \ + --reasoning low \ + --acceleration off \ + --power-percent 100 +``` + +The evaluator first performs a short unmeasured warmup through the same system-prompt +builder and production runtime as the UI, then resets its GPU counters and starts +the measured request. `warmup_result.elapsed_ms` includes initial model loading; +its `timing` object separates `model_load_ms` and `non_loading_elapsed_ms` (the +latter still includes setup, inference, and checkpoint work). Do not add the +reported load time to the warmup total. A `model_loaded` event reports the same +load duration as the shared runtime metrics. Canary samples retain their start +`phase` and record `completion_phase`, actual completion `elapsed_ms`, and host +observation `observed_elapsed_ms`; per-phase summaries group by probe start. +`result.timing.decode_ms` measures the shared engine decode loop, including +sampling and streamed output callbacks but excluding subsequent pending-token +finalization and checkpoint work. Stats shows the same measurement as "Decode +loop (without checkpoint)". The older host-observed interval through request +completion is retained as `decode_to_request_end_ms`; it is not pure decode time. +`decode_loop_tokens_per_second` uses completion tokens divided by the loop duration; +`decode_tokens_per_second` remains the UI's last progress rate. `checkpoint_io` +reports request operation counts and the last read/write duration, not summed I/O +time. A missing decode duration is `null`, not zero. +The default test +prompt identifies a prose-generation test and asks the model to choose +its own genre, setting, and characters, then output only a complete short story +without questions, choices, limitations, or coding discussion. JSON Lines report +runtime phases, prefill and decode speed, Metal busy time, +command-buffer duration, CPU, physical memory, disk I/O, and the complete reasoning +and answer. `--input-file PATH` appends a UTF-8 file to the supplied prompt for +realistic long-prefill tests. Repeat `--prompt` to run multiple turns in one +ongoing chat: every later turn includes all preceding user prompts and complete +assistant responses and continues from the same session checkpoint. An independent +Metal canary runs inside the same +process as the production runtime through +loading, prefill, decode, and finishing, reporting per-phase scheduling and +completion latency plus stalls that could make a UI unresponsive. Use +`--acceleration on|off` to compare DSpark on DeepSeek or integrated MTP on +GLM/Qwen. The canary itself submits GPU work, so use `--canary off` for clean +throughput measurements and `--canary on` for responsiveness diagnostics. The UI +canary is off by default and can be enabled in Stats. A supervisor terminates +the worker only when startup or token progress stalls, or when the memory limit +is exceeded; there is no whole-run timeout. See `model-eval --help` for all +overrides. The evaluator only opens already installed model artifacts and never +downloads missing models. + +Evaluation defaults to `--plain-chat on`: the shared UI prompt builder omits +agent/tool schemas, skill instructions and the built-in coding-agent system +prompt; an explicitly customized system prompt is preserved. The corresponding +UI configuration is `plain_chat: true` in its YAML configuration. In that mode +the UI also skips workspace/date injections, extension hooks, A2UI handling, +tool execution, automatic response retries and automatic first-turn titles. +Use a **new chat** in both frontends: existing history is never silently removed. +The normal UI default remains agent mode (`plain_chat: false`). `--plain-chat off` +restores agent prompt construction for diagnostics, but does not make the harness +an agent/tool executor. The effective mode and complete system prompt are reported +in the start receipt; do not compare runs with different modes. + +For a summary, story, and Python one-shot in a single chat, pass three prompts: + +```sh +target/release/ds4-server model-eval \ + --model qwen3.8-flash-next --reasoning low \ + --power-percent 100 --acceleration off --canary on \ + --input-file README.md \ + --prompt 'Give a concise summary of the following project README. Return the summary directly without asking questions.' \ + --prompt 'This is a prose-generation test. Respond only with a complete short fictional story in ordinary prose. Choose the genre, setting, and characters yourself and begin the story immediately. Do not ask questions, offer choices, explain limitations, or discuss coding.' \ + --prompt 'This is an offline code-generation benchmark. Do not invoke tools or emit tool-call markup. Return exactly one Python code block defining has_close_elements(numbers: list[float], threshold: float) -> bool. It must return True if any two distinct numbers are closer than threshold. Include no explanation outside the code block.' +``` + +The input file is appended only to the first prompt. Each turn starts after the +previous response finishes; `measurement_start` records the turn number and the +number of history messages (1, 3, 5), and each `result` reports its own timings, +cached tokens, reasoning, and answer. The warmup uses a separate session and is +not included in this history. + ## Build and run DS4Server targets Apple silicon with macOS 15 or newer and requires Rust 1.97 plus diff --git a/docs/inference-reference-parity-audit-20260905.md b/docs/inference-reference-parity-audit-20260905.md new file mode 100644 index 0000000..0753d08 --- /dev/null +++ b/docs/inference-reference-parity-audit-20260905.md @@ -0,0 +1,8150 @@ +# Inferenz-Parität: Gesamtabgleich und Arbeitsliste + +Stand: 2026-09-05. Arbeitsgrundlage, **keine Freigabe der Performance-Parität**. + +## Sicherheitsunterbrechung 2026-09-09: WindowServer-Watchdog + +Der direkte Lauf `cargo test --release qwen_mtplx -- --include-ignored +--test-threads=1` ist **nicht als bestanden belegt**. Der WindowServer-Bericht +von 18:13:56 +0200 identifiziert den Testprozess PID 47594 anhand der UUID +`2D808BE5-E020-377D-B945-CF7D23FC7BD3` mit 99,07 GiB Footprint. Aktiv war +`mtplx_connected_sparse_moe_matches_reference`, CPU-Tensorerzeugung in +`pattern_scaled`. WindowServer hing im Metal-/IOGPU-/AGX-Pfad und wurde nach +121 Sekunden ohne Check-in vom Watchdog beendet. Ein Zusammenhang mit diesem +Test ist sehr wahrscheinlich; der genaue Grund des Speicheranstiegs und ein +bestimmter fehlerhafter GPU-Kernel sind dadurch noch nicht bewiesen. + +Die Schutzüberwachung von `model-eval` wurde durch den direkten Cargo-Aufruf +umgangen. Serielle Ausführung ist kein Speicherlimit. Historische direkte +GPU-Testbefehle in diesem Dokument sind daher keine sicheren Wiederholungsbefehle. + +Der zusätzliche Rust-Launcher `test-supervisor` verwendet dieselbe ausgelagerte +`proc_pid_rusage`-Messung wie `model-eval` (`src/process_resources.rs`). Er startet +das **vorher gebaute Testbinary direkt**, prüft alle 100 ms Footprint und +Lifetime-Peak, beendet bei fehlender Prozessmessung und überwacht Start sowie +ausbleibende Ausgabe statt der Gesamtlaufzeit. Grenzen sind explizit; für die +isolierte Fehlerdiagnose zunächst 8192 MiB und 15 Sekunden Start/Fortsetzung. +Er ist kein Cargo-/Build-Supervisor: Speicherwerte gelten für den Testprozess, +nicht beliebige von einem Build erzeugte Prozessbäume. Ausgabe ist nur +Testfortschritt, kein Nachweis tatsächlich fortschreitender GPU-Arbeit. + +Vorbereitung ohne GPU-Ausführung: + +```sh +cargo build --release --offline --bin test-supervisor -j 1 +cargo test --release --offline --bin ds4-server --no-run -j 1 +``` + +Danach ausschließlich den vom Build ausgegebenen tatsächlichen Testbinary-Pfad +an `test-supervisor 8192 15 15 TEST_BINARY +mtplx_connected_sparse_moe_matches_reference` übergeben. Keine parallelen +GPU-Läufe. Die Speichergrenze ist ein extern geprüftes Abbruchbudget, keine +Garantie gegen kurzfristiges Überschießen oder einen nicht unterbrechbaren +Treiberfehler. Die unten genannten Leistungsmessungen werden nicht durch diese +diagnostischen Grenzen oder Instrumentierung ersetzt. + +Der betroffene Test meldet vor Gewichtsaufbau, nach Aufbau, nach Verifikation +und nach Freigabe Prozess-Footprint, Metal-Allokation sowie aktive/gecachte +Allocator-Bytes. Cache, Kernel, Power und Chunkgröße bleiben unverändert. +Zusätzlich ist bei Bedarf der vorhandene `DS4_METAL_TRACE_ALLOCS`-Pfad nutzbar. + +Fortsetzung: + +- Wächter ohne GPU verifizieren: Speicherabbruch, Start-/Fortsetzungsabbruch, + Exitfehler und erfolgreiche Fortsetzung über die Timeoutfenster hinaus. + CPU-Selbsttest am 2026-09-09 bestanden (1 Test, fünf Szenarien, 1,66 s). +- Erst danach den Speicheranstieg mit isoliertem, überwachtem MoE-Test messen; + anhand der vier Grenzwerte aktive Puffer, Cache und übrigen Footprint trennen. +- Belegte Ursache im Besitz-/Freigabepfad beheben und Referenzsemantik prüfen. + Kein Cache-Leeren oder künstliches Verkleinern als Ersatz für die Diagnose. +- Vollständige Qwen-Integration und P16 bleiben offen, ebenso die gesamte + Abnahme aller drei Modelle mit/ohne spekulatives Decoding innerhalb 2 %. + +### Reproduktion und belegte Ursache, 2026-09-09 + +Rohdaten: `local-eval-results/moe-memory-20260909.UvC1wv/`. +Der Sandbox-Versuch (`test.*.log`) scheiterte vor Ausführung mit „Metal device +not available“; alle folgenden Metal-Tests liefen mit freigegebenem Metal-Zugriff +und dem externen Wächter. Kein Modell wurde geladen oder heruntergeladen. + +- Vor Korrektur (`gpu.*.log`): der einzelne ursprüngliche MoE-Test erreicht + nach 1,606 s den Speicherabbruch, gemessener Footprint 9.037.880.280 Bytes + bei einem Budget von 8.589.934.592 Bytes. Das zeigt auch das mögliche + Überschießen zwischen den 100-ms-Abfragen. Bereits der alte Encoderpfad + akkumuliert Metal-Speicher; der kanonische Allocator ist noch nicht aktiv. +- Zusätzliche vorhandene Allokationsspur (`trace.*.log`, 1-GiB-Budget): + Rust/native Tensor-Freigaben bringen den Tensor-Livezähler auf null, während + `MTLDevice.currentAllocatedSize` weiter wächst. Kein fehlendes Rust-`drop`, + kein MTPLX-Allocator-Cache und kein einzelner großer Kernel ist hierfür nötig. +- Minimaler Test `mtplx_tensor_cpu_access_releases_native_storage`, **ohne + GPU-Dispatch** (`cpu-red.*.log`): acht 1-MiB-Allokationen pro Zugriffsart. + Schreiben, Lesen und `contents` halten jeweils exakt 8.388.608 Bytes über + die Tensor-Freigabe hinaus. Anlegen/Freigeben ohne Zugriff, Views, + Allocation-Identität und Heap-Abfrage halten jeweils 0 Bytes zurück. + +Ursache: `MTLBuffer.contents` liefert einen Interior-Pointer. Der mit ARC +kompilierte Objective-C-Bridgecode erzeugt dafür `objc_retainAutorelease`; +die zusätzliche Referenz bleibt auf einem Rust-Thread ohne passenden Pool-Drain +erhalten. Der erzeugte Maschinencode der drei Zugriffe wurde geprüft. +Der gepinnte MTPLX-Unterbau ruft `Buffer::raw_ptr()` dagegen über Metal-C++ +auf (`mlx/backend/metal/allocator.cpp:25`) und hat diesen ARC-Zusatz nicht. +Clang dokumentiert genau diese implizite Lebensdauerverlängerung und ihre +Vermeidung durch einen präzise lebenden starken Empfänger: +[ARC Interior pointers](https://clang.llvm.org/docs/AutomaticReferenceCounting.html#interior-pointers). + +Korrektur in `native/metal/ds4_metal.m`: gemeinsamer +`ds4_gpu_tensor_cpu_data`-Zugriff mit `objc_precise_lifetime` für die temporäre +`MTLBuffer`-Referenz. Der ausdrücklich gehaltene Tensor bleibt Eigentümer des +Speichers. `contents`, Read, Write und mittelbar Fill benutzen denselben Pfad. +Keine neue Pool-Schleife, keine GPU-Synchronisation, kein Cache-Leeren und keine +Änderung von Kernel, Power, Chunkgröße oder Referenz-Testformen. Die Brücke +wird auch im Produkt/UI verwendet, nicht nur unter `cfg(test)`. + +Nach Korrektur: + +- Identischer Minimaltest (`cpu-green.*.log`) bestanden: alle sieben + Zugriffsarten jeweils **0 Bytes** zurückgehaltener Metal-Speicher. + Im Maschinencode fehlt nun `objc_retainAutorelease` in den drei Zugriffen; + das davon verschiedene `objc_retainAutoreleasedReturnValue` bleibt korrekt. +- Ursprünglicher MoE-Test (`fixed.*.log`), unverändertes 8-GiB-/15-s-Budget: + **440 exakte Referenzvergleiche**, 220 je Encoder, abgeschlossen in 13,322 s. + Peak-Footprint 4.839.182.320 Bytes (4,51 GiB). Nach jedem der 220 alten + Encoderfälle genau 1.769.472 Bytes Metal-Basisbelegung. Im kanonischen + Encoder nach Freigabe 0 aktive Allocator-Bytes; am Ende 3.202.034.186 Bytes + regulärer Cache. Dieser Cache wurde nicht künstlich geleert. +- Originalquellprüfung bestanden: 17 Körper, 41 Custom-Einstiegspunkte, + 22 Runtime-Einheiten / 203 Einstiege plus dynamische QSA-Quellen stimmen + mit dem gepinnten Export überein. +- Alle drei Puffer-Eigentumstests bestanden (`ownership.*.log`, 0,08 s): + Completion hält Allokationen ohne Data-Donation zu verändern, leere + Tensoren/Views behalten ihre Identität, CPU-Zugriffe behalten keinen Speicher. + Release-Testbuild, warnings-denied Clippy für App und Tests sowie + `cargo fmt --all -- --check` und `git diff --check` bestanden. + +Dies behebt die reproduzierte Retention, ist aber **keine** abgeschlossene +UI-Responsiveness- oder 2%-Performance-Abnahme. Ein vollständiger neuer +UI-/Harness-/Golden-Master-Vergleich und die übrige Qwen-Portierung bleiben offen. + +## Verbindliche Auftragspräzisierung vom 2026-09-06 + +Die bisherige Auswahl einzelner Optimierungen anhand von Mikrobenchmarks wird +beendet. Der Nutzer verlangt für Qwen einen vollständigen MTPLX-Port, keine +Sammlung ähnlich wirkender Rust-/Metal-Optimierungen. Diese Präzisierung hat +Vorrang vor früheren Auswahl- und Rücknahmebegründungen in diesem Dokument. + +- **Kernel-Identität:** Die im gepinnten MTPLX-Qwen-Pfad tatsächlich verwendeten + Metal-Kernel übernehmen, einschließlich der von dessen gepinnten Abhängigkeiten + bereitgestellten Kernel. Gleiche Typen, Layouts, Spezialisierungen, Geometrien, + Rundungs-/Reduktionsfolgen und Dispatch-Bedingungen. Eigenständige MPP-QMM- + Implementierungen sind kein Ersatz für die von MTPLX aufgerufenen Kernel, + auch wenn einzelne Ausgabehashes passen. Nur erforderliche ABI-/Binding- + Anpassungen separat ausweisen; keine stillen algorithmischen Änderungen. +- **Rust-Funktionsidentität:** Modellaufbau, Materialisierung/Fusion, Graphfolge, + PLE-Streaming, Cache-/State-Lebenszyklus, Scheduling, Sampler, MTP-Draft/Verify/ + Commit/Repair sowie EOS/Cancel und Fortsetzung vollständig nachbilden. Dazu + gehören alle für das vorhandene Modell erreichbaren Form- und Fallbackzweige, + nicht nur die von drei Beispielprompts zufällig ausgeführten Pfade. +- **Zusammenhängende Umsetzung:** P01–P12 sind Abdeckungs- und Portierungsaufgaben, + keine optionalen Optimierungskandidaten. Zuerst deren vollständige Referenz- + Zuordnung und Umsetzung samt Korrektheits-/State-Tests. Anschließend den + integrierten Stand gegen MTPLX auf Gesamtlaufzeit, Durchsatz und Verzögerungen + prüfen. Kein erneuter Performance-Auswahlzyklus nach jedem Kernel. +- **Rücknahmen:** Ein isoliert fehlender Geschwindigkeitsgewinn ist kein + Rücknahmegrund für einen korrekten Referenzport. Nur belegte harte Regressionen + rechtfertigen eine begründete Rücknahme; der betroffene Referenzbestandteil + bleibt dann ausdrücklich unerledigt. Ein Eigenbau-Experiment zurückzunehmen + beweist nicht, dass die entsprechende MTPLX-Implementierung verzichtbar ist. +- **Abnahme:** Erst vollständige funktionale und Kernel-Abdeckung, dann P16 mit + den vereinbarten vollständigen Chats und Referenzvergleichen. DeepSeek/GLM + behalten antirez/ds4 als Golden Master und bleiben Teil des Gesamtziels. + +Insbesondere werden die früheren negativen Einzelversuche zu P07 (Gate/Up- +Fusion), P09 (Matmul-Layouts) und P11 (lazy Target-Verteilungen) **nicht** als +Freistellung von der entsprechenden MTPLX-Funktionalität verwendet. Historische +Messbelege bleiben erhalten, entscheiden aber nicht über den Umfang des Ports. + +### Quellzuordnung für die zusammenhängende Qwen-Portierung + +Dies sind geprüfte Einstiegspunkte, noch keine vollständige Kernel-Abdeckung. +Für jeden Bereich ist die transitive Zuordnung bis zum tatsächlichen Kernel +einschließlich aktivierter Laufzeit-/Formbedingungen zu schließen. Ein Import +allein oder ein gesetztes Flag gilt nicht als Dispatch-Nachweis. + +| Bereich / bestehender Task | MTPLX-Einstieg | Verbindlicher Umfang | +| --- | --- | --- | +| Modell / Laden / Typen · P01/P09 | `models/qwen4_exp.py`: `TextModel`, `Qwen4ExpTextModel`, Sanitize-Fusionen | Gewichte, BF16-Aktivierungen, FP32-Zustände, zusammengeführte Projektionen, Views und Lebensdauer | +| Hyper-Connections · P09 | `GatedResidual`, `kernels/hyper_connection_v3.py`, `hyper_connection.py` | R1/R2, vorbereitete Quantisierung, Prefill- und Fallbackpfade, nicht nur Decode | +| Affine / Gather / Sorted Matmul · P07/P09 | `_FusedGDNInProj`, `_FusedGateUpSwitchGLU`, `_FusedGateUpMLP`; deren tatsächlich aufgerufene Quantized-Matmul-Kernel | QMV/QMM/NAX/Split-K, Gather/Sort/Unsort, gemeinsame Gate/Up-Projektionen, Typ-/Formgrenzen | +| GDN · P06 | `GatedDeltaNet.__call__`, `kernels/gdn_step_fused.py`, `gdn_conv_norm.py`, `gdn_out_fused.py`; `gated_delta_update` aus der gepinnten Abhängigkeit | Vollständige Branchfolge, Conv-/Delta-Zustände, Capture-Tape, Norm/Gate, Prefill/Decode/Verify | +| MoE / Shared Expert · P07 | `SparseMoeBlock`, `_FusedGateUpSwitchGLU`, `_FusedGateUpMLP`, `kernels/moe_glu_decode.py` | Router, Top-k, Sortschwelle, fusionierte Decode-/Verify- und Prefillpfade, Shared-Expert-Kombination | +| QSA / KV / Attention · P08 | `Attention`, `QSAIndexer`, `QSACache`, QSA-Kernelmodule und tatsächlich selektierter Attention-Backendpfad | Cache-Layout, Pooling/Indexer/Top-k/Masken, Dense-/Sparse-/Gather-/Flashzweige, Kontextgrenzen | +| PLE · P10 | `NGramTable`, `_SidecarGather`, `NGramEmbedding`, `PLELayer` | Hashing, Vorab-Staging, LRU/Bypass, Gather-/IO-Reihenfolge, Faltung und History | +| Serving / Sampling / MTP · P02–P05/P11/P12 | `server/openai.py`, `sampling.py`, Modell-Capture und aufgerufene Generator-/Backendmodule | Tokenisierung, laufender Chat, RNG/Verteilungen, Draft/Verify, Commit/Repair, Cache, Submission und Abschluss | + +Der bestehende Rust-Pfad in `src/engine/metal/qwen.rs` und die Kernel in +`metal/qwen38.metal` sind gegen diese gesamte Kette zu ersetzen/anzugleichen. +Die Referenz bleibt MTPLX; seine verwendeten Bibliothekskernel sind Bestandteile +dieser Referenzausführung, kein Wechsel zu einem anderen Golden Master. + +### Portierungsstand: unveränderte Kernelkörper und direkte Bindung + +2026-09-06: `metal/mtplx_qwen.metal` enthält erstmals direkt extrahierte, +unveränderte MTPLX-Kernelkörper, nicht nachgeschriebene Äquivalente. +`tools/mtplx-kernel-source.py` prüft den sauberen Referenzcommit und erzeugt +die deterministische Übersetzungseinheit. `--check` vergleicht die gesamte Datei; +ein gewöhnlicher Rust-Test schützt zusätzlich die neun eingebetteten Körperhashes. +Nur Einstiegspunkt-ABI und Templatespezialisierungen sind außerhalb der Körper +ergänzt. BF16 ist physisch BF16, der RMS-/Delta-Zustand bleibt wo vorgesehen FP32. + +| MTPLX-Körper | Eingebundene Spezialisierungen | Korrektheitsbeleg | Produktgraph | +| --- | --- | --- | --- | +| `hyper_connection._SOURCE` | BF16, Injection0/1 | Zeilen1/4/8, Ausgabehashes exakt | Umstellung offen | +| `hyper_connection_v3._SRC_R1` / `_SRC_R2` | BF16, RMS FP32 | Gekoppelte R1/R2-Ausgabe exakt | Umstellung offen | +| `gdn_conv_norm._SRC` | BF16 | q/k/v und Folgezustand exakt | Umstellung offen | +| `gdn_conv_norm._SRC_ROWS` | BF16, S2–6 | Alle fünf Breiten, q/k/v und Folgezustand exakt | Umstellung offen | +| `gdn_step_fused._SRC` | BF16, Rekurrenz FP32 | Zwei aufeinanderfolgende Schritte einschließlich beider Folgezustände bitgenau | Umstellung offen | +| `gdn_out_fused._SRC` | Gruppen32/64, x BF16/FP32, Quantparameter BF16 | Alle vier Kombinationen bitgenau, synthetische gültige Q4-Packs | Umstellung offen | +| `mlx_lm 0.31.3/models/gated_delta.py` · skalare Rekurrenz | BF16 q/k/v/beta, FP32 g/Zustand; mit/ohne Maske | S1/4/7/32/2048, Ausgabe und FP32-Folgezustand bitgenau | Umstellung offen | + +Die Metal-Bibliothek lädt diese 17 Einstiegspunkte. Die neue direkte Bridge +bindet geordnete Ein-/Ausgabepuffer ohne eigenes Qwen-Argumentlayout, Typcasts, +automatische Geometrieänderung oder zusätzliche Flushes. Ihre Bindungs-/Grid- +Konvention wurde gegen den +[gepinnten CustomKernel-Dispatcher](https://raw.githubusercontent.com/ml-explore/mlx/v0.32.2/mlx/backend/metal/custom_kernel.cpp) +geprüft; das ist MTPLXs benutzte Runtime, kein anderes Modell-Orakel. +R1/R2 samt Packvorbereitung bleiben im Test nachweislich in einem Command Buffer. +Der vorhandene Stage-Profiler verwendet für alte/neue Aufrufe dieselbe +Erfassungsfunktion. Allgemeine Submission-/Ressourcenparität P05 bleibt offen. + +`tools/mtplx-kernel-fixtures.py` ruft die tatsächlichen MTPLX-Funktionen mit +modellfreien deterministischen Eingaben auf. Die 29 geprüften Fälle mit 65 +Ausgabehashes stehen in +`tests/fixtures/mtplx-custom-kernels.jsonl`. GPU-Test und CPU-Quellhash-Test +bestanden; keine Benchmarks oder vollständigen Modellläufe. Apache-Lizenz und +NOTICE mitgeliefert; Attribution im CLI und verlinkt in den Modelleinstellungen. + +**Keine Fertigmeldung:** Der Inferenzgraph ruft derzeit weiterhin die alten +Kernel auf; die direkte ABI wird bisher vom Korrektheitstest genutzt. Die +zusammenhängende Umstellung der Aktivierungen und Graphaufrufe auf BF16 sowie +die übrigen MTPLX-Kernel und Rust-Funktionen sind weiterhin umzusetzen. Kein +FP32/BF16-Konvertierungsadapter wurde als vermeintlich fertiger Port eingeführt. +Diese Grundlage ist keine Performance- oder Gesamtparitätsabnahme. + +Die Rekurrenzquelle stammt aus MTPLXs tatsächlich installiertem `mlx-lm 0.31.3`, +SHA256 `79c8376a51c694b03e54d2f996ced6ea6c8c42868b8571529f97334db165a3e1`. +Der Exporter wertet ausschließlich die String-/F-String-AST aus, nicht den +Python-Modellcode. Die tatsächlich generierte Referenzsignatur wurde separat +mit `verbose=True` geprüft: Skalar `T` als `constant int32_t&`, Grid32×128×48, +Threadgroup32×4×1. Ihre MIT-Lizenz ist mitgeliefert. Der FP32-Zustand wird im Test +nicht auf BF16 reduziert; die bisherigen 19 Fixture-Zeilen blieben unverändert. + +Für die folgenden Matmul-Ports ist nun auch die **exakte Runtime-Quelle0.32.2** +lokal vorhanden: `local-eval-results/mtplx-runtime-0.32.2`, Commit +`1f8e74e3f12f31365464a6867c6579f0e9b29d85`. `quantized.h` stimmt byteweise mit +dem installierten Referenzheader überein. Die ältere Navigation über die lokale +0.32.3-Kopie ist keine Portierungsfreigabe. Der unveränderte Upstream-Generator +`make_compiled_preamble.sh` scheitert innerhalb und außerhalb der Sandbox an der +fehlenden separaten Metal-Toolchain; die Metal-Laufzeitkompilierung funktioniert. +Keine Toolchain installiert, kein Host-C/C++-Backend gebaut, keine Modelle geladen. +Die Runtime enthält außerdem ihre vorhandene `mlx.metallib`; deren Nutzung oder +quellidentische Neuerzeugung war zu diesem Zeitpunkt noch offen. Der folgende +Abschnitt dokumentiert die inzwischen geprüfte direkte Shader-Nutzung. + +### Runtime-Shader und verbundener BF16-GDN-Abschnitt + +Die installierte Runtime wurde nicht nur anhand der Versionsnummer eingeordnet: +`get_quantized_kernel` in ihrer tatsächlichen `libmlx.dylib` ruft direkt +`Device::get_kernel` für die vorgefertigte Standardbibliothek auf (Disassembly +bei0xd8af40). Das entspricht `nojit_kernels.cpp` der gepinnten0.32.2-Quelle. +Die dort vorhandene Shader-Datei ist deshalb **byteidentisch** als +`metal/mtplx-runtime-0.32.2.metallib` übernommen; SHA256 +`dc59d1cceb1a5c7e578232e6e41e28e2c73c9463ac6dbc3886c3ee17ffc270ed`, +182351120Bytes. Kein C/C++-Backend wird eingebunden. Lizenztext und Herkunft +stehen in `metal/MLX-LM-LICENSE.txt` und `metal/MTPLX-RUNTIME.txt`. +Die vorhandene Ressourcenverpackung nimmt die Datei mit auf; die Metal-Bridge +lädt sie erst beim ersten entsprechenden Dispatch. Keine Toolchain-Installation. + +`src/engine/metal/qwen_mtplx.rs` enthält jetzt die direkten Rust-Aufrufe für +kontiguierliche, nicht gebatchte BF16-Affine-Projektionen auf dem M5Max: + +- Referenzgrenzen33/25/13 nach Matrixdimension, QMV-Quad, normale/schnelle QMV, + QMV-Wide inklusive Referenz-Tiling statt einer eigenen Zeilenheuristik. +- QMM, NAX und Split-K einschließlich **BF16**-Teilresultaten und den originalen + ein-/zweistufigen Reduktionskerneln. Integerparameter über `setBytes`, explizite + 3D-Threadgroups; keine CPU-Reduktion oder Typkonvertierung. +- 78 gegen tatsächliche `mx.quantized_matmul`-Aufrufe erzeugte Fälle bitgenau: + Bits4/8, Gruppen32/64, Randgrößen, Variantengrenzen, beide Reduktionsstufen, + NAX-/Steel-Pfade und 2048Zeilen. Diese Runtime-Aufrufe sind Bestandteile der + MTPLX-Referenz, keine Änderung des Modell-Orakels. +- Verbundener GDN-Decode-Abschnitt: fusionierte Eingangsprojektion → originaler + GDN-Step → Ausgangsprojektion, native BF16-Views und getrennte neue Conv-/Delta- + Zustände. Zwei Folgeschritte stimmen vollständig mit dem tatsächlichen + `GatedDeltaNet.__call__` aus MTPLX überein. Der Referenztest prüft ausdrücklich + dessen Live-State-Branch; Kaltstart/Prefill/Verify sind damit nicht abgenommen. + Jeder Rust-Schritt verbleibt nachweislich in einem Command Buffer. + +Die direkte Bridge hält Datenbindung und Pipeline-Bool-Konstanten getrennt, +prüft ungültige/überlappende Bindungen und verwendet die bestehenden Metal- +Command- und Profiling-Funktionen. Temporäre Projektions-/Split-Puffer bleiben +im Rust-Ergebnis bis zum Abschluss des Command Batches erhalten. + +**Produktstatus unverändert offen:** Das neue Rust-Operationsmodul ist bis zur +zusammenhängenden BF16-Graphmigration ausdrücklich unter `cfg(test)` eingebunden. +Es ersetzt noch nicht den alten FP32-Inferenzgraphen. Es ist kein zweiter +Generator und keine abweichende Headless-Engine. MoE/Gather/Sort, QSA/Attention, +PLE, komplette GDN-Fallback-/Capture-Pfade sowie Sampling/MTP und der gemeinsame +Zustands-/Scheduling-Port sind weiterhin umzusetzen. Kein P01–P16 geschlossen, +keine Geschwindigkeitsmessung, Bundle-Auslieferung oder Paritätsabnahme. + +Die Fixture-Datei enthält nun insgesamt 571 Fälle mit 797 Ausgabehashes. Die bisherigen +546 Fälle blieben beim ergänzenden Normmodul-Nachweis unverändert. Zusätzliche +CPU-Tests prüfen den Shader-Dateihash und die Rust-Dispatch-Grenzen. + +### Gather-Dispatch: geprüfter Portabschnitt, keine Produktabnahme + +`qwen_mtplx::gather_bf16` bildet den normalisierten BF16-Gather-Pfad in Rust ab: +QMV normal/fast, Gather-QMM Steel/NAX sowie sortiertes RHS-QMM mit den originalen +Bool-Konstanten200/201/202. Es benutzt ausschließlich die unveränderte gepinnte +Runtime-Metallib. MTPLX sortiert ab64Routen; der Backendwechsel zum sortierten +RHS-Kernel erfordert separat M=1, mindestens16Routen und Routen/Experten>=4. +Die NAX-RHS-Tilehöhe wechselt bei Routen/Experten=64 von32 auf64. Diese Bedingungen +sind keine lokalen Performance-Heuristiken. GPU-Sortierung und Rücksortierung +sind dadurch ausdrücklich noch nicht implementiert. + +40 echte `mx.gather_qmm`-Referenzaufrufe prüfen Q4/Q8, Gruppen32/64, allgemeine +und sortierte Indizes, die Schwellen unmittelbar darunter/darüber, N-Ränder sowie +512Experten. Alle40Ausgaben sind bitgenau. Der gemeinsame fokussierte Lauf +führte7Tests aus:7bestanden,0fehlgeschlagen,0ignoriert;149GPU-Fälle/189Hashes. + +**Referenzfehler im künstlichen K-Randfall:** Bei sortiertem +X=33,M=1,N=81,K=160,E=8,R=33 liest der gepinnte NAX-RHS-Kernel über logische +Tensorgrenzen. Bereits MTPLX allein liefert bei unveränderten logischen Eingaben +andere Ergebnisse, wenn nur nachfolgender Speicher geändert wird. In +`quantized_nax.h:1659` wird die letzte A-Tilebreite aus BK statt k_remain gebildet; +Eingangs-Padding allein genügte im gesamten Fixture-Lauf nicht, erst kontrollierte +physische Grenzen auch für W/Skalen/Biases machten beide Ausführungen identisch. +Die zwei betroffenen Q4/Q8-Fälle sind deshalb mit explizitem Nullpadding in beiden +Testläufern enthalten, nicht übersprungen oder toleranzgeweitet. Die übrigen +38Gather-Ausgabehashes blieben unverändert. Originalkernel und Produktionspuffer +wurden nicht geändert. Diese synthetische K=160-Form ist keine MoE-Form des +installierten Modells (K=2560 bzw.640). Beleg und ursprüngliche Hashes stehen in +`local-eval-results/20260906-mtplx-port/gather-padding-investigation.md`. + +Der Produktgraph bleibt unverändert offen; diese Checks ersetzen weder die +MoE-Kette noch die sechs abschließenden Gesamtmessungen. + +### GPU-Argsort und inverse Reihenfolge + +Der normalisierte Rust-Argsort für zusammenhängende letzte Achsen verwendet die +originalen Runtime-Kernel für U32-, BF16- und FP32-Eingaben. Die Referenz führt +auch `argpartition` als vollständigen Sort aus. Übernommen sind die Auswahl der +32/64/128/256/512-Thread-Blöcke, Vierer-Tiles, Mehrblock-Sortierung mit Werte- und +Index-Pingpong, Partition/Merge-Reihenfolge und der abschließende Original-Copy. +Die Copy-Variante wechselt bei65536Elementen von1 auf2Elemente pro Thread. +Die Metal-Bindung unterstützt dafür zusätzlich `dispatchThreads`; aufgerundete +Threadgroups wären bei diesem ungeschützten Copy-Kernel nicht funktionsidentisch. +Bestehende Matmul-/Gather-Aufrufe verwenden weiter unverändert Threadgroups. + +123 echte Referenzaufrufe prüfen jeweils `argsort(x)` und `argsort(order)`: +20Breiten von1 bis65537 bei1/3Zeilen, dazu2048x512; jeweils U32/BF16/FP32. +Die Daten enthalten gleiche Werte, auch durch BF16-Rundung entstandene Gleichstände. +Alle246Index-Hashes sind bitgenau. Beide zusammenhängenden Sortierungen samt +Merge-/Copy-Schritten bleiben in jedem Rust-Test in genau einem Command Buffer; +kein CPU-Auslesen zwischen den Sortierungen. Der gemeinsame Lauf hat8Tests +ausgeführt:8bestanden,0fehlgeschlagen,0ignoriert,272Fälle/435Ausgabehashes. +Rohbeleg: `local-eval-results/20260906-mtplx-port/runtime-sort-combined-check.log`. + +Damit ist die inverse **Indexreihenfolge** geprüft, nicht schon die vollständige +`_gather_sort`-/`_scatter_unsort`-Datenbewegung. Deren Division/Gather-Front-Aufrufe, +die verbundene MoE-Kette und die übrige Produktgraphmigration bleiben offen. +Keine Gesamtperformance-Abnahme, kein P01–P16 geschlossen. + +### Verbundene Sort/Gather/Unsort-Datenbewegung + +Die zuvor offene Datenbewegung ist nun als zusammenhängender Rust-Abschnitt +implementiert: Experten-Argsort, inverse Reihenfolge, `order // top_k`, Gather +der BF16-Tokenzeilen und U32-Expertenindizes, anschließend Gather über die inverse +Reihenfolge für die Rücksortierung. Keine CPU-Auswertung der erzeugten Indizes. +Die Sortschwelle gehört weiterhin in den noch zu verbindenden MoE-Aufrufer. + +MTPLXs Runtime erzeugt den Gather-Front-Kernel aus `indexing/indexing.h` und +`indexing/gather_front.h` zur Laufzeit. Diese Shader-Einheiten werden jetzt mit +gepinnten Datei- und Einheitshashes unverändert in die vorhandene kanonische +Quelldatei exportiert; nur Includes werden aufgelöst und Instanziierungen ergänzt. +Keine C++-Hostimplementierung übernommen. Die bestehende Bindung kann diese +Shader mit unmittelbaren Größen-/Stride-Parametern aufrufen und behält originale +`dispatchThreads`-Geometrie und Zwei-Elemente-Grenze bei BF16-Slicegröße>8 bei. +Die ganzzahlige Division nutzt die unveränderte Runtime-Metallib mit dem +Referenzwechsel der Arbeit pro Thread bei65536Elementen. + +Sieben direkte Aufrufe der tatsächlichen MTPLX-Helfer `_gather_sort` und +`_scatter_unsort` sind mit vier Ausgaben pro Fall geprüft: sortierte Daten, +Expertenindizes, inverse Reihenfolge und zurücksortierte Daten. Fälle:1/6/7/205/ +2048/6554Tokens bei Top-10, Breiten7/8/9/2560, darunter2048x10x2560 und eine +65540-Routen-Kette. Alle28Hashes sind bitgenau. Jede gesamte Rust-Kette bleibt in +einem Command Buffer. Der gemeinsame Lauf führt9Tests aus:9bestanden,0Fehler, +0ignoriert;279Referenzfälle/463Hashes. Alle bisherigen272Fixture-Zeilen waren +bei frischer Referenzerzeugung unverändert. Der Quellvergleich prüft außerdem +die9Custom-Bodies/17Einträge sowie2Runtime-Einheiten/8Gather-Instanziierungen; +die geketteten Tests betreffen BF16/U32 mit32-Bit-Offsets, nicht alle8Varianten. + +Beleg: `local-eval-results/20260906-mtplx-port/connected-gather-combined-check.log`. +**Weiter offen:** verbundene Gate/Up-Aktivierung/Down-MoE-Kette, Router/Shared- +Expert-Integration, die übrigen Graphabschnitte und die vollständige BF16- +Produktmigration. Keine Performance-Abnahme oder Änderung der Abschlusskriterien. + +### Verbundene SwitchGLU-Rechenkette und tatsächlicher SiLU-JIT-Code + +`qwen_mtplx::switch_glu` bildet jetzt den vollständigen Aufruf von +`_FusedGateUpSwitchGLU` mit bereits ausgewählten Experten ab: Sortierung ab64Routen, +gemeinsame Gate/Up-Gather-Projektion, `nn.silu(gate) * up`, Down-Gather-Projektion +und Rücksortierung. U32-Arange und Broadcast-Strides erhalten die implizite +Token-/Expertenzuordnung; kein zusätzliches Materialisieren broadcasteter +Tokenindizes, kein CPU-Auslesen erzeugter Indizes. Aktivierungen bleiben BF16. +Temporäre Puffer werden bis zum Abschluss des zusammenhängenden GPU-Batches gehalten. + +Der SiLU-Code wurde nicht anhand seiner Formel neu geschrieben: +`tools/mtplx-jit-reference.py` beobachtet im isolierten Referenzprozess den +originalen Objective-C-Metal-Compileraufruf, leitet ihn unverändert weiter und +setzt den lokalen Beobachtungs-Hook abschließend zurück. Der gespeicherte +JIT-Receipt `tests/fixtures/mtplx-silu-jit.json` enthält alle19erzeugten Varianten. +Vollständiger beobachteter Compiler-Quellhash: +`76cafb45db55a91efba66503dde59b37628ea360f220f35dd860f4ac3c3d0111`. +Die Rank-2-Erzeugung wurde erneut exakt bestätigt; Rank3/5 der sortierten und +unsortierten SwitchGLU erzeugen nach Normalisierung der Symbolnamen denselben +Rechencode. Keine Rechenanweisung wird durch diese Normalisierung geändert. + +Der bestehende Shader-Exporter übernimmt diese19Varianten sowie ihre originalen +BF16-Mathematik-, Sigmoid-, Multiply-, Cast- und Stride-Helfer mit gepinnten +Dateihashes. Nur die Hostnamen erhalten lokale Aliasse. Das ist Shadercode, +kein übernommener C++-Hostcode. Die Rust-Auswahl erhält Contiguous/Strided-Pfade, +die65536-Elemente-Grenze und den separaten ursprünglichen Up-Multiply-Dispatch. +Der Quellcheck umfasst nun9Custom-Bodies/17Einträge sowie8Runtime-Einheiten mit +27Runtime-Einträgen (8Gather,19SiLU). + +Nachweise:10Aktivierungsfälle mit zwei Ausgaben, darunter20480x640 und die +Vektorisierungsgrenzen;21direkte Aufrufe der tatsächlichen MTPLX-SwitchGLU-Klasse +mit synthetischen Q4-Gewichten, Gruppen32/64/gemischt. Ganze Ketten bei1/6/7/205/ +2048Tokens mit K2560/I640/E16 sowie7/205Tokens mit K128/I64/E512. Alle41neuen +Ausgabehashes bitgenau; jede Rust-Kette ein Command Buffer. Der gemeinsame Lauf: +11Tests ausgeführt,11bestanden,0fehlgeschlagen,0ignoriert;310Fälle/504Hashes. +Beleg: `local-eval-results/20260906-mtplx-port/connected-switch-combined-check.log`. +Das ist keine Messung des vollständigen512Experten-Modells bei K2560. + +**P07 bleibt offen:** Router/Softmax/Top-k, Gewichtung, Shared Expert und die +gesonderten fusionierten Decode-/Verify-Pfade von `SparseMoeBlock` sind nicht +durch den abgeschlossenen SwitchGLU-Untermodul-Nachweis abgedeckt. Auch die +übrigen Graphabschnitte, Produktintegration und Gesamtperformance-Abnahme bleiben +offen. Kein Rollback und keine Auswahl von Teiloptimierungen nach Geschwindigkeit. + +### Verbundener Router und SparseMoeBlock einschließlich Decode/Verify + +Der kanonische Rust-Port umfasst jetzt den Standard-MoE-Block mit den +Sanitize-fusionierten Expert-/Shared-Expert-Packs: Q8-Routerprojektion, +präzises BF16-Softmax über alle Experten, vollständiges Argpartition/Argsort, +Top-10-View, GatherAxis und optionale Normalisierung, SwitchGLU, gewichtete +BF16-Summe, Shared-MLP, Sigmoid-Gate und Addition. Der Top-10-Stride bleibt +erhalten; erst das originale Flatten vor Sortierung materialisiert ihn. +Unsortiertes GatherQMM verarbeitet ihn direkt. Keine CPU-Indizes oder +zusätzlichen Flushes/Wartepunkte innerhalb der verbundenen Kette. + +Die vier unveränderten Kernelkörper aus `moe_glu_decode.py` sind zusätzlich +mit16BF16-Spezialisierungen eingebunden: Decode und Verify mit2/3/4Zeilen, +Gruppen32/64 für Gate-Up und Down unabhängig. Die beiden Referenzflags sind +standardmäßig aus; ihre aktivierten Zweige einschließlich BF16→FP32-Routengewichten, +Shared-Expert-Kombination und Rückfall bei mehr als4Zeilen sind im selben +Rust-Dispatcher portiert. Keine Auswahl anhand eines Teilbenchmarks. + +- 16 Routerfälle mit 48 Hashes, einschließlich 2048x512 sowie 4096/4097-Softmaxgrenze. +- 48 vollständige Standard-MoE-Fälle gegen die tatsächliche MTPLX-Klasse. +- 64 weitere Klassenaufrufe mit beiden Fusionsflags aktiv: Decode/Verify, + Gruppenkombinationen und5/7-Zeilen-Fallback. Optionale Normalisierung jeweils an/aus. +- Modellabmessungen K2560/I640/E512 sind im Standardpfad bei 1/7/2048 Zeilen und + in den fusionierten Pfaden bei1/4Zeilen enthalten; synthetische Gewichte, + kein vollständiger Modelllauf. Alle Ausgabehashes bitgenau. + +Gemeinsamer Prüflauf:13Tests ausgeführt,13bestanden,0fehlgeschlagen,0ignoriert; +438Fälle/664Hashes. Jede verbundene Testkette bleibt in einem Command Buffer. +Der Quellcheck umfasst13Custom-Bodies/33Einträge und10Runtime-Einheiten mit +35Einträgen; GatherAxis und dessen Stride-Helfer werden unverändert übernommen. +Beleg: `local-eval-results/20260906-mtplx-port/connected-moe-combined-check.log`. + +**Weiter offen:** Diese Operationen bleiben `cfg(test)`. Der alte Produktgraph +wurde nicht auf diesen Stand umgestellt. P07 umfasst außerdem die nicht +Sanitize-fusionierten Modulpfade; die übrigen Graphabschnitte, State/Cache, +Submission und die zusammenhängende BF16-Produktmigration bleiben offen. +Exakte Blockausgaben beweisen weder Scheduling-Parität des vollständigen +Modells noch UI-Responsiveness oder Gesamtperformance. P01–P16 nicht geschlossen. + +### Getrennte MoE-Projektionen und verbundene Normmodule + +Der kanonische MoE-Dispatcher bildet nun auch `SwitchGLU` und `Qwen3NextMLP` +ohne Sanitize-Fusion ab. Expert- und Shared-MLP können unabhängig zusammengepackt +oder getrennt vorliegen; getrennte Gate-/Up-Projektionen behalten ihre eigenen +Quantisierungsgruppen und ihre ursprüngliche Aufrufreihenfolge. Die fusionierten +Decode-/Verify-Kernel werden bei separaten Experten trotz aktivierter Flags wie +in MTPLX nicht gewählt. Keine Änderung an der Standard-Flagbelegung. + +Der ursprüngliche `swiglu`-Compileraufruf wurde mit dem bestehenden lokalen +Beobachter erfasst. Receipt `tests/fixtures/mtplx-swiglu-jit.json`, voller +beobachteter Quellhash: +`bf78eee5cf96ea7c112c4e61546c12bcacf57fe512e0572182604cb94137510b`. +Alle 19 erzeugten Varianten sind unverändert mit lokalen Host-Aliassen exportiert. +Rank-3 und Rank-5 liefern nach reiner Symbolnormalisierung denselben Rechencode. +Anders als beim fusionierten Pack ist SwiGLU hier ein gemeinsamer kompilierter +Aktivierungs-/Multiply-Aufruf mit zwei separaten Projektionseingaben. + +108 zusätzliche Aufrufe der tatsächlichen MTPLX-MoE-Klasse prüfen getrennte und +gemischte Modulbelegungen, Gruppen 32/64, Normalisierung an/aus, Sort-/Matmul- +Grenzen und aktivierte Fusionsflags. Darunter E512/K2560/I640 mit 1/7/2048 Zeilen. +Alle 108 Ausgabehashes sind exakt; die bisherigen 438 Fixtures blieben unverändert. + +Außerdem sind `GroupedRMSNorm` (HC/PLE) und `SigmoidRMSNormGated` (GDN) als +verbundene Rust-Operationen mit den unveränderten Runtime-Shadern portiert. +Erhalten bleiben ungewichtete Gruppen-RMS vor separater Vollbreitengewichtung, +BF16-Rundung vor dem FP32-Sigmoid-/Multiply-Epilog, fehlendes Gate sowie das +strided Z-View aus der fusionierten GDN-Eingangsprojektion. 25 direkte Aufrufe +der tatsächlichen Normklassen sind exakt, einschließlich 2K Zeilen, Loop-/ +Vektorisierungsgrenzen und GDN-Zeilenstride 16480. Das ist noch nicht der komplette +gestufte GDN-Forward einschließlich Conv, compute_g, Rekurrenz und Capture-State. + +Gemeinsamer Lauf: 14 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert; +571 Fälle / 797 exakte Hashes. Jede verbundene Kette bleibt in einem Command Buffer. +Quellcheck: 13 Custom-Körper / 33 Einträge, 11 Runtime-Einheiten / 54 Einträge. +Beleg: `local-eval-results/20260906-mtplx-port/separate-moe-norm-combined-check.log`. +P07 bleibt wegen der Produktintegration offen. P06/P08/P09/P10 sowie die übrigen +Host-/State-/Scheduling-Aufgaben bleiben offen; keine Gesamtperformance-Abnahme. + +### Verbundener gestufter GDN-Forward und compute_g + +`gated_delta_update` ist einschließlich des tatsächlichen kompilierten +`compute_g`, BF16-Sigmoid, initialem FP32-Nullzustand, Maske und ursprünglicher +Rekurrenz verbunden. Das JIT-Receipt bewahrt alle 19 erzeugten Varianten; +BF16-Add/LogAddExp vor den FP32-Exponentialoperationen bleibt unverändert. +80 direkte Referenzaufrufe mit zwei aufeinanderfolgenden Updates prüfen +kalte/vorhandene Zustände, Masken und A/B-Zeilenstride 48/16480 bis 2K Zeilen. +Alle 320 Hashes sind exakt. + +Der gestufte `GatedDeltaNet`-Forward mit fusionierter Eingangsprojektion ist +jetzt bis zur Ausgangsprojektion verbunden: QKV-Maske, Conv-Zustandskonkatenation, +Tail beziehungsweise geklippte Cache-Längen mit originalem INT32-GatherAxis, +ursprüngliche Depthwise-Conv1D, SiLU, FP32-L2-Normalisierung mit BF16-Grenze vor +Q-Skalierung, Rekurrenz, Sigmoid-RMS und Ausgangsprojektion. Die Conv-Norm- +Fusionen für S1/S2–6 und die Output-Fusion behalten ihre Flag-/Form-/Masken-/ +Längenbedingungen. Kalte Broadcast-Zustände werden am tatsächlichen +General-Copy-Punkt materialisiert; zusammenhängende Ein-Zeilen-Views werden +nicht zusätzlich kopiert. Bestehende Bindungen und unveränderte Shader werden +wiederverwendet; kein mathematisch ähnlicher Ersatzkernel. + +130 Aufrufe der tatsächlichen MTPLX-Klasse prüfen Zeilen 1/2/4/6/7/32/2048, +kalte/vorhandene Zustände, Masken, Fusionsflags und Längen unterhalb/in/oberhalb +des gültigen Bereichs. Jeder Fall führt einen zweiten Forward auf beiden +zurückgegebenen Zuständen aus. Verglichen werden finaler Hidden-Output, +Conv-Zustand, FP32-Delta-Zustand sowie die erfassten Q/K/V-Zeilen. Alle 780 +Hashes sind bitgenau; beim Export blieben die vorherigen 651 Receipts unverändert. + +Gemeinsamer Abschlusslauf: **16 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert; +781 Fälle / 1.897 exakte Ausgabehashes**. Verbundene Ketten bleiben in einem +Command Buffer. Quellcheck: 13 Custom-Körper / 33 Einträge, 17 Runtime-Einheiten / +81 Einträge. Beleg: +`local-eval-results/20260906-mtplx-port/staged-gdn-combined-check.log`. + +**P06 bleibt offen.** Diese Operationen sind weiterhin `cfg(test)` und ersetzen +noch nicht den produktiven FP32-Qwen-Graph. Separate GDN-Eingangsprojektionen, +vollständige Advance-/Capture-Commit-Zustandsführung, No-Cache-/Batch-Hostpfade +und gemeinsame Submission-/Concurrency-Semantik sind noch nicht vollständig +angebunden. QSA/HC/PLE, Sampling/MTP und die zusammenhängende BF16-Produktmigration +bleiben ebenfalls offen. Ausgabeidentität dieser Module ist weder eine +Scheduling- noch eine UI-/Harness- oder Gesamtperformance-Abnahme. Kein +Performance-Auswahlversuch, keine Rücknahme und kein Abschluss von P01–P16. + +### Gemeinsame GDN-Projektion und tatsächliche Forward-Auswahl + +Die bisher doppelte Eingangsprojektion in gestuftem und fusioniertem Forward +ist durch `gdn_project` ersetzt. `GdnInputWeights` bildet sowohl den fusionierten +Pack als auch die vier separaten QKV-/Z-/B-/A-Module ab. Getrennte Module behalten +ihre eigene Quantisierung und Aufrufreihenfolge; ihr zusammenhängendes Layout +wird nicht wie ein fusioniertes View mit Zeilenstride 16480 behandelt. Die +bestehenden Affine-/GPU-Bindungen werden wiederverwendet, keine Shaderänderung. + +`gdn_forward` übernimmt die Branch-Priorität für die installierte B=1-Geometrie: +fusionierter Schritt nur bei entsprechendem Flag, lebendem FP32-Delta, einer +unmaskierten Zeile, vorhandenem Cache, fehlenden Längen und inaktivem +Verify-Capture. Ein fehlender Conv-Zustand bei vorhandenem Delta wird wie in +der Referenz materialisiert. Ein vollständig kalter Aufruf startet gestuft; +der Folgeschritt kann mit dem zurückgegebenen Delta in den fusionierten Pfad +wechseln. Die Flags sind keine neu eingeführten Produktdefaults. + +264 zusätzliche Aufrufe der tatsächlichen MTPLX-Klasse decken fusionierte, +getrennte und gemischt Q4/Q8-quantisierte Eingänge mit Gruppen 32/64 ab; Zeilen +1/2/6/7/33/2048, kalte/vollständige/Conv-only/Delta-only-Zustände, Flags aus/an/ +Step-only, Masken, Cache-Längen und Verify-Capture. Zwei aufeinanderfolgende +Forwards behalten jeweils beide Zustände. Alle 792 Ausgabehashes und die +tatsächlichen Step-/Conv-Branchentscheidungen sind exakt. Der Export prüfte +außerdem alle bisherigen 781 Receipts unverändert. + +Gemeinsamer Prüflauf: **17 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert; +1.045 Referenzfälle / 2.689 exakte Ausgabehashes**. Belege: +`local-eval-results/20260906-mtplx-port/gdn-forward-check.log` und +`gdn-forward-combined-check.log` (kompakter Sammelbeleg; dessen erste Tool-Ausgabe +war gekürzt, der finale Teststatus ist vollständig). Quell-/Format-/Whitespace- +Prüfungen bestanden. Keine Performanceauswahl oder Rücknahme. + +Die zuvor offene separate GDN-Eingangsprojektion ist damit auf Modulebene +angebunden, **nicht im Produktgraph**. P06 bleibt für vollständige Advance-/ +Capture-Commit-Zustandsführung, No-Cache-/Batch-Hostpfade und gemeinsame +Submission-/Concurrency-Semantik offen. Das gesamte Modell bleibt auf dem alten +Produktpfad; sämtliche übrigen Portierungs- und Gesamtperformancepflichten +bleiben unverändert. Der bestehende Capture-Commit muss mit QSA-/PLE-Snapshots +und gemeinsamer Validierung vor jeder Cache-Mutation portiert werden, nicht als +isolierter GDN-Replay-Ersatz für den vollständigen Commit. + +### QSA-Indexer-Vorbereitung und verbindliche restliche Pfadabdeckung + +Die tatsächliche QSA-Aufrufkette wurde in `qwen4_exp.py` von `QSACache` über +`QSAIndexer` bis `Attention` verfolgt. Die folgenden Teile gehören gemeinsam zu +P08; sie sind keine wahlweisen Performance-Optimierungen: + +| Abschnitt | Referenzverhalten / verbleibende Verpflichtung | +| --- | --- | +| Raw-/Pool-/KV-Zustand | Geometrisches Wachstum, reservierte Kapazitäten, logische Frontier, Trim/Restore; FP32-transponierter Pool-Mirror einschließlich Neuaufbau/Invalidierung | +| Query-/Key-Vorbereitung | Quantisierte Projektion oder vorhandene QK-Zeilen, RMS/partielles RoPE, vollständige Key-Blöcke; fusionierte und Eager-Fallbackpfade | +| Auswahl | Cache-Updates vor Dense==Sparse-Rückgabe; ursprünglicher Eager-Score/Top-k, Legacy-Fusion für Decode/kleine Verify-Fenster, gekachelter Prefill-Selektor und expliziter Compiled-State-Pfad | +| Ergebnisformen | `blocks`, `prefill_blocks`, `row_tokens`, `dense_mask`, `update_only`; logische Grenzen und Scratch-/Kapazitätsbedingungen, kein stiller Retry nach Dispatchfehlern | +| Attention-Verbraucher | Decode-Flash-Skip, Prefill-Flash, gekacheltes Prefill-Gather, Rows-Gather, Decode-Gather und Dense-SDPA; Masken/kausaler Tail/KV-Stride und Output-Gate erhalten | +| Vision | M-RoPE und Dense-Causal-Verbrauch bei unverändert weiter gepflegtem QSA-Indexer-/Cache-Zustand | + +Umgesetzt ist jetzt die fusionierte **Indexer-Vorbereitung** mit den beiden +unveränderten Körpern aus `qsa_indexer_prepare.py`: Query-RMSNorm/partielles RoPE +und FP32-Blockmittelwert/BF16-Rundung/RMSNorm/RoPE für Keys. Der Exporter liest +die Funktionsliterale als AST, schützt den Quelldateihash und löst nur Includes, +Headerparameter und Einstiegspunkt-ABI auf. Stride-Metadaten behalten den +ursprünglichen `constant int64_t`-Adressraum. Die Spezialisierung entspricht dem +vorhandenen Modell: H4/D128/Rotary64/Ratio4/Epsilon1e-6/Attention-Scale1. +Andere geometrische Konfigurationen sind dadurch nicht als portiert behauptet. + +`qsa_project_prepare` verbindet die bestehende quantisierte Affine-Operation +mit dem ursprünglichen Query-Kernel; Raw-Key-Views behalten Zeilenstride 640. +105 zusätzliche Referenzfälle prüfen Query-Vorbereitung, Key-Pooling und die +verbundene Projektion/Vorbereitung/Pooling-Kette: bis 2K Zeilen, 512 Key-Blöcke, +strided und Stride-2-Views, große absolute Positionen, Q4g64/Q8g64/Q8g32. Die +Frequenzen stammen unverändert vom tatsächlichen MTPLX-Modell. Alle 129 Hashes +sind exakt; sämtliche vorherigen 1.045 Receipts blieben beim Export unverändert. + +Gemeinsamer Prüflauf: **18 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert; +1.150 Referenzfälle / 2.818 exakte Ausgabehashes**. Vollständiger Beleg: +`local-eval-results/20260906-mtplx-port/qsa-prepare-combined-check.log`. +Quellcheck: 15 Custom-Körper / 35 Einträge plus 17 Runtime-Einheiten / 81 Einträge. +Format- und Whitespace-Prüfungen bestanden. + +**P08 bleibt offen:** Der verbundene Vorbereitungstest ist nicht der vollständige +Indexer mit Cache/Selektion und nicht der Attention-Forward. Die übrigen +Tabellenabschnitte, Eager-Fallback und Produktintegration sind noch ausstehend. +Der kanonische Rust-Pfad bleibt `cfg(test)`; weder UI-/Harness-Verhalten noch +Gesamtlaufzeit oder das all-model ±2%-Ziel wurden hiermit abgenommen. + +### QSA-Cache-Lebenszyklus einschließlich Session-State-Aliasing + +`QsaCache` verbindet Raw-Key-Schreibzugriffe, ursprüngliches Key-Pooling, +geometrisches Indexer-Wachstum, KVCache-Schrittwachstum, Reservierung, Trim, +State-Restore und den abgeleiteten FP32-Mirror. Strided KV-Slices werden am +ursprünglichen Copy-Punkt materialisiert. Nur vorhandene Original-Copy-/Cast- +und Pooling-Kernel werden verwendet. Die Speicherzählung entspricht +`QSACache.nbytes`, einschließlich Backing-Kapazitäten und ohne FP32-Mirror. + +Der Referenztest hat eine falsche Annahme korrigiert: State-Leaves sind **nicht +generell immutable**. Der Setter übernimmt die Python-Array-Objekte; `__setitem__` +ersetzt deren Descriptor und ist über dieselben Objekt-Aliase sichtbar. Separate +Slices teilen dagegen nur Storage. Rust bildet beide Ebenen getrennt mit lokalen +`Rc` und `RefCell` ab; beim Wachstum wird wie in MTPLX ein neues Objekt gebunden. +Dieser Unterschied wird durch erhaltene Snapshots nach Restore/Trim/Write geprüft, +nicht durch angepasste Sollwerte verdeckt. + +44 zusätzliche Zustandsübergänge mit 536 Ausgabehashes stimmen bitgenau überein: +kalter und vorreservierter Cache, mehrere Kapazitätsgrenzen, drei gleichzeitig +gehaltene Snapshots, Fortsetzung nach Restore, vollständiger Trim und erneuter +Aufbau. Verglichen werden auch ungenutzte Buffer-Bereiche und der Mirror. +Alle 1.194 Referenzfälle wurden erneut ausgeführt; vorherige Hashes unverändert. +Gemeinsamer Prüflauf: **19 bestanden, 0 fehlgeschlagen, 0 ignoriert; +1.194 Fälle / 3.354 exakte Hashes**. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-cache-combined-check.log`. + +**P08 und Produktintegration bleiben offen.** Der Cache-Port bleibt zusammen mit +den bisherigen kanonischen Operationen `cfg(test)`. Vollständige QSA-Selektion, +Attention und Compiled-Indexer-State-Commit sind noch anzubinden. Dies schließt +weder den Audit noch UI-/Harness- oder Gesamtperformance-Parität ab. + +### Ursprüngliche QSA-Selektion und verbundene Cache-Ausführung + +`qsa_indexer_select.py` ist mit unverändertem gemeinsamen Header, Selektorkörper +und allen drei Epilogen (`blocks`, `dense_mask`, `row_tokens`) übernommen. +`metal/mtplx-qsa-select.json` enthält die AST-extrahierten Originalteile samt +Quelldatei-/Teilhashes. Rust setzt die ursprünglichen Header-Literale für die +jeweilige Backing-Kapazität ein; weder Laufzeitparameter statt Compile-Konstanten +noch feste Testkapazitäten ersetzen die Referenzspezialisierung. Die bestehende +native Pipeline-Bindung kompiliert diese Formen mit MTPLXs Safe-Math- und +Metal-Sprachversionsauswahl und verwendet ihren vorhandenen Cache weiter. + +Die verbundene Host-Kette umfasst Raw-Key-Schreiben, ursprüngliches Pooling, +Query-Vorbereitung, Selektion und KV-Fortschreibung. `_select_fused` begrenzt +wie die Referenz den Score-Scratch pro Dispatch auf 32 MiB durch Query-Chunking, +nicht History-Kürzung. Chunk-Ausgaben werden mit den ursprünglichen typisierten +GeneralGeneral-Copies zusammengefügt; die dichte Maske bleibt ein logischer +Slice der kapazitätsbreiten Ausgabe. Die allgemeine Metal-Bindung verwirft keine +Byte-Offsets pauschal wegen einer nur für breitere Typen passenden Vierergrenze. + +84 neue Referenzfälle / 168 Hashes sind exakt: BF16/FP32 und gemischte Operanden, +TF32 an/aus, Strides, leere logische Historie, kausale Grenzen, Padding und +All-zero-Ties; außerdem tatsächliches Host-Chunking bei 65.536 reservierten +Blöcken sowie drei aufeinanderfolgende Cache-Forwards. Header und vollständiger +Selektorkörper stimmen zusätzlich mit den tatsächlich erzeugten MTPLX-Quellen +überein. Alle vorherigen 1.266 Receipts blieben beim erneuten Export unverändert. + +Gemeinsamer Prüflauf: **21 bestanden, 0 fehlgeschlagen, 0 ignoriert; +1.278 Fälle / 3.522 exakte Hashes**. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-select-combined-check.log`. + +**Offen bleiben** der große vektorisierte Prefill-Selektor, Eager- und Compiled- +Indexerzweige, Attention-Verbraucher und die zusammenhängende Produktintegration. +Der kanonische Pfad ist weiter `cfg(test)`. Insbesondere nutzt das ursprüngliche +`concatenate_gpu` einen Concurrent-Bereich; Ressourcenabhängigkeiten, diese +Concurrency und automatische Commit-Grenzen sind gemeinsam in P05 zu portieren. +Die exakten Ergebnisse hier sind kein Scheduling- oder Gesamtperformance-Beleg; +kein P01–P16 geschlossen und keine Optimierung per Mikrobenchmark verworfen. + +### Ursprünglicher QSA-Prefill: beide Score-Produzenten, Top-k und Cache-Fortsetzung + +Die beiden Prefill-Stufen aus `qsa_indexer_prefill.py` sind verbunden portiert: +der ursprüngliche H4/D128-TensorOps-Score-Kernel (16 Query-Zeilen × 32 Keys pro +Threadgroup) und der separate adaptive Insertion-/Radix-Top-k-Körper. Header, +Körper und Epiloge bleiben unverändert; `mtplx-qsa-select.json` enthält zusätzlich +die gepinnten Prefill-Quellen. Die vorhandene Pipeline-Kompilierung und typisierte +Ausgabe-Verkettung werden gemeinsam mit dem Legacy-Selektor benutzt. + +MPP lädt über die ursprünglichen Strides ohne versteckte Contiguous-Copy. +Der Top-k-Wrapper materialisiert dagegen nichtkontiguierliche FP32-Score-Views +am ursprünglichen General-Copy-Punkt. Beide Fälle sind gegen echte Referenzaufrufe +geprüft. Die producerabhängige 128-MiB-Planung samt Alignment-Abrundung ist +übernommen: eine Score-Ebene für MPP, H4+1 für den allgemeinen +FP32-Produzenten. Eine irreduzible Zeile darf wie in MTPLX das Budget überschreiten. +Ein ausgewählter MPP-Kernel fällt bei Fehlern nicht auf einen anderen Pfad zurück. + +Die gemeinsame Rust-Funktion `qsa_prefill` enthält jetzt auch MTPLXs allgemeinen +FP32-Score-Zweig: Cast, Matmul, ReLU pro Kopf, Kopf-Summe und Skalierung. Die +Rust-Dispatch-Auswahl übernimmt `matmul.cpp` der gepinnten Runtime für H4/D128 +auf M5 Max einschließlich GEMV, regulärem Steel/NAX und beiden Split-K-Varianten. +Alle Shader stammen unverändert aus der gepinnten metallib. Vector-Casts erhalten +transponierte/gebroadcastete Speicherlayouts; General-Casts materialisieren Views. +Matmul prüft Transposition und bereits gebroadcastete Operanden vor der +Batch-Zusammenfassung. Der Pool-Cast wird einmal über alle Chunks gehalten; +Top-k und typisierte Verkettung sind für beide Produzenten gemeinsam. + +384 neue Score-Fälle decken BF16/FP32-Queries, acht Layoutkombinationen, bis 2K +Query-Zeilen und den echten `MLX_ENABLE_TF32=0/1`-Runtime-Schalter in separaten +Prozessen ab. 160 der 192 Form-/Typ-Paare haben tatsächlich unterschiedliche +TF32-an/aus-Referenzergebnisse; beide Varianten sind jeweils bitgenau. Dazu kommen +96 verbundene Prefill-Fälle mit allen vier BF16/FP32-Operandenpaaren, allen drei +Ausgabeformen und erzwungenem Chunking einschließlich Alignment-Abrundung. + +`qsa_prefill_cached` verarbeitet den gültigen Pool-Ausschnitt wie der große +MTPLX-Prefill-Zweig, nicht die reservierte Kapazität des Legacy-Selektors. Der +fortlaufende Cache-Test hängt nach 1/4/7 Zeilen einen vollständigen 2K-Prefill an; +Query-Vorbereitung, Raw-Writes, Pooling, Selektion und KV-Fortschreibung bleiben +verbunden. Alle drei Selektions-Ausgabeformen sind geprüft. + +159 neue Fälle / 284 Hashes: Kachelränder, bis 2K Query-Zeilen, bis 65.536 +Key-Blöcke, Stride-2-/gepaddingte Score-Views auch mit nichtkonstanten Werten, +kausale Grenzen, Null-/Einser-Ties, kurze/lange Radix-Kandidatenlisten, erzwungene +Chunk-/Concat-Grenzen und reale Cache-Fortsetzung. Die vorherigen Receipts +blieben bei den erneuten Referenzexporten unverändert. Gemeinsamer Prüflauf +einschließlich der 480 zusätzlichen FP32-/Producer-Fälle: +**25 bestanden, 0 fehlgeschlagen, 0 ignoriert; 1.917 Fälle / 4.382 exakte Hashes**. +Beleg: `local-eval-results/20260906-mtplx-port/qsa-f32-prefill-combined-check.log`. + +**Nicht abgeschlossen:** vollständiger Eager-Indexer, +Compiled-State/Graph-Bank, Attention-Verbraucher, vollständige Branch-Auswahl, +Scheduling und Produktintegration. Die unterstützte M5-Prefill-Kette wird nicht +als Ersatz für diese Zweige ausgegeben. Der kanonische Port bleibt `cfg(test)`; +keine Änderung der UI-Performance behauptet, kein P01–P16 geschlossen und kein +Gesamtbenchmark oder Rücknahmeentscheid vor der vollständigen Integration. + +### Eager-Indexer: Selektion, Kachel-Eval und sämtliche Ausgabeformen + +Der kanonische Rust-Port enthält jetzt auch die untiled `_select_eager`-Kette: +kausale Blockgültigkeit, FP32-Matmul/ReLU/Kopf-Summe/Skalierung, `where`, +`block_id * 1e-12`-Tie-Break und die originale Runtime-`ArgPartition`-Ausführung +(vollständiger Argsort). Die letzte K-Spalten-View behält den ursprünglichen +Zeilenstride. Für `flash_prefill` folgen originale Int32-Sortierung, +Int64-Indexkonvertierung, Bool-GatherAxis und Nullsetzen ungültiger Slots. +Dense-Maske, Rows-Gather sowie beide Decode-Ausgaben (Flash-Blöcke und +Gather-Tokenliste) sind ebenfalls verbunden. Dense verwendet den originalen +Bool-ScatterAxis, Gültigkeit, Repeat/Concat und die Tail-/Kausalmaske. Rows-Gather +behält die Argsort-Reihenfolge, liefert K*4+4 gepaddingte Tokens mit Gültigkeit +und setzt ungültige IDs auf null. Decode sortiert chronologisch und hält die +Tail-Grenze auf dem Host; Flash hat wie in MTPLX Vorrang vor Gather. Die für diese +beiden lazy Ausgaben tote Dense-Maskenexpression wird nicht ausgeführt. +GatherAxis/ScatterAxis verwenden unveränderte Originalkörper mit den benötigten +Templatespezialisierungen; kein Ersatzkernel. Cast, Sort und Vektor-Dispatch +werden zwischen den Epilogen geteilt. + +Die Referenzreceipts stammen aus tatsächlichen `QSAIndexer._select_eager`- +Aufrufen. Beobachter reichen `where`/`argpartition` unverändert weiter und lesen +die realen Zwischenwerte; die Blockausgabe wird über den echten Prefill-Phasen- +und Konfigurationspfad ausgewählt. 60 Zwischenwert- und 24 verbundene Blockfälle +prüfen BF16/FP32, Null-Ties, kausale Grenzen, bis 2K Queries und bis 65.536 Blöcke, +jeweils mit dem echten TF32-Runtime-Schalter an/aus. Hinzu kommen 144 Dense-, +108 Rows-Gather- und 72 Decode-Fälle, einschließlich Tail-Längen 0/1/3 und +gleichzeitig gesetzten Flash-/Decode-Gather-Schaltern. Insgesamt prüfen 408 +Eager-Fälle die echten MTPLX-Ausgaben bzw. Zwischenwerte. + +`_tiled_topk` ist an dieselbe Score-/Ranking-Kette angeschlossen. Block-/Tie- +Vektoren und der FP32-Pool werden geteilt. Jede Kachel wartet synchron auf das +Top-k-Ergebnis, bevor die nächste entsteht; kein Ersatz durch asynchrones Flush. +Score-Scratch wird nach der Kachel freigegeben, die ausgewerteten ArgPartition- +Views bleiben bis zum originalen GeneralGeneral-Concat erhalten. Der Indexstride +wechselt dabei von N auf K; Gültigkeit behält ihren N-Stride. Alle Epiloge beachten +beide Strides. Der ganze Blockgültigkeitsausdruck folgt erst nach den Kachel-Evals. + +`qsa_eager_output` entscheidet die Rückgabe nun gemeinsam in Referenzreihenfolge: +Prefill-Blöcke, Decode-Flash, Decode-Gather, ungekächeltes Rows-Gather, Dense. +Die gemeinsame Large-Prefill-Berechtigung ist weiterhin ein Eingabeparameter; +ihre vollständige Verknüpfung mit Indexer/Compiled-Core gehört zur offenen +Indexer-Integration. Die neuen Tests wählen nicht selbst den erwarteten Epilog, +sondern übergeben dieselben Schalter wie der MTPLX-Aufruf. Insbesondere bleibt +Gather eingeschaltet, wenn der gekachelte Zweig trotzdem Dense zurückgeben muss. + +132 zusätzliche Fälle / 198 Hashes prüfen echte Kachel-Eval-Aufrufe, 2K Queries, +65.536 Blöcke, Stride-2-FP32-Queries, Tail 0/1, Kachelreste und die Abschaltung +der Kachelung bei Kachelgröße >= Query-Zeilen. 108 Fälle sind tatsächlich +gekachelt; 24 prüfen diese Abschaltgrenze. Die Referenzreceipts erfassen die +unverändert weitergereichten `mx.eval`-Aufrufe. Das beweist nicht die allgemeine +Graph-Tape-/Allocator-/Concurrency-Parität innerhalb einer Eval-Grenze. + +Gemeinsamer Korrektheitslauf: **26 bestanden, 0 fehlgeschlagen, 0 ignoriert; +2.457 Fälle / 5.240 Hashes**, davon 540 Eager-Fälle. Quellenexport, Formatierung +und Diff-Whitespace-Prüfung bestanden. Erneute Originalexporte bestätigen alle +1.947 Default-/TF32-an- und 510 TF32-aus-Receipts unverändert. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-eager-tiled-combined-check.log`. + +### Eager-Vorbereitung im Projektions- und Cache-Pfad + +Die Eager-Query-/Pool-Vorbereitung ist für die installierte BF16-Geometrie +(Q H4/D128, Pool H1/D128, Rotary64, Ratio4, Epsilon1e-6, Skalierung1) verbunden. +Nichtkontiguierliche Projektionsslices werden vor RMSNorm mit der originalen +General-Copy materialisiert. Pooling bleibt FP32-Summe mal 0,25 mit anschließendem +BF16-Cast vor RMSNorm. RoPE verwendet die ursprünglichen Arange-/Cast-/Concat-, +Cos/Sin-, BF16-Negative- und FP32-Multiply/Add-Schritte samt abschließendem +BF16-Cast und unverändertem Pass-through-Anteil. Kein Ersatz durch den fusionierten +Kernel; keine neuen Shaderkörper. General-Copy und die vorhandenen Norm-/Cast-/ +Concat-Dispatcher werden gemeinsam genutzt. + +`qsa_project_prepare` und `QsaCache::extend_pooled` besitzen jetzt beide +Vorbereitungszweige. Ihre Zwischenpuffer werden durch die verbundenen Operationen +bis zur Auswertung gehalten. 105 neue Originalfälle prüfen Query-, Pool- und +quantisierte Projektionsketten, einschließlich Padding/Stride2, hoher Positionen +und 2K-Zeilen. 44 zusätzliche echte QSACache-/KVCache-Übergänge prüfen Eager- +Pooling bei Wachstum, Reservierung, Trim, Snapshots/Restore und Spiegel-Neuaufbau. +Die bisherigen 2.052 Default-/TF32-an-Fälle blieben beim letzten vollständigen +Originalexport unverändert; hinzu kamen die 44 Eager-Cache-Fälle. + +Der Eager-Selektions-Test prüft nun auch die tatsächliche Anzahl abgeschlossener +Command Buffer über die vorhandenen `GpuBusyStats`: genau ein Abschluss je +beobachtetem MTPLX-Kachel-Eval plus ein finaler Ausgabe-Batch. Dies ersetzt nicht +den weiterhin offenen Nachweis der allgemeinen Graph-/Scheduling-Parität. + +Gemeinsamer Korrektheitslauf: **26 bestanden, 0 fehlgeschlagen, 0 ignoriert; +2.606 Fälle / 5.905 Hashes**, davon 210 Vorbereitungsfälle und 88 Cache-Übergänge. +Quellenexport, Formatierung und Diff-Whitespace-Prüfung bestanden. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-eager-preparation-combined-check.log`. + +### Verbundener nicht-kompilierter Indexer-Aufruf + +`qsa_indexer_rows_uncompiled` bildet den Abschnitt von `_call_rows` nach der +Compiled-Entscheidung zusammenhängend ab: eigene quantisierte Projektion oder +mitgelieferte Q/K-Zeilen, Query-Vorbereitung, Raw-Write, Pool-Fortschreibung und +Selektion. Die bestehenden Ketten werden wiederverwendet. Im Dense==Sparse- +Bereich bleibt die ungenutzte Query-Vorbereitung wie in MTPLXs Lazy-Ausführung +unausgewertet. Der KV-Offset wird erst vom nachfolgenden Attention-Schritt erhöht, +nicht vor der Indexer-Selektion. + +Die Zweigauswahl berücksichtigt Phase, früheste Query-Position, Prefill-Mindest- +breite, Gather-Schwellen und Decode-Gather-Ausschluss des Legacy-Fused-Zweigs. +Large-Prefill verwendet die logische Pool-Sicht, Legacy-Fused die reservierte +Backing-Kapazität; Eager verwendet den gespeicherten FP32-Spiegel. Die Rückgabe +beschränkt sich auf die vom Modell konsumierten Ausgaben und hält die übrigen +Kernel-Ausgabepuffer bis zur Auswertung. Der gemeinsame Rückgabetyp heißt deshalb +jetzt `QsaIndexerSelection`, nicht mehr `QsaEagerSelection`. + +92 Originalaufrufe in 24 fortlaufenden Sequenzen prüfen kalten Start, den +Budgetübergang, projizierte und mitgelieferte Q/K-Zeilen (704er Zeilenstride), +2K-Zeilen, 32K-Historie, Flash/Gather-Vorrang, aktivierte Kachelung und die +Prefill-Schwelle auf beiden Seiten. Die Fixtures rufen den echten MTPLX-Indexer +auf; Beobachter reichen seine Selektionsmethoden unverändert weiter. Rust prüft +den tatsächlich gewählten Pfad, 82 Selektionshashes, 268 zusätzliche Raw-/Pool-/ +Spiegelhashes, Kapazitäten/Offset und abgeschlossene Command Buffer. Die numerische +Prüfung wertet Cache-Zustände explizit aus; sie ist kein Beleg für den vollständigen +Lazy-Graph-Lebenszyklus einer Modellgenerierung. + +Gemeinsamer Korrektheitslauf: **27 bestanden, 0 fehlgeschlagen, 0 ignoriert; +2.698 Fälle / 5.987 Ausgabehashes plus 268 Zustands-Hashes**. Quellenexport, +Formatierung und Diff-Whitespace-Prüfung bestanden. Der erneute Originalexport +bestätigt alle 2.188 Default-/TF32-an-Fälle unverändert, einschließlich der +Indexer-Sequenzen und Zustands-Hashes. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-indexer-routes-combined-check.log`. + +**Weiter offen:** Compiled-Eignungsentscheidung und Compiled-State/Graph-Bank, +Attention, Scheduling und +Produktintegration. Insbesondere ist die breiteabhängige BFS-Tape-Planung aus +Runtime `transforms.cpp` nicht durch serielles Rust-Encoding nachgewiesen. +Der explizit nicht-kompilierte Einstieg ersetzt keinen geeigneten Compiled-Pfad. +P05 und P08 bleiben offen; keine Gesamtmodell-/Performance-Parität behauptet. + +Compiled-Cache-Voraussetzungen sind anschließend gegen die Referenz geprüft: +`qsa_replay_capacity` übernimmt die Power-of-two-Buckets einschließlich des +festen `ceil(S/4)`-Stagingfensters; `ensure_compiled_backings` berücksichtigt +ausstehende Reservierungen und materialisiert unberührte Backings. 108 reine +Kapazitätsfälle und vier echte `_ensure_compiled_backings`-Übergänge prüfen +unter anderem S=1025 und die Übernahme vorhandener Daten, ohne KV-Offset oder +logische Pool-Länge vorzeitig zu verändern. Acht weitere Fälle prüfen die +originalen dynamischen BF16-Kopien mit int32-GPU-Startwerten, 128/704-Stride +und bis zu 2048 Zeilen. Keine Host-Auslese der Startwerte. Die gemeinsame +Kopierfunktion nutzt dieselben bisherigen Kernel/Geometrien für statische +Aufrufe; nur dynamische Aufrufe binden die originalen int64-Offset-Leaves. + +`tools/mtplx-jit-reference.py --operation qsa-update --check` führt den echten +Compiled-Indexer aus und prüft drei unveränderte erfasste Shader: Fused Clamp, +Multiply und Dynamic Offset. Alle drei sind jetzt im verbundenen +`qsa_compiled_cache_window` verwendet: Raw-Update, dynamische Clamp-Grenze, +festes Raw-Fenster, originales Pooling und Pool-Update. Der unveränderte +Runtime-Header ist ebenfalls übernommen. Die drei originalen Constant-CSE- +Layouts (obere Grenze null / gleich max_new / verschiedene Konstanten) sind +separat erfasst; Rust spezialisiert nur Formkonstanten und exportierte Symbole. +Eine zusätzliche Originalvariante mit 257/255 prüft diese Spezialisierung. + +26 echte `QSACompiledIndexerCore.select_qk_rows`-Aufrufe prüfen die komplette +Cache-Ausgabe und unveränderte Eingangs-Backings: 104 zusätzliche Hashes, +640/704-Zeilenstride, unvollständige Blöcke, rückwärts verschobenes Poolfenster, +Kapazitätsgrenzen und S=2048. Startwerte bleiben GPU-Leaves; kein Zwischen-Eval +oder Frontier-Readback. Die Referenz hält Eingangs-Leaves während der Auswertung +fest. Damit ist ausdrücklich der **nicht-donierende Kopierzweig** geprüft, +nicht der Allokator oder das vollständige Graph-Replay. Eignungsentscheidung, +Graph-Bank, Donation, BFS-Tape, Modell-Aufrufintegration und +Produktionsintegration bleiben offen. Keine Modell-/Performance-Parität. +Neue Referenzfälle: `tests/fixtures/mtplx-qsa-compiled-state.jsonl`; +gemeinsamer Lauf: `local-eval-results/20260906-mtplx-port/qsa-compiled-state-check.log`. +Dieser frühere Voraussetzungslauf besteht mit **29 Tests, 0 fehlgeschlagen, 0 ignoriert** und deckt +insgesamt **2.818 Fälle / 6.019 Ausgabehashes plus 268 Zustands-Hashes** ab. +Quellenexport, frische JIT-Referenzprüfung, Formatierung und Diff-Prüfung bestehen. +Der anschließende verbundene Cache-Fenster-Lauf besteht mit **31 Tests, +0 fehlgeschlagen, 0 ignoriert**: **2.844 Fälle / 6.123 Ausgabehashes plus +268 Zustands-Hashes**. Alle vier Compiled-Quellenproben einschließlich des +unveränderten Runtime-Headers sind frisch reproduziert. Neue Fälle: +`tests/fixtures/mtplx-qsa-compiled-window.jsonl`; vollständiger Beleg: +`local-eval-results/20260906-mtplx-port/qsa-compiled-window-check.log`. + +Der verbundene BF16-Q/K-Einstieg umfasst jetzt alle fünf festen Ausgabemodi +(`update_only`, `blocks`, `row_tokens`, `dense_mask`, `prefill_blocks`). Die +Query-Vorbereitung sowie Legacy-/Prefill-Top-k binden echte int32-GPU-Leaves; +bestehende Host-Aufrufe verwenden dieselben Dispatch-Funktionen. Die originale +kompilierte Positionsaddition wird auch für `+0` ausgeführt. Vier unverändert +erfasste Add-Kernel prüfen die reine Formkonstanten-Spezialisierung. Die +Selektionskachelung verwendet die gesamte Pool-Kapazität, das jeweilige +Scratch-/Workspace-Budget und die originale Prefill-Abrundung auf 32 Zeilen. + +66 echte `QSACompiledIndexerCore.select_qk_rows`-Aufrufe vergleichen sämtliche +Selektionsausgänge und unveränderte/aktualisierte Cache-Backings: 144 zusätzliche +Ausgabehashes und 264 Zustands-Hashes. Darunter sind gekachelte Legacy-Ausgaben, +Prefill mit 2048 Zeilen, 640/704-Stride und die reine Update-Route. Rust bestätigt +jeweils einen abgeschlossenen Command Buffer ohne Zwischen-Eval. Das beweist +die verbundene Q/K-Arithmetik im Retained-Input-Zweig, **nicht** das noch offene +Graph-Replay oder identische BFS-Reihenfolge. Neue Fälle: +`tests/fixtures/mtplx-qsa-compiled-indexer.jsonl`; Beleg: +`local-eval-results/20260906-mtplx-port/qsa-compiled-indexer-check.log`. +Gemeinsamer Lauf: **32 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert**; +**2.910 Fälle / 6.267 Ausgabehashes plus 532 Zustands-Hashes**. Originalquellen, +frische Compiled-Add-/Update-Proben, Formatierung und Diff-Prüfung bestanden. + +Der Hidden-Einstieg ist anschließend an denselben Q/K-Pfad angeschlossen: +`qsa_compiled_indexer_hidden_retained` führt die originale affine Quantisierung +vor Cache-Aktualisierung und Selektion im selben asynchronen Aufruf aus. Es +gibt keinen Zwischen-Eval oder abweichenden Selektionspfad. 132 echte +`QSACompiledIndexerCore.select_hidden`-Aufrufe prüfen 4-/8-Bit-Projektionen mit +Gruppengröße 32/64, alle fünf Modi und dieselben Kachel-/2K-Prefill-Grenzen: +288 weitere Ausgabehashes und 528 Zustands-Hashes. Die ursprünglichen 66 +Q/K-Referenzfälle sind frisch unverändert reproduziert. Zusammen prüft der +verbundene Test 198 Aufrufe. Dies schließt die arithmetische Projektion ein, +nicht die offene Eignungsentscheidung, Graph-Bank, Donation/BFS oder den +produktiven Modell-Aufruf. Neue Fälle: +`tests/fixtures/mtplx-qsa-compiled-hidden.jsonl`; Beleg: +`local-eval-results/20260906-mtplx-port/qsa-compiled-hidden-check.log`. +Gemeinsamer Lauf: **32 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert**; +**3.042 Fälle / 6.555 Ausgabehashes plus 1.060 Zustands-Hashes**. Formatierung, +Originalquellenexport und Diff-Prüfung bestanden. Keine neuen Metal-Kernel, +Modelldownloads oder Produktions-/Performance-Abnahme in diesem Schritt. + +Die Host-Routenauswahl ist jetzt für den installierten B1/BF16/Ratio4-Vertrag +mit Cache-Commit und Ausgabeadapter verbunden (heute `qsa_indexer_rows`). +`QsaIndexerOptions` übernimmt Compiled-Schalter und kanonische Compile-Breite; +Prefill-Eignung verwendet den frühesten Query und den echten Phasenwert. +Die Eignungsprüfung läuft vor Kapazitäts-Bucketing, berücksichtigt fehlende +Backings, Cache-Lücken und Flash-Vorrang gegenüber Decode-Gather. 720 Aufrufe +der unveränderten MTPLX-Hostmethoden (12 Optionssätze × 30 Cache-Zustände × +Hidden/QK) stimmen überein, einschließlich nicht-potenzförmiger Kapazitäten. +Das ist die Cache-/Phasenentscheidung für feste Modelldatentypen, kein Nachweis +beliebiger Source-/Norm-/Projektions-Datentyp- und Shape-Eignung. + +108 zusätzliche vollständige Original-Indexer-Aufrufe in 28 fortgesetzten +Sequenzen prüfen die Verbindung von Eignung, Backing-Reservierung, GPU-Frontiers, +Rechenpfad und Host-Commit: 38 Compiled-Aufrufe sowie tatsächliche Eager-, +Prefill- und Update-only-Alternativen. Cache-Raw/Pool und logischer Frontier +werden ohne Readback ersetzt; ein früherer FP32-Mirror wird invalidiert; +KV.offset bleibt bis zur anschließenden Attention-KV-Aktualisierung unverändert. +Flash-/Prefill-/Gather-Ausgaben und der logische Ausschnitt der kapazitätsbreiten +Dense-Maske stimmen mit dem Original überein. Dispatched Fehler werden nicht +durch einen Eager-Fallback verborgen. Die 92 bisherigen Aufrufe verwenden +jetzt denselben verbundenen Rust-Einstieg mit abgeschaltetem Compiled-Schalter; +der gemeinsame Test prüft 200 Aufrufe einschließlich echter Command-Buffer-Zahl. +Neue Referenzen: `tests/fixtures/mtplx-qsa-compiled-routes.json` und +`tests/fixtures/mtplx-qsa-indexer-connected.jsonl` (98 Ausgabe-/282 Zustands-Hashes). +Gemeinsamer Lauf: **33 Tests bestanden, 0 fehlgeschlagen, 0 ignoriert**; +**3.150 Rechenfälle / 6.653 Ausgabehashes plus 1.342 Zustands-Hashes**, zusätzlich +720 Host-Routingentscheidungen. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-connected-routing-check.log`. +Originalkernel unverändert. Weiterhin ausdrücklich offen: Graph-Bank und +Parameteridentität, Donation/BFS/Allocator, vollständige Modell-/Produktintegration +und danach die Gesamt-Performanceabnahme. Der verbundene Testpfad verwendet +noch die ausdrücklich benannte Retained-Input-Ausführung; er ist kein Ersatz +für die fehlende Runtime-Parität und bleibt außerhalb des Produktpfads. + +Die direkte Compiled-Rechenkette ist danach durch eine echte QSA-Graph-Bank +ersetzt worden (`src/engine/metal/qwen_mtplx/qsa_graph.rs`). Ein struktureller +Schlüssel erzeugt einmal die Primitiv-Knoten und ihren Ausführungsplan; +Wiederaufrufe binden die zehn aktuellen Array-Eingaben. Frontier-Werte und +Q/K-Strides sind keine Trace-Schlüssel. Query-/Key-Views, dynamische Updates, +ursprüngliche skalare Compiled-Operationen, Pool-/Query-Vorbereitung, MPP-/Topk- +oder Legacy-Selektion und jede einzelne Concatenate-Ausgabe bilden explizite +Abhängigkeiten. Die bisherigen direkten Compiled-Hidden-/QK-/Selektionsketten +sind entfernt, nicht als zweite Ausführung daneben behalten. + +99 vor dem Eval exportierte optimierte MTPLX-Graphen prüfen Primitiv-Abhängigkeiten +und Mehrfach-Ausgaben für alle Modi, Kachelgrenzen und beide Einstiege. Evaluierte +Konstanten werden im Struktur-Fingerprint ausgespart; Originalshader und +numerische Ergebnisse bleiben separate Prüfungen. Die 2K-Constant-CSE-Variante +ist enthalten. Der Plan verwendet den Degree-/BFS-Algorithmus des gepinnten +`mlx/transforms.cpp:180` mit Breitenlimit 20, spezialisiert auf einen Stream und +bereits evaluierte Eingaben. Dies ist noch **kein** globaler Modellgraph oder +Nachweis der tatsächlich überlappenden Metal-Encoder-Zeitlinie. + +Alle 198 bisherigen Compiled-Rechenfälle laufen jetzt durch diese Graph-Bank; +ein Q/K-Layoutwechsel 640→704 muss denselben Graphen wiederverwenden. Die +108 fortgesetzten Original-Indexer-Aufrufe wurden frisch um echte +`compiled_calls`-/`traces`-/Entry-Zähler ergänzt; sämtliche bisherigen Inhalte +und Hashes blieben unverändert. Rust stimmt auch mit diesen Zählern überein, +einschließlich vier Wiederaufrufen ohne neue Trace. Parameterersetzung verwirft +die Bank; ein zusätzlicher Austausch-/Rücktausch-Test prüft Invalidierung und +erneuten Layout-Replay. Die noch testgebundene Buffer-Identität verhindert dabei +Verwechslungen durch wiederverwendete native Adressen, ohne den gegenwärtigen +Produkt-Buffer um Laufzeitaufwand zu erweitern. + +Gemeinsamer Lauf **33/33 bestanden**, danach der ergänzte Identitäts-Test +bestanden. Die bestehende Rechenfall-/Hash-Zahl bleibt unverändert; neu sind +99 Graphstruktur-Referenzen in `tests/fixtures/mtplx-qsa-compiled-graphs.jsonl` +und die Engagement-Zähler im verbundenen Fixture. Originalquellenexport, +Formatierung, Diff-Prüfung und `cargo check --release --bin ds4-server` für +die Nicht-Test-Konfiguration bestanden. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-graph-replay-check.log`. +Weiter offen sind insbesondere Donation, frühzeitige Freigabe/Allocator, +modellweiter lazy Graph mit passender Root-/Stream-/Encoder-Ausführung, +generische Tensor-Eignung und die Produktintegration. Intermediates bleiben +in dieser Retained-Lane noch bis zum Aufrufende gehalten. P05/P16 und das +vollständige 2%-Ziel bleiben offen; keine Performance-Abnahme aus diesen Tests. + +Die Lebensdauer der Graph-Zwischenwerte folgt nun dem letzten Verbraucher: +Der gecachte Plan enthält die Freigabestellen, einschließlich aller Geschwister +einer Mehrfach-Ausgabe. Nach einem Primitiv werden nicht mehr benötigte +Graph-Referenzen gelöst; nur die echten Ergebnisblätter bleiben im Resultat. +Block-/Raw-Start-Scratch gehört nicht mehr zum Graph-Ergebnis. Die GPU-seitige +Freigabe ist davon getrennt: Rust überträgt besessene Puffer an einen +Completion-Handler des bereits offenen Command Buffers. Es wird weder ein +zusätzlicher Command Buffer angelegt noch ein Flush oder Wait ausgelöst. +Leere Batches nehmen keinen Besitz an; ohne offene/ausstehende Arbeit erfolgt +die Freigabe unmittelbar. Ein eigener Test prüft diese Besitzübergabe vor und +nach einem asynchronen Flush. Die 198 Rechenfälle prüfen zusätzlich, dass am +Aufrufende nur Ergebnisblätter übrig sind und keine ausgemusterten Graph-Blätter +als versteckte Temporaries zurückgegeben werden. Die gezählten Graph-Blätter +sind ausdrücklich **keine** Messung physisch bereits freigegebenen GPU-Speichers. + +Der verschärfte Lauf mit `DS4_METAL_UNRETAINED_COMMAND_BUFFERS=1` deckte vier +`Invalid Resource`-Fehler auf (Cache-Lifecycle, Compiled-Indexer, verbundene +Cache-Selektion und Indexer-Routing). Ursache: Die gemeinsame kanonische +Metal-Dispatch-Grenze hielt gebundenen Speicher nicht selbst bis zum GPU-Ende; +ein kurzlebiges Argument konnte vor Batch-Commit verschwinden. Das war durch +Metals Standard-Retention verdeckt. Korrigiert ist die gemeinsame Dispatch- +Grenze, nicht jeder betroffene Aufrufer: gebundene Metal-Ressourcen werden +dedupliziert bis zum Completion-Callback gehalten und dort explizit freigegeben. +Das entspricht dem Lifetime-Vertrag des gepinnten GPU-Evaluators; die native +Bridge hält nur Plattform-Ressourcen, Modell-/Graph-Orchestrierung bleibt Rust. +Compile und Dispatch haben zudem eigene Autorelease-Pools wie das Original +`gpu::eval`, damit Foundation-Temporaries nicht am Lebensende des Worker-Threads +hängen. Keine Kernelquelle, Dispatch-Geometrie oder Host-/GPU-Synchronisation +wurde dadurch geändert. + +Der normale vollständige Lauf besteht mit **34/34 Tests**; der verschärfte Lauf +nach der gemeinsamen Ressourcen-Korrektur ebenfalls. Rechen-/Graph-Fixtures +bleiben unverändert. Rohfehler und erfolgreiche Verifikation werden in +`local-eval-results/20260906-mtplx-port/qsa-lifetime-check.log` getrennt bewahrt. +Aktuelle vollständige Sammlung ist nun `cargo test --release qwen_mtplx -- +--include-ignored --test-threads=1`, damit der neue Lifetime-Test im Graph-Modul +nicht durch den alten engeren Filter ausgelassen wird. + +Donation verlangt nach MTPLX exklusiven Array-Descriptor **und** +exklusiven Data-Besitz, passende Elementgröße und höchstens 16 KiB Überhang. +Dabei zählen auch die noch ausstehenden GPU-Evaluator-Referenzen. Weder der +letzte Graph-Verbraucher noch ein einzelner `Rc::strong_count` beweist diese +Bedingungen. Ebenso offen: vollständiger Allocator, modellweiter lazy Graph, +Root-/Stream-/Encoder-Parität und Produktintegration. Keine UI-Stall-Behebung +oder Performance-Parität wird aus diesem noch testgebundenen Port abgeleitet. + +### Getrennter Array-/Data-Besitz im kanonischen Port + +Die gemeinsame testgebundene `Buffer`-Schicht unterscheidet jetzt eine eindeutige +Array-/View-Identität vom gemeinsam referenzierten Data-Besitz. Auch verschachtelte +native Views teilen denselben Rust-Data-Besitz; der native Root wird erst mit dem +letzten Data-Besitzer freigegeben. Der GPU-Completion-Transfer hält Data, nicht +mehr ausgemusterte Graph-/View-Descriptoren. Die Data-Referenz bleibt dadurch nach +Graph-Detach sichtbar. `Buffer` selbst bleibt nicht `Send`/`Sync`; nur der private, +nicht zugängliche Allocation-Besitz darf abschließend vom Completion-Thread über +die bereits mutex-geschützte native Freigabe zerstört werden. + +Damit ist eine konkrete COW-Lücke an der gemeinsamen `QsaArray.shared_storage`- +Grenze geschlossen: bisher wurden nur mehrere `Rc` erkannt, nicht zwei +verschiedene Buffer-Views derselben Allocation. Der direkte gepinnte MTPLX-Test +(`QSACache.write_raw`, Runtime 0.32.2, modellfrei) bestätigt für ein Update 1→2: +Ein Alias desselben Array-Objekts sieht 2, eine vorher ausgewertete View bleibt 1. +Der entsprechende Rust-Test wurde negativ geprüft: Nur die alte Besitzprüfung +wiederhergestellt ergibt einen Fehlschlag (View fälschlich 2); die Korrektur +erhält 1. Die bestehende Sammlung und ihre numerischen Fixtures bleiben erhalten. +Der Completion-Test prüft zusätzlich verschachtelte Views, Root-Lebensdauer und +sichtbaren GPU-Data-Besitz vor/nach Abschluss. Belege: +`local-eval-results/20260906-mtplx-port/qsa-data-ownership-check.log`. +Normaler und verschärfter Lauf bestehen mit jeweils 34/34 Tests; Kernelquellen- +Prüfung, produktiver Release-Buildcheck, Formatierung und Release-Test-Clippy +bestehen ebenfalls. Die Abhängigkeit `block 0.1.6` meldet weiterhin nur ihren +bekannten Future-Incompatibility-Hinweis. + +Die QSA-Graphauswertung registriert inzwischen nach jedem Primitiv dessen +Eingaben (einschließlich gebundener Projektionsparameter) und Geschwisterausgaben +als deduplizierte Data-Menge, abzüglich der tatsächlich ausgewerteten Hauptausgabe, +wie im gepinnten `backend/metal/eval.cpp`. Die Halterung beginnt vor dem nächsten +Primitiv, nicht erst beim letzten Graph-Verbraucher. Graph-Detach löst nun nur +die Descriptoren; ein zweites Halten dieser Blätter würde die Hauptausnahme +wieder aufheben. Backend-Scratch und Fehlerpfad behalten ihre eigene Halterung. +Der Scheduler führt dafür neben dem Produzenten diejenige Geschwisterausgabe mit, +deren geteilte Abhängigkeitszahl null wurde; sie ist nicht immer Ausgabe null. +Ein CPU-Test deckt unterschiedliche Root-Reihenfolgen und doppelte Kanten ab. +Ein Metal-Test prüft leere Batch-Fallbacks, deduplizierte Views, Hauptausgabe eins, +die Ausnahme bei geteiltem Eingabe-/Ausgabespeicher und Referenzzahlen vor/nach +GPU-Abschluss. Es gibt keinen neuen Flush, Wait, Kernel oder GPU-Readback. +Belege: `local-eval-results/20260906-mtplx-port/qsa-evaluator-holds-check.log`. +Die erweiterte Sammlung besteht normal und mit unretained Command Buffers jeweils +mit **36/36 Tests**. Kernelquellen-Prüfung, Release-Test-Clippy, produktiver +Release-Buildcheck und Formatprüfung bestehen ebenfalls. + +### Tatsächliche Donation bei QSA-Cache-Updates + +Die beiden BF16-`DynamicSliceUpdate`-Knoten verwenden jetzt wie das gepinnte +`backend/gpu/primitives.cpp` → `backend/common/copy.h` vorhandenen Speicher, +wenn der Vector-Copy-Donation-Vertrag erfüllt ist. Die neue Ausgabe erhält eine +eigene View-/Array-Identität auf demselben Data; der Vector-Copy-Dispatch entfällt, +die originale dynamische Zeilenkopie bleibt. Prüfkriterien am Ausführungszeitpunkt: +exklusiver Array-Descriptor, exklusives `Rc`/Data einschließlich GPU-Holds, +identischer Eingabedescriptor, ausreichender View-Bereich und höchstens 16 KiB +Überhang der **Root-Allocation**, nicht nur der kleineren View. Beide Elementtypen +sind in diesem installierten Cachepfad BF16; dies ist keine generische Dtype-Regel. + +Der unveränderte Graph nimmt entweder festgehaltene Buffer-Eingaben oder exklusiv +veränderlichen `QsaCacheInput::State` entgegen. Die verbundene Hostmethode heißt +nun `qsa_indexer_rows` und gibt den echten Cache über die State-Variante hinein. +Snapshots/Views bleiben durch die gemeinsame Besitzprüfung geschützt. Es gibt +keinen zweiten Algorithmus und keine Donation-Einstellung für Anwender. + +Alle 198 bestehenden Q/K-/Hidden-Referenzfälle laufen zusätzlich durch die +State-Variante mit lebenden Snapshots und anschließend exklusivem Besitz. Gleiche +Ausgabe-/Zustandshashes, unveränderte Snapshot-Hashes und tatsächliche unterschiedliche +bzw. identische Data-Adressen prüfen Kopieren und Donation getrennt. Die zwei +zusätzlichen Durchläufe sind keine neuen unabhängigen Referenz-Fixtures. Ein +zusätzlicher Test prüft Descriptor-Aliase, geteilte Storage-Snapshots, native Views, +GPU-Data-Holds sowie Überhänge 0/16384/16386 Byte. Reproduktionsbelege: +`local-eval-results/20260906-mtplx-port/qsa-cache-donation-check.log`. +Normaler und verschärfter Lauf bestehen mit **37/37 Tests**. Kernelprüfung, +Release-Test-Clippy, produktiver Release-Buildcheck und Formatprüfung bestehen. + +### Allocator: Referenzfolge, Cache-Auswahl und Größenrundung + +`tools/mtplx-allocator-reference.py` zeichnet 101 echte modellfreie Allokations-, +Freigabe-, Limit- und Clear-Ereignisse der installierten MTPLX-Runtime 0.32.2 auf. +`tests/fixtures/mtplx-allocator.jsonl` hält aktive/gecachete Bytes, tatsächliche +Buffergrößen und lauflokal anonymisierte physische Buffer-Identitäten fest. +Es ist kein nachgebauter Python-Allocator und kein Performance-Benchmark. + +Die Rust-Implementierung von `backend/common/buffer_cache.h` verwendet zwei +geordnete Standard-Maps anstelle der C++-Multimap plus intrusiver Zeigerliste. +Sie erhält Best-Fit, älteste Einfügung bei gleicher Größe, die strikte Grenze +`min(2*Anforderung, Anforderung+2*Seitengröße)`, altersbasierte Teilfreigabe und +vollständiges Leeren ab 90% angeforderter Freigabe. Bei vollständigem Leeren +bleibt die größenbasierte Reihenfolge erhalten. Der Replay-Test prüft alle +101 Zustandsübergänge und wiederverwendeten Buffer-Identitäten; außerdem die +Grenzen beim Ändern des Cache-Limits und dessen erlaubtes kurzfristiges +Überschreiten bei Freigabe. Der Cache ist noch nicht an native Ressourcen gebunden. + +Die Größenrundung aus `MetalAllocator::malloc` ist bereits an `Buffer::bytes` +und `Buffer::untracked` der testgebundenen Schicht angeschlossen: Anforderung +zuerst gegen das wirkliche Metal-`maxBufferLength` prüfen, nur oberhalb einer +VM-Seite aufrunden. Auf diesem M5 Max beträgt die Seite 16384 Byte. Eine logische +View erhält die angeforderte Tensorgröße; Data besitzt weiterhin die vollständige +Allocation. Dadurch sehen Donation und Speicherzählung die tatsächliche Größe, +während Read-/Write-Grenzen unverändert bleiben. Die native Ergänzung liest nur +die Metal-Gerätegrenze; Auswahl-/Rundungslogik bleibt Rust. +Der Metal-Test prüft beide vorhandenen Resource-Optionen und 1/255/256 Byte sowie +die Seitengrenzen. Die Donation-Grenztests verwenden jetzt die real gerundeten +Root-Größen. Kernel und Synchronisationsgrenzen bleiben unverändert. +Belege: `local-eval-results/20260906-mtplx-port/allocator-policy-check.log`. +Normaler und unretained Metal-Lauf bestehen mit jeweils **39/39 Tests**; +Kernelprüfung, Release-Test-Clippy, produktiver Release-Buildcheck und +Formatprüfung bestehen ebenfalls. + +Noch offen für den vollständigen Allocator: Bindung des Pools an die echte +Data-Freigabe, 1-MiB-Heap für Anforderungen unter 256 Byte, Residency/Wired-Limit, +Ressourcen-/GC-/Speicherlimits und deren Zähler sowie die leere Array-/Null-Buffer- +Repräsentation. Die vorhandenen Resource-/Hazard-Optionen wurden nicht pauschal +umgestellt; dazu gehört die noch fehlende vollständige Encoder-Abhängigkeitslogik. + +Dies ist noch **keine vollständige Donation-/Evaluator-Parität**: Außerhalb des +QSA-Graphen fehlt die modellweite Integration dieser Regeln; ebenso andere +Primitive und generische Typ-/Layoutzweige. Vollständiger Modellgraph und produktive Integration bleiben +offen. Der produktive FP32-Pfad erhält durch diese testgebundene Besitzschicht +keine neue Referenzzählung; keine Durchsatz- oder UI-Parität wird behauptet. + +### Allocator: GPU-Ressourcenbesitz unabhängig von Data-Donation + +Die gemeinsame kanonische Dispatch-Schicht hält jetzt Rust-Allocation-Besitz +bis zum Abschluss des zugehörigen Metal-Command-Buffers. `BufferData` besitzt +eine gemeinsame Root-Allocation; GPU-Bindings halten diese Allocation, nicht +Data. Damit bleibt die vorhandene referenzkonforme Donation-Prüfung unabhängig +von der physischen GPU-Ressourcenhaltung. Nur der letzte Allocation-Besitzer +gibt den nativen Root frei. Diese Trennung ist für die noch ausstehende Pool- +Anbindung erforderlich: Ein bloßer nativer `MTLBuffer`-Retain verhindert zwar +Deallokation, aber nicht die verfrühte Wiederverwendung durch einen Rust-Pool. + +Rust dedupliziert Root-Allocations pro Dispatch. Die bestehende native +Completion-Registrierung übernimmt den Rust-Besitz atomar und setzt den +Übergabezeiger auf null; bei früher Validierungs-/Pipeline-/Encoder-Ablehnung +behält und bereinigt Rust ihn. Der Callback ersetzt in diesem Pfad das native +Resource-Set, ohne zusätzliche Callbacks, Flushes, Commits oder Wartepausen. +Der rohe ABI-Pfad ohne Rust-Owner behält seine bisherige native Haltung. +Die typisierten Bindings binden zudem die Lebensdauer von Tensor-Views und +Scalar-Zeigern an ihre Rust-Referenzen bis zur Übergabe. + +Ein modellfreier Metal-Test prüft Deskriptor-/Data-Detach bei noch uncommitteter +GPU-Arbeit, Allocation-Lebensdauer, unveränderte Data-Donation, Deduplikation +bei In-place-Bindings, Freigabe nach Completion, synchrone Einzel-Dispatches +sowie zurückbehaltenen Besitz bei Validierungsfehlern. Beide vollständigen +kanonischen Sammlungen bestehen mit **40/40 Tests**, normal und mit +`DS4_METAL_UNRETAINED_COMMAND_BUFFERS=1`; alle bisherigen Referenzhashes bleiben +gleich. Beleg: `local-eval-results/20260906-mtplx-port/allocation-lifetime-check.log`. +Kernelprüfung, Release-Test-Clippy und produktiver Release-Buildcheck bestehen. + +Zu dieser Zwischenstufe war der Pool noch nicht aktiviert. Der folgende +Abschnitt dokumentiert die anschließende native Anbindung; modellweiter +Evaluator und produktive Integration bleiben offen. + +### Allocator: Nativer Pool, Heap und Limits + +`Allocator` bindet die bestehende Cache-Politik jetzt an echte native Roots und +deren finale Allocation-Freigabe an. Das gilt einschließlich der GPU-Besitzer +des gemeinsamen Dispatch-Pfads: Solange ein Command Buffer noch auf Speicher +zugreift, bleibt dieser aktiv und kann nicht als Cache-Treffer vergeben werden. +Die Besitzerstruktur enthält keinen Zyklus: Der Cache besitzt native Roots, +nicht die Allocation-Deskriptoren, die ihrerseits den Allocator halten. + +Die Rust-Seite übernimmt die vollständige bisher portierte malloc/free-Policy: +Cache-Suche vor GC, ursprüngliche Best-Fit-Grenzen, aktive/gecachete/Peak-Bytes, +Ressourcenzähler, Cache-Limitwechsel ohne sofortiges Leeren, Trimmen erst nach +Allokation, Memory-Limit/GC-Schwelle und Ressourcenlimit. Auch die unsigned +Subtraktion bei ausschließlich ressourcenbedingtem Druck bleibt erhalten. +Ein Memory-Limit ist hier wie in der Referenz keine harte Ablehnung einer +größeren Allokation. Anfangswerte stammen aus den tatsächlichen Metal-/sysctl- +Werten und den Referenzformeln; Resource-Limit-Fallback ist 499000. + +Die native Ergänzung stellt nur Metal-Plattformoperationen bereit: einen +1-MiB-Heap, Buffer daraus oder als Fallback direkt vom Gerät sowie Freigaben. +Rust wählt den Heap ausschließlich für Anforderungen unter 256 Byte. +Die Ressourcenoptionen sind `Shared | HazardTrackingUntracked`. Die Paravirtual- +Ausnahme bleibt erhalten. Null/0 Byte liefert `None`, keine künstliche +Ein-Byte-Allokation; vorhandene Array-APIs müssen diese Darstellung noch +modellweit übernehmen. Logische Views bewahren die ursprünglichen Tensorgrenzen +auch bei gerundeten oder größeren wiederverwendeten Roots. + +Der native Replay-Test führt alle **101 Referenzereignisse** mit echten +Allokationen aus und prüft nach jedem Schritt aktive/gecachete/Peak-Bytes, +Ressourcenzahl und logische/physische Größen. Cache-Treffer müssen tatsächlich +dieselben Speicheradressen zurückgeben; neue Geräteallokationen dürfen andere +Adressen als beim Referenzprozess haben. Ein weiterer Test prüft 1/255/256/257- +Byte-Heap-Routing, Erschöpfung der 1-MiB-Heap-Slots mit Geräte-Fallback, +Memory-/Ressourcen-GC, unveränderte Zähler bei Ressourcenablehnung und echte +Cache-Wiederverwendung erst nach GPU-Completion. + +Beide kanonischen Sammlungen bestehen mit **42/42 Tests**, normal und unretained. +Beleg: `local-eval-results/20260906-mtplx-port/native-allocator-check.log`. +Clippy für Release-Tests, produktiver Release-Buildcheck, Original-Kernel- und +Formatprüfung bestehen. Es wurden keine Modellgewichte geladen. + +**Verbleibende Integration:** Residency/Wired-Limit, externe/wrapped Buffer, +prozessweiter Allocator-Lebenszyklus, Routing aller kanonischen Allokationen +und vollständige Encoder-Abhängigkeiten. Der Allocator wird bislang explizit +von den modellfreien Tests verwendet, nicht vom vollständigen Modellpfad. +Die vorhandenen Helfer werden nicht vor der Abhängigkeits-Portierung pauschal +auf untracked Ressourcen umgestellt. Vollständiger Modellgraph, UI/Harness- +Produktionspfad und ±2%-Performance-Abnahme bleiben weiterhin unerledigt. + +### Allocator: Residency und Wired-Limits + +`qwen_mtplx/residency.rs` portiert die Regeln aus dem gepinnten +`backend/metal/resident.cpp`: Metal-3/macOS-15-Freigabe, initiales Set mit +stehender Residency-Anforderung, 5%-Standardcap mit 64-MiB-Untergrenze, +Single-Set-Modus, First-Fit, Wiederverwendung leerer Sets für übergroße +Allokationen und Emptiest-Fallback bei 32 Sets oder späterem Treiberfehler. +Die ursprünglichen Umgebungsvariablen und deren einmalige `atoi`-Auswertung +bleiben erhalten. Rust führt Budgets, Sets und gespeicherte Allokationsgrößen; +die native Bridge enthält nur die Metal-Operationen. + +Der Allocator registriert den Heap einmal und jeden Nicht-Heap-Root bei +Neuanlage. Cache-Einträge bleiben registriert/verdrahtet; tatsächliche Freigabe +entfernt sie vor dem nativen Release. Wired-Limitwechsel registrieren passende +bereits vorhandene Allokationen bzw. entfernen sie unter das neue Budget. +Pro berührtem Set erfolgt ein Commit. Weder Freigabe noch erneutes Setzen +desselben Limits befördert wartende Allokationen automatisch. Eine atomare +Set-Zahl erlaubt den schnellen Queue-Attach-No-op; neue Sets werden im Test +unmittelbar vor dem GPU-Commit angefügt, nicht bereits beim Allokieren. + +Ein nativer Test überträgt die zehn Lifecycle-Szenarien aus der ursprünglichen +`tests/residency_tests.cpp` und prüft zusätzlich Cache-Verbleib, Limit-Ablehnung +und tatsächliche Metal-`allocationCount`-/`containsAllocation`-Ergebnisse. +Maximal rund 129 MiB werden dabei gleichzeitig verdrahtet. Die Tests prüfen +Budgets, Set-Auswahlregeln und native Mitgliedschaft; gleiche Adress-/Hash- +Bucket-Reihenfolgen zwischen zwei Prozessen werden damit nicht behauptet. +Der Resize-Durchlauf verwendet wie die Referenz eine ungeordnete Map. + +Beide kanonischen Sammlungen bestehen mit **43/43 Tests**, normal und unretained; +Release-Test-Clippy, produktiver Release-Buildcheck, Original-Kernel- und +Formatprüfung bestehen. Beleg: +`local-eval-results/20260906-mtplx-port/residency-check.log`. + +**Weiter offen:** automatische Anbindung an sämtliche tatsächlichen Encoder- +Commit-Pfade, externe/wrapped Buffer, prozessweiter Besitzer, vollständiges +Routing der Modellallokationen und Encoder-Abhängigkeiten. Der explizite +Allocator ist weiterhin testgebunden; es gibt keinen neuen Gesamtmodell- +Benchmark und weiterhin keinen Nachweis der verlangten ±2%-Parität. + +### Submission: Residency an tatsächlichen Commit-Grenzen + +`qwen_mtplx/submission.rs` hält Queue, Allocator und den bereits angefügten +Set-Index über mehrere Command-Batches hinweg. Ein Scope registriert einen +threadlokalen, synchronen Rust-Callback vor dem tatsächlichen nativen Commit. +Beim Erstellen werden vorhandene Sets angefügt; vor jedem späteren Commit +werden nur neu entstandene Sets ergänzt. Nested Scopes können den Besitzer +nicht überschreiben. Finish/Drop lassen den Besitzer bis nach dem Drain leben +und entfernen dann den Callback; danach erbt der Legacy-Pfad keinen Hook. + +Alle zwölf bisherigen direkten Command-Buffer-Commit-Stellen der Bridge +laufen jetzt durch einen gemeinsamen Einstieg, einschließlich Flush, +Readback, Cleanup und GLM-Streaming-Split. Der Hook ist nur im kanonischen +Scope aktiv und auf dessen Encoding-Thread sowie die Haupt-Queue begrenzt; +andere Queues bleiben ausgenommen. Metal-Residency-Set-Commits bleiben eigene +Operationen. Es entstehen keine zusätzlichen Command Buffers, Flushes oder +Wartepausen. Ein Quelltest schützt gegen erneute direkte Commit-Umgehungen. + +Der native Test prüft nachträglich erzeugte Sets, Flush, Eval, Finish, Drop, +native interne Batch-Beendigung mit anschließendem synchronen Einzel-Dispatch +und das Entfernen des Hooks. Die kanonische Sammlung besteht normal und +unretained mit **45/45 Tests**. Release-Test-Clippy, produktiver Release- +Buildcheck, Original-Kernel- und Formatprüfung bestehen ebenfalls. Beleg: +`local-eval-results/20260906-mtplx-port/submission-check.log`. + +Dies schließt den bisher manuellen Residency-Attach für diesen testgebundenen +Scope, **nicht** den gesamten MTPLX-Encoder. Weiter offen sind die genaue +Input-/Output-Klassifikation aller Bindings, Barrier-Epochen, ConcurrentContext, +Encoder-Fences/Completion-Bereinigung, Ops-/Byte-Commit-Schwellen und vollständige +Modell-/Produktintegration. Der produktive Qwen-Graph nutzt den Scope noch nicht; +Gesamtmodell-Performance und ±2%-Abnahme bleiben unbewiesen. + +### Encoder: abhängige Ausführung, Fences und Shared Events + +`qwen_mtplx/encoder.rs` portiert die zusammengehörige Steuerung aus MTPLXs +gepinntem Runtime-`backend/metal/device.cpp`, einschließlich `event.cpp` und +der verbrauchenden Fehlersemantik aus `error.h`. Rust besitzt eine eigene Queue +und unretained Command Buffers. Jeder Compute-Encoder ist Concurrent; Rust +entscheidet anhand tatsächlicher Metal-Buffer-Identitäten über Read/Write- +Barrieren, aktuelle Barrier-Epochen, deferred ConcurrentContext-Ausgänge und +deduplizierte Fence-Waits zwischen Encodern. Completion entfernt einen Producer +nur, wenn dessen Fence noch aktuell ist. Temporäre Ressourcen werden aus den +encoderübergreifenden Mengen entfernt und bis Completion gehalten. + +Shared-Event-Wait und -Signal beenden den aktuellen Encoder. Completion führt +zuerst den Benutzer-Callback aus, übernimmt den ersten gültigen fremden +Wait-Event-Fehler und danach gegebenenfalls einen GPU-Fehler. Signal-Events +teilen den konsumierbaren Fehlerzustand des Encoders; bei GPU-Fehlern werden +sie zusätzlich auf der CPU signalisiert, damit wartende Queues nicht hängen. +Synchronize wirft/entnimmt den Fehler; der Destruktor wartet, ohne ihn zu +entnehmen. Fence-, Event- und Buffer-Holds bleiben bis Completion gültig. + +Die ursprünglichen Commit-Schwellen und ihre einmaligen Umgebungsvariablen +werden übernommen. **Korrektur der bisherigen Byte-Bezeichnung:** Der gepinnte +Code addiert `array.data_size()` ohne Multiplikation mit `item_size`. Laut +`array.h` sind das Elemente, keine Bytes. Auf Max/Ultra gilt daher strikt +`ops > 50 || (data_size >> 20) > 50`. Ein Buffer zählt beim ersten Input-Eintrag +je Encoder; die Summen werden erst beim Command-Commit zurückgesetzt. Raw- +Buffer-Bindings zählen als encoderübergreifende Ein- und Ausgänge, ändern aber +weder die Barrier-Epochen noch den Größenzähler. Es gibt keine zusätzlichen +automatischen Sleeps oder pro-Layer-Waits. + +Die native Bridge benutzt denselben validierenden Pipeline-/Binding-/Dispatch- +Code für den bisherigen und den explizit übergebenen Encoder. Sie entscheidet +nicht über Abhängigkeiten, Batching oder Fehlerweitergabe. Der neue Rust- +Encoder lehnt Tensor-Bindings ohne explizite Input/Output/Raw-Rolle ab, statt +aus Buffergrößen oder Kernel-Namen Zugriffsrollen zu erraten. + +Drei neue Checks prüfen Barrier-/Commit-Epochen, disjunkte Concurrent-Outputs, +abhängige untracked Kopien über mehrere Encoder und asynchrone Command Buffers, +Fence-Deduplizierung/Completion-Rennen, temporäre Buffer, beide Dispatch- +Geometrien sowie reale Shared-Event-Transfers zwischen zwei Queues. Fehler- +Completion wird gezielt mit einem synthetischen GPU-Status geprüft, ohne einen +GPU-Hänger auszulösen. Die gesamte Sammlung besteht normal mit **48/48** und +unretained mit **48/48 Tests**; Clippy, produktiver Release-Buildcheck und +Original-Kernel-Abgleich bestehen. Beleg: +`local-eval-results/20260906-mtplx-port/encoder-check.log`. + +**Nicht abgeschlossen:** Dieser Encoder ist weiterhin testgebunden. Vollständige +Zugriffsrollen und exakte Array-`data_size`-Metadaten aller Operator-Bindings, +Routing der Allokationen, Stream-/Scheduler-/Graph-Integration einschließlich +aller Eval- und Completion-Grenzen sowie der komplette Modellpfad fehlen noch. +Die große bestehende Kernelsammlung läuft weiterhin über den bisherigen +Dispatch-Pfad; nur die neuen Encoder-Tests benutzen die eigene Queue. Der alte +Submission-Scope ist damit noch keine Produktintegration. P05 und der gesamte +Paritätsaudit bleiben offen; keine neue UI-/Gesamtmodell- oder ±2%-Abnahme. + +### Operator-Routing: Normen und zusammenhängende MoE-Kette + +Ein threadgebundener `Scope` verbindet die vorhandenen Operatorfunktionen jetzt +mit dem eigenen Concurrent-Encoder und demselben gepoolten, untracked Allocator. +Er fügt keine Dispatch-/Eval-Grenzen ein. Nested Scopes werden abgelehnt; nach +dem Scope erbt der bisherige Pfad weder Encoder noch Allocator. Der Besitzer +bleibt über mehrere Operationsketten hinweg bestehen und wartet beim Abbau. +Die Dispatch-Implementierung und die vorhandenen Fixture-Auswertungen werden +wiederverwendet, nicht als zweiter Operatorpfad nachgebaut. + +Explizite Ein-/Ausgangsrollen und Elementspannen sind für die gesamte +Norm-/MoE-Kette übernommen: Softmax/Top-10-Router, Argsort mit Multi-Block-Merge, +Gather/Unsort, Gate/Up und SwiGLU, Grouped-/Gated-RMS, BF16/FP32-Casts, +Affine-QMV/QMM einschließlich Split-K, Gather-QMM einschließlich sortiertem +RHS und Broadcast-Indizes, Stock-/Fused-MoE sowie Shared Expert und Gate. +Geslicte Inputs zählen wie `backend/common/slicing.cpp` ihre adressierte +Elementspanne, nicht die volle Allokation oder nur die Zahl logischer Werte. +Broadcast-Indizes behalten ihre tatsächliche Speicherspanne. + +Zwei bisherige `setBytes`-Ersatzbindungen sind durch die ursprünglichen skalaren +Array-Inputs ersetzt: das Einheitsgewicht für ungewichtete RMSNorm und der +Divisor in GatherSort. Sortier- und Split-K-/Reduktions-Scratch werden an den +ursprünglichen Stellen als Backend-Temporaries registriert. Ihre Lebensdauer +und ihr Ausschluss aus den encoderübergreifenden Ressourcenmengen laufen damit +über den portierten Encoder, nicht nur über zurückgegebene Rust-Bufferlisten. +Original-Kernel, Rundungsfolgen und Geometrien bleiben unverändert. + +Neun vorhandene Fixture-Gruppen werden ohne Abschwächung ihrer Ausgabehash- +Prüfungen jeweils im bisherigen und im neuen Encoder ausgeführt: +78 Affine, 40 Gather-QMM, 123 Argsort, 7 GatherSort, 16 Router, 10 Gate/Up, +25 Normen, 21 SwitchGLU und 220 MoE — insgesamt **540 Referenzfälle in beiden +Encodern**. Das sind zusätzliche Ausführungen vorhandener Fälle, keine neuen +unabhängigen Referenz-Fixtures. Die Tests unterscheiden native Legacy-Busy- +Zähler ausdrücklich vom Commit-Zähler der eigenen Queue. Der neue Scope-Test +prüft zudem tatsächliche Pool-Allokation, Cache-Rückgabe, den Gate/Up- +Speicherspannenzähler und genau eine erforderliche Barrier ohne Zwischencommit. + +Die gesamte kanonische Sammlung besteht mit **49/49 Tests** sowohl normal als +auch mit unretained Legacy-Command-Buffers. Release-Test-Clippy, produktiver +Release-Buildcheck, Format-/Diff-Prüfung und Original-Kernel-Abgleich bestehen. +Beleg: `local-eval-results/20260906-mtplx-port/operator-encoder-check.log`. + +**Weiter offen:** GDN-/QSA-Operator-Routing, allgemeine Array-Metadaten/Donation, +vollständige Stream-/Evaluator-/Graph-Anbindung und deren tatsächliche Eval-, +Commit- und Completion-Grenzen sowie der produktive Gesamtmodellpfad. Ein +manuell abgegrenzter Operator-Testbatch beweist nicht die Scheduling-Parität +eines gesamten MTPLX-Chats. Der eigene Encoder ist noch nicht mit der normalen +UI-/Harness-Instrumentation verbunden. Die ±2%-Abnahme bleibt ausstehend. + +### Operator-Routing: zusammenhängende GDN-Kette + +GDN verwendet nun ebenfalls den gemeinsamen Dispatch mit expliziten Input-/ +Output-Rollen und Array-Elementspannen: Conv/Mask/Cache, Q/K-L2-Norm, compute_g, +Sigmoid, rekurrentes Delta-Update, Fused-Step und Fused-Output. Der bisherige +direkte native Fused-Step-Aufruf entfällt. Projektionen und Gated-Norm verwenden +die bereits angebundenen Operatoren; Original-Kernel und Geometrien bleiben +unverändert. Binäre skalare Operanden und das CustomKernel-T-Argument sind echte +skalare Array-Inputs, keine `setBytes`-Ersatzbindungen. + +`backend/metal/slicing.cpp::concatenate_gpu` bestimmt den Conv-Fenster-Aufbau: +disjunkte Output-Slices mit ihrer jeweiligen `data_size`, eine Concurrent-Region +für beide Kopien und anschließender Dependency-Join. Ein RAII-Guard stellt den +Join auch bei vorzeitigem Fehler sicher. CustomKernel-Eingangskopien werden in +Input-Reihenfolge nach der Output-Allokation ausgeführt und nach dem Dispatch +als Backend-Temporaries registriert. Die fehlende Conv-State-Kopie im Fused-Step +liegt jetzt hinter der Eingangsprojektion statt davor. + +Die vier bestehenden Gruppen mit 80 Delta-Update-, 2 laufenden Fused-Step-, +130 Staged- und 264 Forward-Fällen laufen jetzt jeweils in beiden Encodern. +Zusammen mit Norm/MoE sind das **1.016 vorhandene Referenzfälle in beiden +Encodern**, ohne neue oder abgeschwächte Referenz-Hashes. Die Forward-Fälle +prüfen auch fortgesetzte Zustände, Nullzustände, Masken, gültige Längen, +Projektionslayouts und die gewählten Fusionszweige. + +Die gesamte Sammlung besteht normal mit **49/49 Tests (35,79 s)** und mit +unretained Command Buffers mit **49/49 Tests (35,28 s)**. Release-Test-Clippy, +produktiver Release-Buildcheck, Format-/Diff-Prüfung und Original-Kernel-Abgleich +bestehen. Beleg: `local-eval-results/20260906-mtplx-port/gdn-encoder-check.log`. + +**Weiter offen:** QSA-Operator-Routing, allgemeine Array-/Donation-Verträge, +der vollständige Evaluator mit tatsächlichen Eval-/Commit-/Completion-Grenzen, +Stream-Anbindung, UI-/Harness-Instrumentation und produktiver Gesamtmodellpfad. +Diese GDN-Integration ist noch kein vollständiger Modellgraph und keine +Performance-Paritätsabnahme. P05 und der Gesamtauftrag bleiben offen. + +### QSA-Cache-Kopien und kompilierte Cache-Fenster am Encoder + +Die gemeinsamen QSA-Kopierfunktionen tragen jetzt explizite Array-Metadaten: +statische Source-Slices zählen ihre adressierte Elementspanne; Slice-Updates +binden das vollständige Zielarray, Concatenate dagegen die logische Größe +seines Output-Slices. Dynamische Kopien erhalten beide vollständigen Array- +`data_size`-Werte vom Aufrufer, unabhängig von der kopierten Zeilenzahl. Der +Encoder-Test prüft genau diese Unterscheidung sowie die Ablehnung zu kleiner +Metadaten. Konstanten, die im Original Arrays sind, bleiben skalare Arrays; +die dynamischen Offset-Arrays sind Inputs und Backend-Temporaries. + +Zero-Fill, COW-/General-Kopien, die kompilierten Frontier-Operationen und die +fused Query-/Pool-Vorbereitung benutzen explizite Ein-/Ausgangsrollen. +Die KV-Vergrößerung verwendet für ihre disjunkten Concatenate-Kopien den +originalen Concurrent-Kontext. Kernelquellen und Dispatch-Geometrien wurden +nicht verändert. Die vorhandenen 12 Backing-/Dynamic-Copy- und 26 Cache-Window- +Fälle laufen mit identischen Hash-Prüfungen in beiden Encodern; insgesamt sind +damit **1.054 bestehende Referenzfälle in beiden Encoder-Pfaden** abgedeckt. + +Gesamtsammlung: **49/49 normal (35,53 s)** und **49/49 unretained (35,11 s)**. +Release-Test-Clippy, produktiver Release-Buildcheck, Format-/Diff-Prüfung und +Original-Kernel-Abgleich bestehen. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-copy-encoder-check.log`. + +**Weiter offen:** Das ist noch nicht die komplette QSA-Kette. Insbesondere +eager RoPE/Pooling, Score-Produzenten und Selektoren, sämtliche verbleibenden +Concurrent-/Eval-Grenzen und der vollständige Graph-/Produktionspfad müssen +weiter angebunden werden. Die neuen Cache-Fälle ersetzen weder die vollständige +Modellprüfung noch die geforderte Performance-Abnahme. + +### QSA-Vorbereitung, Cache-Fortsetzung und fused Selektor am Encoder + +Die eager Query-/Pool-Vorbereitung verwendet jetzt ebenfalls explizite +Ein-/Ausgangsrollen und die adressierten Elementspannen. Alle drei RoPE- +Concatenates haben die ursprünglichen Concurrent-Regionen samt anschließenden +Dependency-Joins. Positions-, Amplituden- und Mittelwertskalierung verwenden +skalare Array-Operanden; die BF16-/FP32-Grenzen bleiben unverändert. Die +vorhandenen Norm-, Cast- und General-Copy-Operatoren werden weiterverwendet. + +Der fused Selektor und seine Chunk-Zusammenführung sind ebenfalls angebunden. +Die drei Frontier-Arrays werden wie im Original separat angelegt statt als +drei Views derselben Allokation. Seine private Score-Ausgabe bleibt ein +CustomKernel-Output, keine als Backend-Temporary deklarierte Arbeitskopie. +Numerische Kernelquellen und Dispatch-Geometrien sind unverändert. + +Die vorhandenen 210 Vorbereitungs-/Projektions-, 88 laufenden Cache- und 75 +Selektor-/Chunk-Fälle werden nun in beiden Encodern geprüft, einschließlich +Trim/Reserve/Restore und Descriptor-/Data-Alias-Verhalten. Insgesamt laufen +damit **1.427 bestehende Referenzfälle in beiden Encoder-Pfaden**. Die Cache- +Tests enthalten auch reine Metadatenoperationen; ihre manuellen Testgrenzen +sind ausdrücklich keine Behauptung identischer Modell-Eval-Grenzen. + +Gesamtsammlung: **49/49 normal (36,34 s)** und **49/49 unretained (36,33 s)**. +Release-Test-Clippy, produktiver Release-Buildcheck, Format-/Diff-Prüfung und +Original-Kernel-Abgleich bestehen. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-prepare-encoder-check.log`. + +**Weiter offen:** getrennte Score-Produzenten, eager Selektions-/Ausgabepfade, +komplette Graph-/Stream-/Evaluator- und Produktionsanbindung samt Instrumentation. +Die bisherige minimale Platzhalter-Allokation für leere Selektor-Arrays ist +unverändert; ein allgemeiner Null-Storage-Array-Vertrag fehlt weiterhin. +Keine dieser Operator-Prüfungen ist eine vollständige Modell- oder Performance- +Abnahme. Der gesamte Paritätsauftrag bleibt offen. + +### QSA-Score-Produzenten und verbundener Prefill am Encoder + +Beide Score-Produzenten, Prefill-Top-k und die bestehende Chunk-Verkettung laufen +jetzt über den unabhängigen Encoder. Der FP32-Pfad bindet GEMV, Steel/NAX, +Split-K samt Akkumulation, Maximum und Reduktion mit expliziten Array-Rollen +und Elementspannen. Maximum/Divide verwenden echte skalare Arrays. Matmul +allokiert seinen Output vor den Transpose-Kopien; diese Kopien und Split-K- +Scratch werden nach ihren Konsumenten als Backend-Temporaries registriert. +AsType- und Score-Zwischenergebnisse bleiben normale Graph-Arrays. + +Der MPP-Pfad behält seine stridefähigen Eingaben ohne zusätzliche Kopien. +Prefill-Top-k allokiert alle Outputs vor der erforderlichen General-Copy, +registriert diese Arbeitskopie nach dem Dispatch und verwendet drei separate +Frontier-Arrays. Kernelquellen, Spezialisierungen und Dispatch-Geometrien bleiben +unverändert. Vorhandene Operatoren und Referenzfälle werden wiederverwendet. + +Die 384 FP32-Score-, 146 MPP/Top-k/Prefill- und 96 gemischten Producer-Fälle +bestehen nun in beiden Encodern mit unveränderten Originalhashes. Insgesamt: +**2.053 bestehende Referenzfälle in beiden Encoder-Pfaden**. Die bestehenden +manuellen Testgrenzen ergeben jeweils genau ein Submission; sie behaupten +ausdrücklich keine identischen vollständigen Modell-Eval-Grenzen. + +Gesamtsammlung: **49/49 normal (36,76 s)** und **49/49 unretained (37,19 s)**. +Release-Test-Clippy, produktiver Release-Buildcheck, Format-/Diff-Prüfung und +Original-Kernel-Abgleich bestehen. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-score-encoder-check.log`. + +**Weiter offen:** eager Selektions-/Ausgabepfade, vollständiger Graph, Streams, +Evaluator, allgemeiner Null-Storage-Vertrag und Produktionsanbindung samt +Instrumentation. Die produktive Qwen-Ausführung ist nicht umgeschaltet. +Diese Operator-Prüfungen ersetzen weder Modell- noch Performance-Abnahme; +der vollständige Paritätsauftrag bleibt offen. + +### Eager QSA und verbundener Indexer am Encoder + +Maskierung, Ranking und sämtliche eager Ausgabevarianten verwenden nun +explizite Array-Rollen/-Spannen und skalare Array-Operanden. Die negative +Unendlichkeit wird zwischen Kacheln geteilt. Jedes ursprüngliche `mx.eval(top_t)` +wartet auf der tatsächlich aktiven Queue; der unabhängige Pfad eröffnet dafür +keinen Legacy-Command-Buffer. Tiled-Index-, Decode-Tail-, Rows-Gather- und Dense- +Concatenates besitzen ihre ursprünglichen Concurrent-Regionen samt Join. + +Zwei frühere Verkürzungen sind entfernt: Dense-Padding wird vor Concatenate +materialisiert, und Rows-Gather erzeugt seine beiden separaten Arange-Ausdrücke. +Vorhandene Originaloperatoren werden wiederverwendet, keine Kernelkörper oder +Spezialisierungen verändert. Der feste Indexer-Graph hält Input-/Sibling-Data +nun über Completion-Callbacks der aktiven Queue; primäre beziehungsweise +gespendete Output-Data bleiben ausgeschlossen. Graph-Concatenates sind ebenfalls +angebunden, und kompilierte Frontiers sind vier separate int32-Arrays. + +Die bestehenden **540 eager Fälle und 200 laufenden Indexer-Aufrufe** laufen +jetzt in beiden Encodern, einschließlich kompilierter Varianten, Cache- +Fortsetzungen, Selektions-/State-Hashes, Graph-Engagement und expliziter Tile- +Eval-Anzahlen. Insgesamt **2.793 bestehende Dual-Encoder-Referenzfälle**. +Der vorhandene Data-Ownership-Test prüft zusätzlich beide Queues, Donation- +Ausschluss und das Ausbleiben einer Submission beim bloßen Registrieren von Holds. + +Gesamtsammlung: **49/49 normal (40,19 s)** und **49/49 unretained (40,20 s)**. +Release-Test-Clippy, produktiver Release-Buildcheck, Original-Kernel-Abgleich, +Format-/Diff-Prüfung bestehen. Beide Referenz-Checkouts sind sauber und auf den +festgehaltenen Commits. Beleg: +`local-eval-results/20260906-mtplx-port/qsa-eager-encoder-check.log`. + +**Weiter offen:** vollständiger Modellgraph und allgemeiner Stream-/Evaluator- +Scheduler, insbesondere die automatische Commit-Entscheidung nach Original- +Primitiven; allgemeiner Null-Storage-Vertrag und Produktionsanbindung samt +Instrumentation. Die manuellen Fixture-Grenzen ersetzen diese nicht. Der +produktive Qwen-Pfad ist weiterhin nicht umgeschaltet, und die vollständige +Modell-/Performance-Abnahme aller drei Modelle bleibt offen. + +### Primitive-Commits und Scheduler am festen Indexer-Tape (2026-09-07) + +Der Rust-Scheduler übernimmt die FIFO-Worker je CPU-Stream, früheste Fehler, +nicht konsumierende Event-Fehlerweitergabe, Synchronisation und abarbeitendes +Shutdown aus der von MTPLX verwendeten Runtime 0.32.2. Verwendet werden stdlib +und die vorhandene Shared-Event-Bridge, keine weitere Abhängigkeit. GPU-Encoding +bleibt auf dem aufrufenden Thread wie in der Referenz. + +Der feste Indexer-Tape prüft die originale Commit-Bedingung jetzt nach dem +vollständigen Primitiv, nicht pro Kernel. Input-/Sibling-Data und Backend-Holds +sind davor an den betreffenden Command Buffer gebunden. Automatische Commits +zählen laufende Aufgaben, deren Completion beziehungsweise fehlgeschlagene +Übergabe den Zähler wieder ausgleicht. Die originale Druckbedingung +`tasks > 10 || (active_memory > memory_limit && tasks > 0)` finalisiert den +hier einzigen offenen GPU-Stream und wartet auf Fortschritt; keine neuen Sleeps. + +Dabei fiel eine veraltete Testannahme auf: Der verbundene Indexer erwartete +pauschal die manuellen Tile-/Final-Submissions. Zwei volle Prefill-Fälle +(`compiled_s12_qk0_step0` und `compiled_s12_qk1_step0`) benötigen zusätzlich je +einen automatischen Commit: nach 17 Dispatches mit 57.469.227 beziehungsweise +55.246.572 gezählten Elementen gilt `(data_size >> 20) > 50`. Diese beiden +Fall-Erwartungen werden unabhängig vom Zähler der expliziten Synchronisationen +geprüft; alle übrigen verbundenen Fälle erwarten null automatische Commits. +Die alte Prüfung wurde nicht durch eine pauschale größere Toleranz ersetzt. +Output-, Cache- und Graph-Hashes bleiben unverändert. + +**Prüfung:** vier zusätzliche Scheduler-/Primitive-Tests; Gesamtsammlung +**53/53 normal (42,53 s)** und **53/53 unretained (41,97 s)**. Release-Test-Clippy, +produktiver Release-Buildcheck, Format-/Diff-Prüfung und Original-Kernel-Abgleich +bestehen. Beide Referenz-Checkouts sauber auf den festgehaltenen Commits. +Beleg: `local-eval-results/20260907-mtplx-port/scheduler-check.log`. + +**Weiter offen:** allgemeine Device-/TLS-Stream-Verwaltung, vollständiger +Evaluator mit streamübergreifendem Tape, CPU-Primitive-Encoding, vollständiger +Qwen-Modellgraph, allgemeiner Null-Storage-Vertrag und Produktionsanbindung samt +Instrumentation. Die CPU-Worker sind bisher modellfrei geprüft, nicht im +Produktionsmodell angebunden. Der kanonische Port bleibt `cfg(test)`; +Produkt-Qwen, UI/Harness-Verhalten und Gesamt-Performance sind nicht abgenommen. +Der vollständige Auftrag und die anschließende Drei-Modell-Matrix bleiben offen. + +### CPU-Dispatch und gemeinsame Primitive-Ownership (2026-09-07) + +Der CPU-CommandEncoder-Teil aus `backend/cpu/encoder.h` ist im bestehenden +Rust-Scheduler ergänzt: jeder zehnte Dispatch zählt eine laufende Aufgabe; +eine separate nachfolgende FIFO-Aufgabe meldet den Abschluss auch bei einem +Fehler im eigentlichen Dispatch. Ein abgewiesenes Enqueue lässt keinen neuen +Task-Zähler zurück. Die Cleanup-Aufgabe aus `backend/cpu/eval.cpp` zählt dabei +ebenfalls als Dispatch und hält Input-/Sibling-Data sowie Backend-Temporaries +bis hinter die zuvor eingereichte Arbeit. + +CPU- und GPU-Evaluator verwenden dafür jetzt dieselbe Data-Auswahlfunktion: +Deduplication nach Data-Identität, primärer Output einschließlich gespendeter +Input-Data ausgeschlossen. CPU-Temporaries behalten ihre vollständigen nativen +Deskriptoren; der private Send-Wrapper erlaubt ausschließlich deren Freigabe +auf dem Worker, keinen Buffer-Zugriff. `Buffer` selbst bleibt nicht Send/Sync. +Es gibt keine neue Abhängigkeit, keinen Metal-Kernel- oder Produktionswechsel. + +Gezielte Prüfungen: **5/5 Scheduler-Tests**, GPU-Evaluator-Ownership **1/1**, +verbundener Indexer mit allen 200 Fällen in beiden Encodern **1/1 normal** +(2,54 s) und **1/1 unretained** (2,50 s), jeweils unveränderte Ausgabe-/State- +Hashes. Release-Test-Clippy, Produkt-Buildcheck, Originalquellen-Abgleich und +Format-/Diff-Prüfung bestehen. Die vollständige 53er-Sammlung des vorherigen +Schrittes wurde hierfür nicht als neue Gesamtabnahme ausgegeben. +Beleg: `local-eval-results/20260907-mtplx-port/cpu-scheduler-check.log`. + +**Weiter offen:** Device-/TLS-Stream-Registry und allgemeiner Evaluator samt +Modellgraph; CPU-Dispatch-/Hold-Regeln sind vorhanden, CPU-Modelloperationen +und deren Routing aber noch nicht verbunden. Produktionsanbindung und gesamte +Modell-/Performance-Abnahme bleiben unverändert offen. Der Stream-Abgleich +ist keine Behauptung, dass bereits eine vollständige Registry implementiert sei. + +### CPU-/GPU-Stream-Verwaltung und Indexer-Anbindung (2026-09-07) + +Ein Runtime-eigener Stream-Besitzer verbindet jetzt die vorhandenen CPU- und +GPU-Encoder für den installierten Ein-CPU-/Ein-Metal-Backend-Vertrag. Die Regeln +aus `stream.h/cpp` sind abgebildet: getrennte Defaults pro Thread/Device, +threadlokale Stream-Templates mit verzögerter Auflösung, normale threadgebundene +Streams und sequentiell threadübergreifend verwendbare globale Streams. +CPU-IDs bleiben wegen des gemeinsamen Schedulers über Context-Wechsel eindeutig. + +Die Registry hält ihren Lock weder beim Encoding noch bei Dispatch oder Wait. +Ein ausgewählter GPU-Encoder benutzt weiterhin den vorhandenen Rc/RefCell-/TLS- +Operatorpfad und denselben Allocator; pro Stream-Auswahl wird kein neuer Encoder +oder neuer GPU-Queue-Besitzer erzeugt. Für die sichere Rückgabe aus einer Auswahl +werden genau ein starker und null schwache Rc-Besitzer verlangt. Gleichzeitige +mutable Nutzung wird abgewiesen, Fehler und Unwinding geben den Encoder zurück. +Ein TLS-Cleanup gibt lokale Encoder auch beim Thread-Ende ohne explizites Clear +frei. Explizites Clear erhält wie die Referenz die dann gegebenenfalls veralteten +Default-/Template-Handles und Stream-Metadaten; globale GPU-Encoder werden dabei +nur vom Scheduler-Main-Thread entfernt, globale CPU-Encoder nicht. + +Wait/Signal, Finalize und Synchronize verwenden die existierenden CPU-FIFOs und +Metal-Events. Die streamübergreifende Lastbegrenzung finalisiert alle offenen +GPU-Streams in der ursprünglichen Device-/Index-Reihenfolge, bevor sie auf +Fortschritt wartet. Der gezielte Test verbindet zwei GPU-Queues per Event und +hält elf gezählte CPU-Aufgaben dahinter zurück. Erst das Einreichen beider +GPU-Queues löst die Kette. Eine fünfsekündige Sicherung würde einen kaputten +Finalize-All-Pfad fehlschlagen lassen statt den Test endlos hängen zu lassen. + +Die vorhandene laufende **200-Fall-Indexer-Folge** nutzt nun im unabhängigen +Pfad einen registrierten Default-GPU-Stream statt eines alleinstehenden Scope; +Legacy-Gegenpfad und sämtliche Ausgabe-/State-/Commit-Erwartungen bleiben erhalten. +Zwei neue Stream-Tests prüfen außerdem Defaults, Thread-Zuordnung, Template- +Auflösung, Cleanup, Fehler-Rückgabe, Thread-Wechsel und echte Kernel-Kopien. + +**Prüfung:** vollständige modellfreie Sammlung **57/57 normal (41,39 s)** und +**57/57 unretained (41,56 s)**. Release-Test-Clippy, Produkt-Buildcheck, +Format-/Diff-Prüfung und Original-Kernel-Abgleich bestehen; beide Referenzen +sauber auf den festgehaltenen Commits. Beleg: +`local-eval-results/20260907-mtplx-port/stream-check.log`. + +**Weiter offen:** vollständiger allgemeiner Array-/Evaluator-Graph mit +streamübergreifenden Abhängigkeiten, CPU-Modelloperationen, Compile-Cache-Clear- +Anbindung, Null-Storage-Vertrag und kompletter Modell-/Produktionspfad samt +Instrumentation. Die Registry ist bisher im kanonischen Test-Port angebunden, +nicht in der UI-Inferenz. Dieser Schritt belegt weder den kalten UI-Ping noch +Modell-/Performance-Parität; die anschließende Drei-Modell-Matrix bleibt offen. + +### Evaluator-Events und beide Inter-Stream-Fence-Pfade (2026-09-07) + +Der Port enthält jetzt die Event-/Fence-Verträge aus `event.h`, +`backend/metal/event.cpp` und `backend/metal/fence.cpp`. Graph-Event-Kopien teilen +native Event-/Fehlerzustände, behalten aber ihren eigenen Wert-Snapshot und +Ursprungsstream. Host-Waits prüfen den gemeinsamen Fehler vor und nach dem Wait. +Diese Events sind von den internen MTLFences des Command Encoders getrennt. + +Inter-Stream-Fences unterstützen beide Referenzzweige. Standardmäßig bleibt +SharedEvent-Synchronisation aktiv. Der optionale Fast-Pfad verlangt unverändert +`MLX_METAL_FAST_SYNCH` und Metal3/macOS15-Unterstützung. Er verwendet die bereits +in der gepinnten Metallib vorhandenen Originalfunktionen `input_coherent`, +`fence_update` und `fence_wait`, keine nachgebauten Kernel. GPU-Waits registrieren +die konsumierten Arrays als Outputs; GPU-Updates erhalten die ursprüngliche +Cross-Device-Coherence-Stufe und explizite Barrier. CPU-Operationen verwenden +den separaten atomaren Timestamp mit SeqCst-Zugriffen, ohne neue Sleeps/Yields. +Fence-Kopien teilen den Update-Zähler, während eingereihte Operationen ihren +jeweiligen Zählerwert erfassen. CPU-Aufgaben und Command-Completion-Holds halten +den privaten Timestamp-Speicher bis zum tatsächlichen Abschluss. + +Die Metal-Bridge akzeptiert nun wie die Referenz leere Dispatch-Grids. Ein +gezielter Test prüft den leeren Coherence-Dispatch sowie eine BF16-Spanne, die +auf zwei uint32-Wörter aufgerundet wird. Das prüft einen realen Speicher mit +`data_size=0`, nicht den weiterhin offenen allgemeinen Null-Storage-Vertrag. +Die betroffene Rust-FFI wird derzeit ausschließlich vom `cfg(test)`-Port benutzt. + +Drei neue Prüfungen decken Event-Snapshots/Fehler, kleine leere/teilwortige +Coherence-Grids und eine **CPU → GPU → GPU → CPU**-Kette in beiden Fence-Modi +mit exakten Daten und Freigabe nach Completion ab. Eine ausschließlich im Test +vorhandene fünfsekündige Sicherung löst Wartebedingungen bei einem Fehler auf; +sie griff nicht ein. Neue modellfreie Gesamtsammlung: +**60/60 normal (41,38 s)** und **60/60 unretained (41,47 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung, Originalquellen- und Metallib-Hash- +Prüfung bestehen. Beide Referenzen sind sauber auf den gepinnten Commits. +Beleg: `local-eval-results/20260907-mtplx-port/graph-sync-check.log`. + +**Weiter offen:** vollständiger Array-/Evaluator-Graph, der diese Abhängigkeiten +aus den Modelloperationen erzeugt; CPU-Modelloperationen, Compile-Cache-Clear, +Null-Storage und vollständige Qwen-Produktionsanbindung samt Instrumentation. +Der Fast-Modus wird nicht als Optimierung eingeschaltet. UI-Verhalten und +Gesamt-Performance wurden nicht neu gemessen; die vollständige Drei-Modell- +Abnahme bleibt offen. + +### Gemeinsame Graph-Planung und Stream-Abhängigkeiten (2026-09-07) + +`qwen_mtplx/eval.rs` übernimmt die Traversierung aus dem gepinnten +`transforms.cpp::eval_impl`: Auswahl des Synchronizer-Streams, DFS-Gradzählung +für alle Geschwister-Ausgaben, BFS mit Breitenlimit und DFS-Fortsetzung sowie +umgekehrte Ausführungsreihenfolge. Tape-Einträge identifizieren die tatsächlich +gewählte Ausgabe, nicht bloß deren Producer; diese Wahl ist für Data-Holds und +Donation relevant. `MLX_BFS_MAX_WIDTH` wird wie in `utils.h` einmalig mit +`get_var`/`atoi`-Semantik gelesen (Default 20), nicht mehr lokal fest verdrahtet. + +Die Traversierung berücksichtigt Unscheduled/Evaluated/Available und das vom +Aufrufer gelieferte effektive Tracer-Flag. Bereits ausgewertete, nicht mehr +getracete Primitive werden einschließlich ihrer Geschwister abgelöst. Async- +Tracer und fehlende Primitive behalten die Referenzfehler. Stream-Abhängigkeiten +werden pro Ausgabe ermittelt; der Cross-Device-Bedarf wird über alle Konsumenten +vereinigt. Das ist noch keine allgemeine Array-Speicher- oder Transform-Runtime. + +Der bisherige separate QSA-Scheduler ist entfernt. Der bestehende kompilierte +Indexer erzeugt sein wiederverwendetes Tape jetzt über diesen gemeinsamen +Planer. Sein einzelner logischer Stream wird beim Replay weiterhin auf dem +Encoder des Aufrufers ausgeführt; die Planung erzeugt keine zusätzliche Queue. +Alle bestehenden Ergebnis-, State-, Lifetime- und Commit-Prüfungen bleiben +unverändert. Keine Metal-Kernel, Flush- oder Prefill-Sonderregeln geändert. + +Drei neue modellfreie Strukturprüfungen decken Breiten-/Sibling-Reihenfolge, +Stream-/Device-Abhängigkeiten sowie Status-/Detach-/Tracer-Fehler ab. Ihre +Erwartungen wurden aus der gepinnten Traversierung abgeleitet, nicht als neue +Live-Runtime-Trace ausgegeben. Gesamtsammlung **63/63 normal (40,70 s)** und +**63/63 unretained (40,90 s)**; Release-Test-Clippy, Produkt-Buildcheck, +Format-/Diff-Prüfung und Originalquellen-/Metallib-Hash-Prüfung bestanden. +Beide Referenz-Checkouts sind unverändert auf den festgehaltenen Commits. +Beleg: `local-eval-results/20260907-mtplx-port/graph-tape-check.log`. + +**Weiter offen:** allgemeine Array-Daten-/Primitive-Ausführung mit dem gesamten +Eval-Epilog und Fehler-Cleanup, Verknüpfung der hier ermittelten Abhängigkeiten +mit Graph-Events/Fences, CPU-Modelloperationen, Compile-Cache-Clear, Null-Storage +und vollständiger Qwen-Produktionspfad samt Instrumentation. Der kanonische Port +bleibt `cfg(test)`; der UI-Modellpfad ist damit nicht umgestellt. Keine neuen +Modell-/Performance-Läufe, kein Paritäts-Pass und keine Rücknahme eines +Referenzbestandteils. Die vollständige Drei-Modell-Abnahme bleibt offen. + +### Gemeinsamer Eval-/Async-Eval-Ablauf mit Abschluss und Fehler-Cleanup (2026-09-07) + +Der gemeinsame Planer ist jetzt mit dem Ausführungs-Kontrollfluss aus +`transforms.cpp::eval_impl`, `eval` und `async_eval` verbunden. Der Evaluator +verwendet die vorhandene Stream-Registry, CPU-FIFOs, Encoder, Graph-Events und +beide Graph-Fence-Backends. GPU-Primitive laufen auf dem aufrufenden Thread im +Scope ihres Streams, nicht in einem neu eingeführten Worker-Pool. + +Innerhalb einer Auswertung werden die geplanten Stream-Abhängigkeiten per Fence +abgewickelt; zwischen Async-Auswertungen über das gespeicherte Event. Bereits +signalisierten Events wird beim Ablösen noch ihr Fehler entnommen. Ein +fehlgeschlagenes Ablösen lässt Event und Status bestehen. Status, primäre Ausgabe +und Geschwister werden in Referenzreihenfolge aktualisiert. Der Abschluss +signalisiert die Eval-Events und finalisiert alle offenen GPU-Streams; der +synchrone Aufruf wartet auf den Synchronizer, der asynchrone nicht. Leere oder +bereits geplante Async-Ausgaben erzeugen keine neue Auswertung/Submission. + +Bei einem Primitivfehler werden die beteiligten Events signalisiert und alle +betroffenen Streams synchronisiert. Cleanup-Fehler ersetzen nicht die Ursache. +Dasselbe Cleanup läuft beim Rust-Unwinding; danach wird der ursprüngliche Panic +weitergereicht. Der lokale Synchronizer wird in allen Rückgabewegen entfernt. +Frühere erfolgreiche Knoten bleiben ausgewertet, so dass ein Retry nur die +fehlgeschlagenen Knoten erneut ausführt. Gemeinsame Data-Hold-Helfer werden für +den bestehenden QSA-Pfad und den neuen Kontrollfluss wiederverwendet; CPU-Cleanup +behält seine Zehner-Taskzählung. Der Synchronizer benötigt keinen Datenpuffer. + +Drei neue modellfreie Prüfungen verbinden echte kleine CPU-/GPU-Operationen: +CPU → GPU mit Geschwister-Ausgaben → zweite GPU-Queue → CPU; eine absichtlich +noch laufende Async-Ausgabe als Eingabe der nächsten Auswertung; Fehler und +Panic mit vollständigem Drain/Retry; Tracer-Donation-Schutz und behaltene +Topologie. Die zehnsekündige Deadlock-Sicherung gilt ausschließlich für diese +winzigen Unit-Tests und beendet bei einem Hänger deren Prozess; sie griff nicht +ein und ersetzt nicht den Startup-/Progress-Watchdog der Modell-Harness. +Zusätzlich prüft der bestehende Event-Test einen Fehler trotz signalisiertem Event. + +Gezielte neue Tests: **3/3 SharedEvent (0,14 s)** und separat +**3/3 Fast-Fence (0,12 s)**. Gesamtsammlung **66/66 normal (41,35 s)** und +**66/66 unretained (41,58 s)**. Release-Test-Clippy, Produkt-Buildcheck, +Format-/Diff-Prüfung und Originalquellen-/Metallib-Hash-Prüfung bestanden. +Keine Shader-/Bridge-Änderung; beide Referenzen sauber auf ihren Pins. +Beleg: `local-eval-results/20260907-mtplx-port/eval-execution-check.log`. + +**Abgrenzung:** Das ist der gemeinsame Ausführungs-Kontrollfluss, noch nicht der +vollständige Array-/Modellport. Primitive werden als konkrete Rust-Operationen +eingespeist; materialisierte Buffer mit Elementzahl/Elementgröße bleiben beim +Aufrufer. Allgemeine Descriptor-/Graph-Ownership, Shapes/Strides, Freigabe bei +letzter Graph-Referenz und Null-Storage müssen noch mit diesem Ablauf verbunden +werden. Der derzeitige Tracer-Schutz hält Input-Data vorübergehend und verhindert +Donation; die vollständige Descriptor-Referenzsemantik ist damit nicht belegt. +CPU-Modelloperationen, Compile-Cache-Clear und vollständiger Qwen-Produktionspfad +samt Instrumentation bleiben offen. QSA nutzt weiter seinen kompilierten +Replay innerhalb des Caller-Batches, nicht einen zusätzlichen Eval-Abschluss +pro Indexer-Aufruf. Der gesamte kanonische Port bleibt `cfg(test)`. +Keine UI-/Modell-/Performance-Abnahme und keine Schließung des Drei-Modell-Ziels. + +### Leere materialisierte Daten und Null-Bindings (2026-09-07) + +Der kanonische Buffer-Pfad kann nun leere Data-Objekte ohne Metal-Allokation +darstellen. `MetalAllocator::malloc(0)` der gepinnten Runtime liefert null; +`array::set_data` erzeugt trotzdem eine eigene Data-Identität. Entsprechend +erzeugt `Buffer::bytes(0)` im Test-Port einen leeren nativen Descriptor mit +`buffer=nil`, nicht einen Dummy-Puffer. Allokator-, Cache-, Peak- und Ressourcen- +Zähler bleiben unverändert. `Allocator::allocate(0)` liefert weiterhin `None`. + +Der vorhandene Descriptor-/Data-/Allocation-Lebenszyklus wird wiederverwendet: +unabhängige leere Buffer haben verschiedene Data-Identitäten, Views teilen Data +und bekommen ihre eigene Descriptor-ID. Die native View-/Free-Verwaltung bleibt +zuständig; es gibt keine zweite Speicherverwaltung. Leere Reads/Writes sind +gültig, nichtleere oder außerhalb liegende Zugriffe bleiben Fehler. Eine leere +View kann außerdem einen vorhandenen nichtleeren Speicher behalten und am Ende +dieser Allokation liegen; sie wird nicht stillschweigend durch Null-Data ersetzt. + +Die kanonische Metal-Bindung akzeptiert jetzt die von `device.cpp` verwendeten +Null-Bindings und leere Views. Null-Ressourcen bleiben wie in der Referenz Teil +der RAW-/WAR-Abhängigkeitsmengen; ihr `data_size` ist null. Die Objective-C- +Fallback-Hold-Menge übernimmt nur tatsächliche Metal-Buffer, da `NSSet` kein nil +aufnehmen darf. `tensor_contents` gibt für Null-Storage direkt null zurück, +ohne Pointer-Arithmetik darauf auszuführen. Die unveränderten Originalkernel +`input_coherent`, `fence_update` und `fence_wait` laufen in den entsprechenden +leeren Grids/Fence-Pfaden; kein Ersatzkernel und kein zusätzlicher Flush. + +Zwei neue Prüfungen decken Identitäten, Freigabe, Grenzen, unveränderte +Allokatorzähler, Null-Abhängigkeiten, leere Tail-Views sowie beide nativen +Ownership-Pfade ab. Bestehende Fence-/Evaluator-Prüfungen enthalten nun echten +Null-Storage, einschließlich GPU → CPU. Gezielte Prüfungen je **1/1 (0,06 s)**; +erweiterter Fast-Fence-Evaluator **3/3 (0,11 s)**. Gesamtsammlung +**68/68 normal (41,23 s)** und **68/68 unretained (41,44 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung und Originalquellen-/Metallib-Hash- +Prüfung bestanden; Referenz-Checkouts unverändert auf den Pins. +Beleg: `local-eval-results/20260907-mtplx-port/empty-storage-check.log`. + +**Abgrenzung:** Damit ist der leere Buffer-/Binding-Vertrag verbunden, nicht +automatisch jeder Zero-Shape-Zweig sämtlicher Array-Operationen. Allgemeine +Array-Descriptor-/Graph-Ownership, Shapes/Strides, Freigabe bei letzter +Graph-Referenz, CPU-Modelloperationen und der vollständige Modell-/Produktions- +pfad bleiben offen. Die neue Buffer-Erzeugung ist an den kanonischen `cfg(test)`- +Pfad gebunden; die produktive Inferenz ist noch nicht umgestellt. Keine neuen +Modelldownloads oder Modell-/Performance-Läufe; das Drei-Modell-/2%-Ziel bleibt offen. + +### Gemeinsame Array-Ownership im Lazy-Evaluator (2026-09-07) + +Die externe `Vec>` des allgemeinen Evaluators ist entfernt. +`eval`/`async_eval` arbeiten jetzt unmittelbar auf geteilten Array-Deskriptoren; +Primitive materialisieren ihre vorhandenen Ausgabedeskriptoren. Status, Events, +Eingaben, Geschwister, Ausgabeposition und Data gehören diesem Owner. Der +kompilierte QSA-Planner bleibt derselbe; seine vorhandenen materialisierten +Cache-Arrays verwenden ebenfalls den gemeinsamen Storage-/Descriptor-Owner. + +Die Ownership-Regeln stammen aus `array.cpp`/`array.h` der gepinnten Runtime: +Descriptor-Kopien teilen Identität, separate Data-Views nicht; Donation verlangt +exklusive Descriptor- und Data-Ownership. Geschwister halten sich gegenseitig +und ihre jeweiligen Eingaben. Beim letzten äußeren Verweis werden die Zyklen +aufgelöst und lange Eingabeketten iterativ freigegeben. `detach` entfernt bei +allen Geschwistern Primitive, Eingaben, Geschwister und Ausgabeposition, ohne +Status oder Events zu löschen. Data-/Allocation-/GPU-Completion-Holds bleiben +in der bestehenden Speicher-/Encoder-Verwaltung; keine zweite Allokatorlogik. + +Für die Planung entsteht nur ein schwacher Topologie-Index, keine zusätzliche +starke Referenz auf jedes Zwischenergebnis. Der Ausführungstape hält die von +MTPLX ausgewählten Ausgaben; nach Detach und letztem Verbraucher verschwinden +die Eingabedeskriptoren. Planungs-Detach wirkt unmittelbar, auch vor einem +späteren Planungsfehler. Bei Ausführungsfehlern bleibt der Rest-Tape bis nach +dem Event-/Stream-Cleanup erhalten. Tracer halten während des Primitivaufrufs +jetzt zusätzliche **Descriptor-Verweise**, nicht ersatzweise zusätzliche Data. + +Zwei neue reine Ownership-Tests prüfen die letzte äußere Geschwisterreferenz, +30.000 Knoten mit behaltenem Zwischenknoten, 10.000 doppelte Geschwisterstufen +und vollständigen Detach. Die bestehenden drei verbundenen Evaluatorprüfungen +sind auf Array-Ownership umgestellt; eine vierte prüft Donation ohne künstliche +Arena-Referenzen, Freigabe nach letztem Verbraucher und unabhängig behaltene +Geschwister-Ausgaben. Der QSA-Donation-Test prüft zusätzlich einen direkten +Descriptor-Alias. Ergebnis-, Cache-, Lifetime- und Commit-Assertions des +vorhandenen Kernel-/Indexer-Bestands bleiben erhalten. + +Prüfstand: **71/71 normal (42,16 s)** und **71/71 unretained (42,15 s)**; +abschließender Fast-Fence-Evaluator **4/4 (0,14 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung und Originalquellen-/Metallib-Hash-Prüfung +bestanden. Beide Referenz-Checkouts sauber auf ihren Pins; keine Shader- oder +native Bridge-Änderung in diesem Schritt. Diese Zeiten sind Testlaufzeiten, +keine Modell-Performance. Beleg: +`local-eval-results/20260907-mtplx-port/array-ownership-eval-check.log`. + +**Abgrenzung:** Das verbindet die Descriptor-/Graph-Lebensdauer mit dem +Ausführungskontrollfluss, schließt aber nicht den gesamten Array-/Modellport. +Allgemeine Shapes/Strides/Dtypes/Flags, konkrete Modellprimitive und ihre +vollständige Verbindung, CPU-Modelloperationen, Compile-Cache-Clear sowie die +Produktionsanbindung samt Instrumentation bleiben offen. Elementzahl und +Elementgröße werden ausdrücklich mit Materialisierungen übergeben; das ist +noch kein allgemeiner Shape-Inferenzpfad. Der kanonische Port bleibt `cfg(test)`. +Keine neuen Modellgewichte, keine Gesamtmodell-Messung, keine Paritätsabnahme. + +### Typisierte Array-Geometrie vor der Auswertung (2026-09-07) + +Der allgemeine Evaluator übernimmt keine freie Kombination von `data_size` +und `itemsize` mehr. Der bisherige `Value`-Transporttyp ist entfernt; Shapes +und echte Dtypes stehen bereits am unscheduled Ausgabedeskriptor. Primitive +materialisieren dessen Daten über `set_data`. Die gemeinsame Array-Geometrie +enthält Shape, kanonische Strides, Elementzahl, Dtype, Data-Elementzahl und +Contiguity-Flags. BF16 und FP16 bleiben verschiedene Typen trotz gleicher +Bytebreite; alle 14 Dtype-Werte der gepinnten Runtime sind abgebildet. + +Die Regeln folgen `ArrayDesc::init`, `array::set_data`, `array::make_arrays` +und `dtype.h`: skalare Shapes haben ein Element, Shapes mit Null-Dimensionen +null; kanonische Strides werden von hinten aufgebaut. Negative Achsen werden +relativ zum Rank ausgewertet. Vor Materialisierung sind die drei Flags true; +danach wird Column-Contiguity aus der Form bestimmt. Ein neuer Primitivoutput +übernimmt nicht versehentlich die materialisierten Flags seines Inputs. +GPU-Primitive weisen Float64 an Eingaben oder Ausgaben zurück; die reine +CPU-Deskriptorkonstruktion erlaubt es. Leere Ausgabelisten erzeugen keine +Deskriptoren und führen diese GPU-Prüfung entsprechend nicht aus. + +Materialisierungen mit zu kleinem Buffer sind Fehler und lassen vorhandene +Daten/Geometrie unverändert; Größenberechnungen sind geprüft. Die bestehende +Data-/Descriptor-/Completion-Verwaltung bleibt unverändert. QSA-Backing-Arrays +sind als BF16 typisiert; ihre vorhandene logische Cache-Geometrie und Head- +Strides bleiben beim Cache. Das ist noch keine Umstellung jedes Cache-Views +auf allgemeine Array-Shape-/Offset-Operationen. Im Evaluator leiten sich die +Fence-Elementzahl und Bytebreite jetzt aus dem typisierten Descriptor ab. + +Eine neue reine Geometrieprüfung deckt die 14 Dtypes mit skalaren, leeren, +einheitsdimensionalen und mehrdimensionalen Formen sowie Grenzen/Flags ab. +Eine neue modellfreie Metal-Prüfung deckt echte Materialisierung, Fehler ohne +Datenverlust, Aliase und leeren Speicher ab. Der bestehende Evaluator- und +QSA-Testbestand ist auf den typisierten Vertrag umgestellt; keine bisherigen +Ergebnis-/Lebensdauer-/Commit-Prüfungen entfernt. + +Prüfstand: **73/73 normal (42,01 s)** und **73/73 unretained (41,66 s)**; +Fast-Fence-Evaluator **4/4 (0,14 s)**. Gezielte Array-Prüfungen einschließlich +kleiner Metal-Allokationen **4/4 (0,07 s)**. Release-Test-Clippy, Produkt-Buildcheck, +Format-/Diff- und Originalquellen-/Metallib-Prüfung bestanden. Referenzen sauber +auf den bisherigen Pins; keine Shader-/Bridge-Änderung. Beleg: +`local-eval-results/20260907-mtplx-port/typed-array-geometry-check.log`. + +**Abgrenzung:** Allgemeine strided Views mit Byte-Offsets, negative Strides, +Broadcast/Transpose/Reshape-Operationen, Dtype-Promotion/Conversions und alle +Modellprimitive sind damit nicht als vollständig portiert abgenommen. Auch +CPU-Modelloperationen, Compile-Cache-Clear, vollständiger Qwen-Modell-/Produktions- +pfad und Instrumentation bleiben offen. Der Port ist weiterhin `cfg(test)`; +keine Modell- oder 2%-Performance-Abnahme und keine neuen Modellgewichte. + +### Geteilte Views und Byte-Offsets bis zur Metal-Bindung (2026-09-07) + +Array-Deskriptoren tragen jetzt ihren eigenen Byte-Offset über demselben +geteilten Backing. `set_strided_data` übernimmt Strides/Flags/Data-Größe und +einen Byte-Offset; `copy_shared_buffer` addiert wie `array.cpp` einen Offset in +**Elementen des Ziel-Dtypes** zum vorhandenen Offset. Beide verwenden die +bestehenden Descriptor-/Data-/Allocation-Owner, keine zusätzlichen GPU-Views +oder Allokationen. Ungültige Spannen/Offsets werden vor einer Mutation abgewiesen. +`set_data` setzt den Offset zurück, behält aber wie die Referenz die Strides. + +Die gemeinsamen materialisierten Backend-Operationen Slice, Broadcast und +Transpose sind aus `backend/common/slicing.cpp`, `broadcasting.cpp` und +`common.cpp::Transpose::eval` angeschlossen. Sie erhalten bereits inferierte +Ausgabe-Shapes und normalisierte Achsen/Indizes. Negative Strides und Broadcast- +Strides von null bleiben erhalten; Flags/Data-Größe werden nach den jeweiligen +Referenzregeln berechnet. Leeres Slice/Broadcast erzeugt leere eigene Data statt +das Eingabebacking zu halten. Generelles Reshape und Dtype-View/Conversion sind +noch nicht durch diese drei Backend-Operationen abgedeckt. + +Der kanonische Metal-Binding-Vertrag hat nun einen zusätzlichen Byte-Offset. +Rust reicht ihn an `setBuffer` weiter; die native Brücke prüft Basisgrenzen und +Additionsüberlauf vor der Submission. Inline-Bytes haben weiterhin Offset null. +Die Ressourcenabhängigkeiten bleiben pro Backing, nicht pro View. Auch der +Fast-Fence-Coherence-Aufruf des allgemeinen Evaluators bindet den Array-Offset; +bestehende Buffer-Aufrufer verwenden unverändert Offset null. Kein zusätzlicher +Flush, Wait, Puffer oder veränderter Originalkernel. + +Die neue überwachte Prüfung verbindet Reverse-Slice → Transpose → Slice → +Broadcast → Original-Metal-Copy im gemeinsamen Evaluator. Das Ergebnis ist +bytegenau geprüft; bis zur tatsächlichen Copy bleiben Allokatorzähler unverändert. +Zusätzlich: positive Offset-View über GPU → CPU, leere/ungültige Views, Freigabe +der ursprünglichen Graphreferenz. Bestehende Array-Tests prüfen explizite +negative Strides, Ziel-Dtype-Offseteinheiten, Selbst-Sharing, Fehler ohne Mutation +und Offset-Reset. Native Grenztests prüfen, dass ein ungültiger Binding-Offset +den Ressourcen-Owner nicht übernimmt. Der vorhandene kleine Test-Watchdog ist +wiederverwendet, keine neue Modell-Gesamtlaufzeitgrenze. + +Prüfstand: **74/74 normal (41,18 s)** und **74/74 unretained (41,35 s)**. +Die neue View-Kette besteht separat normal **1/1 (0,08 s)** und mit Fast-Fences +**1/1 (0,06 s)**; der bestehende Fast-Fence-Evaluator **4/4 (0,15 s)**. +Release-Test-Clippy, Produkt-Buildcheck, Format-/Diff-Prüfung und Originalquellen- +/Metallib-Hash-Prüfung bestanden; Referenz-Checkouts sauber auf den Pins. Beleg: +`local-eval-results/20260907-mtplx-port/array-views-offsets-check.log`. + +**Abgrenzung:** Das ist eine verbundene Backend-/Ownership-/Binding-Erweiterung, +keine vollständige Array-Ops-API oder Qwen-Modellintegration. Allgemeines Reshape, +Dtype-View/Promotion/Conversions, weitere Modellprimitive, vollständige logische +QSA-Graphanbindung, CPU-Modelloperationen, Compile-Cache-Clear und produktive +Instrumentation bleiben offen. Der kanonische Port bleibt `cfg(test)`; keine +Gesamtmodell-/UI-/2%-Performance-Abnahme und keine neuen Modellgewichte. + +### Reshape: gemeinsames Backing oder Original-General-Copy (2026-09-07) + +`views::reshape` übernimmt `common.cpp::prepare_reshape` und +`metal/copy.cpp::reshape_gpu`: gleiche Elementzahl/Dtype, Single-Array-Collapse +mit INT32_MAX-Grenze, passende geteilte Strides einschließlich negativer und +Broadcast-Strides; unveränderte Data-Größe/Offsets und referenzgleiche Flags. +Leere und row-contiguous Inputs teilen das Backing ohne GPU-Allokation. +Der Copy-Fall kollabiert dagegen Input- und kanonische Output-Strides gemeinsam +in der **Input-Shape**, allokiert die Ausgabe und dispatcht die unveränderten +General-Copy-Kernel aus der übernommenen Metallib. Rust selektiert Rang, +Large-Index-Namen und Work-per-thread wie die Referenz; Inline-Slices werden +über den vorhandenen Binding-Helfer mit ihrer tatsächlichen Byte-Länge gebunden. +Kein zusätzlicher Flush oder Wait, keine neue Ownership-Schicht. + +Der überwachte Test verbindet Transpose → Reshape im gemeinsamen Evaluator: +13 GPU-Dtypes × vier Shape-Fälle, mit positivem Backing-Offset, Singleton-Achsen, +g2/g3/gn2-Kopien und unabhängig indizierter bytegenauer Ausgabeprüfung. +Zusätzlich: Reverse-Strides beim geteilten Reshape, skalare und nichtuniforme +Broadcasts (Share versus Copy), leere Arrays und Größenfehler ohne Mutation. +Das sind kleine modellfreie Funktionstests; Large-Index-Kopien oberhalb +INT32_MAX werden hier nicht mit großen Allokationen ausgeführt. + +Prüfstand: **75/75 normal (41,85 s)**, **75/75 unretained (41,63 s)**; +View-/Reshape-Ketten mit Fast-Fences **2/2 (0,09 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung und Quellen-/Metallib-Hash-Prüfung +bestanden; beide Referenz-Checkouts sauber auf den Pins. Befehle/Ergebnisse: +`local-eval-results/20260907-mtplx-port/reshape-check.log`. + +Der kanonische Port bleibt `cfg(test)`. Dtype-View/Promotion/Conversions, +weitere Modellprimitive, vollständige logische QSA-Graphanbindung, CPU- +Modelloperationen, Compile-Cache-Clear, produktive Instrumentation und der +vollständige Qwen-Modellpfad sind weiterhin offen. Der Reshape-Backend-Port +ist ausdrücklich keine Produktions-, UI- oder Gesamtmodell-Performance-Abnahme. + +### AsType und Dtype-View am gemeinsamen Copy-/Evaluator-Pfad (2026-09-07) + +Die tatsächlich verwendeten Qwen-Referenzaufrufe wechseln u.a. Router-Indizes, +QSA-Pooled-Scores und RoPE-Zwischenwerte (`models/qwen4_exp.py`: 345, 803–804, +1633–1658, 1945, 1965–1968). Der kanonische Rust-Backend-Port bildet jetzt +`gpu/primitives.cpp::AsType::eval_gpu` und `View::eval_gpu` ab, ohne dafür +Konvertierungsshader neu zu schreiben. + +AsType selektiert Vector anhand des **contiguous**-Flags (nicht nur row- +contiguous), erhält dabei Strides/Flags/physische Data-Größe und übernimmt +donierbare gleich breite Speicher innerhalb der referenzierten 16-KiB-Grenze. +Bei gleichem Dtype entfällt dann der Dispatch; bei verschiedenem Dtype werden +Werte tatsächlich in place konvertiert. Andere Layouts gehen durch General +Copy. Vector-Work-per-thread richtet sich nach Zieldtype und 65536-Schwelle; +Large-Index-Namen und 2D-Grid-Faktorisierung folgen der gepinnten Referenz. + +Dtype-View prüft skalare/letzte-Achsen-Bytegrößen. Gleiche Breite, geeignete +kleinere Breite oder row-contiguous Input teilen das Backing mit angepassten +Strides/Data-Größen. Andernfalls kopiert der originale General-Kernel zunächst +in einen dichten temporären Input-Dtype-Puffer, den die Ausgabe anschließend +teilt. Der General-Copy-Pfad wird auch von Reshape wiederverwendet. Seine +1024-Thread-Bedingung wird jetzt am tatsächlichen Pipeline-State geprüft; +Vector nutzt dessen Maximum. Die native Lookup-Routine ist aus dem vorhandenen +Dispatch extrahiert und zwischen Abfrage/Encoding geteilt. Kein zusätzlicher +GPU-Command, Flush, Wait oder geänderter Metal-Kernel. + +Neue überwachte Evaluator-Prüfung: alle 169 GPU-Dtype-Konvertierungspaare mit +unabhängig kodierten 0/1-Werten; Vector-Schwellen 65535/65536/65537, Donation +mit/ohne Konvertierung, negative Strides, spaltenkontiguierliche und Broadcast- +Backings, Dtype-View-Sharing und -Copy, skalare/ungültige/leere Ausgaben. +Large-Index-Grid und originale Large-Pipelines sind ohne große GPU-Allokation +geprüft; keine Ausführung von Multi-GB-Copies daraus behauptet. + +Prüfstand: **76/76 normal (41,86 s)**, **76/76 unretained (41,29 s)** und +**3/3 View-/Reshape-/Konvertierungsketten mit Fast-Fences (0,15 s)**. +Release-Test-Clippy, Produkt-Buildcheck, Format-/Diff-Prüfung und Quellen-/ +Metallib-Hash-Prüfung bestanden; beide Referenz-Checkouts sauber auf den Pins. +Beleg: `local-eval-results/20260907-mtplx-port/dtype-copy-view-check.log`. + +**Offen bleiben** die vollständige Array-Ops-API samt Promotion, weitere +Modellprimitive/logische QSA-Anbindung, CPU-Modelloperationen, Compile-Cache- +Clear und die Produktionsintegration mit Instrumentation. Weiterhin `cfg(test)`; +keine Gesamtmodell-/UI-/2%-Performance-Abnahme. + +### Graph-eigene Array-Operationen statt externer Test-Zuordnung (2026-09-07) + +Array-Deskriptoren können jetzt ihre konkrete Operation besitzen. Der neue +`ops::evaluate` verwendet unverändert den gemeinsamen Eval-/Async-Eval-Pfad, +liest den Payload aber aus dem Graphen, nicht aus einer externen ID-/Callback- +Tabelle. Detach gibt auch diesen Payload frei. Die bisherigen spezialisierten +Fixture-Callbacks bleiben verfügbar; der Produktionsmodellpfad ist noch nicht +umgeschaltet. + +Lazy-Konstruktoren für Reshape, Transpose, Broadcast, AsType, Dtype-View, +ExpandDims und Squeeze übernehmen Shape-/Achsenprüfung, negative Achsen, +Reshape-Inferenz und die jeweiligen No-op-Regeln aus `ops.cpp`. ExpandDims +fügt Stride 1 ein, Squeeze entfernt nur die ausgewählten Strides; Flags, +Data-Größe und Offset bleiben geteilt wie in `common.cpp`. CPU-Ausführung +ist hier nur für diese gemeinsamen Views angeschlossen; CPU-Copy/Conversions +bleiben ausdrücklich offen und werden nicht still auf die GPU umgeleitet. + +Der überwachte Test baut Qwens `pooled.astype(float32).swapaxes(1,2)[:,None]` +aus diesen Konstruktoren und verbindet weitere Reshape-/View-/Broadcast- +Verbraucher einschließlich GPU→CPU und Async→Sync. Vor Evaluation entstehen +keine GPU-Allokationen. Er prüft erwartete Shape/Strides, bytegenaue Werte, +No-op-Identitäten/Fehler und die Freigabe ursprünglicher Arrays und Operations- +Payloads. Das ist eine eigenständig ausführbare Layout-Graphfolge, noch keine +Anbindung des vollständigen QSA-Caches oder Qwen-Modells. + +Prüfstand: **77/77 normal (41,19 s)**, **77/77 unretained (41,47 s)**; +neuer Graph mit Fast-Fences **1/1 (0,06 s)**. Release-Test-Clippy, Produkt- +Buildcheck, Format-/Diff- und Originalquellen-/Metallib-Prüfung bestanden. +Beleg: `local-eval-results/20260907-mtplx-port/owned-operations-check.log`. + +### Slice-Normalisierung und Contiguous für Cache-Fenster (2026-09-07) + +Der graph-eigene Slice-Konstruktor übernimmt die Normalisierung von Start/Stop, +Vorwärts-/Rückwärts-Schritten und Singleton-Strides aus `ops.cpp`. Die No-op- +Entscheidung verwendet das ursprüngliche Vorzeichen vor der Singleton- +Vereinfachung. Rangfehler und Schritt null werden vor Graphanlage abgewiesen. +Ausführung nutzt den vorhandenen geteilten Slice-Backend, ohne neuen Kernel. + +`Contiguous` ist wie in `ops.cpp` immer ein eigener Knoten. Sein GPU-Backend +teilt row-contiguous oder ausdrücklich erlaubte column-contiguous Inputs nur +innerhalb der ursprünglichen 16-KiB-Backing-Grenze; sonst verwendet es den +gemeinsamen Original-General-Copy. Diese Entscheidung ist für Qwens +`cache[0] = contiguous(conv_input[:, -n_keep:, :])` relevant, damit ein kleines +Fenster nicht unbegrenzt ein großes Prefill-Backing hält. + +Der überwachte Graph-Test prüft Slice-Werte/Identitäten/Strides, leere und +skalare Inputs, negative Grenzen/Schritte und Fehler. Dieselbe Zwei-Zeilen- +Cache-Ansicht wird einmal aus kleinem Backing geteilt und einmal aus großem +Backing kopiert; Column-Major erlauben/verbieten ist separat geprüft. Keine +Modellgewichte geladen; vollständige QSA-/Modellintegration und Performance- +Abnahme bleiben offen, der Port bleibt `cfg(test)`. + +Prüfstand: **78/78 normale modellfreie Tests (41,85 s)**. Die beiden graph- +eigenen Operationsprüfungen bestehen zusätzlich **2/2 unretained (0,09 s)** +und **2/2 Fast-Fences (0,08 s)**; keine vollständige unretained-Wiederholung +in diesem Schritt. Release-Test-Clippy, Produkt-Buildcheck, Format-/Diff- +Prüfung und Quellen-/Metallib-Hashes bestanden. Beleg: +`local-eval-results/20260907-mtplx-port/slice-contiguous-check.log`. + +### RMSNorm als rechnende Graphoperation (2026-09-07) + +Der Array-Payload-Pfad unterstützt jetzt mehrere Eingaben; RMSNorm trägt Input +und Gewicht als normale Graphkanten. Der GPU-Konstruktor folgt `fast.cpp` +einschließlich der für RMSNorm gültigen Floating-Promotion, vorgeschalteter +AsType-Knoten und skalarem Eins-Gewicht im ungewichteten Fall. CPU-Fallback- +Arithmetik bleibt offen und wird ausdrücklich abgewiesen, nicht auf GPU +umgeleitet. + +Der Backend übernimmt `metal/normalization.cpp` statt pauschal `contiguous` +aufzurufen: passende zusammenhängende letzte Dimension und zulässiger +vorletzter Stride; anschließend Donation oder gleichartiges Backing. Andere +Layouts werden einmal dicht kopiert, und dieses Backing wird zum Output. +Die Zeilenzahl folgt der physischen Data-Größe, nicht der virtuellen Shape. +Input-/Gewicht-/Output-Offsets und Gewicht-Stride gehen in den Originalkernel. +Der frühere BF16-Helper und der neue Graphbackend teilen denselben Dispatch; +kein neuer Normalisierungsshader, keine neue Flush-/Wait-Grenze. + +Neue überwachte Prüfung: FP16/BF16/FP32, Breiten 1/128/4096/4097, vorhandene +Input-Aliase versus letzter Verbraucher, Broadcast-Backings, notwendige +Input-Copy, strided/versetzte Gewichte und Inputs, ungewichtete Norm, +BF16+FP16→FP32 sowie ungültige Shapes. Die vorhandenen BF16-Modul-/QSA-/GDN- +Fixtures prüfen zusätzlich den gemeinsam umgestellten Dispatch. Das bleibt +ein kanonischer `cfg(test)`-Port; vollständige Modellintegration und der +Gesamtmodell-Performance-Nachweis sind nicht damit erreicht. + +Prüfstand: **79/79 normal (41,87 s)** und **79/79 unretained (41,49 s)**; +RMSNorm-Graph mit Fast-Fences **1/1 (0,08 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff- und Originalquellen-/Metallib-Prüfung bestanden. +Beleg: `local-eval-results/20260907-mtplx-port/graph-rms-norm-check.log`. + +### Quantisierte BF16-Projektionen als Graphoperation (2026-09-07) + +Der normale transponierte Affine-Linear-Pfad der installierten Qwen-Gewichte +ist jetzt eine Operation mit vier Graphkanten (x, W, scales, biases). Output- +Allokation vor der Eingabevorbereitung und `ensure_row_contiguous_matrix` +folgen `metal/quantized.cpp`: nur die letzten beiden Strides entscheiden +über die notwendige General-Copy; kein Contiguous-Slack-Kriterium. Kopien +werden als Encoder-Temporaries bis zum GPU-Abschluss gehalten. + +Graph und bestehende Modul-Fixtures benutzen denselben Affine-Dispatcher: +QMV/Quad/Wide, QMM/NAX/Split-K und die Split-Reduktion bleiben unverändert. +Die Eingaben erhalten ihre tatsächlichen Byte-Offsets und Array-Data-Größen +für Bindings und Submission-Zähler. Keine neuen Shader, Flushes oder Waits. +Der Graphzweig ist ausdrücklich BF16 mit zweidimensionalen 4/8-Bit-Gewichten, +Gruppengröße 32/64. Andere Dtypes und echte batched/expert-Matmul-Graphzweige +sind noch offen; sie werden nicht stillschweigend flachgerechnet. + +Die neue überwachte Prüfung führt alle **78** bestehenden Referenz-Fixtures +jeweils dicht, mit führendem Storage-Offset und mit strided Eingaben aus. +Alle vier Eingaben werden variiert; x behält über ExpandDims eine zusätzliche +Batch-Dimension, ohne vorab per Reshape dicht kopiert zu werden. **234/234 +Outputs sind exakt** gegenüber den gepinnten Referenz-Hashes. Kein Modell +geladen, kein Download, kein Gesamtmodell-Performance-Vergleich. + +Prüfstand: **80/80 normal (42,51 s)** und **80/80 unretained (42,62 s)**; +der neue Graph-Test mit Fast-Fences **1/1 (0,99 s)**. Release-Test-Clippy, +Produkt-Buildcheck, Format-/Diff- und Originalquellen-/Metallib-Prüfung bestanden. +Produktintegration und vollständige Modelloperationen bleiben offen; dieser +Graph ist weiterhin `cfg(test)`. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-quantized-linear-check.log`. + +### Elementweise Unary-Operationen im Graph (2026-09-07) + +Negative, Square, Exp, Sigmoid, Tanh, Sqrt und Rsqrt sind jetzt eigene +Graph-Payloads. Konstruktoren folgen den jeweiligen `ops.cpp`-Typregeln: +Negative/Square erhalten den Typ, die übrigen verwenden `at_least_float` +mit vorgeschaltetem AsType; Negative/Bool und Sigmoid/Complex werden wie +in der Referenz abgewiesen. CPU-Arithmetik bleibt ausdrücklich unportiert. + +Der gemeinsame Backend folgt `metal/unary.cpp`: physische Data-Größe bei +zusammenhängendem Backing, `v`/`vn`-Wechsel bei 65536 Elementen, `v2` für +große zusammenhängende Daten, sonst zusammengefasste Dimensionen und +`gn1`/`gn4large`. Kernel-Maximalgruppen und Original-Grid-Regeln werden +verwendet. Inputs und Outputs tragen ihre Byte-Offsets und Data-Größen. +Die Original-Metallib wird nicht verändert. + +`set_unary_output_data` ist mit AsType geteilt: Donation nur bei eindeutiger +Ownership, gleicher Elementbreite und höchstens 16 KiB zusätzlichem Backing; +sonst physisches gleichartiges Backing bei Contiguous oder dichter Output +für allgemeine Strides. Der bisherige Single-Array-Collapse von Reshape +wird ebenfalls wiederverwendet, nicht mit dem Joint-Copy-Collapse vermischt. + +Der überwachte Test prüft exakte dyadische Werte für FP16/BF16/FP32 bei +0/1/65535/65536/65537 Elementen, mit und ohne Alias, sowie transponierte, +strided, negative, Broadcast- und Offset-Views, übergroße Backings, +Integer-Square und Integer→Float-Sqrt. Eine anfänglich falsche Testannahme +zur Donation von Reverse-Views wurde anhand `check_contiguity` korrigiert: +negative Strides zählen dort nicht zur positiven physischen Contiguity; +der Backend erzeugte bereits korrekt einen neuen dichten Output. +Große >UINT32-Allokationen werden mit diesem Test nicht behauptet. + +Prüfstand: **81/81 normal (43,88 s)** und **81/81 unretained (42,99 s)**; +Unary mit Fast-Fences **1/1 (0,41 s)**. Release-Test-Clippy, Produkt-Buildcheck, +Format-/Diff-Prüfung und unveränderte Originalquellen/Metallib bestätigt. +Produktgraph und vollständige Modellintegration bleiben offen. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-unary-check.log`. + +### Binäre Graphoperationen und gemeinsame Typ-Promotion (2026-09-07) + +Add/Subtract/Multiply/Divide/Maximum/Minimum/LogAddExp laufen jetzt als +binäre Graph-Payloads durch denselben Evaluator. Ihre Konstruktoren übernehmen +`ops.cpp`: Typ-Promotion, gegebenenfalls `at_least_float`, AsType beider +Eingaben und Broadcasting einschließlich der Null-Dimensionen. + +Die vollständige Promotion der 14 Referenztypen ist gemeinsam in Dtype +implementiert und gegen alle **196** Einträge der gepinnten `dtype.cpp`- +Tabelle geprüft. RMSNorm und Unary benutzen die gemeinsamen Typregeln statt +eigener Teilabbildungen; ihre bestehenden Prüfungen bleiben erhalten. + +Der Binary-Backend übernimmt `common/binary.h` und `metal/binary.cpp`: +Scalar/Scalar, Scalar/Vector, Vector/Scalar, gemeinsame Row-/Column-Vector- +Layouts und General. Scalar/Scalar allokiert ein neues physisches Element; +die übrigen Fälle erhalten referenzgleiche Donation-Priorität und Strides. +General kann einen passenden dichten Input übernehmen. Elementbreite, +Ownership und 16-KiB-Slack werden gemeinsam mit Unary/AsType geprüft. + +General-Dispatch verwendet den Joint-Collapse von Input A, Input B und +Output; derselbe verallgemeinerte Helfer ersetzt den bisherigen Zwei-Layout- +Collapse für Kopien. `g1/g2/g3/gn2/gn4large` sowie `ss/sv/vs/vv` mit den +Vector-Arbeitsgrenzen werden aus den Originalregeln selektiert. Kernelquellen +und Metallib bleiben unverändert; keine neue Flush-/Wait-Grenze. + +Überwachte GPU-Prüfung: BF16/FP32, alle sieben Operationen, leere Eingaben, +Scalar/Vector-Grenzen bei 1/65535/65536/65537, alle Donation-Prioritäten, +Column-/General-Layouts, zweiachsiges Broadcasting, rank-5 General-Dispatch, +nichtkonstante Reverse-/Offset- und rank-5-Indizierung, gemischte Typen und +Integer-Division mit Float-Promotion. Die erste Donation-Prüfung hielt ihre +ursprünglichen Eingaben durch Rust-Shadowing ungewollt weiter am Leben; +die Testeingaben werden nun vor der Auswertung ausdrücklich freigegeben. +Der Backend war in diesem Fall korrekt nicht-donierend. Keine Änderung der +Original-Ownership-Regeln zur Anpassung an eine falsche Testannahme. + +Das bleibt `cfg(test)`-Grapharbeit; vollständige Modell-/Produktintegration +und der Gesamtperformance-Nachweis bleiben offen. Prüfstand: **83/83 normal +(44,06 s)**, **83/83 unretained (44,03 s)**, binärer Graph mit Fast-Fences +**1/1 (0,13 s)**. Release-Test-Clippy, Produkt-Buildcheck, Format-/Diff-Prüfung, +Originalquellen-/Metallib-Prüfung bestanden. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-binary-check.log`. + +### Shared-Expert-MLP als zusammenhängender Graph (2026-09-07) + +`_FusedGateUpMLP` ist jetzt aus normalen Graphknoten aufgebaut: quantisierte +fusionierte Gate/Up-Projektion → Split → der tatsächlich erfasste kompilierte +BF16-SiLU-Kernel → separater Multiply → quantisierte Down-Projektion. Kein +eager Mehrkernel-Callback und keine neue Shaderimplementierung. + +Split ist ein gemeinsamer Mehrfach-Output-Knoten mit Geschwistern. Jedes +Geschwister trägt denselben Operation-Payload; der bestehende Evaluator kann +jedes davon als primären Output wählen. Der schnelle Split übernimmt exakt +die Flags-/Data-Größen-Regeln aus `common.cpp`, allgemeine Indizes gehen über +die Slice-Fallbackknoten aus `ops.cpp`. Das ist materiell für Submission: +bei `[2,6]` entlang der letzten Achse liefert Split pro Hälfte `data_size=6`, +nicht die überstrichene Spanne von 9 Elementen. Der neue Graph zählt das +referenzgleich; die älteren isolierten Buffer-Helper sind damit nicht pauschal +als graph-/scheduling-identisch erklärt. + +Die SiLU-Graphoperation nutzt die unveränderten 19 erfassten JIT-Varianten. +Contiguity, Joint-Collapse, negative/large Indizes, dynamische Ränge und +Donation folgen `common/compiled.cpp` und `metal/compiled.cpp`. Insbesondere +hat compiled Donation keine 16-KiB-Slack-Grenze; diese wird nicht aus Unary +übertragen. Die Kernelwahl liest die Output-Data-Größe wie im Referenzcode +vor der Allokation, nicht ersatzweise die logische Shape. Dieser Port betrifft +den erfassten nichtskalaren BF16-SiLU-Pfad, nicht einen allgemeinen Compiler. + +24 neue modellfreie Receipts wurden direkt durch die tatsächliche MTPLX- +Klasse erzeugt: 1/4/7/2048 Zeilen, installierte 2560→1280→640→2560-Projektionen +und kleine 128/64-Grenzfälle, 4-/8-Bit und Gruppen 32/64. Alle 24 finalen +Outputs sind exakt. Zusätzlich stimmen beide Outputs der zehn vorhandenen +SiLU/Gate-Up-Fixtures durch den echten Split-/Multiply-Graphen exakt. +Separate Layoutprüfungen decken Split-Geschwisterauswahl, wiederholte und +allgemeine Indizes, Strides/Offsets und compiled Donation ab. +Positive und negative nichtzusammenhängende Ränge 4/8 decken die festen und +dynamischen erfassten SiLU-Kernel ab. Die Donation eines Inputs mit negativer +Singleton-Stride übernimmt im strided compiled Zweig die Output-Strides; +diese beim abschließenden Source-Abgleich korrigierte Stelle hat einen eigenen +Regressionstest. + +Der Referenzgenerator verwendet den bestehenden Pattern-/QuantizedLinear- +Aufbau gemeinsam mit den MoE-Fixtures; kein Download und kein Modellladen. +Referenzreceipts: `tests/fixtures/mtplx-shared-mlp.jsonl`. Produktanbindung, +übrige Modelloperationen und Gesamtmodell-Performance-Parität bleiben offen. +Prüfstand: gesamte Port-Suite **85/85 normal (43,50 s)** und **85/85 unretained +(43,79 s)**. Nach der abschließenden Singleton-Stride-Korrektur die beiden +betroffenen Tests erneut **2/2 normal (0,28 s)**, **2/2 unretained (0,31 s)** +und **2/2 Fast-Fences (0,27 s)**. Clippy, Produkt-Buildcheck, Python-Syntax, +Format-/Diff-Prüfung und Originalquellen-/Metallib-Prüfung bestanden. +Prüfbeleg: `local-eval-results/20260907-mtplx-port/graph-shared-mlp-check.log`. + +### Qwen-Normalisierungsmodule als zusammenhängender Graph (2026-09-07) + +`normalization.rs` bildet jetzt `GroupedRMSNorm` und `SigmoidRMSNormGated` +aus `qwen4_exp.py:350–386` als gewöhnliche Graphknoten ab. Gruppierte Norm: +Reshape → ungewichtete RMSNorm → Reshape → voller Gewichts-Multiply. +Die Gewichtung wird nicht in RMSNorm gezogen; die BF16-Rundungsstelle bleibt. +Gated Norm: gewichtete RMSNorm, Gate-Cast nach FP32 → Sigmoid, +Norm-Cast nach FP32 → Multiply mit Gate als erstem Operand → Rückkonvertierung +auf den Hidden-State-Typ. Auch ohne Gate erfolgt diese Rückkonvertierung. +Keine neuen Shader und kein eager Callback für das gesamte Modul. + +Alle **25 bestehenden tatsächlichen MTPLX-Modulreceipts** stimmen exakt: +zehn Gruppierungs-/Kernelgrenzfälle und fünf Tokenzahlen (1/4/7/11/2048) +mit keinem, zusammenhängendem oder gestridetem Projektions-Gate. Projektions- +Gates entstehen durch echte Slice-/Reshape-Knoten, nicht vorab dichte Buffers. +Zusätzliche Prüfungen sichern gemischte Gewichtstypen, Rückkonvertierung +mit/ohne Gate und ungültige Gruppengrößen ab. + +Prüfstand: gesamte Port-Suite **86/86 (44,38 s)**; beide Normalisierungs- +Graphprüfungen zusätzlich **2/2 unretained (0,26 s)** und **2/2 Fast-Fences +(0,26 s)**. Clippy, Produkt-Buildcheck und Originalquellen-/Metallib-Prüfung +bestanden. Beleg: `local-eval-results/20260907-mtplx-port/graph-norm-check.log`. +Der Graph bleibt `cfg(test)`; vollständige Modell-/Produktanbindung und +Gesamtmodell-Performance-Parität bleiben offen. Dies ersetzt keinen P16-Lauf. + +### GDN-Decode als Zustandsgraph und Dispatch-Geometrie (2026-09-07) + +`qwen_mtplx/gdn.rs` verbindet die Eingangsprojektionen, den tatsächlichen +dreifachen Custom-Kernel-Output und die Ausgangsprojektion als normale +Array-Knoten. Fusionierte Projektionen verwenden Split-Geschwister; getrennte +und gemischt quantisierte Projektionen bewahren qkv → z/Head-Reshape → b → a. +Conv- und FP32-Delta-Zustand werden als Graphwerte an den Folgeschritt gegeben. +Ein fehlender Conv-Zustand mit vorhandenem Delta-Zustand entsteht wie in der +Referenz als Broadcast-Nullarray, das erst am Custom-Kernel materialisiert wird. + +Die Custom-Primitive folgt `metal/custom_kernel.cpp`: alle drei Outputs zuerst +allokieren, danach nicht-row-contiguous Inputs in Argumentreihenfolge per +General-Copy vorbereiten, Offsets/physische Data-Größen binden und Kopien bis zur +Command-Completion halten. Kein eager Mehrkernel-Callback und kein neuer Shader. + +**Konkrete Geometrieabweichung korrigiert:** Der bisherige eager `gdn_decode` +übermittelte das MTPLX-Thread-Grid `[256,1,48]` mit `individual_threads=false`. +Die native Bridge führte damit `dispatchThreadgroups` aus: 256 Gruppen in X +statt einer, bei identischen Ausgaben aus redundanten Schreibvorgängen. +`gdn_step_fused.py:237`/`custom_kernel.cpp` verlangen `dispatchThreads`. +Der neue Graph und der alte Helper nutzen jetzt dieselbe korrekte Bindung. +Das ist eine Korrektur im bislang `cfg(test)`-Port, **keine Erklärung oder +Behebung des produktiven UI-Stalls**. Es wurde kein Gesamtmodell-Speedup daraus +abgeleitet. + +Ein opt-in Test-Recorder erfasst erfolgreiche native Dispatch-Aufrufe mit +Kernelname, Grid, Gruppengröße und Thread-/Gruppensemantik. Regressionstests +prüfen den tatsächlichen GDN-Aufruf im eager und Graph-Pfad, nicht nur Hashes. +Der Recorder ist `cfg(test)` und gelangt nicht in Produktmessungen. + +Zwölf bestehende tatsächliche `GatedDeltaNet.__call__`-Receipts stimmen exakt: +fused/separate/mixed, mit/ohne anfänglichen Conv-Zustand, jeweils zwei Schritte. +Jeder Fall läuft sowohl mit Evaluation pro Schritt als auch als ein verbundener +Graph mit gemeinsamer späterer Evaluation. Zwei weitere GDN-Kernelreceipts +prüfen gestridete Inputs mit Offset, General-Copies und Evaluation vom letzten +Output-Geschwister aus. Wiederverwendung des MLP-Affine-Fixture-Helfers; keine +neuen Referenzdaten, Modelle oder Downloads erforderlich. + +Prüfstand: Port-Suite **88/88 normal (43,96 s)**; nach dem abschließenden +z-Reshape-Reihenfolgeabgleich **88/88 unretained (44,01 s)** und betroffene +Graphprüfungen **2/2 normal (0,18 s)** / **2/2 Fast-Fences (0,18 s)**. Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung und Originalquellen-/Metallib-Prüfung +bestanden. Beleg: `local-eval-results/20260907-mtplx-port/graph-gdn-check.log`. +Staged Prefill/Verify, Branch-/Capture-/Cache-Orchestrierung und vollständige +Modell-/Produktanbindung bleiben offen; P06 und die P16-Paritätsabnahme bleiben +unerledigt. Die neue Funktion ersetzt ausdrücklich nicht deren übrige Zweige. + +### GDN-Verify, Delta-Update und gemeinsame Compiled-Ausführung (2026-09-07) + +Der fusionierte Conv-Verify-Zweig für B=1/S=2..6 ist jetzt durchgehend als +Array-Graph verbunden: Eingangsprojektionen/Split → Conv/Norm → Delta-Update +→ SigmoidRMSNormGated → Ausgangsprojektion. Conv-/Delta-Zustand und die sechs +Capture-Commit-Eingänge werden referenzgleich weitergegeben. Capture hält +qkv/q/k/v/a/b nur bei aktivierter Erfassung; ohne Capture werden diese +zusätzlichen Referenzen nicht im Rückgabewert gehalten. Cache-Advance und +Modell-Branchauswahl bleiben Aufgaben der noch ausstehenden Orchestrierung. + +`gated_delta_update` enthält normale Sigmoid-, Compiled-compute_g- und +Custom-Kernel-Knoten einschließlich optionalem FP32-Nullzustand und Maske. +Die ursprünglichen Conv/Norm- und Rekurrenzkernel verwenden gemeinsam die +CustomKernel-Allokations-/Copy-/Lebensdauerfolge des vorigen Decode-Ports. +Der GDN-Conv-Dispatch zählt 10240 Threads/1024 pro Gruppe; Delta zählt +`[32,128,B*48]` Threads mit `[32,4,1]` pro Gruppe. Die Testbeobachtung an der +nativen Grenze sichert diese Geometrien ab. + +SiLU und compute_g verwenden den gemeinsamen `compiled.rs`-Evaluator für die +bereits erfassten nichtskalaren Kernel: Contiguity über alle Eingänge, +Broadcast-/Joint-Collapse, negative/large Indizes, Output-Allokation und +Donation gemäß `common/compiled.cpp`/`metal/compiled.cpp`. Kein neuer Shader +und kein allgemeiner JIT-Ersatz. Ein direkter DOT-Export aus dem gepinnten +Referenzprozess bestätigt A_log `[48]`, a `[1,1,48]` und dt_bias `[48]` als +direkte Compiled-Eingänge; die Softplus-Konstante ist im erfassten Shader. +Auch die einzelne GDN-Zeile wählt deshalb den kollabierten strided-1-Kernel, +nicht anhand der physischen Länge einen contiguous-Kernel. Die tatsächliche +compute_g-Kernelwahl wird für alle 80 Delta-Receipts mitgeprüft. + +Nachweise: sechs Conv/Norm-Kernelreceipts und 80 tatsächliche Delta-Update- +Receipts exakt (1/4/7/32/2048 Zeilen, beide Gate-Layouts, Maske an/aus, +Initialzustand an/aus, zwei fortgesetzte Schritte). Zwölf vollständige echte +Verify-Modulreceipts bei 2/4/6 Zeilen stimmen einschließlich Q/K/V exakt; +alle drei Hauptoutputs ohne Capture sind dazu bytegleich. Der erste +Verify-Testversuch verwendete für vier Zeilen einen nicht existierenden +Forward-Fixturenamen; die Zuordnung wurde auf die vorhandenen vollständigen +Staged-Receipts korrigiert, keine Referenzwerte oder Hashprüfung abgeschwächt. + +Prüfstand: gesamte Port-Suite **90/90 normal (46,46 s)** und **90/90 unretained +(45,17 s)**. Fast-Fences: GDN **4/4 (1,13 s)**, MLP **2/2 (0,28 s)**. +Nach zusätzlicher compute_g-Dispatch-Assertion derselbe betroffene Test erneut +normal/unretained/Fast-Fences bestanden (0,94/0,90/0,96 s). Clippy, +Produkt-Buildcheck, Format-/Diff-Prüfung und Originalquellen-/Metallib-Prüfung +bestanden. Beleg: `local-eval-results/20260907-mtplx-port/graph-gdn-verify-check.log`. + +Offen bleiben der allgemeine Concatenate/Conv1d/Reduktions-Prefill-Graph, +maskierte/ragged Conv-Fallbacks, Single-Row-Output-Fusion als Graph, vollständige +Branch-/Capture-Commit-/Cache-Orchestrierung und Produktintegration. Die +2048-Zeilen-Rekurrenzprüfung ist **kein vollständiger Prefill-Nachweis**. +P06/P16 und das Drei-Modell-Performanceziel bleiben ausdrücklich offen. + +### GDN-Conv1d-Prefill als zusammenhängender Array-Graph (2026-09-07) + +Der unmaskierte, längenlose Conv1d-Fallback ist jetzt von den Eingangsprojektionen +bis zur Ausgangsprojektion verbunden: Concatenate → Contiguous-Conv-Zustand → +Depthwise-Conv1d → erfasste SiLU → Split/Head-Reshape → FP32-L2-Summe/Rsqrt → +BF16-Rückkonvertierung/Q-Skalierung → Delta-Update → SigmoidRMSNormGated → +Ausgangsprojektion. Auch S=1 bei abgeschalteter Fusion nimmt diesen Pfad. +Die vorherige Beschränkung auf den fusionierten Verify-Zweig entfällt damit +für unmaskierte Eingaben ohne Cache-Längen. Modellwahl und cache.advance(S) +sind weiterhin nicht durch diese Graphfunktion ersetzt. + +Concatenate verwendet die gemeinsame Copy-Implementierung jetzt auch als +GeneralGeneral: gemeinsame Kollabierung von Quell-/Ziel-Strides, echte +Byte-Offsets, Referenz-Datengrößen und concurrent disjoint writers. Die +Output-Slices sind wie in der Referenz primitive-/speicherlose temporäre +Array-Deskriptoren mit anschließend geteiltem Output-Backing. Conv1d allokiert +zuerst den Output und materialisiert danach bei Bedarf Input und Gewicht in +dieser Reihenfolge. Kein neuer Shader und keine eigene Faltung: Der originale +`depthwise_conv_1d_*`-Kernel zählt `[C,Tout,B]` Threads. Die GDN-Summe wählt +referenzgleich zwischen row_reduce_looped (16 Köpfe bei S=1) und +row_reduce_simple (ab 32 Köpfen); die übrigen allgemeinen Reduktionspläne +werden nicht als portiert ausgegeben. + +Der bestehende vollständige Modulreceipt-Test umfasst jetzt **52 Fälle**: +12 fusionierte Verify-Fälle und 40 Conv1d-Fallback-Fälle, S=1/2/4/6/7/32/2048, +Initialzustand an/aus, zwei fortgesetzte Schritte und die jeweils anwendbaren +Fusionsflags. Alle sechs Output-Hashes einschließlich q/k/v sowie beider +Folgezustände sind exakt. Ohne Capture stimmen die drei Hauptoutputs bytegenau +mit dem Capture-Lauf überein. Kernelwahl und Dispatch-Geometrie von Conv1d und +beiden Summen werden an der nativen Grenze zusätzlich geprüft. Der strided +V-Capture wird ausschließlich nach dem eigentlichen Forward für den +Fixture-Reader gepackt; der Modellgraph behält seinen originalen View. +Ein kleiner zusätzlicher Concatenate-Test prüft vierdimensionale transponierte +und rückwärts gerichtete Views, alle vier Achsen, Typ-Promotion, leere Inputs +und die Referenz-Single-Input-Identität vor Achsenvalidierung. + +Prüfstand: komplette Port-Suite **91/91 normal (45,89 s)** und **91/91 unretained +(45,40 s)**; Fast-Fences: GDN **4/4 (1,84 s)**, Concatenate **1/1 (0,05 s)**. +Clippy, Produkt-Buildcheck, Format-/Diff-Prüfung bestanden. Originalquellen weiterhin +15 Körper / 35 Custom-Einstiegspunkte / 20 Runtime-Einheiten / 84 Runtime- +Einstiegspunkte plus dynamische QSA-Quellen exakt, unveränderte Metallib-SHA256 +`dc59d1cceb1a5c7e578232e6e41e28e2c73c9463ac6dbc3886c3ee17ffc270ed`. +Prüfbeleg: `local-eval-results/20260907-mtplx-port/graph-gdn-prefill-check.log`. + +**Weiter offen:** maskierter Conv-Select, ragged Cache-Längen/Gather, +Single-Row-Output-Fusion als Graph, vollständige Modell-/Cache-/Capture-Commit- +Orchestrierung und Produktintegration. P06/P16 bleiben offen. Der gesamte Port +ist weiterhin `cfg(test)`; weder UI-Responsivität noch Durchsatzparität sind +damit nachgewiesen. Die vollständigen Drei-Modell-Chats werden dadurch nicht +ersetzt; es gab keinen Modelllauf, Download oder Performance-Rollback. + +### Maskierter und längenabhängiger GDN-Prefill (2026-09-07) + +Der Conv1d-Graph enthält nun auch MTPLXs Maskierungs- und ragged-State-Zweig. +QKV wird vor Concatenate mit `where(mask[..., None], qkv, 0)` maskiert; Capture +bewahrt genau diesen QKV-Strom. Die ursprüngliche Maske geht zusätzlich an die +Delta-Rekurrenz. Für Cache-Längen bleibt die Referenzfolge als einzelne Knoten +erhalten: Maximum/Minimum auf `[0,S]` → ExpandDims → Arange(INT32) → Add → +ExpandDims → GatherAxis über das Conv-Fenster. Keine CPU-Auswertung des +Längentensors und kein vorgezogener GPU-Sync. Ohne Längen bleibt der bestehende +Contiguous-Tail-Zweig unverändert. + +`indexing.rs` enthält die dazu verwendeten Select-, GatherAxis- und Prefix- +Arange-Primitiven. Select übernimmt Typ-/Broadcast-Regeln sowie Scalar-/Vector-/ +General-Kernelwahl, Donation, Strides und Dispatch aus der gepinnten Runtime. +Gather verwendet die bereits exportierten BF16/I32- bzw. BF16/U32-Kernel mit +tatsächlichen Src-/Index-Contiguity-Flags, Größen, Strides und Byte-Offsets. +Statisches Broadcast wird von Binary, Select und GatherAxis gemeinsam genutzt. +Andere Gather-Dtypes bzw. dynamisches Broadcast-Tracing werden damit nicht als +portiert erklärt. + +Eine ABI-Abweichung wurde an der gemeinsamen Bridge behoben: Leere Inline- +Vektoren werden von `ds4_gpu_mtplx_encode` nicht mehr pauschal zurückgewiesen. +Die Referenz bindet bei Rank-1-Gather tatsächlich null Byte für Shape/Strides. +Die Bridge führt jetzt denselben Metal-Aufruf aus; kein Dummy-Payload, keine +Shaderänderung. Nichtleere Nullpointer, Übergröße, Offsets und doppelte Slots +werden weiterhin zurückgewiesen. Der Rank-1-Gather-Test schließt rückwärts +gerichtete Source-/Index-Views mit nichtnull Byte-Offsets ein. + +Der erweiterte vollständige GDN-Modultest prüft **116 MTPLX-Receipts exakt**, +jeweils sechs Outputs einschließlich beider Zustände, plus bytegleiche +Capture-off-Hauptoutputs. S=1/2/4/6/7/32/2048, maskiert/unmaskiert, zwei +fortgesetzte Schritte, Initialzustand an/aus und Längen unter/innerhalb/über der +Chunk-Grenze. Längenfälle hier S=4/7; S=1 bei aktivierter Output-Fusion bleibt +bis zum Port dieser Fusion offen. Die tatsächliche Select-/Gather-Kernelwahl +und Geometrie werden zusätzlich beobachtet. Ein kleiner Indexing-Test deckt +alle fünf Select-Layoutarten, Column-Layout, Broadcast-Gather, negative Indizes, +BF16/I32/U32, Rank-1-Leerargumente und leeres Arange ab. + +Prüfstand: gesamte Port-Suite **92/92 normal (45,39 s)** und **92/92 unretained +(45,23 s)**. Fast-Fences: GDN **4/4 (2,62 s)**, Indexing **1/1 (0,06 s)**. +Clippy (8,87 s), Produkt-Buildcheck (3,26 s), Format-/Diff- und Originalquellen-/ +Metallib-Prüfung bestanden. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-gdn-masked-lengths-check.log`. + +Weiterhin offen sind Single-Row-Output-Fusion, vollständige Modell-/Cache-/ +Capture-Commit-Orchestrierung und Produktintegration. Der Port bleibt +`cfg(test)`; keine Modell-/UI-/Performance-Paritätsbehauptung. P06/P16 und das +vollständige Drei-Modell-Ziel bleiben offen; keine Downloads oder Rücknahmen. + +### Gemeinsamer GDN-Forward, Output-Fusion und Cache-Fortschreibung (2026-09-07) + +Die getrennten kanonischen `fused_decode`-, `prefill`- und `fused_verify`- +Einstiege sind durch `gdn::forward` ersetzt. Dieser bildet für die installierte +Inferenzgeometrie die Reihenfolge von `GatedDeltaNet.__call__` ab: Projektionen, +Conv-State/Maskierung, Fused-Step oder Conv-Zweig, Capture, Delta-Update, +Cache-Fortschreibung und Output-Fusion oder Norm/Projektion. Die unveränderten +Kernel werden nicht anhand lokaler Geschwindigkeitsvergleiche ausgewählt. + +- Capture sperrt den Live-Step, aber nicht pauschal Conv-/Output-Fusion. + Bereits gespeicherte Capture-Arrays bleiben erhalten, bis ein neuer Capture- + Aufruf sie ersetzt. Der Step-Zweig kehrt vor der separaten Output-Fusion zurück. +- Cache-Längen und Masken sperren Conv-Fusion; B>1 und fehlender Cache verwenden + den allgemeinen Conv-Zweig. Ohne Cache wird kein Cache-Tail-Graph erzeugt. + Die tatsächlichen einmaligen Single-/Multi-Row-Geräteproben werden wie in + MTPLX ausgeführt und ihr Erfolg pro Prozess gespeichert. +- `Cache::advance` subtrahiert S von Längen und linkem Padding als Tensor- + Operationen, bevor der Output-Graph aufgebaut wird; kein CPU-Readback. + Der aktuelle Vertrag für diese Metadaten ist INT32. +- Die Single-Row-Output-Fusion verwendet die Originalkörper für Gruppen32/64 + und BF16/FP32-Eingabe, einschließlich exakt 81920 Threads in 1024er Gruppen. + +Referenzabdeckung: alle **264 Forward-Receipts** mit fusionierten, getrennten +und gemischt quantisierten Eingangsprojektionen; jeweils sofortige und +verzögerte Auswertung zweier aufeinanderfolgender Aufrufe. Zusätzlich werden +die tatsächlich ausgeführten Step-/Conv-Fusionszweige gegen die Referenzdaten +geprüft. Alle **130 Staged-Receipts** sind nun eingeschlossen, auch die zuvor +fehlenden Single-Row-Fälle mit Output-Fusion. Vier direkte Output-Kernel- +Receipts sichern Typen, Gruppen und Dispatch-Geometrie ab. + +`tools/mtplx-kernel-fixtures.py:gdn_graph_lifecycle_fixtures` erzeugt außerdem +**24 neue tatsächliche MTPLX-Modulreceipts**, nicht Rust-generierte Sollwerte: +B=1/2, S=1/7, kein Cache/leerer Cache/Metadaten, jeweils zwei Aufrufe mit Capture +nur beim ersten. Sie prüfen Ausgaben, Conv-/Delta-Zustände, Längen/Padding und +den Erhalt der Capture-Array-Identitäten beim Folgeaufruf. + +Verifikation: vollständige Port-Suite **92/92 (48,75 s)**, mit unretained +Command Buffers **92/92 (48,96 s)**; GDN mit Fast-Fences **4/4 (5,46 s)**. +Release-Clippy, Produkt-Check, Format-/Diff-Check und unveränderter +Referenz-Shaderexport bestehen. Der Prüfbeleg liegt unter +`local-eval-results/20260907-mtplx-port/graph-gdn-forward-check.log`. + +Weiter offen: äußerer Modellablauf mit Maskenerzeugung, Cache-Batchoperationen, +Capture-Commit/Repair, weitere Graphkomponenten und Produktintegration. +Der kanonische Graph bleibt `cfg(test)`. Diese Modulprüfungen sind weder eine +UI-Responsivitätsmessung noch ein Nachweis der Modell-/Performance-Parität; +P06/P16 und das Drei-Modell-Ziel bleiben offen. + +### GDN-Capture-Commit mit nachfolgendem Decode (2026-09-07) + +`gdn::Cache` übernimmt jetzt die Validierungsregeln und den reinen GDN-Zweig +von `Qwen4ExpTextModel.commit_verified_window`: validierte Capture-Zeilen auf +die angenommene Länge beschränken, Delta-Rekurrenz vom Snapshot ausführen, +Conv-Tape aus Snapshot und behaltenem QKV bilden, Capture freigeben. Fehlender +Conv-Snapshot wird wie in MTPLX durch einen Nullzustand ersetzt; Delta-Snapshot +und passende Capture-Breite sind verpflichtend. Längen/Padding werden dabei +weder zurückgesetzt noch fortgeschrieben. + +Die Trennung zwischen Validierung und Replay erlaubt dem noch zu verbindenden +äußeren Modellablauf, zuerst **alle** Schichten zu validieren und erst danach +irgendeinen Cache zu verändern. Sie ersetzt diese globale Transaktion nicht. +QSA-Trim, PLE-Replay und die übergeordnete Fehler-/Rollback-Orchestrierung +bleiben ausdrücklich offen. Kein vollständiger P12-Abschluss. + +**26 neue tatsächliche MTPLX-Commit-Receipts** decken Fenster1/2/4/6, jede +behaltene Präfixlänge und vorhandene/fehlende Conv-Snapshots ab. Die sieben +Ausgabehashes einschließlich des nachfolgenden Decode stimmen exakt; im Rust- +Graph sowohl bei sofortiger als auch verzögerter Commit-Auswertung. Native +Dispatch-Aufzeichnung prüft: keine Submission während der Commit-Konstruktion, +nur eine Delta-Rekurrenz und keine Projektionen/Conv-Kernel im isolierten Replay. +Ungültige Präfixe, fehlende/kurze Snapshots und fehlende/falsch breite Captures +werden ohne Veränderung der Cache-Array-Identitäten geprüft. + +Ein zunächst abweichender Metadatenhash lag am Ablesezeitpunkt des Tests: +Pythons `mx.array.__isub__` überschreibt den Deskriptor des gespeicherten +Metadatenobjekts beim folgenden Decode. Der Rust-Test liest deshalb die dann +aktuellen Cache-Metadaten statt einer vorher angelegten Wertkopie. Die echten +MTPLX-Receipts wurden nicht geändert; der Commit selbst erhält die Metadaten. + +Verifikation: Port-Suite **92/92 (49,60 s)**, unretained **92/92 (49,50 s)**; +GDN mit Fast-Fences **4/4 (5,90 s)**. Release-Clippy, Format-/Diff-Check und +unveränderter Shaderexport bestehen. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-gdn-commit-check.log`. +Der kanonische Port ist weiterhin ausschließlich `cfg(test)`; keine Aussage +über Produktperformance, UI-Responsivität oder die 2%-Abnahme. + +### Hyper-Connection-Graph und Original-Quantisierung (2026-09-07) + +Der kanonische Graph verbindet jetzt die Custom-Primitiven von +`hyper_connection.py` und `hyper_connection_v3.py` mit der originalen +`prepare_v3_pack`-Kette: Down/Inject konkatenieren, beide Matrizen mittels +`fast::Quantize` quantisieren, sechs Contiguous-Ausgänge auswerten. Die V3- +Geräteprobe führt beide echten Kernel mit den originalen Dummy-Geometrien aus +und speichert ihr Ergebnis pro Prozess. Die Probe bleibt vor der kostenpflichtigen +Pack-Vorbereitung dem noch zu verbindenden Modellselektor zugeordnet. + +`linear::quantize` übernimmt Shape-/Parameterprüfung, drei Array-Siblings, +Allokationsfolge und Row-Contiguous-Kopie aus dem gepinnten Runtime-Backend. +Es bindet die unveränderten `affine_quantize_*`-Kernel aus derselben Metallib: +Gruppen32/64/128, Bits2/3/4/5/6/8, BF16/F16/F32. Die allgemeinen Elementkernel- +Typnamen sind hier nicht gültig; die originalen affinen Symboltypen lauten +`bfloat16_t`, `float16_t` und `float`. Diese Bindungsabweichung wurde bei der +ersten Ausführung erkannt und korrigiert, ohne Shaderänderung. + +**59 tatsächliche Quantisierungsreceipts** decken alle 54 Typ-/Gruppen-/Bit- +Kombinationen sowie Slice, Transpose und Null-/Positiv-/Negativkonstanten ab. +U32-Packs werden roh gehasht, nicht verlustbehaftet nach Float konvertiert. +Der echte V3-Pack stimmt in allen sechs Ausgängen exakt mit MTPLX überein; +anschließende V3-Leseschritte stimmen sowohl mit neuen als auch bisherigen +Sollwerten überein. Die ursprünglichen Read-Kernel mit/ohne Injection bei +S=1/4/8 sind ebenfalls über den Graphen geprüft. R1/R2 verwenden genau ihre +11264/81920 Threads, jeweils 1024 pro Gruppe, und zusammen einen Command Buffer. + +Der frühere direkte V3-Test mit `kernel_qwen_quantize_hyper_q8` ist entfernt; +seine Ausgabereferenz und One-Command-Buffer-Prüfung liegen jetzt im verbundenen +Test mit Originalquantisierung. Der letztere prüft den Zähler des tatsächlichen +Graph-Streams, nicht den globalen Zähler der alten Produktqueue. + +Zu diesem Zwischenstand noch offen für `GatedResidual`: eager Norm/Matmul/Mean- +Kette, Modellselektion und Lebensdauer des pro Modul gecachten Packs sowie +Verbindung mit dem restlichen Modell und Produktpfad. Keine Rücknahme wegen +Mikrobenchmark-Ergebnissen; `cfg(test)`, P09/P16 und Gesamtparität bleiben offen. + +Verifikation: vollständige Port-Suite **94/94 (51,84 s)**, unretained +**94/94 (51,14 s)**. Fast-Fences: Hyper **1/1 (0,09 s)**, Quantize +**1/1 (0,26 s)**. Release-Clippy, Format-/Diff-Check und unveränderter +Shaderexport bestehen. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-hyper-quantize-check.log`. + +### Verbundener GatedResidual einschließlich eager Prefill (2026-09-07) + +`hyper::GatedResidual` verbindet jetzt für die installierte BF16-Geometrie +den vollständigen Read: GroupedRMSNorm, Down/4, SiLU, Up/Sigmoid, gruppiertes +Produkt und Mean sowie die optionale Injection. Mean bleibt wie im Original +eine BF16-Summe mit anschließender BF16-Multiplikation mit1/4. Die dense +Projektion verwendet die unveränderte Runtime-Metallib mit originaler +M5-Max-Auswahl: GEMV, Wide-GEMV bis15 Zeilen, NAX-GEMM und NAX-Split-K samt +FP32-Zwischenergebnis und BF16-Akkumulationsausgang. Statisches Flatten/Unflatten, +Transpose-/Kopierprüfung, Function Constants, Bindings und Dispatch-Geometrie +folgen `ops.cpp`, `matmul.cpp` und `reduce.cpp` der gepinnten Runtime. + +Der Modellselektor prüft zuerst V3 (eine Zeile, Combine, nichtquantisierter +Down, Geräteprobe), anschließend den ursprünglichen fusionierten Read +(bis8 Zeilen), ansonsten eager. Der V3-Pack gehört zur Modulinstanz, wird nur +einmal erzeugt und über spätere Fused-/Eager-Aufrufe hinweg erhalten. Der +Combine-Ausgang behält die ursprüngliche Hyper-Array-Identität. Quantisierte +HC-Projektionen bleiben entsprechend MTPLX auf der eager-Kette. + +`hyper_forward_fixtures` ruft die tatsächliche MTPLX-Klasse auf, ohne sie +nachzuimplementieren. Alle **128 Fälle** stimmen exakt überein: dichte und +quantisierte Gewichte, mit/ohne Combine, S=1/2/4/8/15/16/32/2048 und alle vier +Kombinationen der beiden HC-Schalter. Geprüft sind beide Ausgänge, ausgewählter +Pfad (111 eager,15 fused,2 V3), Pack-Existenz/-Identität und die native +NAX-/Split-K-Auswahl. Keine Referenzwerte wurden an Rust-Ergebnisse angepasst. + +Die Operatoren sind weiterhin nur Teil des kanonischen `cfg(test)`-Ports. +DecoderLayer/PLE, vollständige Modell- und Produktanbindung sowie P09/P16- +Gesamtabnahme bleiben offen. Die Beschränkung des dichten Wrappers auf die +installierten BF16-Projektionen ist kein Nachweis für beliebige Datentypen, +Dot-Produkte, leere Matrizen oder andere GPU-Architekturen. Es gab keine +Shaderänderung, kleinere Prefill-Chunks oder Rücknahme nach Mikrobenchmarks. + +Verifikation: gesamte Port-Suite **95/95 (55,49 s)**, unretained +**95/95 (52,73 s)**, Hyper mit Fast-Fences **2/2 (0,94 s)**. Release-Clippy, +Format-/Diff-Check und unveränderter Shaderexport bestehen. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-hyper-forward-check.log`. + +### PLE-Projektion und dilatierte Cache-Fortsetzung (2026-09-07) + +Der kanonische Graph verbindet `PLELayer` ab dem Ergebnis von +`NGramEmbedding`: Embedding-Cast, Key-/Value-Projektionen, drei GroupedRMSNorms, +BF16-Produktsumme, Divisor/Signed-Sqrt-Gate, Sigmoid, Broadcast/Reshape und +Short-Conv mit anschließendem SiLU und Residual-Add. Vorhandene dichte und +quantisierte Projektionen sowie Graph-/Copy-/Norm-/SiLU-Operatoren werden +wiederverwendet. Abs/Sign folgen dem originalen Typvertrag. Die gemeinsame +Row-Sum-Auswertung erhält GDNs FP32x128-Route und ergänzt PLEs BF16x2560-Route +mit640 Threads und originaler Simple-/Looped-Grenze. + +Die PLE-Faltung mit Kernel4/Dilatation3 ist **nicht** der GDN-Depthwise1D-Pfad. +Die gepinnte Runtime bettet sie in2D ein und verwendet +`implicit_gemm_conv_2d_bfloat16_bm32_bn8_bk16_wm4_wn1_channel_1_filter_l`. +Rust bindet diesen unveränderten Metallib-Kernel mit den originalen Conv-/GEMM- +Parametern und der Grid-Geometrie. Ausgabeallokation sowie Input-/Weight-Kopien +verwenden denselben vorhandenen Helper wie GDN, in Originalreihenfolge. +Der Cache speichert die letzten9 Zeilen des Fensters als lazy Slice; die +Faltung liest noch das ganze Fenster, bevor der letzteS-Abschnitt aktiviert wird. + +**84 tatsächliche MTPLX-PLELayer-Receipts** prüfen dense/quantized, S=1/4/7/8/ +32/2048 sowie Batch2/S7; kein, leerer oder12-zeiliger Vorzustand, jeweils mit +anschließendem Ein-Zeilen-Decode. Der zweite Embedding-Eingang ist FP32 und wird +wie im Modell auf BF16 gecastet. Ausgabe und Cache stimmen exakt überein, +sowohl bei unmittelbarer als auch gemeinsamer verzögerter Auswertung +(168 Vergleiche). Native Faltungsauswahl/-Geometrie ist zusätzlich geprüft. +Der Fixture-Provider ersetzt ausschließlich den Lookup-Eingang; der restliche +Aufruf ist die tatsächliche unveränderte MTPLX-Klasse. **Dies beweist keinen +N-Gram-Lookup, kein Staging und keine IO-/LRU-Parität.** + +Noch offen: NGramEmbedding samt Graph- und Staging-Pfaden, Sidecar/Resident- +Auswahl, Dequantisierung und Hot-Cache-Vertrag sowie Decoder-/Modell-/Produkt- +Anbindung. Der bisherige Produkt-PleReader arbeitet noch anders als MTPLX +(u.a. erste-Auftritts-Deduplizierung statt sortierter Unique-IDs und fehlender +identischer4096-Unique-Row-Bypass). Er wird nicht durch diese PLE-Projektions- +Tests freigestellt. `cfg(test)`, P10/P16 und das Drei-Modell-Ziel bleiben offen. + +Verifikation: gesamte Port-Suite **96/96 (51,40 s)**, unretained +**96/96 (51,07 s)**, PLE mit Fast-Fences **1/1 (1,48 s)**. Release-Clippy, +Format-/Diff-Check und unveränderter Shaderexport bestehen. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/graph-ple-projection-check.log`. + +### N-Gram-CPU-Staging-Hash und rohe History (2026-09-07) + +`ngram::HashContract::rows` übernimmt den materialisierten CPU-Hash aus +`NGramEmbedding._rows_np` für den installierten Vertrag mit3-Grams/16 Heads. +Int64-Multiplikation, XOR, positiver Rest und Offsetaddition erhalten das +Overflow-Verhalten der NumPy-Referenz. EOS beeinflusst die verschobenen Tokens +erst **nach** dem Hash der EOS-Position; der zurückgegebene History-Cache behält +die tatsächlichen letzten2 Tokens. Eine EOS-normalisierte History ist nicht +die Cache-Repräsentation der Referenz. Der bisherige Produkt-Einzel-Token-Hash +bleibt davon getrennt; daraus allein wird kein Unterschied seiner fertigen +Row-IDs oder eine Ursache der UI-Verzögerungen behauptet. + +**64 Original-Receipts** verwenden die installierte EOS-ID248044 und die +Originalkonstanten. B=1/2, S=0/1/4/2048, vorherige History-Längen0/1/2/5 und +jeweils ein Fortsetzungstoken stimmen in Roh-I64-Ausgabehashes und Shapes exakt +überein. Fälle enthalten aufeinanderfolgende EOS, negative Werte und Int64- +Grenzwerte. Auch die Python-Slice-Semantik bei S=0 (alle History-Rows) bleibt +erhalten. Eingabe-/History-Formen und positive Head-Größen werden geprüft. +Rust benötigt keine NumPy-Zwischenmatrizen; die gleiche Berechnung läuft in +einem Durchgang, ohne eine GPU-Auswertung oder Synchronisierung einzuführen. + +Dies ist ausschließlich der CPU-Hash-Baustein, **noch kein verbundenes +`NGramEmbedding.stage`/`__call__`**. Lazy GPU-Hash, Stage-Auswahl/-Verifikation, +Sidecar/Resident-Gather, Dequantisierung und LRU/Bypass bleiben offen; der +pipelined-AR-Pfad wird nicht durch diesen CPU-Baustein ersetzt. P10/P16, +Produktintegration und Drei-Modell-Performanceabnahme bleiben offen. + +Verifikation: CPU-Port-Suite **22 bestanden,75 GPU-Tests explizit ignoriert**; +Release-Clippy, Format-/Diff-Check bestehen. Keine neue GPU-Performanceprüfung +für diesen CPU-only-Baustein. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/ngram-cpu-hash-check.log`. + +### Lazy N-Gram-GPU-Hash bis zu den Tabellen-IDs (2026-09-07) + +`ngram::GpuHash::rows` bildet nun die originale `_graph_path`-Kette bis zum +Tabellenaufruf nach: I64-Cast, History-Concat/-Slice, beide voneinander +getrennten `_shift_ignore_eos`-Graphen mit Arange/Select/Cummax/Gather, +Int64-Multiply/XOR/Remainder und Head-Offsets. Checkpointkonstanten bleiben +Array-Leaves. Der Konstruktor liest keine Tokenwerte zurück und wertet keine +GPU-Knoten aus; auch eine noch nicht ausgewertete History kann weitergereicht +werden. Kein fusionierter Eigenbau-Hash und kein Ersatz durch den CPU-Hash. + +Gemeinsame Graphoperatoren wurden um Equal/GreaterEqual mit Bool-Ausgang, +BitwiseAnd/Xor und Remainder sowie I64-Arange/-Gather und inclusive Cummax +erweitert. Für Gather sind8 zusätzliche I64/I64-Spezialisierungen des +**unveränderten** Originaltemplates exportiert; der Original-Metallib-Hash ist +unverändert. Scan übernimmt seine eigene Allokations-/Donation-Regel ohne +die16KiB-Grenze des Unary-Helfers; diese Besonderheit wurde beim Quellabgleich +korrigiert und mit einem oversized backing separat geprüft. + +**60 tatsächliche MTPLX-GPU-Receipts** stimmen in IDs, roher History und Shapes +exakt überein: B1/2, S1/4/2048, fehlende oder0/1/2/5-zeilige History und je ein +Decode-Folgeschritt. Sofortige und verzögerte Auswertung ergeben120 Vergleiche; +der Graphaufbau dispatcht nichts, beide Original-Scans und I64-Gather werden +tatsächlich ausgeführt. Zusätzliche30 Scan-Prüfungen decken row-/column-major, +Broadcast-Kopien, erhaltene Aliase und Threadgrößengrenzen bis4097 Elemente ab. +Ein passender Folgeschritt prüft außerdem lazy I32→I64-Tokens. + +Die Referenz ruft `_graph_path` selbst auf; ausschließlich der Tabellenaufruf +gibt im Fixture seine IDs zurück. Lookup/Dequantisierung, Sidecar/Resident- +Wahl, Stage-Auswahl/-Verifikation/-Konsum, Hot-Cache/Bypass und Decoder-/Modell- +Anbindung bleiben offen. Kein Nachweis für beliebige leere Cummax-Eingaben, +kein vollständiger NGramEmbedding-Aufruf, keine Produkt- oder2%-Abnahme. + +Verifikation nach der Scan-Donation-Korrektur: reguläre Port-Suite **98/98** +in51,93s, Unretained-Command-Buffer-Suite **98/98** in52,73s und der NGram-Test +mit `MLX_METAL_FAST_SYNCH=1` **1/1** in0,14s. Release-Clippy sowie Format-/Diff- +und Originalquellen-Prüfung bestehen. Diese Zeiten sind Testlaufzeiten, keine +Modell-Performancewerte. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/ngram-gpu-hash-check.log`. + +### Verbundener residenter N-Gram-Graph (2026-09-07) + +`GpuHash::embedding` verbindet nun den originalen Hash mit +`ResidentTable::gather`, affiner Dequantisierung und Head-Reshape. Der residente +Pfad liest keine IDs auf die CPU zurück und fügt keine Auswertung hinzu. +Der Loader muss die Tabelle vorab materialisieren; Laden/Residency-Entscheidung, +Sidecar-I/O, Hot-Cache, Stage-Auswahl und Produktanbindung sind noch nicht portiert. + +`indexing::take_rows` verwendet wie die Referenz Gather plus Squeeze. Bei +zusammenhängenden Tabellen und Indizes läuft der originale GatherFront; andere +Views verwenden den originalen allgemeinen Gather, ohne vorgeschaltete Kopie. +I64-Indizes, negative Indizes, rank0..4, BF16/F16/F32/U32, Byte-Offsets und die +große Indexvariante sind im Dispatch berücksichtigt. Die neue GPU-Dequantisierung +übernimmt Output-Allokation vor den drei Contiguous-Vorbereitungen, Bindings und +Grid/Thread-Geometrie. Quantize verwendet denselben vorhandenen Copy-Mechanismus. +Die Tabelle verwendet gleiche Floating-Dtypes für Scales/Biases; gemischte +Parameter-Dtypes und nicht-affine Quantisierung werden hier nicht beansprucht. + +Originalquellen unverändert: 12 weitere GatherFront-Spezialisierungen sowie40 +originale Gather-JIT-Wrapper, ausschließlich mit angepassten Einstiegspunktnamen. +Zwei zusätzliche geprüfte Runtime-Units; Export insgesamt15 Custom-Bodies, +35 Custom-Einstiege und22 Runtime-Units/144 Runtime-Einstiege. Der unveränderte +Original-Metallib-Hash bleibt `dc59d1cceb1a5c7e578232e6e41e28e2c73c9463ac6dbc3886c3ee17ffc270ed`. +Ein erster Compile-Versuch fand die falsche Reihenfolge der Gather-Abhängigkeiten; +behoben durch Platzierung nach dem Original-Utils-Export, ohne Kerneländerung. + +Neue Original-Receipts, jeweils unmittelbar und verzögert exakt verglichen: + +- 324 affine Dequantisierungen: BF16/F16/F32, group32/64/128, + bits2/3/4/5/6/8, plain/transpose/slice/offset/broadcast/batch. +- 162 tatsächliche `NGramTable._lazy_gather`-Aufrufe: BF16/F16, raw8/9/160 und + Q4x160, zusammenhängende/transpose/offset Tabellen, skalare bis4D IDs, + Slice- und Broadcast-ID-Views. GatherFront/Gather-Auswahl wird geprüft. +- 24 vollständige originale residente `_graph_path`-Ausgaben einschließlich + Decode-Folgeschritt: raw/Q4, B1/2, S1/4/2048. Tabelle bewusst klein (17 Zeilen), + echte Headbreite160 und Ausgang2560; Hashkonstanten für kleine Vokabelgrößen + angepasst. Kein Ersatz des Tabellenaufrufs. Embedding und rohe History stimmen + exakt überein, auch wenn beide Schritte vor der Auswertung aufgebaut werden. + +Das sind Korrektheits-/Graphbelege, keine Vollmodell-Performanceabnahme. Der +kanonische Port bleibt `cfg(test)`; aus diesen Ergebnissen folgt kein behobener +UI-Stall und keine erreichte2%-Parität. + +Verifikation: reguläre Port-Suite101/101 in53,44s und mit Unretained-Command- +Buffers101/101 in53,25s; Release-Clippy, Format-/Diff- und Originalquellen-Check +bestehen. Die drei NGram-GPU-Tests bestehen auch mit `MLX_METAL_FAST_SYNCH=1` +in0,49s. Testlaufzeiten sind keine Modell-Performancewerte. Prüfbeleg: +`local-eval-results/20260907-mtplx-port/ngram-resident-check.log`. + +### Verbundener Sidecar-Gather und Tabellenauswahl (2026-09-07) + +`ngram_sidecar::SidecarGather` portiert nun `_SidecarGather` als zusammenhängenden +Dateipfad: getrennte read-only Tensor-Mappings mit Random-Advice, sortierte +eindeutige I64-IDs und inverse Expansion, optionaler persistenter Prefetch-Pool +mit höchstens16 Threads und originaler Chunkformel `clamp(ceil(n/32),1,64)`. +Prefetch liest jede Map pro Zeile mit `pread`; erst anschließend sammelt die +Generation die Rohzeilen aus den Mappings. Prefetch verändert den Cache nicht. +Threads und Aufträge werden vor Freigabe sauber beendet; nur eigene temporäre +Testdateien werden entfernt. + +Der Hot-Cache speichert Rohzeilen-Views auf gemeinsam gehaltene Fetch-Matrizen. +Damit behalten verbleibende Zeilen wie NumPy ihren zugrundeliegenden Fetch-Block. +Ein HashMap-basierter doppelt verketteter LRU bietet O(1)-Touch/Eviction ohne +unbeschränkt wachsende historische Touch-Liste. Misses werden zuerst eingefügt, +alle eindeutigen Zeilen danach in sortierter Reihenfolge berührt und erst dann +überzählige Einträge entfernt. Die Ergebnisreferenzen überleben diese Eviction. +Leere Gathers, deaktivierter Cache und mehr als4096 eindeutige IDs umgehen den +LRU vollständig, ohne dessen Zähler/Reihenfolge zu verändern. + +`gather_np` erzeugt Integer-Arrays/View und die vorhandene originale affine +Dequantisierung, ohne einen Graph auszuwerten. Der nicht gestagte `gather` liest +hingegen wie `_SidecarGather.__call__` den einmal ausgewerteten ID-Graph auf der +CPU. Der Abgleich mit `mlx_to_nd_array` erhält Strides und Byte-Offsets; keine +zusätzliche Contiguous-GPU-Kopie oder zweite Auswertung. Die Rohzeilenausgabe +bleibt anschließend lazy. `Table::gather` übernimmt die Referenzpriorität: +bevorzugte residente Tabelle, sonst Sidecar, sonst Fehler im Sidecar-Modus oder +plain Gewicht. `GpuHash::embedding` verwendet jetzt diese gemeinsame Auswahl. + +192 tatsächliche dateibasierte Original-Receipts: BF16/F16, raw/Q4x160, +Prefetch aus/an, Kapazität0/3/4096 Zeilen, wiederholte/negative IDs, leer, +4096/4097 eindeutige IDs und weitere Decode-Gathers. Exakte Ausgabehashes, +LRU-Reihenfolge, Hits/Misses, Eintragszahl und Prefetch-Batches stimmen überein. +Original `gather_np` und Original `__call__` liefern dieselben192 Receipts. +Rust prüft jede Folge materialisiert-sofort, materialisiert-verzögert und über +den nicht gestagten Tabellenpfad mit lazy strided IDs (576 Vergleiche). +Ausgaben bleiben auch nach Freigabe von Mappings, Pool und Cache korrekt. +Zusätzlicher Routingtest prüft resident/plain Priorität und fehlenden Sidecar. + +Keine Kernel-/Bridge-Änderung in diesem Abschnitt. Vorhandene Array/View-, +Readback- und Dequantisierungsbausteine werden wiederverwendet; Rust-Stdlib +und das vorhandene memmap2 genügen, kein neues Crate. Eintrittspunkte nehmen +bereits aufgelöste Tensor-Metadaten und Prefetch-/Cache-Einstellungen entgegen. +Safetensors-Attach, Umgebungs-/Modellpolicy, Stage-Lifecycle und vollständige +Modell-/Produktanbindung bleiben offen. Kein Vollmodell- oder IO-Performance- +Vergleich und keine2%-Abnahme; Port weiterhin `cfg(test)`. + +Verifikation: reguläre Gesamt-Port-Suite103/103 in55,27s; Unretained-Command- +Buffer-Suite103/103 in54,87s. Release-Clippy, Format-/Diff- und Quellen-Check +bestehen. Fast-Synchronisation besteht mit5/5 NGram-Tests in2,25s. +Prüfbeleg: `local-eval-results/20260907-mtplx-port/ngram-sidecar-check.log`. +Diese Testlaufzeiten sind keine Modell-Performancewerte. + +### Verbundener N-Gram-Stage-Lifecycle (2026-09-07) + +`ngram_stage::Embedding` verbindet jetzt CPU-Hash, Sidecar, GPU-Graph und History +mit dem originalen `stage`/`__call__`-Ablauf. Die CPU-Hashkonstanten werden beim +ersten tatsächlichen Stage-Aufruf gelesen und behalten; EOS bleibt der aktuelle +Modellwert. Stage selbst schreibt die Cache-History nicht. Gespeichert werden +Shape, lazy Embedding, neue rohe History und vorherige History für QA. + +Kein Sidecar, deaktivierte Stage-Option oder `_stage_disabled` kehren wie die +Referenz zurück, ohne eine vorhandene Vorbereitung zu löschen. Tatsächliche +Vorbereitungsfehler löschen sie und warnen nur einmal, deaktivieren spätere +Versuche jedoch nicht dauerhaft. `forward` verbraucht die Vorbereitung zuerst +und prüft nur B/S, nicht Tokenidentität. Passende Vorbereitung aktualisiert erst +nach erfolgreicher optionaler QA den Cache und den Consumed-Zähler. Bei stale +Shape folgen Bypassed-Zähler und normaler Graph-Fallback. Dieser zählt Graph- +Calls und schreibt die neue History **vor** dem Tabellenzugriff, auch wenn der +Zugriff danach fehlschlägt. Census-Ausgabe und Warnung folgen der Referenz. + +Die optionale QA verwendet die originale F32-`allclose`-Kette mit Atol1e-8, +Rtol1e-5, NaN-false und expliziter ±Inf-Korrektur. Vorhandene Binary-/Unary- +Operatoren sind um LessEqual, LogicalAnd/Or/Not erweitert; die ursprünglichen +Kernels stammen unverändert aus der gepinnten Runtime-Metallib. Die boolesche +Gesamtreduktion übernimmt die Original-Single-/Two-Pass-Geometrie sowie die +strikte64MiB-Grenze und4-Byte-Mindestallokation. Dieser Reducer deckt den dichten +Bool-Ausgang der Stage-QA ab, nicht beliebige andere Reduktionspläne. + +Der gemeinsame `ops::read_i64` folgt der NumPy-Konvertierung für Integer-Arrays: +einmal auswerten, dann Strides/Byte-Offsets auf dem gemeinsam gehaltenen Speicher +lesen und auf der CPU nach I64 konvertieren. Der Sidecar nutzt denselben Helfer +nach seinem originalen Flatten; Stage fügt kein GPU-Flatten oder Cast hinzu. + +136 tatsächliche Original-Lifecycle-Receipts mit realer kleiner Sidecar-Datei: +raw/Q4, B1/2, 4-Token- und ausgewählte2048-Token-Prefills, jeweils Decode-Folge. +Normal, QA, Graph-only, Stage-disabled, stale Shape, andere Tokens gleicher +Shape, QA-Mismatch, übersprungene Vorbereitung bei deaktivierter Policy oder +fehlendem Sidecar, wiederholter Vorbereitungsfehler, kein Cache, längere History, +überschriebene Vorbereitung und Graphfehler sind enthalten. Ausgabe- und +History-Hashes, unveränderte History nach Stage, Consumed/Bypassed/Graph-Zähler, +Warnstatus, Pending-State und Fehler stimmen unmittelbar und bei verzögerter +Ausgabeauswertung überein (272 Vergleiche). Zusätzliche38 Original-Receipts +prüfen die QA-Sonderwerte und Reduktionsgrenzen einschließlich >64MiB. + +Keine neue Metal-/Bridge-Änderung und keine neue Dependency. Policywerte werden +explizit übergeben; deren Auflösung, Safetensors-Attach, Loader und gesamte +Decoder-/Modell-/Produktanbindung bleiben offen. Der Port ist weiterhin +`cfg(test)`. Diese Belege sind keine UI-/Vollmodell-Performanceabnahme. + +Verifikation: reguläre Port-Suite105/105 in56,27s und Unretained-Command-Buffer- +Suite105/105 in56,17s; Release-Clippy, Format-/Diff- und Quellen-Check bestehen. +Die sieben NGram-Tests bestehen auch mit Fast-Synchronisation in2,60s. +Prüfbeleg: `local-eval-results/20260907-mtplx-port/ngram-stage-check.log`. +Testlaufzeiten sind keine Modell-Performancewerte. + +### Vollständiger PLE-Aufruf mit Safetensors-Ladeanbindung (2026-09-07) + +`ple::Ple::forward` verbindet jetzt das tatsächliche NGramEmbedding mit der +Projektion, dem Gate und der dilatierten Faltung. Der äußere Stage-Prepass bleibt +außerhalb des Aufrufs. Cache-Slot3 wird durch den Lookup vor der Projektion +aktualisiert; Slot2 erst durch die Faltung. Die bisherigen numerischen +Projektionsoperatoren werden unverändert weiterverwendet. + +144 tatsächliche Original-`PLELayer`-Receipts, ohne Ersatz-Embedding: BF16-Tabelle +und Q4-Tabelle, dichte und quantisierte Projektionen, Stage/QA/Graph/residenter +Pfad, B1/2, 7/2048 Prefill-Tokens und folgende Decode-Schritte einschließlich EOS, +kein/leerer/vorbelegter Cache. Die Referenz erzeugt kleine lokale Safetensors und +benutzt jetzt auch `attach_sidecar`/`attach_resident`; deren 144 Ergebnisse sind +unverändert zu den zuvor direkt angebundenen identischen Tabellen. Rust prüft +Ausgabe, Faltungszustand und rohe Token-History sofort und verzögert (288 Vergleiche). + +`Table::attach_sidecar` übernimmt Metadaten-Defaults, Entfernen eines vorhandenen +Plain-Weights, Prefetch-/Hot-Cache-Konfiguration und die existierende mmap-LRU. +`attach_resident` materialisiert die ausgewählten Arrays vor Rückkehr, setzt bei +Erfolg `prefer_lazy=false` und löscht bei Fehler die residente Bindung. Stage- +Flags werden mit den originalen exakten Stringvergleichen gelesen. + +Der erforderliche CPU-`Load` ist an den vorhandenen Graph/Scheduler/Allocator +angeschlossen: eigener Vier-Worker-Load-Pool, unabhängiger Vier-Worker-Pread-Pool, +32MiB-Batches, direkter Rest, CPU-Stream wartet auf das Load-Future. Header und +Payload werden über denselben gehaltenen Dateideskriptor gelesen. Worker halten +die Zielallokation bis zum Ende ihrer disjunkten Schreibaufträge. Die bestehende +Header-Validierung wird weiterverwendet, einschließlich ihrer Schutzgrenzen. +Zusätzlicher Loader-Test: leer/klein und unter/auf/über32MiB sowie >64MiB, +Payload erst nach Graphkonstruktion geschrieben, Datei vor Auswertung entfernt, +sofortige/asynchrone CPU→GPU-Folge, gemeinsame Allocator-Buchung und nachträglich +abgeschnittene Datei mit propagiertem Fehler. Keine großen Modellgewichte geladen. + +Unveränderte Original-Metal-Quellen und Metallib; keine neue Dependency. Offen +bleiben die modellweite Residency-/Memory-Plan-Auswahl, Laden/Sanitize der übrigen +Gewichte, Decoder-/Gesamtmodell-/Produktanbindung und vollständige Messabnahme. +Der Port ist weiterhin `cfg(test)`; diese Nachweise schließen P10 oder das +2%-Gesamtziel nicht ab. Belege: `tests/fixtures/mtplx-ple-connected.jsonl` und +`local-eval-results/20260907-mtplx-port/ple-connected-load-check.log`. + +Verifikation: Port-Suite107/107 in58,72s, abschließende Unretained-Command- +Buffer-Suite107/107 in59,00s; Release-Clippy, Format-/Diff- und Quellen-Check +bestehen. Der bestehende Safetensors-Boundary-Test besteht ebenfalls. +Die abschließenden Fast-Synchronisationschecks bestehen für PLE in2,76s und +den CPU-Loader in0,14s. +Die Testlaufzeiten sind keine Modell-Performancewerte. + +### Verbundene Attention-Matrixpfade und Softmax (2026-09-07) + +P08/P09: Der gemeinsame BF16-Matmul übernimmt jetzt auch führende Batchachsen, +gemeinsames Broadcasting mit zwei ausgesparten Matrixachsen, Stride-Collapse, +Broadcast-Batch-in-M-Collapse und ursprüngliche Transpose-/Copy-Vorbereitung. +Wide-GEMV, GEMV und NAX-GEMM erhalten die originalen Batchformen/-strides und +Dispatchbedingungen; Split-K bleibt auf Batch1 begrenzt. Die vorhandenen dichten +Projektionen benutzen denselben Operator. Nicht abgedeckt sind allgemeine +Dot-/Vektor-/N1-/Empty-Matmul-Fälle und andere Datentypen oder Geräte. + +Der Last-Axis-Softmax ist ein eigener lazy Operator mit ursprünglicher +Contiguous-Prüfung, Donation oder Stride-erhaltender Allokation, notwendiger +Kopie sowie Block-/Looped-Auswahl an der4096-Grenze. BF16/F16 verwenden bei +`precise` die originale präzise Spezialisierung; F32 die normale. Der Speicher- +Reuse-Test synchronisiert nur seine Eingabevorbereitung: ein GPU-Event-Wait +garantiert weder hier noch in der Referenz, dass Completion-Callbacks ihre +Data-Referenzen schon freigegeben haben. Keine zusätzliche Synchronisation im +Laufzeitoperator oder Evaluator. + +`attention::sdpa_fallback` verbindet die originalen BF16-Q-Skalierung, +GQA-Views, QK-Matmul, Bool-/additive Maskierung, präzisen Softmax und PV-Matmul. +Bool-false setzt hier BF16-finfo.min, nicht minus unendlich. Die Routenzuordnung +stammt aus MTPLXs gepinntem `fast.cpp` und Metal-SDPA: Qwen hat GQA12/D256; +S3–8 überschreitet die Fused-Vector-Bedingung S*GQA<=32. Größere D256-Prefills +mit expliziter Array-Maske benutzen ebenfalls diesen Fallback. Das ist eine +Quellzuordnung, keine gemessene Ursache für die Gesamt-MTP-Geschwindigkeit. + +`attention::rows_gather` portiert getrennt den tatsächlichen MTPLX-Aufruf +`_qsa_rows_gather_attention`: zwei per-row Gathers über Cache-Achse2, gruppierte +Views ohne zwölfmaliges Materialisieren von K/V, BF16-QK **vor** F32-Cast und +Skalierung, minus-unendlich-Maskierung, F32-Softmax, BF16-Probabilities und PV. +Hier wäre ein Aufruf des obigen SDPA-Fallbacks numerisch und funktional falsch. +Der bereits vorhandene Tabellen-Gather wurde zum gemeinsamen Original-`take` +mit Gather/Transpose/Squeeze erweitert; NGram benutzt weiterhin dessen Achse0. +14 zusätzliche I32/BF16-Instanziierungen aus unverändertem Gather-Körper und +originalem JIT-Wrapper sind exportiert. Keine neue algorithmische Kernelversion, +Bridge oder Dependency; die ursprüngliche Runtime-Metallib bleibt unverändert. + +Tatsächliche Original-Receipts (keine Performance-Mikrobenchmarks): + +- 34 Batch-Matmul-Fälle, jeweils sofort/lazy:68 exakte Vergleiche. GQA-QK/PV, + B1/2, S1/3/8/16/64/2048, Cache-Strides, Transposes, Cross-Broadcast, + Batch-Collapse, nicht ausgerichtete Offsets und erforderliche Kopien. +- 48 Softmax-Fälle, jeweils mit/ohne gehaltene Eingabe:96 exakte Vergleiche. + BF16/F16/F32, `precise` aus/an,17/4097 Spalten, plain/swapped/strided/offset; + außerdem Stride- und kontrollierte Donation-Prüfung. +- 21 tatsächliche `mx.fast.scaled_dot_product_attention`-Aufrufe, sofort/lazy: + 42 exakte Vergleiche. GQA12 oder gleiche Headzahl, bis2048 Prefillzeilen, + Cache-Backing-Offsets, keine/Bool/additive Maske, vollständig maskierte Zeile. +- 18 tatsächliche MTPLX-Rows-Gather-Aufrufe, sofort/lazy:36 exakte Vergleiche. + S1/3/8/16/64,8/17/1025/4097 gewählte Tokens, GQA12 oder gleiche Headzahl, + volle/versetzte/strided Cacheansichten; zwei originale Gathers und ein + F32-Softmax werden im Dispatch nachgewiesen. + +**Weiter offen:** Full-SDPA-Auswahl und Bindung, vollständiges Attention-Modul mit +Projektionen/RoPE/Cache/Selektor, Decoder/Gesamtmodell und Produktionsumstellung. +Diese Operatoren bleiben `cfg(test)`; P08/P09/P16 und das2%-Ziel sind nicht +abgeschlossen. Belege: `tests/fixtures/mtplx-{dense-batch,softmax-graph, +sdpa-fallback,qsa-rows-attention}.jsonl` und +`local-eval-results/20260907-mtplx-port/attention-graphs-check.log`. + +Verifikation: reguläre Port-Suite111/111 in61,32s, Unretained-Command-Buffer- +Suite111/111 in61,78s; die zwei verbundenen Attention-Tests bestehen zusätzlich +mit Fast-Synchronisation in0,96s. Release-Clippy, Format-/Diff- und Quellen- +Check bestehen. Diese Testlaufzeiten sind keine Modell-Performancewerte. + +### Gekachelter portabler Prefill-Gather (2026-09-07) + +`attention::prefill_gather` verbindet nun auch MTPLXs tatsächlichen +`_qsa_prefill_gather_attention`-Ablauf: pro Kachel absolute I32-Positionen, +Integer-Divide, vollständige ausgewählte Blöcke, kausaler Tail, Bool-Repeat, +Concatenate und sichere Nullindizes für ungültige Slots; danach der oben +geprüfte Rows-Gather auf den **vollen** KV-Backings. Keine Vollkontext-Kopie. +Das unbenutzte Python-Argument `total_tokens` benötigt keinen Rust-Operand; +die Auswahl adressiert wie im Original ausschließlich die übergebenen Backings. + +Jede Kachel wird vor der nächsten ausgewertet. Bei nur einer Kachel ist das +Ergebnis schon ausgewertet; sonst bleibt ausschließlich die abschließende +Concatenate-Operation lazy. Die Python-Lokalen werden auch in Rust über die +Auswertung hinweg gehalten und erst in Referenzreihenfolge beim nächsten +Schleifendurchlauf ersetzt. Zusätzliche Schattenbindungen kurzlebiger Ausdrücke +und vorzeitig bewegte Concatenate-Eingaben wurden vermieden, weil sie Donation +und Data-Lebensdauer trotz passender Ausgabehashes verändern würden. + +Die vorhandenen Arange- und Binary-Operatoren übernehmen Startwerte und +Integer-Floor-Divide: Letzteres verwendet wie `ops.cpp` den vorhandenen Divide- +Kernel ohne True-Divide-Promotion nach F32. Keine neue Metal-/Bridge- oder +Dependency-Änderung. Die restliche SDPA-/Attention-/Produktanbindung bleibt offen. + +34 tatsächliche MTPLX-Receipts, jeweils mit lazy bzw. vorher ausgewerteten +Eingaben (68 Vergleiche): GQA12/gleiche Headzahl, S1/7/17/2048, +Kompressionsratio1/4/128, Position0/3/127/511, Kachelgrößen1/4/64/2048, +dichte I32- und versetzte/strided I64-Blockauswahl, ungültige negative IDs. +Der Referenzgenerator protokolliert die tatsächlichen `mx.eval`-Aufrufe samt +Tile-Shapes. Rust prüft deren Reihenfolge/Form im ausgewerteten Ausgabegraph, +zwei Gathers und einen F32-Softmax je Kachel sowie das exakte Ausgabehash. +Belege: `tests/fixtures/mtplx-qsa-prefill-gather.jsonl` und +`local-eval-results/20260907-mtplx-port/prefill-gather-check.log`. +Das ist weiterhin ein `cfg(test)`-Portnachweis, keine P08-/P16-Gesamtabnahme. + +Verifikation: reguläre Port-Suite112/112 in62,24s, Unretained-Command-Buffer- +Suite112/112 in62,50s; alle drei Attention-Tests mit Fast-Synchronisation +in1,37s. Release-Clippy, Format-/Diff- und Quellen-Check bestehen; ursprüngliche +Metallib unverändert. Die Testlaufzeiten sind keine Modell-Performancewerte. + +### Fused-Vector-SDPA und typisierte Metal-Konstanten (2026-09-07) + +Der BF16/D256-Vector-SDPA ist jetzt als eigene Primitive verbunden. Die +gemeinsame `attention::scaled_dot_product`-Auswahl verwendet bei Qwens normalen +Aufrufen ohne bzw. mit expliziter Array-Maske den originalen Vector-Pfad für +S<=8, S<=T und S*GQA<=32; sonst den bereits geprüften D256-Fallback. +Der direkte Vector-Aufruf unterstützt zusätzlich die kausale Maske; bei S1 +bleibt ihr Kernel-Flag wie im Original ausgeschaltet. + +Die Bindung übernimmt Q-/KV-/Masken-Kopierbedingungen, Query-Donation, +Allokationsreihenfolge, Offset-/Stride-Bindings, Bool-/additive Maske und +Ein-/Zwei-Pass-Auswahl. Zwischenpuffer werden wie in der Referenz als +Encoder-Temporaries gehalten. Die drei unveränderten Originalkerne kommen +direkt aus derselben gepinnten Runtime-Metallib. + +**Live korrigierte Hardwarezuordnung:** `mx.device_info` meldet für diesen +Apple M5 Max `applegpu_g17s` (Max), nicht `...d` (Ultra). Beim ersten Zwei-Pass- +Vergleich führte die falsche Zuordnung zu einem abweichenden Ausgabehash. +Für GQA12 ergibt die tatsächliche Max-Policy64 Blöcke bei T1024,128 bis8192, +256 bis32768,512 bis65536, danach1024; nicht die Ultra-Grenzen. Die Auswahl +verwendet jetzt den bereits vorhandenen Architektur-Bridge-Helfer gemeinsam +mit dem Scheduler und dem `MLX_METAL_GPU_ARCH`-Override. Alle originalen +Architekturzweige und `MLX_SDPA_BLOCKS` mit `atoi`-Semantik/32er-Aufrundung +sind abgebildet. Die zuvor falsche Annahme ist kein Modell-Performancebefund. + +Der gemeinsame Bridge-Konstantentyp unterstützt jetzt Bool und echtes I32 +statt ausschließlich Bool. Der Pipeline-Cache-Schlüssel enthält auch den Typ; +ungültige Typen, Bool-Werte und doppelte Indizes werden weiterhin verworfen. +Alle alten Bool-Aufrufe sind auf denselben neuen ABI-Typ umgestellt. Keine +neue parallele Dispatch-Bridge und keine Änderung der Kernelkörper. + +48 tatsächliche Referenzfälle, jeweils lazy/vorbereitet (96 exakte Vergleiche): +B1/2, GQA12, S1/2, T17/33/1023/1024/16384/65536, transponierte Query bzw. +Copy-erforderliche Strides, versetzte KV-Backings, keine/Bool/additive/kausale +Maske. Der Dispatch prüft die tatsächlich erwartete Ein-/Zwei-Pass-Folge; +wechselnde Blockzahlen prüfen auch die Integer-Konstante und Cachetrennung. +Belege: `tests/fixtures/mtplx-sdpa-vector.jsonl` und +`local-eval-results/20260907-mtplx-port/vector-sdpa-check.log`. + +Offen bleiben Full-SDPA einschließlich NAX-D256-Causal-Split, Sinks/andere +Datentypen und Head-Dimensionen außerhalb des installierten Qwen-Aufrufs, +vollständiges Attention-/Modulrouting, Modell-/Produktanbindung und P16. +Der kanonische Port bleibt `cfg(test)`; keine Vollmodell-Performanceabnahme. + +Verifikation: reguläre Port-Suite113/113 in64,07s, Unretained-Command-Buffer- +Suite113/113 in63,75s; Fused-SDPA-Fast-Synchronisationscheck in1,25s. +Release-Clippy, Format-/Diff- und Quellen-Check bestehen; ursprüngliche +Metallib unverändert. Die Testlaufzeiten sind keine Modell-Performancewerte. + +### Originale RoPE-Graphen und KV-Cache-Objektsemantik (2026-09-07) + +`rope.rs` bildet `_rope_inv_freq_and_scaling`, `_rope_cos_sin`, +`_build_mrope_axes`, `_mrope_cos_sin` und `_apply_partial_rope` als gewöhnliche +Graphknoten ab. F32-Arange, Power, Sin/Cos und Typgrenzen verwenden dieselben +Runtime-Kerne, keine CPU-Frequenztabelle und keinen Ersatz-RoPE-Kernel. +Host-F64 bleibt auf die originalen Python-math-Schritte von statischem YaRN +beschränkt. Der Modell-Konfigurationsparser wird dadurch noch nicht ersetzt. + +48 tatsächliche MTPLX-Referenzfälle, jeweils lazy/vorbereitet:96 exakte Vergleiche +für Frequenzen, Cosinus, Sinus und rotierte BF16-Ausgabe. Enthalten sind Rotary64 +und256, partielle/vollständige Rotation, S1/7/64/2048, Positionen bis1048576, +Default/static YaRN einschließlich Amplituden-/mscale-Verhältnis und ungekürzter +Rampe sowie gleiche, interleaved und abschnittsweise M-RoPE-Achsen. Geslicte +Eingaben bleiben geslict. Die Referenz-Funktionen, nicht eine nachgebaute +Python-Formel, erzeugen `tests/fixtures/mtplx-rope-graph.jsonl`. + +`cache.rs` portiert den von QSACache benutzten gewöhnlichen KVCache: +256er-Wachstum, Teilkapazitäts-Slice vor Wachstum, Full/Concatenate/SliceUpdate, +Trim und State-Roundtrip. `ops::slice` und `slice_update` teilen die ursprüngliche +Indexnormalisierung; Full und SliceUpdate verwenden die gemeinsamen Copy-Kerne +mit den originalen Scalar/Vector/General-/Donation-Regeln. GeneralGeneral-Copy +verwendet bei Ausschnitten weiterhin die Datengröße des vollständigen +Ziel-Arrays für Large-Dispatch und Encoder-Abhängigkeiten. + +**Tatsächlich gefundene Besitzabweichung:** Eine reine `Array::clone`-Übernahme +bildete Python-Aliase auf `cache.keys`/`values` nicht ab. `mlx_set_item` überschreibt +den Descriptor des bestehenden Python-Arrayobjekts; gehaltene Python-Objektaliase +folgen dieser Änderung, bereits gebaute Graphknoten behalten dagegen ihren +ursprünglichen Descriptor. Der Rust-Cache trennt deshalb `Rc>` +auf der Modellobjekt-Ebene von den unveränderten Array-Deskriptoren im Graphen. +Wachstum ersetzt das Objekt, SliceUpdate ersetzt nur seinen Descriptor. Das +ist weder eine zusätzliche GPU-Kopie noch ein geänderter Shader. + +Die12 unveränderten tatsächlichen KVCache-Referenzfälle bestehen danach exakt: +Startlängen0/1/255/256/257/2048, mehrere Updates, Trim/Overwrite, Wiederherstellung +eines gehaltenen Zustands, vollständiger Trim und Wiederaufnahme; jeweils +sofortige bzw. verzögerte Auswertung. Geprüft werden sowohl logische Zustände +als auch vollständige Backings und Kapazitäten. Beim vollflächigen Ersatz kann +ein transponiertes Eingabelayout erhalten bleiben; der reine Test-Readback +wurde deshalb wie NumPy in logischer C-Reihenfolge exportiert. Die Referenzhashes +wurden nicht angepasst. Zusätzliche SliceUpdate-Prüfungen decken negative +Strides, leere Updates, Broadcast/Typkonversion und tatsächliche Donation ab. + +Nur12 weitere originale F32/I32-Gather-Instanziierungen für M-RoPE;15 Custom- +Kernelkörper,35 Custom-Einstiege und22 Runtime-Quellblöcke sind weiterhin +unverändert zur Referenz. Der Export enthält jetzt170 Runtime-Einstiege; +die originale Runtime-Metallib bleibt bytegleich. + +P08 bleibt offen: vollständiger Attention-Aufruf mit QKV-/Indexer-Fusion, +QSA-Arraygraph und dessen veränderlichen Cacheobjekten, sämtliche Auswahlzweige +und das nachfolgende Modellrouting sind noch nicht verbunden. Insbesondere +darf der bisherige Buffer-/Rc-Pfad die hier aufgedeckte +Objekt-/Descriptor-Unterscheidung bei der Integration nicht verlieren. +Modell-/Produktanbindung und P16 sind weiterhin offen; der Port bleibt +`cfg(test)`. Keine Modell-Performance- oder Responsiveness-Abnahme aus diesen +Fixtures. Belege: `tests/fixtures/mtplx-kv-cache-graph.jsonl` und +`local-eval-results/20260907-mtplx-port/rope-cache-check.log`. + +Verifikation: Port-Suite115/115 in64,78s, Unretained-Suite115/115 in64,77s; +zusätzliche Fast-Synchronisationschecks: RoPE1/1 in0,49s und KVCache1/1 +in0,29s. Release-Clippy, +Format-/Diff- und Quellenprüfung bestehen. Die Laufzeiten bezeichnen +Modell-freie Prüfungen, keine Inferenz-Performance. + +### Direkte Sparse-Attention-Consumer im Arraygraph (2026-09-07) + +`sparse_attention.rs` bindet jetzt die unveränderten MTPLX-Körper +`qsa_flash_skip.py::_SRC` und `qsa_prefill_flash.py::_SOURCE` als jeweils eine +CustomKernel-Primitive ein. Decode übernimmt die originalen Flatten-Aufrufe, +Host-Parameter, GQA-Spezialisierung und256 Threads; Prefill verwendet32 Threads +pro (Query-Zeile, KV-Head) und die originalen Metal-4-MPP-Matmulfragmente. +Es gibt weder ein Gather-/Dense-Ersatzverfahren innerhalb dieser Primitive +noch einen stillen Retry nach einem Dispatchfehler. + +Der Prefill-Aufruf übernimmt die statischen Unterstützungsbedingungen: +macOS>=26.2 und GPU-Generation17 (Telefonklasse18), aktiver GPU-Stream, +B1/H24/KV2/D256, BF16/F16, I32-/Bool-Selektionen[S,512], S>1, exakter Suffix, +Kapazitätsgrenze, maximal1048576 Tokens, mehr als512 vollständige Blöcke und +Host-Scale exakt0.0625. Die Plattformantwort ist wie `_mlx_nax_available` +gecached; die Bridge liefert nur Betriebssystem-/Gerätedaten, Rust entscheidet. +Die Scale-Prüfung erfolgt auf Host-F64, vor der originalen F32-Kernelkonversion. + +Ausgabeallokation, Input-Bindings und Lebensdauer folgen CustomKernel: +Decode verwendet den vorhandenen `gdn::custom_evaluate` einschließlich +General-Copies nicht zeilenkontiguierlicher Argumente und Encoder-Temporaries. +Prefill übernimmt `ensure_row_contiguous=False` und bindet alle fünf +Input-Stridetabellen sowie Byte-Offsets direkt. Die kanonischen Tests prüfen +bei vorab ausgewerteten Eingaben ausdrücklich genau einen Prefill-Dispatch, +auch bei geslicten Features und Selektionstabellen; keine versteckte KV-Kopie. + +50 tatsächliche MTPLX-Fälle, jeweils lazy/vorbereitet:100 exakte Vergleiche. +Decode: GQA12/1, nur Tail bzw.512/17 ausgewählte Blöcke, T3/4099/2052. +Prefill: S2/8/137/2048, Start2050/8191/32767/2048; BF16/F16, transponierte +Query, ungerader Elementoffset, nichtkontiguierliche Features, Selektion mit +Strides, ungültige IDs und Gültigkeitslücken bis Slot511. Die Referenz ruft +die beiden tatsächlichen Sparse-Kerne direkt auf, keine nachgebaute Formel. +Belege: `tests/fixtures/mtplx-sparse-attention.jsonl` und +`local-eval-results/20260907-mtplx-port/sparse-attention-check.log`. + +Der Quellenexport umfasst nun17 unveränderte Kernelkörper und41 Custom- +Einstiege;22 Runtime-Quellblöcke/170 Runtime-Einstiege und die originale +Runtime-Metallib bleiben unverändert. Die zusätzlichen instanziierten +Decode-Varianten sind BF16/F16 mit GQA1/12; andere GQA-/Dtype-Spezialisierungen +sind damit nicht als abgedeckt behauptet. + +P08 ist weiterhin offen: Der vollständige Attention-Aufruf muss QKV-/Indexer- +Fusion, Norm/RoPE, KV-Update, Vision-Bypass und alle originalen Auswahlzweige +zusammenführen. Besonders die requestbezogene Prefill-Phase und die +32K-Crossover-Policy dürfen nicht durch bloßes `prefill_supported` ersetzt +werden. Der kanonische QSA-Indexer-/Cachegraph, Modell- und Produktanbindung +sowie P16 fehlen weiterhin. Keine Vollmodell-Performance-Abnahme aus diesen +Tests und kein produktiver Verhaltenswechsel. + +Verifikation: gemeinsamer Release-Lauf116/116 in64,16s vor der abschließenden +Plattform-Cache-/Host-F64-Präzisierung. Auf dem finalen Code besteht der gesamte +Unretained-Lauf116/116 in65,21s; der fokussierte Normal- und FastSync-Lauf +jeweils1/1 in1,75s. Release-Test-Clippy, Format-/Diff- und Quellenprüfung +bestehen. Diese Zeiten sind Prüfzeiten ohne Modell, keine Performance-Abnahme. + +### Vollständige QSA-Blockmaskenrekonstruktion (2026-09-07) + +`attention::blocks_to_dense_mask` übernimmt den tatsächlichen +`_qsa_blocks_to_dense_mask`-Graph: zeilenweise vollständige Blöcke, originale +I32-Vergleiche/Bool-Bitoperationen, ungültige IDs auf eine zusätzliche +Sentinel-Spalte, `put_along_axis`, Sentinel-Slice, Repeat, optionale Null-Padding- +Spalten, Tail und abschließende Kausalmaske. Dies ist der originale Consumer- +Fallback, kein Ersatz für den zuvor portierten direkten Flash-Prefill-Zweig. + +Die gemeinsame ScatterAxis-Primitive übernimmt Cast/Squeeze/Broadcast-Reihenfolge, +Scalar-/Vector-/General-Quellkopie, Vector-Donation, leere Updates, Achsen- und +Stride-Bindings sowie die originale Dispatch-Geometrie. Bool/I64-QSA verwendet +jetzt alle vier Update-/Index-Layoutkombinationen und Int-/Int64-Adressierung +des unveränderten Runtime-Kernels:22 unveränderte Runtime-Quellblöcke und176 +Runtime-Einstiege;17 Custom-Körper und41 Custom-Einstiege bleiben unverändert. +Keine selbstgeschriebene Scatter-/Masken-Metal-Implementierung. + +44 direkte MTPLX-Maskenfälle und64 direkte `put_along_axis`-Fälle werden lazy +und vorab ausgewertet verglichen:216 exakte F32-Readback-Hashes. Masken decken +S0/1/2/5/8/9/137/2048, Kontext bis32904, Ratio1/4/7, leere Selektionen, +gültige/ungültige/duplizierte IDs, vollständig gesperrte Blöcke und geslicte +Selektionstabellen ab. Scatter prüft Rank1/2/3, Achsen0/1, skalare/vollständige +Updates, negative Indizes und skalare/Offset-/Strided-Quellen. Zusätzlich: +führende Singleton-Updates, Achsenfehler, leere Updates und nachgewiesene +Vector-Donation ohne zusätzlichen Kopierdispatch. + +Belege: `tests/fixtures/mtplx-qsa-dense-mask.jsonl`, +`tests/fixtures/mtplx-scatter-axis.jsonl` und +`local-eval-results/20260907-mtplx-port/qsa-mask-scatter-check.log`. +Gemeinsame Release-Verifikation:118/118 normal in68,82s und118/118 mit +unretained Command Buffers in68,04s. Release-Test-Clippy, Format-/Diff- und +Quellenprüfung bestehen. Das sind modellfreie Prüfzeiten, keine Inferenzdaten. +P08 bleibt bis zum vollständigen +QSA-Indexer-/QSACache-/Attention-Aufruf und der Produktintegration offen. +Keine Modellmessung, kein Abweichen vom vollständigen Port wegen Laufzeiten. + +### Positionaler QSACache im kanonischen Arraygraph (2026-09-07) + +`cache::QsaCache` verwendet den bereits portierten KVCache und dessen +`ArrayObject`-Semantik. Raw-/Pooled-Schreibbereiche liegen an absoluten +Positionen; Vergrößerung erfolgt geometrisch mit256er-Ausrichtung, nicht +durch Anhängen oder Vollkopien je Dekodeschritt. Originale Full/SliceUpdate/ +AsType-/Transpose-/View-Primitiven bilden die Mutationen ab; keine neue +Puffer-COW-Implementierung neben dem Arraygraph. + +Der FP32-Spiegel wird beim ersten Zugriff aus dem vollständigen vorhandenen +Pooled-Inhalt aufgebaut, bei Schreibzugriffen inkrementell aktualisiert und +nach Session-Restore verworfen. Eine Reservierung vergrößert in MTPLX den +Spiegel ausdrücklich nicht sofort; diese Reihenfolge bleibt erhalten. +Die originale `nbytes`-Eigenschaft zählt KV/Raw/Pooled, aber nicht den +abgeleiteten Spiegel. Dies wird unverändert übernommen, nicht als Messung +des gesamten realen GPU-Speicherverbrauchs ausgegeben. + +`QSAIndexer::_ensure_compiled_backings` ist mit dem Cache verbunden: Originale +Zweierpotenz-Buckets, ausstehende Reservierungen und der physisch notwendige +ceil(S/ratio)-Pooling-Bereich werden vor der Graphausführung berücksichtigt. +Session-Restore behält die vier Arrayobjekte, setzt Reservierungen auf die +restaurierten Ausdehnungen zurück und rekonstruiert den Spiegel erst bei Bedarf. + +16 direkt ausgeführte MTPLX-Lifecycle-Sequenzen prüfen1896 exakte Tensor-Hashes +sowie Offsets, Kapazitäten, Reservierungen und `nbytes` nach jedem Schritt: +BF16/F16/F32, Ratio1/4/7, Indexbreite17/32/128, Initiallängen0/1/255/256/257/1025, +sofortige/verzögerte Auswertung, gehaltene Arrayobjekte und geslicte Zustände, +Rollback, Überschreiben, Restore, Mirror-Views und1025-Token-Replay-Reservierung. +Belege: `tests/fixtures/mtplx-qsa-cache-graph.jsonl` und +`local-eval-results/20260907-mtplx-port/qsa-cache-graph-check.log`. + +Die erste gebündelte Referenzausgabe war abgeschnitten und enthielt dadurch +eine syntaktisch gültige, aber vermischte Zeile. Alle aus abgeschnittenen +Ausgaben übernommenen Zeilen wurden verworfen und einzeln aus unveränderten +Originalaufrufen neu erfasst. Keine Anpassung von Implementierung oder +Referenzhashes an einen fehlgeschlagenen Vergleich. + +Verifikation:119/119 gemeinsame Release-Tests normal in67,06s und119/119 +unretained in67,38s; fokussierter FastSync-Lauf1/1 in1,00s. Release-Test-Clippy, +Format-/Diff- und unveränderte Quellenprüfung bestehen. Das sind modellfreie +Prüfzeiten, keine Inferenz-Performance-Werte. + +P08 bleibt offen: Die vollständige kanonische Indexer-Ausführung inklusive +kompiliertem Graphbank-Pfad und das Attention-Modul müssen diese Cache-Objekte +noch nutzen. Der Port bleibt `cfg(test)`; keine Produkt-/Performance-Parität. + +### Parametrisierte QSA-Query-/Pooling-Primitiven (2026-09-07) + +`qsa_prepare.rs` übernimmt die öffentlichen Query-/Pooling-Aufrufe aus +`qsa_indexer_prepare.py` einschließlich statischer Eignungsprüfung, +BF16/F16/F32, Kopfbreiten bis128, geradem partiellem/vollem RoPE, beliebigem +positivem Pooling-Verhältnis, RMS-Epsilon und positiver endlicher +Attention-Skalierung. Host-I32-Positionen werden zu einer Array-Konstante; +Tensor-Positionen werden nur auf ein I32-Element validiert und umgeformt, +ohne `.item()` oder Synchronisation. + +Die Spezialisierung verwendet die bereits hashgeprüften Originalkörper +`_prepare_queries_kernel` und `_pool_keys_kernel` aus dem vorhandenen Export. +Nur Header-Konstanten, Datentyp-Instanziierung und Exportname ändern sich; +die Arithmetik bleibt bytegleich. Der vorhandene native CustomKernel-Compiler +verwendet Safe-Math und die originale Sprachversion. Der Pipeline-Schlüssel +enthält auch EPS-/Skalierungsbits, damit unterschiedliche Konfigurationen +nicht versehentlich dieselbe Kompilierung verwenden. + +Originale Ausgabeallokation vor Kompilierung, vier Array-Inputs, drei +Stride-Tabellen, Byte-Offsets und Datenlebensdauer bleiben erhalten. +`ensure_row_contiguous=False`: keine impliziten General-Copies. Query verwendet +32 Threads je Zeile/Kopf, Pooling32 je Block; kein Fehler-Retry auf Eager. + +72 direkte MTPLX-Fälle mit je zwei Ausgaben werden lazy/vorbereitet geprüft: +288 exakte Tensorvergleiche. S1/3/7/137/2048, H1/2/3/4/7, D2/17/64/128, +RoPE2/16/32/64/128, Ratio1/3/4/7/8, negative und große Positionen, +Plain-/Offset-/Strided-/Broadcast-Inputs, dynamische GPU-Positionen sowie +unterschiedliche EPS bei sonst gleichen Parametern. Vorbereitete Inputs +erzeugen genau zwei Dispatches; die dynamischen Kernelkörper werden zusätzlich +byteweise mit den geprüften Exportkörpern verglichen. +Belege: `tests/fixtures/mtplx-qsa-prepare-graph.jsonl` und +`local-eval-results/20260907-mtplx-port/qsa-prepare-graph-check.log`. +Verifikation:120/120 gemeinsame Release-Tests normal in67,95s und120/120 +unretained in68,37s; fokussierter FastSync-Lauf1/1 in0,82s. Release-Test-Clippy, +Format-/Diff- und Quellenprüfung bestehen. Das sind modellfreie Prüfzeiten, +keine Inferenz-Performance-Werte. + +P08 bleibt offen: Diese Primitiven müssen mit dem vollständigen kanonischen +QSAIndexer einschließlich Eager-Orakel und kompiliertem Graphbank-Pfad sowie +mit Attention/Modell/Produktausführung verbunden werden. Weiterhin `cfg(test)`; +keine Vollmodellmessung oder Rücknahme aufgrund isolierter Laufzeiten. + +### Gemeinsame Float-Summen und QSA-Mittelwert (2026-09-07) + +`reduce.rs` übernimmt für BF16/F16/F32 die gemeinsame Sum-Factory und den +Reduktionsplan aus `ops.cpp`, `backend/common/reduce.cpp` und +`backend/metal/reduce.cpp` der gepinnten MTPLX-Laufzeit. Keine neuen Metal- +Körper: sämtliche Reduktionskernel stammen aus der unveränderten originalen +Metallib. Die drei bisherigen speziellen GDN-/PLE-/HC-Summen wurden entfernt; +ihre kanonischen Modellgraphen verwenden jetzt dieselbe Sum-Operation. + +Enthalten sind sortierte/validierte Achsen, `keepdims`/Squeeze, No-op-Achsen, +leere Reduktionen mit dem originalen Init-Kernel, zusammengefasste reduzierte +Achsen, Stride-Sortierung, General-Copy nur beim originalen GeneralReduce-Plan, +Row-Small/Simple/Looped sowie Col-Small/Looped/LongColumn/TwoPass und AllReduce +mit originalen Schwellen, Zwischenpuffern, Argumentlayouts und Threadgeometrien. +Shape-Collapse und zweidimensionale Grid-Faktorisierung werden mit den bereits +portierten Views geteilt. Der Runtime-Identitätszweig bewahrt beim Vector-Copy +auch kompakte Broadcast-Speicherung; er darf daraus keinen Full-Fill machen. + +`mean_f32` bildet genau den im QSA-Eager-Pooling benötigten Ausdruck ab: +expliziter F32-Input, Sum und anschließendes Multiply mit einem aus Host-F64 +auf F32 gerundeten Kehrwert. Kein Divide, eigener Mittelwertkernel oder +Zusammenziehen mehrerer Primitiven. Dies ist kein vollständiger allgemeiner +Mean-/Integer-Reduce-/Shapeless-Compiler-Port. + +232 tatsächliche MTPLX-Referenzfälle werden lazy und mit vorbereiteten Eingaben +geprüft:928 bitgleiche Tensorvergleiche für Sum und F32-Mean. Enthalten sind +alle neun Kernelfamilien, ein-/mehrdimensionale Reduktionen, zwei und fünf +Kernel-Reduktionsdimensionen, Plain-/Offset-/Transpose-/Strided-/Reverse-/ +Broadcast-Layouts, No-ops und leere Achsen. Grenzfälle decken insbesondere +31/32 Outputzeilen, Breiten512/513/1024/1025, Spaltenlängen31/32/256/257/ +1023/1024/32768 sowie AllReduce4096/4097 und die64-MiB-Schwelle ab. +Zusätzlich werden konkrete Kernelnamen, Dispatch-/Threadgroup-Geometrien und +Threads-vs-Threadgroups an14 ausgewählten Grenzen geprüft. Ein separater +Runtime-Identitätscheck prüft physische Broadcast-Datengröße und Strides. + +Belege: `tests/fixtures/mtplx-sum-graph.jsonl` (SHA256 +`d0963276ff75305d7903b91cb34f8d0db2472330fba444199f70dfd7fbebcdd1`) +und `local-eval-results/20260907-mtplx-port/sum-graph-check.log`. +Gemeinsame Release-Suite:121/121 normal in69,63s und121/121 unretained in71,85s. +Nach der abschließenden Korrektur des Runtime-Identitätszweigs bestehen auch +die fokussierten Checks normal in2,39s, unretained in2,27s und FastSync in2,32s, +jeweils1/1 einschließlich aller928 Tensorvergleiche und Dispatch-Verträge. +Die vollständigen Suites liefen vor dieser letzten Identitätskorrektur. +Release-Test-Clippy, Format-/Diff- und unveränderte Quellenprüfung bestehen. +Prüfzeiten sind keine Modell-Performance-Werte. + +P08 bleibt offen: insbesondere Sort/Argpartition für den Eager-Indexer, +dessen vollständige Auswahl-/Cache-/Graphbank-Kette, +Attention und produktive Modellintegration. Der Port bleibt `cfg(test)`. +Keine Aussage zur UI-Responsivität oder erreichten Performance-Parität; +keine Rücknahme aufgrund isolierter Laufzeiten. + +### Kanonischer Float-Matmul und verbundener QSA-Score-Pfad (2026-09-07) + +`dense.rs` verwendet jetzt eine gemeinsame Matmul-Factory für BF16/F16/F32, +Typ-Promotion, Vektoren, Matrix-/Vektorprodukte, Broadcast-Batches, statisches +Flatten/Unflatten und leere Matrizen. `nn.Linear` delegiert direkt an diese +Factory; seine duplizierten Expand-/Reshape-/Squeeze-Pfade wurden entfernt. +Alle bisherigen Attention- und HC-Aufrufer verwenden dieselbe Operation. + +Der Metal-Backendport für den M5 Max übernimmt aus dem gepinnten +`backend/metal/matmul.cpp` beide GEMV-Richtungen, DotProduct mit F32-Partials, +originalem AllReduce und Scalar-Copy, F16/BF16-GEMV-Wide (ausdrücklich nicht für +F32), NAX/SIMD-Split-K und reguläre NAX-/SIMD-GEMM-Auswahl. Kernel, Partitions- +größen, Schwellen, Strides, Byte-Offsets, Zwischenpuffer, Function Constants +und Dispatch-Geometrien stammen aus dieser Referenz. Keine neuen Metal-Körper. +`MLX_ENABLE_TF32` wird wie `env::enable_tf32` einmal mit `atoi` gelesen, Default1; +TF32-off wählt die originalen SIMD-F32-Kernel, Vektoren bleiben bei GEMV. +Dies erweitert den M5-Max-Port, nicht Complex-Matmul oder den Shapeless-Compiler. + +`attention::qsa_scores` verbindet den ursprünglichen Ausdruck aus +`qsa_indexer_prefill_scores`/`QSAIndexer._select_eager`: F32-Query-Cast bei +bereits F32-Poolingoperand gemäß Originalvertrag, Matmul, ReLU je Kopf, Sum über Achse2, +Division durch Host-F64-sqrt(D), auf F32 gerundet, und Auswahl von Batch0. +Der zuvor portierte gemeinsame Reduktionspfad wird direkt verwendet. + +228 zusätzliche Original-Matmul-Fälle sind mit TF32 on/off erfasst: +BF16/F16/F32, gemischte Eingabetypen, alle vier Transponierungsrichtungen, +Dot-/linke/rechte Vektoren, Kreuz-Broadcasts, Copy-/Offset-/Collapse-/Flatten- +Layouts, ungerade K, Split-K-Grenzen und leere Matrizen. Lazy/vorbereitete +Ausführung ergibt456 bitgenaue Tensorvergleiche über beide TF32-Prozesse. +Zusätzlich bestehen384 vorhandene direkte MTPLX-QSA-Score-Receipts jetzt auch +durch den kanonischen Arraygraph, einschließlich S2048, N1/7/16/32/40/63/64/ +128/129/513 und acht Speicherlayouts. Zusammen840 neue Matrix-/Score- +Vergleiche; die bisherigen68 BF16-Attention-Vergleiche bleiben erhalten. +Konkrete F32-Kernelnamen und Threadgeometrien für GEMV, beide Split-K-Varianten +und gebatchte reguläre GEMM werden zusätzlich geprüft. + +Beim Erfassen der Referenz stürzte `numpy.asarray` auf einem leeren F32- +Matmul-Ergebnis ab. Ein unabhängiger Minimalaufruf bestätigt: `mx.eval` +schließt ab; erst das Auslesen der Null-Datenadresse stürzt ab. Der gemeinsame +Fixture-Emitter hasht daher bei `size==0` die leere Bytefolge nach erfolgreichem +Eval, ohne NumPy-Lesen. Keine Änderung an Referenzmodell/-runtime, Berechnung +oder nichtleeren Hashes. Die abgebrochene F32-Capture-Gruppe wurde vollständig +neu erfasst. Form und Abschluss leerer Ergebnisse bleiben geprüft. + +Belege: `tests/fixtures/mtplx-dense-float.jsonl` (SHA256 +`24ac569b5fe6f4dc6757cb21870bc3d9ae0fd2c7eff690240284b61d0ce76037`), +vorhandene `qsa_f32_score_*`-Receipts und +`local-eval-results/20260907-mtplx-port/dense-float-graph-check.log`. + +Verifikation des finalen Standes:123/123 gemeinsame Release-Tests mit +Default-TF32 in72,44s;123/123 mit `MLX_ENABLE_TF32=0` und unretained Command +Buffers in72,34s; fokussierte Matrix-/QSA-Gruppe3/3 mit TF32 und FastSync +in2,00s. Release-Test-Clippy, Format-/Diff- und unveränderte Quellenprüfung +bestehen. Diese Prüfzeiten sind keine Inferenz-Geschwindigkeitswerte. + +P08 blieb an diesem Messstand offen: kanonisches Sort/Argpartition, fehlende Indexier-Dtypes, +vollständige Indexer-Auswahl/Cache-/Compiled-Graphbank und Attention-Aufruf. +Auch Modell-/Produktausführung und abschließende Performance-Abnahme bleiben +offen. Der Port ist weiterhin `cfg(test)`; kein Vollmodell-Speed oder UI- +Responsiveness-Nachweis wird aus diesen modellfreien Prüfungen abgeleitet. + +### Gemeinsames kanonisches Sort/Argpartition (2026-09-07) + +`sort.rs` portiert die vier ursprünglichen Factories Sort, ArgSort, Partition +und ArgPartition und deren gemeinsamen Metal-Merge-Sort. Partition bleibt wie +in der Referenz ein vollständiger Sort; `kth` wird normalisiert, geprüft und +im Graph-Primitiv erhalten. Negative Achsen, Flatten bei fehlender Achse, +BF16/F16/F32/I32/U32/I64/U64, Layout-/Offset-Auswertung, der originale +Contiguous-/Noncontiguous-Dispatch, Blockgrößengrenzen einschließlich der +64-Bit-Ausnahme, Ping-Pong-Partition/Merge und abschließende Vector-/General- +Kopie verwenden den ursprünglichen Ablauf und unveränderte Metallib-Kernel. +Die Kopie benutzt die vorhandenen gemeinsamen Copy-Funktionen. + +Der bisherige Buffer-Argsort für Router, MoE und QSA ist auf einen Adapter +mit denselben Form-/Pufferprüfungen reduziert; seine duplizierte Sortier- und +Kopierschleife wurde entfernt. Adapter und kanonischer Arraygraph gehen durch +dieselbe Backendfunktion. Zurückgegebene Zwischenpuffer bleiben für vorhandene +Buffer-Aufrufer bis zum GPU-Abschluss erhalten; im Arraygraph werden sie vom +Encoder gehalten. + +161 zusätzliche Original-Referenzfälle (23 Profile × sieben Dtypes) prüfen +jeweils alle vier Operationen, verzögert und mit vorbereiteten Eingaben: +1.288 bitgenaue Tensorvergleiche. Enthalten sind gleiche Sortierschlüssel, +negative Werte, beliebige Achsen, Transponierung, Schritt-/negative Strides, +Broadcast, Offset, Flatten sowie Ein-/Mehrblockgrenzen bis8.193 Elemente. +Für die Grenzprofile werden zusätzlich konkrete Kernel-Namen, Blockgrößen, +Grids und Anzahl der Merge-/Partition-Runden geprüft. Ungültiges `kth` wird +vor dem Dispatch abgewiesen. Leere Sortierachsen sind kein abgenommener Fall: +Der Originalbackend teilt durch die Achsengröße; der Rust-Port liefert bei0 +einen Fehler statt einen erfolgreichen Sort vorzutäuschen. + +Beleg: `tests/fixtures/mtplx-sort-graph.jsonl`, SHA256 +`a655665801dae88d9186faa60c4678bbf5af08b8b4797e95d836d5ab51cbd2b8`. +Erfassung direkt mit `sort_graph_fixtures` im gepinnten MTPLX-0.32.2-Prozess, +ohne Modellgewichte oder Downloads. Der erste gemeinsame Release-Durchlauf +besteht124/124 Tests in73,96s, einschließlich bestehender Router-, MoE- und +QSA-Aufrufer. Dieser Lauf enthält die Ergebnisprüfungen; die anschließend +ergänzten Dispatch-Verträge werden im abschließenden Lauf geprüft. + +Der finale gemeinsame Durchlauf mit unretained Command Buffers besteht +124/124 Tests in73,13s, einschließlich der Dispatch-Verträge. Die fokussierte +FastSync-Prüfung besteht ebenfalls. Release-Test-Clippy, Format-/Diff-Prüfung +und unveränderte Quellenprüfung bestehen. Vollständiges Prüfprotokoll: +`local-eval-results/20260907-mtplx-port/sort-graph-check.log`. +Diese Prüfzeiten sind keine Modell-Performancewerte. + +P08 bleibt offen: fehlende Indexier-Dtypes, vollständige kanonische +Indexer-Auswahl/Cache-/Compiled-Graphbank und Attention-Aufruf. Der gesamte +kanonische Port ist weiterhin `cfg(test)`; Produktmigration, vollständige +Funktionsparität, UI-Responsivität und die2%-Performance-Abnahme sind damit +ausdrücklich nicht abgeschlossen. + +### Verbundene kanonische Eager-QSA-Auswahl (2026-09-07) + +`attention::select_eager` verbindet nun den zuvor portierten F32-Scoregraph +und Sort/Argpartition mit dem tatsächlichen `QSAIndexer._select_eager`- +Ablauf, dem kanonischen QSACache und allen fünf Ausgabeformen. Der gepoolte +F32-Spiegel kommt direkt aus `QsaCache::pooled_f32_view`, einschließlich +seiner gepaddeten, nicht-kontiguierlichen Ansicht. Causal-Blockgrenzen, +Minus-Unendlich-Maskierung und F32-Tie-Break werden vor Argpartition wie +im Original berechnet; die gewählten Indices bleiben eine Array-Ansicht. + +Die Rückgabereihenfolge ist unverändert: chronologische Prefill-Blöcke +mit Gather-Validität und Nullersatz; Flash-Decode mit Host-Tailgrenze; +Decode-Gather mit vollständigen Blocktokens plus Rest; Rows-Gather mit +gepaddeten Tailtokens und Gültigkeit; sonst vollständige kausale Maske. +Flash gewinnt bei gleichzeitiger Aktivierung vor Decode-Gather. Gekachelte +Scores schließen Rows-Gather wie im Original aus. Jede Kachel führt vor +dem Anhängen der Indices ein echtes synchrones Eval aus; kein Ersatz durch +Flush oder Async-Eval. Ungekachelte Auswahl und ungenutzte dichte Zwischen- +ausdrücke bleiben verzögert. Die bestehenden Optionsfelder enthalten die +vom Aufrufer aufgelöste Phase-/Positions-/Umgebungspolitik, nicht eine neue +Heuristik allein anhand der Zeilenzahl. + +Bool/I64-GatherAxis verwendet jetzt alle vorhandenen Stride-/Adressierungs- +varianten des Originaltemplates. Sieben zusätzliche Instanziierungen, keine +geänderten Kernelkörper. Der Quellenabgleich bestätigt weiterhin17 Original- +Metal-Körper und22 Runtime-Einheiten; die Runtime-Einstiegspunkte steigen +von176 auf183. Alle vier Bool/I64-Row-Contiguity-Kombinationen einschließlich +negativer Indices und negativer Source-/Index-Strides haben einen ausführbaren +Check. Der gemeinsame `ops::repeat` übernimmt Expand/Broadcast/Reshape aus +`ops.cpp` einschließlich Null-/Eins-/Fehlerfällen; auch die bestehende +Blockmaskenrekonstruktion verwendet ihn statt eines duplizierten Ausdrucks. + +Die ursprünglichen Host-Lane-Zähler sind ebenfalls angeschlossen: +`eager_selector`, `decode_flash_skip`, `decode_gather` und +`decode_dense_mask`; Rows-Gather zählt wie das Original keinen dieser +Zähler. Snapshot und optionaler Bericht bei Prozessende über +`MTPLX_QSA_PREFILL_DEBUG` bleiben von GPU-Abschlussmessungen getrennt. + +144 neue Receipts rufen direkt den gepinnten MTPLX-`QSAIndexer._select_eager` +mit dem originalen QSACache auf:24 Profile × BF16/F16/F32 × TF32 on/off. +Lazy und vorbereitete Rust-Ausführung ergeben420 bitgenaue Tensorvergleiche. +Abgedeckt sind alle Ausgabeformen, echte Kachelgrenzen und deren +Nichtaktivierung bei tile>=S, beide Gather-Schwellen, Flash-Priorität, +Prefill-vs-Verify-Phase, partielle Tails, ungültige frühe Top-k-Slots, +S2048, Kontext32768 sowie parametrisierte Ratio1/4/8. Der Test prüft Formen, +Host-Tailwerte, Lane-Zähler und Kernelarbeit vor der Rückgabe: ausschließlich +bei aktiven Score-Kacheln. Cache und Query werden vor dem abschließenden +Eval freigegeben, sodass auch die Graph-Lebensdauer geprüft wird. + +Fixture: `tests/fixtures/mtplx-qsa-eager-graph.jsonl`, SHA256 +`25ea1819857c0eb91ff6700298f597ba47ccebe418cc5259a1dde76aae7bca2b`. +Der erste fokussierte TF32-on-Test besteht in1,78s; der gemeinsame TF32-off- +Durchlauf mit unretained Command Buffers besteht125/125 Tests in74,83s. +Dieser erste Gesamtlauf liegt vor den zusätzlichen Bool-Layout- und +Lane-Zähler-Checks; deren finale Prüfung wird separat protokolliert. + +Finaler Stand: gemeinsamer Standard-TF32-Durchlauf125/125 in75,49s; +TF32-off/FastSync-Auswahlprüfung1/1 in1,00s. Der Prozessabschluss meldet +die erwarteten Lane-Zähler (42 eager_selector,18 decode_flash_skip, +12 decode_gather,6 decode_dense_mask). Release-Test-Clippy, Format-/Diff- +und Quellenprüfung bestehen. Vollständige Protokolle: +`local-eval-results/20260907-mtplx-port/eager-selection-graph-check.log`. +Diese Testlaufzeiten sind keine Modell-Durchsatzwerte. +Die finale TF32-off/unretained-Gruppe für Eager-Auswahl, Bool-Gather-Layouts +und Repeat/Arraygraph besteht zusätzlich3/3 Tests in1,04s. + +P08 bleibt offen: vollständiger Indexer-Aufruf mit Projektion, Query-/Pooling- +Vorbereitung und Cache-Update, Fused-/Compiled-Selektoren im kanonischen +Graph und Attention-Aufruf. Die Eager-Auswahl ist verbunden und geprüft, +nicht der gesamte Indexer und nicht das Produkt. Weiterhin `cfg(test)`; +keine Vollmodell-Performance-, UI-Responsiveness- oder2%-Abnahme. + +### Gemeinsamer QSA-Indexer-Vorlauf und fortlaufender Cache (2026-09-07) + +`qsa_indexer::Indexer::prepare_rows` verbindet jetzt den nicht-kompilierten +gemeinsamen Vorlauf von `QSAIndexer._call_rows`: vorhandenes Dense-/Quantized- +Linear oder direkt übergebene QK-Zeilen; Split/Reshape; Query-RMSNorm/RoPE; +positionsbezogenes Schreiben der Rohschlüssel; Vervollständigen ganzer Pool- +Blöcke, Norm/RoPE und Schreiben in gepoolten Cache samt F32-Spiegel. +Die vorher geprüften Array-, Linear-, RoPE-, Reduktions-, Cache- und Custom- +Kernel-Funktionen werden direkt wiederverwendet, keine zweite Mathematik. + +Query und Pool verwenden bei tatsächlich erfüllter Original-Eligibility die +MTPLX-Prepare-Kernel; sonst den ursprünglichen Eager-Ausdruck. Pooling mittelt +zuerst inF32, castet zurück zum Eingabetyp, normiert und rotiert danach. +Blockpositionen stammen von `min(cache.pooled_len,total/ratio)`, nicht von +der gerade gelieferten Chunkgrenze. Dadurch werden unvollständige Blöcke +über mehrere Aufrufe korrekt vervollständigt und nach Rollback neu berechnet. +Der Indexer verschiebt `kv.offset` nicht; das bleibt Aufgabe von Attention. + +Unterhalb/einschließlich des Blockbudgets erfolgt der originale Rücksprung +nach den Cache-Updates. Die dabei ungenutzte Query-Vorbereitung bleibt ein +verworfener Lazy-Ausdruck; der Test prüft ausdrücklich, dass ihr CustomKernel +nicht trotzdem dispatcht wird. Oberhalb des Budgets werden Query, gepoolte +Ansicht und Frontier an die bereits verbundene Eager-Auswahl weitergegeben. +Fused-/Compiled-Auswahl wird dadurch nicht stillschweigend ersetzt. + +306 neue Receipts benutzen den unveränderten ursprünglichen `QSAIndexer`- +Aufruf und QSACache, mit kleinen lokalen Testgewichten und ohne Downloads: +BF16/F16/F32, Dense und übergebene nicht-kontiguierliche QK-Zeilen, +BF16-QuantizedLinear4/8bit, ganze/partielle RoPE, Prepare-Kernel an/aus, +Originalfallback bei D256 bzw. abweichendem Norm-Dtype, TF32 on/off. +Die Referenzflags wählen regulär Eager-Selection mit beiden Prepare-Pfaden; +es werden keine Methoden ersetzt. Diese Fixturekonfiguration ist kein +Produkt-Performance-Arm. + +Jedes Profil führt neun Aufrufe mit einem weiterbenutzten Cache aus: +3,1,5,2041,1,4 Tokens, dann fünf Tokens trimmen,8,33,1 Tokens. Das umfasst +Blockvervollständigung, die512-Block-Schwelle, Cache-/Spiegelwachstum, +Rewriting nach Trim, Rows-Gather, Dense und Decode-Gather. Verglichen werden +vollständige Roh-/Pooling-/Spiegel-Backings inklusive Shape/Kapazität, +Frontiers und Auswahl-Ausgaben. Lazy/vorbereitete Ausführung über beide +TF32-Prozesse ergibt2.108 bitgenaue Tensorvergleiche. + +Beim ersten Rust-Vergleich wurden die physischen Bytes des transponierten +F32-Spiegels als Row-Major gehasht. Roh- und Poolingcache stimmten bereits; +der Fehler betraf nur die Test-Auslesereihenfolge. Der Fixture-Leser stellt +jetzt wie NumPy `tobytes` die logische Reihenfolge her, ohne Cache- oder +Modellberechnung zu ändern. Die unveränderten Referenzhashes bleiben Maßstab. + +Fixture: `tests/fixtures/mtplx-qsa-indexer-prefix.jsonl`, SHA256 +`0f25280aab05b72158c7d596b67702c2bf67f2985bfa44fd9642430a14da5078`. +Der fokussierte Standard-TF32-Vergleich besteht in2,76s. +Prüfprotokoll: `local-eval-results/20260907-mtplx-port/indexer-prefix-check.log`. + +Finaler gemeinsamer Stand:126/126 Tests bei Standard-TF32 in76,36s, +126/126 bei TF32-off und unretained Command Buffers in78,51s. +Die zusätzliche fokussierte FastSync-Sequenz besteht ebenfalls. +Release-Test-Clippy, Format-/Diff- und unveränderte Quellenprüfung bestehen. +Die genannten Prüfzeiten sind keine Inferenz-Performancewerte. + +P08 bleibt offen: kanonische Fused-/Compiled-Selektoren samt durchgängigem +Routing und vollständiger Attention-Aufruf. `prepare_rows` ist kein +Ersatz für diese offenen Routen und kein neuer Produktionsfallback. +Der Port bleibt `cfg(test)`; die vollständige Produktmigration und +Funktions-/Responsiveness-/2%-Performance-Abnahme sind weiterhin offen. + +### Fused-QSA-Selektor im kanonischen Arraygraph (2026-09-07) + +`qsa_select` bildet nun den originalen `qsa_indexer_select_metal`-Aufruf +als Mehrfachausgabe-Primitive ab: Block-IDs/Gültigkeit/Scores, Token-IDs/ +Gültigkeit oder Dense-Maske, jeweils mit dem privaten F32-Score-Scratch als +weiterem Graph-Sibling. Auswerten eines öffentlichen Ergebnisses führt den +gemeinsamen Kernel genau einmal aus. Verwerfen der Eingabehandles vor Eval +verliert weder Strides/Offsets noch dynamische Frontiers oder Scratch. + +BF16, F16 und F32 werden für Query und Pool unabhängig gebunden, ohne +Kontiguierungs- oder Typkonvertierungsdispatch vor dem Originalkernel. +Der Host baut dessen unveränderten Header/Körper/Epilog mit den originalen +Formkonstanten und NAX/TF32-Bedingungen zusammen. Alle Ausgabepuffer werden +wie beim originalen CustomKernel vor der Kompilierung angelegt. Ein gemeinsamer +Encoder übernimmt Bindings, Datenumfänge, Grid und Threadgroup-Größe; +auch die bisherige Buffer-Schnittstelle verwendet jetzt diesen Backendpfad. +Es wurde keine zweite Implementierung desselben Shaders eingeführt. + +`Indexer::select_fused` übernimmt `_select_fused`: Query-Zeilen werden nach +32MiB Score-Scratch aufgeteilt, niemals die History. Dense-Ausgaben verwenden +die stabile physische Breite `(backing_blocks+1)*ratio`; nach Concatenate +folgt die logische Ansicht bis `total`. Zwischen den Chunks wurde kein +zusätzliches Eval oder Flush eingeführt. + +126 neue unveränderte Referenz-Receipts umfassen alle drei Ausgabeformen, +BF16/F16/F32, gemischte Eingabedtypen, transponierte/gestridete/gebroadcastete +Ansichten, Top-k1/3/7/512, Ratio1/3/4, verschiedene Headgeometrien, +leere bzw. gepaddete History und eine echte 127+2-Zeilen-Aufteilung bei +65537 Backing-Blöcken. Für die Chunkfälle wird MTPLXs ursprüngliche +`QSAIndexer._select_fused`-Methode mit ihrem ursprünglichen Chunkhelper +aufgerufen; keine Ersatzmethoden. TF32 on/off und lazy/vorbereitete Eingaben, +zusätzlich Host-/Tensor-Frontiers für direkte Aufrufe, ergeben936 bitgenaue +Tensorvergleiche. Der Test prüft außerdem Sibling-Eigentümerschaft, verzögerte +Konstruktion und die tatsächlich dispatchten Geometrien. + +Fixture: `tests/fixtures/mtplx-qsa-fused-graph.jsonl`, SHA256 +`56d8b82dd8978ecd8ab0d69d918744668ce7bf596ac61815f5c5e9cd666f3b19`. +Prüfprotokoll: `local-eval-results/20260907-mtplx-port/fused-selection-graph-check.log`. + +Der gemeinsame Stand besteht127/127 Tests bei Standard-TF32 in78,54s +und127/127 bei TF32-off mit unretained Command Buffers in78,98s. +Der fokussierte Fused-Graph-Test besteht zusätzlich mit FastSync, TF32-off +und unretained Command Buffers in1,65s. +Release-Test-Clippy sowie Format-/Diffprüfung bestehen. Die Quellenprüfung +bestätigt weiterhin17 originale Körper,41 Custom-Entrypoints und22 Runtime- +Einheiten mit183 Einträgen; an den Shaderdateien war keine Änderung nötig. +Diese Testzeiten sind keine Modell-Inferenzmessung. + +P08 bleibt offen: kanonischer vektorisierter Prefill-Selektor und Compiled- +Indexer, vollständiges Routing sowie Attention-Aufruf. Der neue Fused-Pfad +ist kein Ersatz für diese anderen Originalrouten und wird nicht als +allgemeiner Prefill-Fallback eingesetzt. Produktion bleibt unverändert auf +dem alten Graphen (`qwen_mtplx` ist weiterhin `cfg(test)`). Deshalb sind +Funktions-/Responsiveness-/2%-Performance-Parität des Gesamtmodells weiterhin +nicht nachgewiesen; dieser Schritt hat keine Performance-Auswahl oder +begründungslose Rücknahme eines MTPLX-Bestandteils vorgenommen. + +### Zweistufiger Prefill-Selektor im kanonischen Arraygraph (2026-09-07) + +`qsa_prefill::select` verbindet jetzt den originalen +`qsa_indexer_prefill_metal`-Graphen: statische Score-Produzentenwahl, +produzentenabhängiges Workspace-/Alignment-Budget, Query-Slices, Scores, +exakter Top-k-Selektor und Concatenate aller öffentlichen Ergebnisblätter. +BF16/F16 mit gleicher Eingabedtype und H4/D128 verwenden bei originaler +NAX-Eligibility den unveränderten TensorOps-Score-Kernel. Sonst wird der +bereits geprüfte `attention::qsa_scores`-Ausdruck verwendet: F32-Matmul, +ReLU pro Head, F32-Summe, Division. Der transponierte F32-Pool entsteht +in dieser Route nur einmal und wird zwischen Chunks geteilt. + +Es gibt keinen Laufzeit-Fallback nach ausgewähltem TensorOps-Dispatch. +Ein Fehler bleibt sichtbar. Score-Workspace zählt dort nur eine Ebene, +beim allgemeinen Ausdruck H+1; große Teilchunks werden nach unten auf32 +Zeilen ausgerichtet, eine irreduzible Zeile darf ein kleineres Budget +überschreiten. Wie im Original kommt kein zusätzlicher Chunk-Eval/Flush hinzu. + +Beide neuen CustomKernel-Primitive teilen ihre Encoder mit den vorherigen +Buffer-Aufrufern. Der Top-k-Quellgenerator ist nun Ratio-parametrisch statt +auf4 festgelegt. Header/Körper/Epilog bleiben aus dem gepinnten Export. +Top-k besitzt den ursprünglichen Mehrfachausgabe-Vertrag ohne zusätzlichen +Scratch-Sibling. Der CustomKernel legt zuerst alle Ausgaben an, führt dann +bei nicht-row-kontiguierlichen Eingaben die originale General-Copy aus und +kompiliert/dispatcht anschließend. TensorOps konsumiert tatsächliche Strides +und Offsets ohne solche impliziten Eingabekopien. Dynamische Frontiers +bleiben im Graphen; auch `pos+row_start` wird nicht auf dem Host ausgelesen. + +144 neue Receipts aus unveränderten MTPLX-Aufrufen prüfen BF16/F16/F32, +gemischte Dtypes, Original-Fallbacks für andere Headgeometrien, +transponierte/gestridete/gebroadcastete Eingaben, alle drei Ausgabeformen, +kleinstes Workspace sowie produktionsnahe K512-/Ratio4-Geometrien. +Der65-Zeilen-Fall erzwingt im TensorOps-Pfad32+32+1 Zeilen, im allgemeinen +H4-Pfad8-Zeilen-Chunks plus Rest. Eigenständige Top-k-Fälle prüfen außerdem +gestridete Scores und kleinere/mehrstufige Radix-Kandidatenmengen. +TF32 on/off, lazy/vorbereitete Eingaben und Host-/Tensor-Frontiers ergeben +1.152 bitgenaue Tensorvergleiche. Tatsächliche Producer-/Top-k-Geometrien, +Copy-Anzahl und verzögerte Konstruktion werden separat geprüft. + +Die erste neue Testassertion zählte Concatenate fälschlich als einen +Dispatch; tatsächlich kopiert das Original jedes Chunk-Blatt einzeln. +Nur diese Erwartung wurde korrigiert, keine Referenzhashes oder Shader. +Der anfängliche33-Zeilen-Fall passte noch in einen Chunk und wurde für +einen echten Alignment-/Restchunk-Nachweis mit65 Zeilen neu aufgenommen. + +Fixture: `tests/fixtures/mtplx-qsa-prefill-graph.jsonl`, SHA256 +`f223b1157d13833e899fb1b73e35a5343f26fb48940ee3c908829df14f6ae289`. +Prüfprotokoll: `local-eval-results/20260907-mtplx-port/prefill-selection-graph-check.log`. +Der fokussierte Standard-TF32-Test besteht in2,17s; keine Inferenzzeit. + +Gemeinsamer Stand:128/128 Port-Tests bei Standard-TF32 in82,49s und +128/128 bei TF32-off mit unretained Command Buffers in80,25s bestanden. +Der fokussierte Prefill-Test besteht zusätzlich mit FastSync, TF32-off und +unretained Command Buffers in2,04s. +Release-Test-Clippy, Format-/Diffprüfung und die unveränderte Quellenprüfung +(17 Körper,41 Custom-Entrypoints,22 Runtime-Einheiten/183 Einträge) bestehen. +Die ursprünglichen Shaderdateien benötigten keine Änderung. + +P08 bleibt offen: kanonischer Compiled-Indexer, vollständige Verbindung der +vorhandenen Selektoren mit Indexer-Routing und Attention, Full-SDPA sowie +Produktmigration. Der gesamte neue Graph bleibt `cfg(test)`. Es wurde kein +Produkt-Performance-/Responsiveness-Pass aus diesen Kernelprüfungen abgeleitet. + +### Dynamische Cache-Fenster im kanonischen Arraygraph (2026-09-07) + +Die noch fehlenden `DynamicSlice`/`DynamicSliceUpdate`-Operationen des +Compiled-Indexer-Graphen sind nun im gemeinsamen Array-/Eval-Pfad vorhanden. +Achsenprüfung, Broadcast/Cast des Updates, leere Ergebnisse/Updates, +Copy-/Donation-Auswahl und dynamische Geräteoffsets folgen dem gepinnten +Runtime-Original. Die Updates benutzen denselben General/GeneralGeneral- +Copy-Encoder wie statische Operationen, mit den ursprünglichen dynamischen +Runtime-Kerneleinträgen. Es kommen weder Host-Readback der Position noch +zusätzlicher Eval/Flush oder eine Ersatzimplementierung des Indexers hinzu. + +Die Offset-Berechnung verwendet den erfassten ursprünglichen Shaderkörper +mit den originalen acht Integer-Typinstanziierungen. Auch die bisherigen +Buffer-basierten Cache-Aufrufer verwenden jetzt diesen gemeinsamen Encoder; +deren doppelte Offset-Implementierung ist entfernt. +Originales Last-use-Donation kann Metadaten des Indexpuffers unverändert an +den internen int64-Offset weitergeben, einschließlich abweichender Dtype, +Scalar-Rank und `data_size`. Dafür gibt es die originale unqualifizierte +`copy_shared_buffer`-Variante; die vorhandene explizite View-Prüfung bleibt +unverändert. Physische Zugriffsgrenzen werden weiterhin geprüft. +Beim Ergänzen des Donation-Tests fiel im Quellvergleich eine fehlende +Output-Byteoffset-Bindung auf; sie ist korrigiert. Tests mit Offset 0/8 prüfen auch, +dass vorangestellte Sentinel-Bytes unverändert bleiben. + +30 Fälle aus unveränderten Referenzaufrufen liefern 360 bitgenaue Tensorvergleiche: +BF16/F16/F32, acht Integer-Indextypen, lazy/vorbereitete Eingaben, +behaltene/freigegebene Quellen, Transpose/Stride/Broadcast/negative Strides, +mehrere Achsen, leere und skalare Updates sowie verkettete Cache-Fenster. +Zusätzlich werden Dispatch-Anzahl, verzögerte Konstruktion und gemeinsame +beziehungsweise getrennte Pufferidentität geprüft. +Fixture: `tests/fixtures/mtplx-dynamic-slice-graph.jsonl`, SHA256 +`86d170991c68c9009b10eeead9479bc575e89b7eef6528e2a39677220d218acc`. + +Gemeinsame Regression: 129/129 Port-Tests bestehen mit Standard-TF32 +(80,93 s) und mit TF32-off/unretained Command Buffers (81,71 s). +Der fokussierte neue Test besteht zusätzlich mit FastSync (0,81 s). +Release-Test-Clippy, Format-/Diffprüfung und die unveränderte Quellenprüfung +(17 Körper, 41 Custom-Entrypoints, 22 Runtime-Einheiten/183 Einträge) bestehen. +Protokoll: `local-eval-results/20260907-mtplx-port/dynamic-slice-graph-check.log`. +Dies sind Testlaufzeiten, keine Inferenz-Leistungsdaten. + +P08 bleibt offen: Dies schließt eine Abhängigkeit des kanonischen Compiled- +Indexers, nicht dessen Graphbank/Replay und Routing. Full-SDPA, vollständiger +Attention-Aufruf und Produktmigration bleiben erforderlich. Weiterhin +`cfg(test)`; kein Gesamtmodell-, UI- oder Performance-Paritätsnachweis. + +### Reiner Compiled-Indexer und kanonisches Graph-Replay (2026-09-07) + +`qsa_compile::Body` verbindet nun die reine zehnargumentige Grenze von +`QSACompiledIndexerCore`: bereits projizierte Q/K-Zeilen oder interne +Projektion, explizite Norm-/RoPE-Eingänge, dynamische Raw-/Pool-Updates, +begrenztes rückwärtiges Pool-Fenster, Query-Vorbereitung und alle fünf +Ausgabeformen. Die vier State-Ergebnisse bleiben Array-Ausgänge; Position +und logische Blockzahl werden unverändert als Eingangsdescriptoren +zurückgegeben. Der Body mutiert keinen Host-Cache und liest keine Frontiers +auf dem Host aus. + +`compiled::Replay` übernimmt die feste DFS-/Sibling-Tape-Struktur und +`compile_replace`-Semantik: einmalige Tracer-Platzhalter, danach neue +Ausgabe-Descriptoren mit gemeinsamem unveränderlichem Primitiv und jeweils +aktuellen Eingangsarrays. Konstanten/Load-Blätter bleiben geteilt, Shapes +und Dtypes sind fest, Strides/Offsets und Werte keine Trace-Konstanten. +Die Konstruktion und das Replay dispatchen keine GPU-Arbeit. Ein eigener +Hosttest prüft vertauschte Sibling-Root-Reihenfolge, Descriptor-/Primitiv- +Identität, neue Eingänge sowie Fehler für falsche Signaturen und unzulässig +geschlossene ursprüngliche Aufrufseingänge. + +Die Clamp-/Multiply-/Chunk-Position-Knoten verwenden die unverändert +erfassten fusionierten Compiled-Shader, keine Reihe einzelner Binary-Kernel. +Sie teilen den bereits vorhandenen Compiled-Evaluator einschließlich +Layout-/Donation-Auswahl. Auch die vorherigen Buffer-Aufrufer benutzen +jetzt diesen Backendpfad; drei doppelte Skalar-Encoder sind entfernt. +Quellgenerierung und JSON-Auswertung geschehen nur beim ersten Compile, +nicht bei jedem Decode-Schritt. Der Prefill-Body teilt den bisherigen +Zweistufen-Selektor; im Compiled-Aufruf ist die Chunk-Position ebenfalls +der originale fusionierte Add-Knoten. + +198 bestehende unveränderte Referenzfälle prüfen Q/K und vier affine +Hidden-Projektionsvarianten (4/8 Bit, Gruppen32/64), alle fünf Modi, +Zeilenzahlen1/4/5/33/65/2048, zwei Scratch-Budgets sowie wechselnde +Q/K-Strides640/704. Ausgaben, neue/alte Cache-Hashes und die aus dem +Original-DOT abgeleiteten geordneten Abhängigkeits-/Sibling-Fingerprints +stimmen überein. Die Testbank verwendet bei Stride-Wechseln denselben +Replay-Eintrag; sie ist nicht die noch ausstehende produktive Host-Graphbank. +Die Referenzfälle sind BF16/H4/D128, Prefill verwendet MPP auf diesem M5 Max. + +Der Test führt diese Fälle anschließend jeweils mit behaltenen und ohne +behaltene Cache-Snapshots aus: 396 Replays und 2.052 Tensor-/Cache-Hashes. +Mit Snapshot müssen alte Zustände unverändert bleiben und neue Backings +entstehen; ohne Snapshot müssen Raw- und Pool-Ausgabe die ursprüngliche +Data-Identität wiederverwenden. Die Graphbank selbst hält keine alten +Aufrufseingänge und verhindert diese Donation nicht. + +131/131 gemeinsame Port-Tests bestehen bei Standard-TF32 (80,79 s; vor +Erweiterung des neuen Tests auf beide Snapshot-Varianten) und bei TF32-off +mit unretained Command Buffers (82,09 s; alle 396 Replays). +Die 396 Replays bestehen zusätzlich bei Standard-TF32 mit FastSync (1,33 s). +Release-Test-Clippy, Format-/Diffprüfung und die unveränderte Quellenprüfung +(17 Körper, 41 Custom-Entrypoints, 22 Runtime-Einheiten/183 Einträge) bestehen. +Protokoll: `local-eval-results/20260907-mtplx-port/compiled-indexer-replay-check.log`. +Dies sind Testlaufzeiten, keine Modell-Inferenzmessungen. + +P08 bleibt offen: der Host-Core mit Bucket-/Frontier-Validierung, vollständigen +Compile-Schlüsseln, Engagement-Statistik und Indexer-Routing; außerdem +weitere Compiled-Geometrien/Dtypes einschließlich der allgemeinen +Nicht-MPP-Score-Fusion, Full-SDPA, Attention und Produktmigration. +Replay ist ausdrücklich kein allgemeiner Ersatz für die ursprünglichen +Compiler-Simplify-/Fuse-Pässe. Deren Wirkung ist für die oben genannten +erfassten Graphen nachgewiesen, nicht pauschal für beliebige Ausdrücke. +Weiterhin `cfg(test)`, keine Modell-/UI-/2%-Performance-Abnahme. + +### Kanonischer Compiled-Host-Core und Engagement (2026-09-07) + +`qsa_core::Core` implementiert nun zusätzlich zum reinen Replay-Test den +Host-Vertrag von `QSACompiledIndexerCore`: unveränderliche Konfiguration, +Norm-/RoPE-Eingänge, optionale interne Projektion und getrennte Hidden-/QK- +Schlüssel. Sämtliche Shape-/Dtype-/Head-/Top-k-/Ratio-/Dense-Capacity-/Producer- +und Chunk-Felder des ursprünglichen `_CompileKey` werden berücksichtigt. +Werte, Strides und Offsets sind weiterhin keine zusätzlichen Schlüssel. +Die ursprüngliche Standardkonfiguration und benutzerdefinierte Bucket- +Untergrenzen sowie die abschaltbare Bucket-Pflicht bleiben erhalten. + +Der Core prüft Projektions-/Cache-/Norm-Dtypes, Backing-Geometrien, feste +Pool-Fenster, Host-Frontiers und Backing-sichere Dense-Ausgabebreiten vor dem +Dispatch. Tensor-Frontiers werden lediglich auf ein int32[1]-Array normalisiert, +nicht synchron auf dem Host ausgelesen. Die Rückgabe trennt Auswahl und vier +explizite State-Blätter. Host-Cache-Commit und Aufrufroutenauswahl liegen +weiterhin beim noch anzuschließenden Indexer. + +Calls, Source-/Mode-/Producer-Zähler, Selector-Dispatches, Capacity-Transitions, +Bucket-Zähler und vollständig sortierte Compile-Key-Berichte folgen dem +Original. Ein nach erstem Trace-Fehler leerer Laufzeit-Eintrag bleibt im +Host-Core bestehen: Wiederaufruf versucht den Trace erneut, ohne einen zweiten +Core-Trace-Request zu zählen oder einen halb aufgebauten Replay zu verwenden. +Bereits als Tracer übergebene Arrays bauen wie im Original direkt den Body, +statt den gecachten Replay zu verwenden. Kein Eager-Fehlerfallback wurde ergänzt. + +32 neue Receipts wurden mit unverändertem MTPLX-Core aufgenommen: elf echte +aufeinanderfolgende Aufrufe mit wechselnden Shapes, Strides, Positionen, +Kapazitäten, Hidden-/QK-Quellen und allen fünf Modi (66 bitgenaue Output-/State- +Hashes), vollständige Zwischen-/Endberichte, 17 Validierungsfälle und zwei +aufeinanderfolgende fehlgeschlagene Erst-Traces. Der zulässige Tensor-Frontier- +Fall wird nur lazy aufgebaut und ausdrücklich nicht auf der GPU ausgeführt; +sein Host-Gegenstück wird vorher abgewiesen. Neun zusätzliche Konstruktor- +Assertions sichern die direkt aus dem Quellcode portierten Grenzen ab. + +Fixture: `tests/fixtures/mtplx-qsa-core-host.jsonl`, SHA256 +`05d3642cbf08a12f6f1c1ad7cac0b529d2ef51f3bfb9c27ab6ab229aa1017022`. +Der fokussierte Referenztest besteht (0,75 s; keine Inferenzzeit). + +Gemeinsame Regression: 132/132 Port-Tests bei Standard-TF32 (82,51 s) und +TF32-off/unretained Command Buffers (82,61 s); fokussierter Host-Core mit +FastSync ebenfalls bestanden (0,07 s). Release-Test-Clippy, Format-/Diff- +prüfung und unveränderte Quellenprüfung (17 Körper, 41 Custom-Entrypoints, +22 Runtime-Einheiten/183 Einträge) bestehen. Protokoll: +`local-eval-results/20260907-mtplx-port/compiled-host-core-check.log`. +Die Laufzeiten sind keine Modell-Performance-Abnahme. + +P08 bleibt offen: Parameter-Identitätssiegel und Core-Lebenszyklus im Indexer, +automatische Backing-Reservierung/Commit, vollständiges Fused-/Eager-/Compiled- +Routing, übrige Compiled-Geometrien/Dtypes und Nicht-MPP-Score-Fusion, +Full-SDPA, Attention und Produktmigration. Der Host-Core ist noch nicht der +vollständig verbundene Modellaufruf; weiterhin `cfg(test)` und keine +Modell-/UI-/2%-Performance-Abnahme. + +### Durchgehender kanonischer Indexer und Cache-Commit (2026-09-07) + +`qsa_indexer::Indexer` verbindet jetzt den gemeinsamen Vorlauf, den persistenten +Compiled-Core sowie Compiled-/Prefill-/Fused-/Eager-Routing in einem Aufruf. +Die ursprünglichen Phase-/Shape-/Dtype-/Projektions-/Cache-Prüfungen entscheiden +vor der Reservierung; Dispatchfehler führen nicht zu einem Eager-Wiederanlauf. +Die vorhandene Modusregel wird auch vom alten Buffer-Aufrufer verwendet und +nimmt nun Ratio/Top-k explizit entgegen, statt die Modellgeometrie festzusetzen. +Die bereits geprüften Selektoren, Cache-Operationen und Engagement-Zähler werden +gemeinsam genutzt. Es gibt keinen zusätzlichen Flush, Wait oder Readback im +Compiled-Aufruf; ursprüngliche Eager-Kachel-Evals bleiben unverändert. + +Das Identitätssiegel erfasst Normen, Frequenzen und Projektionsgewicht sowie +Quantisierungsskalen/-biases. Ein ausgetauschtes Blatt baut den Core neu auf; +gleiche Bytes genügen nicht zum Wiederverwenden. Unveränderte Blätter behalten +den Core und dessen ursprünglich erfasste Speicherbudgets. Fehlgeschlagene +Neukonstruktion lässt den bisherigen Core samt Siegel bestehen. Backings werden +vor dem Core-Aufruf reserviert; dessen explizite Ergebnisse ersetzen die +Cache-Arrayobjekte, aktualisieren die logische Pool-Länge und verwerfen den +F32-Spiegel. Alte Snapshots bleiben unverändert. `cache.kv.offset` wird nicht +vorweggenommen; dessen Fortschreibung gehört weiterhin zu Attention. + +26 neue, unveränderte MTPLX-Aufrufe prüfen fortlaufend alle fünf Rückgabeformen, +Hidden-/QK-Quellen, dichte/quantisierte Projektion, Gewichtswechsel, Budget- +Wiederverwendung, Backing-Wachstum, Trim und gescheiterte Core-Ersetzung. +52 Rust-Aufrufe mit/ohne gehaltene Snapshots stimmen in 216 Output-/State- +Hashvergleichen überein; vollständige Core-Berichte stimmen ebenfalls. +Fixture: `tests/fixtures/mtplx-qsa-indexer-commit.jsonl`, SHA256 +`ed4dde278663e0f7d684fc78ea51474f68ab5326f467f3022ef521a7cf93939e`. + +Zusätzlich stimmen die 200 vorhandenen vollständigen Indexer-Referenzaufrufe +einschließlich 2K-Prefill, aller Lane-Wechsel, Cache-Inhalte und Graphbank-Zähler +mit dem kanonischen Arraygraph überein. Die 720 vorhandenen statischen +Zulässigkeitsfälle stimmen ohne GPU-Dispatch überein, einschließlich inkonsistenter +Frontiers und nicht gebucketeter/leer vorhandener Backings. Diese Nachweise +betreffen die erfasste B1/BF16/H4/D128-Modellgeometrie, nicht beliebige Typen. + +Gemeinsame Regression: 134/134 bei Standard-TF32 (84,69 s; vor Ergänzung der +720 statischen Assertions) und TF32-off/unretained Command Buffers (84,18 s; +einschließlich dieser Assertions). Die drei Indexer-Tests bestehen außerdem +bei Standard-TF32 mit FastSync (3,36 s), ebenfalls einschließlich aller +720 Assertions. Release-Test-Clippy, Format-/Diffprüfung +und die unveränderte Quellenprüfung (17 Körper, 41 Custom-Entrypoints, +22 Runtime-Einheiten/183 Einträge) bestehen. Protokoll: +`local-eval-results/20260907-mtplx-port/indexer-lifecycle-routing-check.log`. +Diese Laufzeiten sind Korrektheitstestzeiten, keine Inferenzmessungen. + +P08 bleibt offen für übrige Compiled-Geometrien/Dtypes einschließlich der +allgemeinen Nicht-MPP-Score-Fusion, Full-SDPA, den vollständigen Attention-Aufruf +und die Produktmigration. Der Port bleibt `cfg(test)`; die alte UI-Ausführung +ist damit noch nicht ersetzt und das 2%-Gesamtziel bleibt offen. + +### Verbundener Qwen-Attention-Modulaufruf (2026-09-08) + +`qsa_attention::Attention` verbindet nun den vollständigen BF16/D256-Aufruf +der MTPLX-Klasse: separate Q/K/V-Projektionen oder gemeinsame Drei-/Vierfach- +Projektion, Indexer vor KV-Fortschreibung, per-Head-Norm, Query-/Gate-Aufteilung, +partielles RoPE/M-RoPE, KV-Update, sämtliche QSA-Consumer, Sigmoid-Ausgangsgate +und Ausgangsprojektion. Biased separate Projektionen sowie fehlender Indexer +sind ebenfalls abgebildet. Die bereits geprüften Operationen/Kernel werden +verwendet, nicht neu implementiert. + +Ein beim Anschluss geschlossener Referenzunterschied: Die originale +Vierfachfusion entfernt `indexer.index_qk_proj`. `Indexer::projection` ist +deshalb jetzt optional. Zugelieferte QK-Zeilen funktionieren ohne diese +Projektion; das Identitätssiegel enthält dann nur Normen/Frequenzen und der +Compiled-Core erfasst keine versteckte zweite Projektion. Ein Hidden-Aufruf +ohne Projektion wird nicht durch einen erfundenen Ersatz bedient. + +Die Consumer-Reihenfolge bleibt Flash-Skip, Prefill-Flash, optionaler +Prefill-Gather, Dense-Rekonstruktion, Rows-Gather und gewöhnliches SDPA. +Sparse-Flash liest die KV-Backings und ihre Kapazitätsstrides direkt. Die +ursprünglichen Engagement-Zähler und die expliziten Gather-Tile-Evals bleiben +erhalten; es gibt keine zusätzliche Aufmerksamkeitssynchronisation. +Ein Vision-Request überspringt nur die Sparse-Auswahl, nicht den Indexer und +seine Cache-Updates. M-RoPE verwendet innerhalb der Tabelle deren Achsen; +danach die normale Positionsfolge mit Request-Delta. Ohne konfigurierte +M-RoPE-Achsen bleibt das originale Plain-RoPE-Verhalten erhalten. + +**Keine stillschweigende Full-SDPA-Abkürzung:** Qwens normaler D256-Aufruf +verwendet eine explizite Array-Maske oder keine Maske. Die gepinnte Runtime +selektiert hier für S>8 den Matmul-Fallback. Der NAX-D256-Split wird dagegen +nur für kausale String-Maske ohne Array-Maske und S>=1024 gewählt +(`scaled_dot_product_attention.cpp:750–767`). Der Modellport behält diese +Originalauswahl; die allgemeine Full-SDPA-Erweiterung bleibt separat offen. + +56 Receipts stammen aus der unveränderten MTPLX-Attention-Klasse, je 28 mit +TF32 an/aus. Zehn fortlaufende Szenarien umfassen kalten 2K-Prefill, +Prefill ab 32768 mit ursprünglichem Sparse-Flash, Decode/Verify, alle Consumer, +Cache-Trim, Projektionsfusion mit wirklich entfernter Indexer-Projektion, +Bias/no-indexer und Vision inklusive des ersten Schritts nach dem Tabellenende. +Die Referenz protokolliert die tatsächlich aufgerufenen Consumer durch reine +weiterleitende Beobachter; keine Berechnung wird ersetzt. 288 Referenzhashes +decken Ausgabe und KV-/Raw-/Pool-/F32-Mirror-Backings ab. Rust prüft zusätzlich +Shapes, Frontiers, vollständige Core-Berichte, Engagement-Deltas und die +tatsächlichen Sparse-Flash-Graphknoten/-Dispatches. +Fixture: `tests/fixtures/mtplx-qsa-attention-module.jsonl`, SHA256 +`d0fdbd1ad13820004a672a7634e50a66cf50a708180a9d037720920619f02016`. + +112 Rust-Aufrufe (jeweils lazy/vorbereitet, TF32 an/aus) bestehen mit +576 bitgenauen Ausgabe-/Cache-Hashvergleichen. Gemeinsame Regression135/135 +bei Standard-TF32 (120,88 s) und TF32-off/unretained Command Buffers +(121,01 s); vollständiger Attention-FastSync-Test ebenfalls bestanden +(1,34 s). Release-Test-Clippy, Format-/Diffprüfung und unveränderte +Quellenprüfung (17 Körper,41 Custom-Entrypoints,22 Runtime-Einheiten/183 +Einträge) bestehen. Die Testlaufzeiten sind keine Modell-Performancewerte. +Protokoll: `local-eval-results/20260908-mtplx-port/attention-module-check.log`. + +Der vollständige Modell-/Decoder-/Serving-Aufruf und die Produktionsumstellung +bleiben offen, ebenso andere SDPA-Dtypes/Geometrien und übrige Compiled- +Geometrien/Nicht-MPP-Score-Fusion. `cfg(test)` ist weiterhin aktiv; +dies ist weder eine UI-Responsivitäts- noch eine Gesamtperformance-Abnahme. + +Aktuelle Reproduktionsbefehle für die Kernel-Korrektheit: + +```sh +python3 tools/mtplx-kernel-source.py local-eval-results/mtplx-reference-e652d55 --gated-delta-source local-eval-results/mtplx-reference-env-0.32.2/lib/python3.12/site-packages/mlx_lm/models/gated_delta.py --check +cargo test --release mtplx_canonical_source_bodies_preserve_pinned_hashes -- --nocapture +cargo test --release mtplx_canonical_hyper_and_gdn_kernels_match_reference -- --ignored --nocapture --test-threads=1 +cargo test --release qwen_mtplx -- --include-ignored --test-threads=1 +``` + +## Auftrag und Grenzen + +Qwen muss funktional und hinsichtlich Durchsatz und Verzögerungen dem tatsächlich +aktivierten MTPLX-Pfad entsprechen oder schneller sein. Die Referenzzuordnung ist +verbindlich und gilt auch für spekulatives Decoding: + +| Modell | Golden Master | Andere Implementierungen | +| --- | --- | --- | +| DeepSeek V4 Flash | antirez/ds4, einschließlich DSpark | MTPLX nur als zusätzliche Optimierungsquelle | +| GLM 5.3 Flash | antirez/ds4, einschließlich integriertem MTP | MTPLX nur als zusätzliche Optimierungsquelle | +| Qwen3.8 Flash Next | MTPLX | DS4 nur für gemeinsame Infrastrukturideen, nicht als Qwen-Orakel | + +Ein möglicherweise besserer MTPLX-Ansatz für DeepSeek/GLM ersetzt deren Golden +Master nicht. Verbesserungen müssen die antirez/ds4-Verhaltens- und Sampling- +Verträge erhalten; eine abweichende Semantik braucht vor Umsetzung eine ausdrückliche +Nutzerentscheidung. Die UI und die Headless-Harness müssen dieselbe +Produkt-Inferenz ausführen. Ein kleinerer Qwen-Prefill-Chunk, niedrigere Leistung +oder zusätzliche Wartezeiten sind kein Ersatz für Ursachenklärung. + +Dieser Abgleich inventarisiert die Ausführungskette und ordnet belegte Unterschiede, +bereits korrigierte Fehler und noch fehlende Nachweise ein. Er behauptet **nicht**, +dass jede numerische Operation und jeder seltene Fallback bereits als identisch +bewiesen ist. Diese offenen Nachweise haben unten eigene Tasks mit Abnahmekriterien. +Für die weitere Umsetzung gilt die verbindliche Auftragspräzisierung oben. + +Nur vorhandene Modelle; keine Downloads. Keine neuen Projekt-Gates, externen Issues +oder Codex-Tasks. Die folgende Liste ist die lokale Arbeitsquelle. Bestehende +ungecommittete Änderungen bleiben erhalten. + +## Festgehaltene Referenzen und Belege + +- DS4Server: Arbeitsbaum auf `b99ce2a`, inklusive ungecommittierter Änderungen. +- MTPLX: `local-eval-results/mtplx-reference-e652d55`, Commit + `e652d55e2652137a4abcf1312357abbf3eb9d692`, installierte Runtime0.32.2. + Am2026-09-06 identisch wiederhergestellt, nachdem im früheren temporären + Checkout `/private/tmp/MTPLX-analysis-20260901` Quelldateien fehlten. +- DS4: `/Users/gb/Projects/ds4`, Commit + `ec7642cdd9ec81d01ad4b1fd8f8a3d1511533748`. C-Code nur lesen, nicht in DS4Server + übernehmen, kompilieren oder als Inferenz-Backend aufrufen. +- Qwen: vorhandenes Bare-Speed-Artefakt unter + `/Users/gb/Library/Application Support/de.rfc1437.ds4server/models/qwen3.8-flash-next`. +- Messbelege und Methoden: [Qwen-Responsiveness-Bericht](/Users/gb/Projects/DS4Server/docs/qwen-reference-responsiveness-20260905.md). + Rohdaten: `/private/tmp/ds4-ongoing-verified.16vzVw/`. + +Der wiederholte MTPLX-AR-Lauf mit expliziter Session hatte maximal **2,974 ms** +GPU-Canary-Completion im Prefill, MTPLX-MTP **0,550 ms**. DS4Server-AR hatte +**4090,027 ms**. Gleiche native Probe, im jeweiligen Inferenzprozess; keine +fehlgeschlagenen Probes. Das belegt eine reale Responsiveness-Differenz, aber noch +nicht deren vollständige Aufteilung auf Scheduling und einzelne Kernel. + +Die bisherigen Durchsatzwerte sind keine saubere 2%-Abnahme: Tokenisierung und +Cache-Wiederverwendung unterscheiden sich, die Canary war aktiv, und es fehlt eine +wiederholte, vollständig normalisierte Sechs-Zellen-Matrix. Historische GLM-MTP-Daten +mit überlappenden Workern sind ungültig. + +### Tatsächlich aktive Qwen-Referenz statt allgemeiner MLX-Defaults + +Die `/health`-Receipts in `mtplx-ar-session.jsonl` und `mtplx-mtp.jsonl` belegen: +Turbo, Chunk 2048, Kontextkapazität 131072, Low, Temperatur 1, top-p 0,95, +top-k 20, Seed 12345; committed MTP history, batched verify, +`linear-gdn-from-conv-tape`, lazy target distributions, family capture commit. +Fused HC V3, GDN input/step/convnorm, verify convnorm und gate/up sind aktiviert. +**NAX verify ist für diese Familie deaktiviert**, trotz des generischen +Turbo-Profils. Aktiviertes Environment allein beweist noch keinen Kernel-Aufruf; +Form- und Gerätegrenzen müssen ebenfalls passen. + +Die Referenz lädt den MTP-Kopf auch beim AR-Server. Ihr Ready-Receipt zeigt noch +laufende Background-Warmup-Schritte. DS4Server lädt den Kopf bei abgeschaltetem MTP +nicht und die Harness führt einen eigenen separaten Warmup aus. Ladezeit, +Speicherbedarf und Kaltstart dürfen deshalb noch nicht direkt gleichgesetzt werden. + +### Veröffentlichte M5-Max-Zahlen: Orientierung, keine Ersatzmessung + +Der lokal gepinnte MTPLX-Releasebericht +[2.10.0](/private/tmp/MTPLX-analysis-20260901/docs/releases/v2.10.0.md:21) +nennt für Flash-Next 61 tok/s AR und 63–76 tok/s MTP je nach Workload. +[2.10.1](/private/tmp/MTPLX-analysis-20260901/docs/releases/v2.10.1.md:5) +nennt für lange Prefills 175,7 → 114,5 s bei 98k Tokens und 810 tok/s bei 131k. +Diese Angaben sind keine Referenz für einen beliebigen kurzen Summary-/Story-Chat. +Die Online-Abfrage der gepinnten MTPLX-Dateien war nicht abrufbar; die Zahlen sind +aus dem aktuell lokal geprüften Referenzcheckout, nicht als online neu bestätigt +ausgegeben. + +Der [DS4-Speedabschnitt](https://github.com/antirez/ds4#speed) beschreibt dagegen +2048-Token-Schritte und 128 greedy Tokens mit *Promessi sposi*. Im lokalen Pin +stehen bei Kontext 2048 rund 790,18 Prefill- und 39,35 Decode-tok/s. Das ist eine +andere Arbeit als drei freie Antworten bis EOS. Nicht vermischen. + +## Abdeckungsmatrix der Ausführungskette + +Status: **M** gemessen; **Q** Unterschied im Quellcode belegt, Kosten/Tragweite +noch nicht vollständig gemessen; **T** Teilnachweis vorhanden; **O** Nachweis offen. +Quellstellen beziehen sich auf den oben genannten Arbeitsstand. + +| Bereich | DS4Server | Referenz / Befund | Status / Task | +| --- | --- | --- | --- | +| Frontend → Engine | `src/app/generation.rs:780`, `src/model_eval.rs:803`, `src/runtime.rs:108` | Gleicher `GenerationService`, eigener `model-runtime`-Thread, LocalChat. Harness hat keinen echten GUI-Eventloop und bildet nicht jede UI-Nebenarbeit ab. | T/Q · P02, P04 | +| Systemprompt / Tools / Skills | `src/app/generation.rs:2469` | Headless-Helper lädt ExtensionRegistry und hängt verfügbare Skill-Instruktionen an. Kein Beleg für ausgeführte Tools, aber noch kein sauber isolierter Test ohne deren Prompt-Anteile. | Q · P02 | +| Qwen-Chatfortsetzung | `src/engine/tokenizer.rs:524`, `src/engine.rs:1420` | Zusätzliche Low-Systemnachricht bei Checkpoint-Fortsetzung erzeugte 30 zusätzliche Tokens. Lokal korrigiert und Regressionstest bestanden; End-to-end-Vergleich noch offen. | M/T · P02 | +| Cache / ongoing Chat | `src/engine/metal/qwen.rs:5312`, `src/model_eval.rs:907` | MTPLX AR wiederverwendete jedes Mal 5120 Tokens; MTP 5120/7840/8861. Vollständige History ist nicht gleich identischer Cache-Arbeit. | M · P03 | +| Laden / Warmup / Speicher | `src/engine/qwen.rs:362`, `src/engine/metal/qwen.rs:409` | Volle Kontextpuffer, andere Aktivierungs-Speichertypen; Referenz mit MTP-Kopf und Background-Warmup. | Q/O · P01, P09, P15 | +| Command-Buffer-Scheduling | `src/engine/metal/qwen.rs:844`, `native/metal/ds4_metal.m:11878` | Qwen bei 100% ein CB über alle Prefill-Layer. MLX automatische asynchrone Commit-Grenzen nach Operationen/Bytes. | M/Q · P05 | +| PLE-Hash / Gather / SSD | `src/engine/qwen.rs:224`, `src/engine/metal/qwen.rs:1024` | Beide 16 Leser und nominell 1 GiB Hot Rows. MTPLX staged vor Graphaufbau, große Gathers umgehen Row-LRU; Rust liest bei Layer 1 und cached auch große Gathers. | T/Q · P10 | +| HC / Normalisierung | `src/engine/metal/qwen.rs:1247`, `metal/qwen38.metal` | MTPLX `GatedResidual` und `hc_read_v3`; Formgrenzen, Fusions- und Rundungsstellen nicht lückenlos durchgetestet. | T/O · P09 | +| GDN Prefill / Decode / Verify | `src/engine/metal/qwen.rs`, `encode_gdn_conv_norm_rows` | Große Conv/Norm-Prefills nun zeilenparallel mit referenzgleichen BF16-Grenzen; modellfreier Boundary-Test exakt. Delta-Threadgeometrie und vollständige Layer-/State-Parität weiter offen. | T/M · P06 | +| Router / MoE / Shared Expert | `src/engine/metal/qwen.rs:2738`, `:2826`, `:2919` | Rust sortiert ab S=5, MTPLX bei ≥64 Routen (bei top-10 ab S=7). Rust Prefill gate/up getrennt, aktive MTPLX-Fusionsklasse gemeinsam. | Q/T · P07 | +| QSA / KV / FlashAttention | `src/engine/metal/qwen.rs:2134`, `:2551` | Rust baut dichte KV-Stagingansichten erneut auf; F16-Flash-Staging versus BF16-Referenzpfad. Sparse-Grenzen und tatsächliche Kernel prüfen. | Q/T · P08 | +| QMV / QMM / Quantisierung | `src/engine/metal/qwen.rs:3178`, `metal/qwen38.metal` | Frühere logische Output-Länge/BF16-Rundung korrigiert. Golden-Test gilt für geprüfte Formen, nicht alle Matmuls. | T · P09 | +| MTP Draft / Verteilung | `src/engine/metal/qwen.rs:4428`, `:4894` | Rust D3 fest, Referenz unterstützt D1..D5 (Default D3); Rust berechnet Target-Verteilungen für gesamten Verify-Block, MTPLX lazy entlang Acceptance-Pfad. | Q · P11 | +| MTP Commit / Repair / EOS | `src/engine/metal/qwen.rs:4735` | Rust kann gesamten Kontext scalar replayen; Referenz captured-prefix commit / begrenzte Repair-Pfade. Pending-/EOS-/Cancel-Zustände vollständig prüfen. | Q/T · P12 | +| DeepSeek DSpark | `src/settings.rs`, `src/engine/metal.rs` | Default Confidence war 0,8 statt DS4 Metal 0,6. Jetzt lokal korrigiert, einschließlich temperaturabhängigem Exact-Default; End-to-end-Messung offen. | Q/T · P13 | +| GLM MTP | `src/engine/metal/glm.rs:1788`, `src/engine/metal.rs:4531` | Rust akzeptiert über einzelne Target-Forwards, DS4 verifiziert kompatibles Paar im 2-Row-Batch. Sampled Dispatch ist opportunistisch, nicht exact. | Q · P14 | +| DS/GLM Prefill / Power | `src/engine/metal.rs:3910`, `src/engine/metal/glm.rs:4596` | DS4 hat echte Keepalive-Commit-Grenzen; GLM-Rust Flush hängt an `read_logits && rows>8`, Referenz zusätzlich an Progress-/Stage-/Kontextbedingungen. | Q/O · P15 | +| Metriken / Abschluss | `src/model_eval.rs:327`, `src/app.rs:1354`, `native/metal/ds4_metal.m:1041` | Gleiche native Probe, andere Host-Einbettung. Verifier-Zeit überlappt Repair; Prefill-Zähler nicht referenzgleich; Canary/Profiling können Messung verändern. | M/Q · P04, P16 | + +## Priorisierte Tasks + +Für Qwen ist eine Abweichung von der geforderten Kernel-/Funktionsidentität ein +offener Portierungsbestandteil, unabhängig vom isolierten Geschwindigkeitswert. +Kein Task wird allein durch einen plausiblen Textoutput oder einen einzelnen +schnelleren Lauf geschlossen. + +### P01 — Reproduzierbare Ausgangslage sichern + +Priorität P0; keine Abhängigkeit; teilweise gesichert, neue Messbaseline offen. + +**Referenz-Warmup-Abnahme präzisiert (2026-09-06):** Der bestehende MTPLX-Runner +wartet nun nach `/health.ok` zusätzlich auf `warmup.background.state == done` +und verwirft fehlgeschlagene/abgebrochene Schritte, bevor er den separaten +Chat-Warmup einreicht. Zuvor zeigte das archivierte Ready-Receipt noch einen +laufenden512er Schritt und einen ausstehenden2560er Schritt. Ein sofortiger +Foreground-Prompt kann diese laut gepinntem Servercode unterbrechen und später +fortsetzen lassen. Keine Veränderung am MTPLX-Server oder dessen Warmup-Defaults; +Probe und Fortschritts-/Speicherwatchdog laufen während der gesamten Wartephase. +Der neue Abschlussbeleg erfasst die vollständige Health-Antwort. Pending/Done/ +Fehlerzustände wurden modellfrei geprüft; neue echte Läufe unter +`local-eval-results/20260906-qmm-k-tile/`. Unterschiedliche Warmup-Arbeit zwischen +Produkt und Referenz bleibt zu dokumentieren, nicht als identisch ausgeben. + +- Fortschritt: Erfolgreiche Qwen-Referenzbelege, Runner/Canary sowie aktueller + Kern-Quellstand und vorhandenes Release-Binary archiviert. Hashes und Einschränkungen + stehen im [Snapshot-Manifest](/Users/gb/Projects/DS4Server/local-eval-results/20260905-before-p13/manifest.md). + Der SHA256 des Binary wurde auch aus dem Archiv erneut verifiziert. Quellstand + und altes Binary sind ausdrücklich nicht als passender Build ausgegeben. + Originaldateien unverändert; lokale Ergebnisarchive sind von Git ausgeschlossen. + +- Vorhandene gültige JSONL-Receipts, Runner und Eingaben dauerhaft unter einem + lokalen Ergebnisverzeichnis sichern; ungültige Läufe eindeutig ausschließen. +- Binary-/Kernel-/Source-Diff- und Artefaktidentitäten, Hardware/GPU-Cores, + Modellparameter, effektive Flags, MTP-Vertragsdaten, Fan-/Thermalzustand festhalten. + Keine erneuten Modell-Downloads oder unnötigen vollständigen Artefakt-Reads während + einer Kaltstartmessung. +- Abnahme: Ein zweiter Lauf kann aus dem Manifest dieselben effektiven Bedingungen + herstellen. Background-Warmup ist beendet oder ausdrücklich Teil der Kaltmessung. + Keine Leistungsbehauptung anhand wechselnder ungehashter Arbeitsstände. + +### P02 — Identische Texte, Tokens und toolfreier Produktpfad + +Priorität P0; nach P01; teilweise korrigiert. + +**Plain-Chat-Konfiguration umgesetzt (2026-09-05):** `Config::plain_chat` gilt im +gemeinsamen UI-/Headless-Systempromptbuilder. Sie entfernt Tool-/Skill-/A2UI-Anteile +und den eingebauten Coding-Agent-Standardprompt, erhält aber einen benutzerdefinierten +Systemprompt unverändert. In der UI unterbindet sie außerdem Workspace-/Datums- +Injektionen, Hooks, Tool-Ausführung, automatische Antwortkorrekturen und Ersttitel. +Der UI-Default bleibt `false`; die Harness weist ihren Default `--plain-chat on` +im Start-Receipt aus. Vergleich nur mit einer frischen UI-Session unter +`plain_chat: true`. Bestehende Chats werden nicht bereinigt. `--plain-chat off` +ist weiterhin nur ein Prompt-/Inferenzdiagnosepfad, kein Headless-Agent-Executor. + +Der gemeinsame Prompt-Test über alle Modelloptionen, CLI-Overrides und YAML- +Roundtrip bestehen. `tools/qwen-chat-reference.py` verwendet den tatsächlichen +MTPLX-Runtime-Tokenizer-Loader und Server-Encoder `_encode_messages_uncached`, nicht +einen nachgebauten Jinja-Aufruf. Drei vorbereitete Low-Turns (README-Summary, +Story, Python; mit fest vorgegebenen Assistant- und Reasoning-Inhalten) stimmen in +gerenderten Bytes und Token-IDs überein: **2489 / 2541 / 2609 Tokens**. +Beleg: `local-eval-results/20260905-qmm-loader/plain-chat-reference.json` und +`plain-chat-tokens-after.log` (einschließlich History-plus-Checkpoint-Append); +der erste Direktversuch ohne den MTPLX-Tokenizer- +Wrapper scheiterte und ist kein Referenzbeleg. Es wurde kein Modell generiert. +Das ist kein Beweis für alle live erzeugten Historien oder für DS/GLM. P02 bleibt +bis zur entsprechenden Frontend-/Referenzabnahme offen; alte Agent-Prompt- +Performanceläufe dürfen nicht mit neuen Plain-Chat-Läufen vermischt werden. + +**Echte erzeugte Historien nachgeprüft (2026-09-05):** Der Fixture-Exporter +akzeptiert nun `--source-run`. Für die abgeschlossenen Plain-Chat-AR- und +MTP-Rust-Läufe stimmen Rust-Vollrendering und der tatsächliche MTPLX-Server-Encoder +in Bytes/Token-IDs sowie re-encodierter History-plus-Continuation überein. +AR: 2617/3056/4242; MTP: 2617/3042/4030 Tokens; beide Release-Tests bestanden. +Die live fortgesetzten Rust-Checkpoints meldeten dagegen 2617/3054/4238 und +2617/3041/4028. Das ist noch kein Beleg für identische live Tokenfolgen: erhaltene +Generationstokens versus erneut gerenderte/encodierte History müssen an der +konkreten Grenze verglichen werden; nicht ungeprüft als BPE-Effekt abtun. +Beleg: `local-eval-results/20260905-plain-reference/manifest.md`. + +**Live-Request-Anbindung und reproduzierter Turn-Abschlussfehler (10.09.):** +Der kanonische Drei-Turn-Test ruft nun `LiveSession::generate` mit tatsächlichen +`ChatTurn`-Nachrichten und `TurnSettings` auf. Eingefrorene Prompt-IDs sind nur +noch Assertions, nicht die Eingabe an den Executor. Der Owner hält abgeschlossene +und Prefill-Snapshots getrennt; Abbruch vor/nach Streaming, Observer-Fehler und +Text-Stopp laufen durch diesen Owner. Ein CPU-Check prüft AR-/MTP-Übernahme von +Sampler, Seed und Kontext-/Ausgabelimit bei unveränderter Backend-Policy. + +Der erste überwachte AR-Lauf scheiterte nach einer exakt referenzgleichen Summary +an Turn 2: Produktprompt 3410 statt 3411 Tokens, erste Differenz an Position 3383. +Der gespeicherte EOS-Token 248046 war vorhanden, der Template-Zeilenumbruch 198 +vor dem nächsten User fehlte. Vorherige History-Append-Tests starteten mit erneut +gerenderter History, die diesen Zeilenumbruch bereits enthält. Sie deckten die +echte Decode-Grenze nicht ab. Der Fehlbeleg bleibt erhalten unter +`local-eval-results/live-session-20260910.9RSmzd/ar.{stdout,stderr}.log`. + +`engine::render_text_prompt` vervollständigt nun ausschließlich bei einer +authentifizierten Qwen-Assistant-History den fehlenden Abschluss: unveränderte +vollständige Template-Grenze, Newline nach MTPLX-EOS oder EOS+Newline nach dem +skalaren Pre-EOS-Frontier. Generierte Tokens werden nicht neu gerendert und der +KV-Prefix bleibt erhalten. DS/GLM sind von dieser Verzweigung nicht betroffen. +Der Metadaten-Regressionstest prüft diese drei Frontiers und den Vollrender-Fallback +bei ungültigem Tag. Produktiver Controller-/Power-/Checkpoint-Anschluss und die +vollständige sechsstellige Performance-Abnahme bleiben offen; dies ist noch keine +Freigabe eines UI-Bundles. + +**Verifikation dieser Anbindung:** Test-/Produktions-Clippy mit `-D warnings`, +Release-Testbuild, Format und Diffcheck bestanden. Finale Testbinary-SHA256: +`d7705551bebd41c5568fef0f11d593d93fd76accda727f347b075079d3b89e70`. +Logs: `/tmp/ds4-live-session-{clippy,production-clippy,build}.log`. +Die zwei Request-Checks und der erweiterte Metadaten-/Frontier-Test bestanden +unter Supervisor `2048 15 15`. Vollmodell AR/MTP unter `81920 30 45`, sequenziell, +SSD-Ngram, unveränderten Referenz-Flags, Chunk 2048, ohne Power-Drosselung, +Thinking Low und Seed 0; durchgängiger 100-ms-Canary mit 2-s-Abbruchgrenze. +Referenzen bleiben `session-chat-20260910.jT3hf5/reference-{ar,mtp}-boundary.stdout.log`. +Es wurden keine Referenztokens oder Assertions abgeschwächt. + +Beide vollständigen Chats inklusive Owner-Abbruchprüfungen bestanden, ebenso +Prompt-/Output-Tokens, Reasoning/Text, Logits-/Hidden-Hashes, Boundary-Snapshots, +Cache-Fortsetzungen und MTP-Zyklen. AR Prompt/Cached/Output: +2748/0/635, 3411/3383/1347, 4791/4758/266; MTP: +2748/0/466, 3242/3214/1394, 4669/4636/326. Die tatsächlichen `TurnSettings` +(einschließlich f32-Samplerwerte) ändern diese Referenzergebnisse nicht. +AR: 583 Canary-Proben, keine Fehler/Stalls, Prefill-max 2,532 ms, +Decode-max 1,022 ms, Peak Physical 82.615.580.104 Bytes; Supervisor 62,241 s. +MTP: 562 Proben, keine Fehler/Stalls, Prefill-max 4,254 ms, +Decode-max 1,145 ms, Peak Physical 83.185.055.752 Bytes; Supervisor 58,907 s. +Rohdaten: `local-eval-results/live-session-20260910.9RSmzd/`, +`{metadata,request-fixed,ar-fixed,mtp-fixed}.{stdout,stderr}.log`. +Das sind Canary-beobachtete Funktionsregressionen, keine neue gepaarte Performance- +Abnahme und kein UI-Eventloop-Nachweis. Der Controller ist weiterhin `cfg(test)`. +Nichtnull-`min_p` wird vom neuen Request-Adapter ausdrücklich abgelehnt, da der +MTPLX-Sampler diesen Filter nicht unterstützt; diese Produktoption ist damit +noch nicht integriert. EngineSettings-/Power-/Persistierungsanbindung bleibt offen. + +- Qwen-Continuation-Fix bereits vorhanden: initialer Systemprompt nur bei + Vollrendering, nicht nochmals bei Checkpoint-Append. Regressionstest + `engine::tokenizer::tests::qwen_checkpoint_continuation_matches_full_conversation` + ist nach vorherigem Fehler bestanden. Noch kein frischer End-to-end-Nachweis. +- Test-Konfiguration ohne Skill-/Tool-/A2UI-Anteile über denselben gemeinsamen + Produkt-Promptbuilder herstellen, keine nur in der Harness geltende Nachbearbeitung. + Effektive UI-Testkonfiguration und Harness-Konfiguration müssen übereinstimmen. +- Abnahme: Bytegleicher gerenderter Prompt und gleiche Token-IDs in UI-Headless und + Referenz pro Turn, einschließlich Assistant-Reasoning, EOS und Template-Marker; + keine Tools/Skills ausgeführt oder angeboten. Low bleibt modellgerecht. +- Kleinster vorhandener Check: mit installiertem `DS4SERVER_QWEN38_SOURCE` + `cargo test --release engine::tokenizer::tests::qwen_checkpoint_continuation_matches_full_conversation -- --ignored --exact`. + +### P03 — Cache-Arbeit und Chat-Fortsetzung aufklären + +Priorität P0; nach P02; Ursache der AR-Referenz-Cache-Lücke reproduziert, +vollständige Cache-/Zeitabnahme weiterhin offen. + +**Scope-Klarstellung des Nutzers (2026-09-10, maßgeblich für die Integration):** +MTPLX ist für Qwens Modellausführung in Prefill/Decode, Kernel und Responsivität +die Referenz. Seine SSD-SessionBank samt CAS-Blobs, SQLite-Manifest, Writer-Queue +und Eviction muss nicht nachgebaut werden. Für die Persistierung ist auch das +bewährte DS4-Verfahren Referenz; die vorhandene Rust-KV-Verwaltung wird wiederverwendet. +Der in diesem Arbeitsschritt begonnene separate `session_store.rs` wurde vollständig +entfernt, bevor er ausgeführt oder produktiv angebunden wurde. Keine Benutzercaches +wurden verändert oder gelöscht. + +Konkrete Integrationsgrenze im aktuellen Code: + +- `src/engine/kvstore.rs` verwaltet unabhängig vom Modellzustandslayout die + Checkpoint-Dateien, Prefix-Schlüssel, Budget, Zugriffe und Eviction. Keine zweite + Datenbank oder zweite Cache-Verwaltung für Qwen einführen. +- `src/engine/metal/qwen.rs::save_checkpoint/load_checkpoint` implementiert bereits + den dateibasierten Persistierungspfad mit begrenzten IO-Chunks und Veröffentlichung + nach `sync_all`/Rename. Das alte FP32-Scratch-Layout ist jedoch kein gültiger + Ersatz für die BF16-/Recurrent-/QSA-/MTP-Zustände des neuen Executors. +- `qwen_mtplx/session_cache.rs::SessionSnapshot` und der vorhandene Tensorcodec + bleiben für die korrekte Zustandsübergabe nutzbar; sie erfordern keine MTPLX- + Speicherverwaltung. Ein Restore muss dieselben Folgetokens und Zustandsfrontiers + liefern, ohne zusätzliche Voll-Prefills oder Präzisionskonvertierung im Decode. +- Priorität hat die produktive Anbindung von `Execution::generate_text` als + vollständigem Turn an den gemeinsamen UI-/Harness-Pfad. Eine bytekompatible + MTPLX-SSD-Datenbank ist dafür ausdrücklich keine Voraussetzung mehr. + +**AR-Auswahlfehler belegt (2026-09-05):** Ein erneuter vollständiger MTPLX-Lauf +mit `MTPLX_DEBUG_PREFIX_DIVERGENCE=1` reproduziert 5120 gecachte Tokens in allen +drei Antworten. Inhalt, Reasoning, Finish-Reason und Usage stimmen vollständig +mit dem alten AR-Lauf überein. Alle Antworten enden mit `stop`, Supervisor exit 0, +Peak-Footprint 83.78 GB unter der 116.82-GB-Grenze; kein zweiter Inferenzprozess. + +Die konkrete Kette ist jetzt belegt: + +1. `generate_ar` sucht unter `mtp_history_policy="cycle"`; der Server speichert + den finalen Generation-Snapshot unter `"committed"`. +2. `SessionBank.restore` wählt zuerst den längsten exakten Prefix (bei Story + 7836 Tokens), lehnt dessen Policy ab und versucht keinen kürzeren passenden + exakten Eintrag (vorheriger Prefill: 7460 Tokens). +3. Der Near-Prefix-Fallback lehnt **beide** exakten Einträge ab, weil + `matched >= entry.prefix_len` gilt (`matched_out_of_range`). +4. Erst der teilweise passende Warmup-Eintrag wird an Recurrent-Grenze 5120 + restauriert. Dasselbe tritt beim Python-Turn mit 8643/7896 Tokens auf. + +Die Debug-Ausgabe bestätigt `clean prefix` und die Präsenz der größeren +Kandidaten. Fehlende Session-IDs, fehlgeschlagene Speicherung, Token-Drift oder +Eviction dieser Kandidaten erklären diesen Befund nicht. +`tools/mtplx-cache-reference.py` reproduziert die Auswahl mit echten MTPLX- +Funktionen und leeren Cache-Payloads. Kontrollfall: Nur den inkompatiblen längsten +Eintrag entfernen; der unveränderte Exact-Restore nutzt dann den gültigen +7460-Token-Prefix. Kein Modell- oder State-Paritätsbeweis durch diesen Kontrolltest. + +Belege und Identitäten: [Cache-Diagnosemanifest](/Users/gb/Projects/DS4Server/local-eval-results/20260905-cache-parity/manifest.md). +Der Golden Master bleibt unverändert. Diese zusätzliche Referenzarbeit wird nicht +zur künstlichen Verlangsamung in Rust nachgebaut. Die alten Agent-Prompt-Läufe +sind keine Matched-Work-/2%-Abnahme und dürfen nicht mit der neuen Plain-Chat- +Baseline vermischt werden. Rest: Save/Restore/Commit-Zeiten und tatsächlich neue +Tokens in der neuen laufenden Chat-Matrix, einschließlich MTP, erfassen. + +- MTPLX `generate_ar`/`generate_mtpk`, `restore_or_prefill` und Server-SessionBank + gegen `Engine`-Checkpoint-Tag, Save/Restore und Pending-Token-Finalisierung verfolgen. + Die oben belegte AR-Referenz-Auswahlgrenze in Messungen ausdrücklich ausweisen. +- Produktlauf bleibt ein ongoing Chat. Cache-Strategie nicht heimlich verändern, + um gleiche Zeiten zu erzeugen. Zusätzlicher Matched-Work-Test mit identischem + Prefix/Suffix darf die Engine-Kosten isolieren, ersetzt aber nicht den Produktlauf. +- Abnahme: Für alle drei Turns vollständige Tokens/Reasoning/Cache-Frontiers, + tatsächlich neu berechnete Tokens sowie Save/Restore-Zeiten; kein unerklärtes + Re-Prefill, kein vorzeitiges Ende. Warmup gehört nicht zur Chat-History. + +### P04 — Messvertrag für Responsiveness und Zeitanteile vereinheitlichen + +Priorität P0; nach P01; Lade-/Canary-Phasenzuordnung korrigiert und im +Produkt-Runtime-Kontrolllauf geprüft; Gesamt-Messvertrag weiter offen. + +- Native Canary-Scheduling/Completion, Host-Timer-Verzögerung und echte + UI-Eventloop-Verzögerung getrennt ausweisen. Die Engine läuft bereits auf einem + eigenen Thread (`src/runtime.rs:108`); ein weiterer Thread beweist keine GPU-Fairness. +- Harness-Thread und UI-`Task::perform` benutzen zwar dieselbe native Probe, aber + unterschiedliche Scheduling-Umgebungen. Blocking Probe nicht als kooperatives + async-Warten interpretieren. Headless misst ohne GUI keinen tatsächlichen Beachball. +- Ganze Lebensdauer: Start, Laden, Warmup, Restore, Prefill, erster Token, + Decode, Save, Abschluss. Phase bei Probe-Start und -Ende erfassen; p50/p95/p99/max, + Samplezahl, In-flight-Alter und Fehler. Fortschritt nur durch echte Modellarbeit. +- `run_warmup` startet vor `service.generate` und umfasst damit auch das erstmalige + Modellladen. `warmup_result.elapsed_ms` und separat gemeldete Ladezeit dürfen + **nicht addiert** werden. Der Loading-Event wird jetzt ausgewertet; der gemeinsame + Runtime-Event `Loaded` meldet dieselbe Ladedauer wie die UI-Metriken. Das neue + `timing` trennt Ladezeit und restliche Request-Zeit, ohne letztere als reine + Rechenzeit auszugeben. Nicht verfügbare Ladedauer bleibt `null`. +- Prefill-tok/s = neue Tokens / entsprechende Prefill-Zeit. TTFT und Gesamtzeit + separat. Draft, Verify, Acceptance, Commit und Repair dürfen sich im additiven + Zeitbudget nicht überlappen (`note_mtp_verification` umfasst momentan auch Repair). +- Abnahme: Identischer kleiner Kontrolllauf in UI/Headless mit gleichen nativen + Messgrößen; künstlicher Host-Stall und GPU-Stall werden unterscheidbar erkannt. + Canary an/aus A/B quantifiziert Messkosten; optional bleibt sie in der UI. + +**Teilnachweis Phasenzuordnung (2026-09-05):** Release-CLI neu gebaut, zehn +`model_eval::tests` bestanden. Ein überwachter Qwen-Plain-Chat-Kontrolllauf bei +100%, Chunk 2048, Low, MTP aus und Canary an endet natürlich mit `pong` (mit +führenden Leerzeilen), Supervisor exit 0. Warmup gesamt 12785 ms, davon 8258 ms +Modellladen und 4526 ms übrige Request-Zeit (separate Abrundung auf Millisekunden). +140 erfolgreiche Canary-Proben, davon 80 während Loading; eine Probe überschreitet +eine Phasengrenze und behält beide Phasen. Zeitstempelreihenfolge, Phasenzahlen, +Zeitzerlegung, Ausgabe, Stop und Speichergrenze wurden per Assertions geprüft. +Maximale Canary-Completion 3,604 ms; kein erkannter Stall in diesem kurzen Lauf. +Startphase bleibt die explizite Zuordnung für Per-Phase-Statistiken; Abschluss- +und Beobachtungszeit werden nicht mehr verwechselt. + +Beleg: `local-eval-results/20260905-phase-attribution/manifest.md`. Frischer +Inferenzprozess, **keine** Behauptung eines kalten OS-Dateicaches. Der gemessene +`pong`-Turn folgt dem separaten Warmup: keine Reproduktion des kalten UI-Pings, +kein GUI-Eventloop-Nachweis und keine Referenz-/2%-Abnahme. Release-Bundle nicht +neu gebaut. Restore/Save-Granularität, überlappende MTP-Zeitanteile und die +übrigen oben genannten P04-Abnahmekriterien bleiben offen. + +Der Kontrolllauf belegte auch eine weitere Zeitgrenzen-Lücke: letzter +Decode-Progress bei 1294 ms, Request-Ende bei 1603 ms. `timing.decode_ms=670` +umfasst diese nachlaufenden 309 ms, während die UI-/Runtime-Rate 49,807 tok/s +aus dem letzten Token-Progress stammt (`src/engine.rs`, `generation_started`). +`write_result` beendete die Decode-Zeit erst am `Finished`-Event, das nach +Checkpoint-Arbeit gesendet wird. Die 309 ms sind **nicht** vollständig als +Save-Zeit belegt; EOS/Finalisierung/Checkpoint/Host-Zustellung müssen durch echte +Runtime-Grenzen getrennt werden, nicht aus dem letzten Token geschätzt werden. + +**Decode-Grenze korrigiert (2026-09-05):** Ein lokaler Timer im gemeinsamen +`Generator::generate_inner` umfasst den Decode-Loop einschließlich Sampling, +Token-/Stop-Verarbeitung und Output-Callbacks. Er endet bei jedem Rückkehrpfad, +auch Fehler/Cancel/Stop innerhalb eines spekulativen Zyklus, vor nachgelagerter +Pending-Token-Finalisierung und Checkpoint-Arbeit. Keine Kernel-/Sampling-Änderung. +`MetricsSnapshot.decode_duration_ns` ist dieselbe Quelle für die neue Stats-Zeile +und Harness-`timing.decode_ms`. Die bisherige Host-Zeitspanne bleibt ausdrücklich +als `decode_to_request_end_ms` erhalten; historische `decode_ms`-Werte hatten +noch diese alte Semantik. `decode_loop_tokens_per_second` verwendet die ganze +Loop-Dauer, `decode_tokens_per_second` weiterhin den letzten UI-Progress-Wert. +`checkpoint_io` gibt vorhandene gemeinsame Zähler und letzte I/O-Dauern aus; +letzte Dauer wird nicht als Summe mehrerer Operationen ausgegeben. + +Vier Metrics-Tests und zehn Harness-Tests bestanden; der neue Regressionstest +prüft Fehler-Rückkehr, Ausschluss nachfolgender I/O und Reset zwischen Requests. +Die zeitliche Canary-Zuordnung der nachgelagerten Finalisierung ist dadurch +noch nicht korrigiert: ein Loop-Zeitwert ersetzt kein Live-Phasenereignis. + +**Vollständiger Qwen-Kontrollchat AR/MTP:** Summary des eingefrorenen README, +Story, Python nacheinander als ein Chat, jeweils separater Warmup; 100%, Chunk +2048, Low, Canary an. Alle sechs Antworten natürlich abgeschlossen, 1/3/5 +History-Nachrichten bestätigt, beide Python-Ausgaben bestehen neun Funktionsfälle. +Checkpoint-Schreiben pro Turn 341/377/376 ms (AR), 379/474/464 ms (MTP). +Gemeinsame Loop-Rate und letzte UI-Progress-Rate weichen pro Turn um weniger +als 0,05% voneinander ab; kein MTPLX-Paritätsnachweis durch diese interne Prüfung. +Loop-tok/s: AR 48,916/48,367/48,495; MTP 53,976/38,874/61,596. +Die Story bleibt mit MTP langsamer; Draft-Akzeptanz dort 479/1308 gegenüber +79/98 bei Python. Unterschiedliche gesampelte Texte/History und aktive Canary: +keine saubere Performance-A/B-Abnahme, aber die Timing-Korrektur beseitigt diesen +beobachteten MTP-Rückstand nicht. Canary max AR 102,483 ms / MTP 84,761 ms, +keine Fehler; kein GUI-Eventloop-Nachweis. Beide Supervisor exit 0, keine +verbleibenden Modellprozesse. Rohdaten, Hashes, Zeitzerlegung und Grenzen: +`local-eval-results/20260905-decode-boundary/manifest.md`. + +Zusatzbefund 2026-09-05: Der vorhandene `DS4SERVER_QWEN38_PREFILL_PROFILE=1` +beendet/wartet jeden Layer separat und ist **kein transparenter Profiler**. +Vollständiger AR-Chat mit 100% / 2048 / Low und identischen Prompts: Summary-Prefill +21,500 s statt 5,291 s im normalen Lauf; ein anschließender normaler Kontrolllauf +wieder 5,257 s. Alle drei Antworten inklusive Reasoning und Tokenzahlen sind in +allen drei Läufen exakt gleich. Profiling-Gesamtprozess 91,115 s statt 60,579 s; +alle Turns trotzdem regulär beendet. Die Layerzeiten dürfen daher nicht als +Kostenverteilung des normalen Produktpfads ausgegeben werden. Einzelne Diagnose- +Layer dauern >1 s, obwohl das größte GPU-Command-Buffer-Intervall im Summary nur +263,579 ms beträgt: GPU-Zeit und zusätzliche Host-/Submission-Kosten trennen. +Die genaue zusätzliche Kostenursache ist noch offen; keine unbewiesene Zuschreibung +an Kernel, Cache-Eviction oder thermische Drosselung. + +Apples installiertes `xctrace` bietet **Metal System Trace**. Eine gezielte +Aufzeichnung mit dem normalen Qwen-Worker als Attach-Ziel (nicht `--all-processes`) +wurde gestartet und beim Prozessende automatisch gestoppt. Der Export bestätigt +allerdings nur **18,114 s am Laufende**: der große Summary-Prefill fehlt. Im +PID-gefilterten Ausschnitt liegen 871 GPU-Compute-Intervalle der Ebene 0 vor, +zusammen 12,959 s und maximal 35,604 ms. Das sind Ausführungsintervalle, **keine +einzelnen Kernelzeiten**; Shader Timeline ist im Standardtemplate deaktiviert. +Somit noch kein Prefill-Ursachenbeweis. Native Traces müssen früher starten. +Instruments erfasst trotz Attach auch System-/Prozessmetadaten; Rohtrace und +Umgebungsdaten bleiben lokal und werden nicht veröffentlicht. Das Tool benötigt für +seinen Instruments-Cache Rechte außerhalb der Workspace-Sandbox; der erfolgreiche +Start nach Freigabe ist kein Produktfehler. Diagnosebelege unter +`local-eval-results/20260905-gdn-delta/qwen-layer-profile.*` und `qwen-metal-trace.*`. + +Die anschließende **frühe** Aufzeichnung `qwen-metal-early.trace` erfasst 56,838 s +inklusive des großen Summary-Prefills. Produktparameter unverändert, keine Layer- +Profiling-Flags. Der vollständige Chat endet mit denselben Antworten und Tokenzahlen +wie zuvor. Summary-Prefill 5,289 s, Prozess 63,728 s; Canary-Prefill-Maximum 119,609 ms. +`tools/metal-trace-summary.py` wertet die exportierten XML-Daten inkrementell und +PID-gefiltert aus; referenzierte Werte, fremde PIDs, verschachtelte Intervalle und +überlappende Intervalle sind im integrierten Self-Test geprüft. + +Der große Summary-Buffer `29116535429` spannt im Trace 3848,372 ms auf, davon +**3831,767 ms überschneidungsbereinigte GPU-Ausführung** (234 Intervalle, längstes +85,788 ms). Das deckt sich mit dem nativen Harness-Maximum von 3848,390 ms. +Der nachfolgende Prefill-Buffer enthält weitere 1273,938 ms GPU-Ausführung. Somit +ist dieser Prefill-Rückstand hauptsächlich GPU-Arbeit, kein gleich langer +CPU-Eventloop-Stall. Das identifiziert noch keinen einzelnen langsamen Shader. +Gesamtes Trace-Maximum der GPU-Compute-Intervalle: 117,702 ms; kein Shader-Timeline- +Profil und keine pauschale UI-Freigabe. + +Die rohe Instruments-Aufzeichnung belegt ca. 2,7 GiB; die Nachverarbeitung brauchte +mehrere Minuten und zwischenzeitlich ca. 16 GiB RSS. Deshalb ausschließlich +optionale Einzel-Diagnose, nicht Teil jedes Harness-Laufs. Rohtrace/TOC bleiben +wegen enthaltenen System-/Prozessmetadaten lokal. Zusammenfassung: +[metal-early-summary.json](/Users/gb/Projects/DS4Server/local-eval-results/20260905-gdn-delta/metal-early-summary.json). + +### P05 — Qwen-Submission-Grenzen am aktiven MTPLX-Pfad ausrichten + +Priorität P0; nach P02, P04; Produktionsintegration und Abnahme weiter offen. +Der kanonische Test-Port enthält Encoder-/Taskgrenzen, Streams, Events/Fences +und jetzt den gemeinsamen Eval-/Async-Eval-Kontrollfluss einschließlich +Abschluss und Fehler-Cleanup, leere materialisierte Daten/Null-Bindings und +gemeinsame Array-Ownership anstelle einer externen Materialisierungsliste sowie +typisierte Shapes vor der Auswertung sowie geteilte Slice-/Broadcast-/Transpose- +Views mit Byte-Offsets bis zur Metal-/Fast-Fence-Bindung sowie Reshape mit +geteiltem Backing oder Original-General-Copy sowie AsType-/Dtype-View-Backends +mit referenzierten Donation-/Layout-Regeln. Lazy-Array-Konstruktoren und +graph-eigene Payloads einschließlich normalisierter Slice-/Contiguous-Knoten +führen diese Operationen ohne externe Fixture-Zuordnung +aus; RMSNorm und der installierte BF16-Affine-Linear-Pfad sind jetzt mit normalen +Input-/Gewicht-Graphkanten angeschlossen. Dessen Layout-/Offset-Pfade verwenden +denselben originalen QMV/QMM/Split-K-Dispatcher wie die Modul-Fixtures. +Die Unary-Payloads Negative/Square/Exp/Sigmoid/Tanh/Sqrt/Rsqrt übernehmen +ebenfalls die originalen Layout-/Donation-/Dispatch-Regeln. +Binäre Add/Subtract/Multiply/Divide/Maximum/Minimum/LogAddExp-Payloads samt +Broadcasting und gemeinsamer vollständiger Dtype-Promotion sind angeschlossen. +Shared-Expert-MLP ist als zusammenhängender Graph mit echter Split- +Geschwisteroperation, erfasster compiled SiLU und Down-Projektion verbunden. +Vollständige QSA-/Modelloperationen fehlen weiter. Prüfstände stehen in den jeweiligen +Abschnitten; frühere Messungen sind dort nicht ersetzt. +Weitere Array-Operationen/Promotion, Modellprimitive und +vollständige Modellanbindung fehlen noch; P05 ist deshalb nicht abgeschlossen. +P06 verändert auch Encoder-Grenzen; Canary-Messungen allein sind kein isolierter +Scheduling-Beweis. Details im Abschnitt zum gemeinsamen Eval-/Async-Eval-Ablauf. + +**Encoder-Zählerdiagnose (2026-09-06):** Optionaler nativer Timestamp-Profiler an +bestehenden Encoder-Grenzen, ohne neue CBs/Flushes/Waits. Der vollständige Qwen-MTP- +Chat bleibt text-/token-/acceptance-identisch. 588 Vierzeilen-CBs mit 22.932 +vollständigen Encoder-Spans decken 99,708% ihrer GPU-Zeit ab. Gemischte Layer-Spans +(37/83 Qwen-Dispatches) tragen etwa 88% der instrumentierten Zeit; das isoliert +keinen einzelnen Kernel. **Die Zähler verändern die Performance erheblich:** +Decode 28,684/14,887/21,614 statt zuvor 57,166/37,921/52,799 tok/s. Daher keine +normalen Kernelkosten oder Referenzparität aus diesem Lauf ableiten. Canary-Max +141,889 ms, kein echter GUI-Eventloop-Nachweis. Messkosten und verbleibende +Submission-/Kernel-Ursachen bleiben offen. Vollständige Belege und Prüfkommandos: +`local-eval-results/20260905-verifier-stage-counters/manifest.md`. + +- MTPLXs gepinnte Runtime: [device.cpp](https://github.com/ml-explore/mlx/blob/v0.32.2/mlx/backend/metal/device.cpp) + `needs_commit`/`commit` und + [eval.cpp](https://github.com/ml-explore/mlx/blob/v0.32.2/mlx/backend/metal/eval.cpp) + gegen `Commands`, generischen Qwen-Dispatcher, Copy-/Flash-/MTP-Pfade vergleichen. + Max-Defaults `ops > 50` / `(data_size >> 20) > 50` sind Batching-Grenzen, + keine Millisekundengarantie. `data_size` zählt Elemente, nicht Bytes. +- Asynchrone Submissions, Waits, tatsächliche Ressourcen-/Operationszählung, + In-flight-Ressourcenlebensdauer und Scratch-Wiederverwendung gemeinsam behandeln. + Weder blind pro Layer blockierend warten noch vorhandene Kapazitätsbytes als + referenzierte Array-Elemente zählen. Einzelne lange Kernel bleiben P06–P09. +- Abnahme: Chunk 2048, Power 100, keine künstlichen Sleeps; identische Ergebnisse, + native Completion-Verteilung im wiederholten Referenzbereich ohne Mehrsekunden- + Ausreißer. Durchsatz darf nicht zur Bezahlung geringerer Latenz verschlechtert werden. + Profiling an/aus darf Submission-Politik für die Vergleichsmessung nicht wechseln. + +### P06 — GDN-Prefill und Verifier vollständig abgleichen + +Priorität P0; nach P02, P04; Conv/Norm-Boundary korrigiert und gemessen, Gesamt-Task offen. + +Graphstand 2026-09-07: Der gemeinsame GDN-Forward verbindet Fused-Step, +Fused-Conv/Verify, Conv1d-Fallback, Output-Fusion und Cache-Fortschreibung +mit den unveränderten MTPLX-Kerneln; alle 264 Forward-, 130 Staged- und +24 zusätzlichen Lifecycle-Receipts werden geprüft (siehe „Gemeinsamer +GDN-Forward, Output-Fusion und Cache-Fortschreibung“). Äußerer Modellablauf, +Maskenerzeugung, Cache-Batchoperationen, Capture-Commit/Repair und +Produktintegration bleiben offen. Die +historischen Detailbefunde unten beziehen sich auf den bisherigen Produktpfad; +der neue Graph ist weiterhin `cfg(test)` und P06 ist nicht abgeschlossen. + +- MTPLX `models/qwen4_exp.py:388–664` und installiertes + `mlx_lm/models/gated_delta.py` gegen `gdn_rows` und die Metal-Kernel + `kernel_qwen_gdn_conv_norm_rows` / `kernel_qwen_gdn_delta_rows` vergleichen. +- Ausgangsbefund: Rust Conv/Norm lief mit lediglich zehn 1024-Threadgruppen serial über alle + Prefill-Zeilen; MTPLX nutzt diese Fusion nur für kleine Breiten, große Prefills + nutzen Conv1d/Silu/L2 mit anderen Rundungsgrenzen. Die Delta-Rekurrenz selbst + iteriert in **beiden** Implementierungen über Tokens; das allein ist kein Fehler. +- Delta: Rust 64 Threads/TG, 32 State-Werte pro Lane versus MLX 128 Threads/TG, + vier State-Werte pro Lane. Registerdruck, Occupancy und Reduktionsreihenfolge messen. +- Abnahme: gleiche Eingaben/States für S=1,2,3,4,5,6,7,32,2048 einschließlich + Chunk-Grenze; Conv-, q/k/v-, Delta- und Output-States gegen aktive Referenz. + Einzelkernelzeit und komplette Layerzeit mit identischem Warmzustand vergleichen. + Keine allgemeine Toleranzaufweitung, um abweichende Prefill-Rundung zu kaschieren. + +#### P06-Teilnachweis: Conv/Norm, 2026-09-05 + +- `tools/qwen-gdn-reference.py` erzeugt ohne Modellladen mit der installierten + MTPLX/MLX-Umgebung gleiche BF16-Eingaben, Gewichte und Conv-States. Kleine S + verwenden den tatsächlichen MTPLX-Fused-Kernel; große S bilden die aktive + Conv1d/SiLU/L2-Operatorfolge ab. Dies ist ein Boundary-Test, kein kompletter + Modell- oder Delta-Referenzlauf. +- Vorher: S=1..6 exakt; bei S=2048 **2.383.531 q-, 2.381.323 k- und 6.185.718 + v-Werte verschieden**, maximale absolute Fehler 0,00024414063 / 0,00390625 / + 0,0009765625. Auch S=7 und S=32 schlagen fehl. Conv-States schon vorher exakt. +- Korrektur: ab S>6 unabhängige Zeilen parallel dispatchen und die BF16-Grenzen + nach Conv, SiLU, L2 und q-Skalierung erhalten. S<=6 bleibt unverändert. + Wiederverwendung des vorhandenen GDN-Scratch-Tails für den neuen Conv-State; + anschließender bestehender GPU-Copy verhindert In-place-Lese-/Schreibraces. + Keine kleinere Chunk-Größe, Leistungsbegrenzung oder künstliche Pause. +- Nachher: `qwen_gdn_conv_norm_rows_matches_mtplx` für S=1,2,3,4,5,6,7,32,2048 + mit **null Abweichungen** bei q/k/v und Conv-State, einschließlich In-place- + State-Übernahme; unveränderte exakte Assertions. Wiederholung nach beiden Chats + ebenfalls erfolgreich. Das ist keine Aussage über alle möglichen Eingangswerte. +- Isolierte S=2048-Wall-Mediane, zehn Wiederholungen nach einem Warmup: vorher + 1,935 ms, nachher zunächst 0,757 ms, MTPLX 1,513 ms. Eine spätere Rust-Wiederholung + nach den Modellläufen liegt bei **1,543 ms**. Host-/Graph-Overhead ist enthalten; + erhebliche Streuung und nicht kontrollierter thermischer Zustand erlauben daraus + **keine** belastbare 2%-Abnahme oder garantierten Beschleunigungsfaktor. +- Wichtig für P05: `Buffer::copy_from` → `ds4_gpu_tensor_copy` beendet den aktiven + Compute-Encoder und erzeugt einen Blit-Encoder im selben Command Buffer. Damit + ändert die notwendige sichere State-Übernahme auch Scheduling-Grenzen. Die + Canary-Verbesserung unten darf nicht allein dem schnelleren Conv-Kernel + zugerechnet werden. Es wurde kein zusätzlicher Command-Buffer-Flush eingeführt. +- Belege: [Messmanifest](/Users/gb/Projects/DS4Server/local-eval-results/20260905-gdn-reference/manifest.md), + [numerischer Wiederholungstest](/Users/gb/Projects/DS4Server/local-eval-results/20260905-gdn-reference/rust-gdn-check.log). + Offen bleiben vollständige Layer-Outputs, gemeinsame Conv-/Delta-Chunk-States, + Verifier-/Commit-State-Abgleich und die isolierte Scheduling-Ursache. + +#### P06-Teilnachweis: Delta-Rekurrenz, 2026-09-05 + +Die andere Thread-Aufteilung ist **kein belegter numerischer Fehler**: der neue +modellfreie Test `qwen_gdn_delta_rows_matches_mtplx` vergleicht normalisierte, +deterministisch zufällige BF16-q/k-Eingaben, BF16-v/beta, FP32-g und einen +nichtleeren FP32-Startzustand mit dem tatsächlich verwendeten +`mlx_lm.models.gated_delta.gated_delta_kernel`. Der optionale MTPLX-Blocked-Prefill- +Patch ist im festgehaltenen Referenzlauf nicht aktiviert und wird nicht als +Golden Master untergeschoben. + +- S=1,2,3,4,5,6,7,32,2048: Ausgaben und FP32-Endzustände bereits **vor einer + Kerneländerung exakt identisch**. Die spätere Prüfung umfasst zusätzlich je + zwei Teilchunks mit In-place-Zustandsfortsetzung (S=2048 → 1024+1024), ebenfalls + exakt. Ganze und geteilte Ausführung werden jeweils gesondert geprüft. +- Produktionsdispatch für Prefill/Verify und Capture-Commit lediglich in den + gemeinsamen Helper `encode_gdn_delta_rows` extrahiert, damit der Test dieselben + Parameter verwendet. Kernel, Geometrie und Mathematik bleiben unverändert. +- Isolierter S=2048-Wall-Median: Rust 2,403 ms, Wiederholung 2,366 ms; MLX + 3,382 ms. Das ist inklusive Host-Aufrufkosten, mit sichtbaren Startausreißern, + und keine ganze Modell-Abnahme. Bei kleinen S liegen Aufrufkosten im Bereich + von Zehntelmillisekunden; keine pauschale Aussage, jede Größe sei schneller. +- Die gemessene Rekurrenz liefert damit keinen Beleg für den mehrsekündigen + Prefill-Rückstand. Kein Umbau auf die Referenzgeometrie allein wegen ihres + anderen Layouts. Nächster Kostenabgleich: ganze Layer, insbesondere MoE sowie + Submission-Grenzen (P05/P07), statt spekulativer Rekurrenz-Optimierung. +- Reproduktion: `tools/qwen-gdn-reference.py --delta`; Rust-Test + mit `DS4SERVER_GDN_REFERENCE=` und `--release --ignored --exact`. + [Rohbelege](/Users/gb/Projects/DS4Server/local-eval-results/20260905-gdn-delta/delta-reference.json), + [abschließender Test](/Users/gb/Projects/DS4Server/local-eval-results/20260905-gdn-delta/rust-final-check.log). + Noch kein vollständiger GDN-Layer-, Controls-, Fused-S1- oder MTP-Commit-Beweis. + +#### Vollständige Qwen-Produktläufe nach der Korrektur + +Je ein separater Warmup und anschließend Summary → Story → Python in einem Chat; +100%, Chunk 2048, Low, Kontext 131072, T=1, p=0,95, k=20, Seed 12345, Canary an. +Systemprompt und drei rohe Prompts stimmen mit dem archivierten AR-Kontrolllauf +überein. Die inzwischen korrigierte Tokenisierung reduziert den ersten Prompt von +7490 auf **7460 Tokens** (wie MTPLX). Cache-Unterschiede bleiben offen (P03). + +| Modus / Turn | Neue / cached Tokens | Output-Tokens | Prefill s / tok/s | Decode tok/s¹ | Nach-Prefill tok/s² | Gesamter Turn s | Draft-Akzeptanz | +| --- | --- | --- | --- | --- | --- | --- | --- | +| AR Summary | 2294 / 5166 | 464 | 5,291 / 433,6 | 47,46 | 45,62 | 15,604 | — | +| AR Story | 59 / 7924 | 861 | 0,812 / 72,7 | 47,04 | 45,93 | 19,557 | — | +| AR Python | 72 / 8844 | 91 | 0,858 / 83,9 | 47,50 | 37,89 | 3,260 | — | +| MTP Summary | 2294 / 5166 | 488 | 5,487 / 418,1 | 53,59 | 51,25 | 15,162 | 307/495 = 62,0% | +| MTP Story | 59 / 7949 | 640 | 0,832 / 70,9 | 40,20 | 38,92 | 17,280 | 350/869 = 40,3% | +| MTP Python | 72 / 8649 | 77 | 0,895 / 80,4 | 70,73 | 48,37 | 2,488 | 57/60 = 95,0% | + +¹ Letzter Engine-Fortschrittswert; schließt nicht alle EOS-/Checkpoint-/Abschlusskosten ein. +² Completion-Tokens geteilt durch Harness-`decode_ms` bis zum Turn-Abschluss; +keine reine Kernel-/Steady-Decode-Zeit. P04 muss diese Grenzen explizit zerlegen. +Alle Output-Tokenzahlen umfassen auch Reasoning/Steuertokens. + +| Vollständiger Lauf | AR | MTP | +| --- | --- | --- | +| Prozess inkl. Load und Warmup | 60,579 s | 59,592 s | +| Laden / Warmup-Lifecycle inkl. Laden (nicht additiv) | 8,914 / 21,333 s | 9,406 / 24,020 s | +| Peak Physical Footprint | 84.360.337.288 B | 86.666.337.288 B | +| Canary Prefill p95 / max | 110,614 / 117,076 ms | 112,441 / 115,618 ms | +| Canary Decode p95 / max | 3,578 / 15,983 ms | 0,513 / 1,114 ms | +| Canary Maximum gesamte Laufzeit | 162,362 ms (Warmup) | 145,001 ms (Warmup) | +| Canary Samples / Fehler | 574 / 0 | 567 / 0 | +| Supervisor-Maximalverzögerung | 45 ms | 48 ms | + +Beide Prozesse Exit 0; alle drei Turns `finish_reason=stop`. Keine Rückfragen, +beide Stories vollständig und kohärent. Summaries decken wesentliche README-Inhalte +ab; die MTP-Summary enthält allerdings einen falschen DS4-Link (`github.com/ds4`), +also keine pauschale Behauptung fehlerfreier Inhalte. Beide zuvor gelesenen Python- +Antworten bestehen elf kleine funktionale Fälle inklusive strikter Schwelle, +Duplikaten, leeren Listen und unveränderter Eingabeliste; ohne Tools/Netzwerkrechte. + +Kein beobachteter >2-s-Canary-Stall in diesen beiden Läufen. Die maximale Prefill- +Canary bleibt dennoch weit über der bereits gemessenen MTPLX-Referenz (AR 2,974 ms, +MTP 0,550 ms). Mehrsekündige Command Buffer bestehen weiterhin (Summary AR 3,861 s, +MTP 3,848 s); deren gesamte GPU-Laufzeit ist nicht gleich Canary-Blockierzeit. +Kein Beleg für die Behebung aller UI-Beachballs und keine Sechs-Zellen-/2%-Abnahme. +P02 (Skill-Metadaten im Systemprompt), P03/P04 und weitere GDN-/MTP-Pfade bleiben offen. + +### P07 — Router, sortierte MoE und Shared Expert + +Priorität P1; offen wegen vollständiger Modellanbindung und Produktmigration. Die bisherigen +verbundenen SparseMoeBlock-Belege betreffen die ältere Buffer-Ausführung mit +fusionierten, getrennten und gemischten Expert-/Shared-Modulen sowie aktivierten +Decode-/Verify-Flags, nicht den vollständigen kanonischen Arraygraph. Dessen +GatherQMM und jetzt auch SwitchGLU, Routing, die zwei fused-MoE-CustomKernel- +Knoten sowie der ganze SparseMoeBlock sind an den kanonischen Arraygraph +angeschlossen (2026-09-09, siehe folgenden Nachweis). Decoder und äußerer +Modellgraph und MTP-Head sind inzwischen verbunden; vollständige Compile-Fusion, +Gewichts-/Serving-Anbindung und Produktionsmigration bleiben offen. +Keine Produktabnahme. + +**Decoder-Verbindung 2026-09-09:** `qwen_mtplx/decoder.rs` setzt +`qwen4_exp.py:3741` (`DecoderLayer`) mit den bestehenden Arraygraph-Modulen um: +optional PLE plus Residual, Attention-Hyper-Connection, GDN beziehungsweise QSA, +BF16-Multiply/Reshape/Add, MLP-Hyper-Connection, SparseMoeBlock und erneutes +Multiply/Reshape/Add. GDN-, QSA- und PLE-Caches werden an ihre bestehenden +Implementierungen durchgereicht. Keine zusätzlichen Eval-/Wait-Grenzen, +keine neuen Kernel, keine Änderung von Power oder Prefill-Chunks. + +Zwei gezielte Tests bestanden unter `test-supervisor 2048 15 15`: + +- CPU-Graphprüfung: Residual behält BF16, getrennte Multiply-/Add-Knoten, + Broadcast-Geometrie und ursprünglichen Hidden-Input; keine Auswertung. +- Verbundener GPU-Smoke: beide Attention-Typen jeweils ohne/mit PLE, + pro Cache fortlaufend 17 Prefill-, 4 Verify- und 1 Decode-Zeile. Analytisch + bekannte, von null verschiedene PLE-/QSA-Residualbeiträge werden bitgenau + geprüft; GDN-State-, PLE-Conv-/History-Layouts und QSA-Frontier ebenfalls. + Die künstlichen Gewichte verwenden zwei Experten und keinen QSA-Indexer. + Dies ersetzt weder die vorhandenen nichttrivialen Komponenten-Referenzbelege + noch einen vollständigen Decoder-/Modellvergleich gegen MTPLX. + +Rohdaten: `local-eval-results/decoder-graph-20260909.pL6JX4/ple.*.log`. +Dieser ursprüngliche Decoder-Smoke allein deckt den äußeren Modellaufruf nicht ab. + +**Äußerer Modellgraph und Capture-Commit, 2026-09-09:** +`qwen_mtplx/model.rs` verbindet nun die aufgerufenen Bausteine gemäß +`qwen4_exp.py:3778–4134`: dichte/quantisierte Embeddings, optionale übergebene +Embedding-Zeilen, SSM-Maske aus Padding/Lengths, erstes PLE-Staging vor der +Layerschleife, originales Tile, Decoder-Kette und finaler Mixer. Das letzte +Widened-Array bleibt für MTP erreichbar. `emit_logits=false` baut keinen Head; +`logits_keep` schneidet vor der Head-Projektion. Tied und untied Head verwenden +die vorhandenen Linear-Operationen. + +Zusammenhängende GDN-Runs schließen PLE/QSA aus. Ein explizit falscher Wert +eines der beiden ursprünglichen Compile-Env-Aliase schlägt die AR-Lane-Freigabe. +S=1–4, keine SSM-Maske und vorhandener Cache sind die Eintrittsbedingungen; +fehlende Conv-/Delta-Zustände lassen den jeweiligen Run eager ausführen. +Der vorhandene Replay hält getrennte Traces nach Run, Capture und +Shape-/Dtype-Signatur; Zustandspaare und sechs Capture-Zeilen pro GDN werden +in Referenzreihenfolge zurückgeschrieben. Bereits ausgewertete Parameter +haben nach dem gemeinsamen Evaluator keine Primitive mehr und werden wie in +`compile_replace` als Konstanten gehalten, nicht als neue Projektionen gebaut. + +**Compile-Stand 2026-09-09:** Die drei `compile_simplify`-Durchläufe und die +anschließende `compile_fuse`-Absenkung sind jetzt im Modell-Run-Pfad über +`trace_compiled` angeschlossen. Acht synthetische GDN-Run-Graphvarianten sind +inzwischen gegen tatsächliche MTPLX-Traces geprüft (siehe unten); der vollständige +Vergleich mit echten Gewichten und Dispatch-Sequenzen bleibt offen. +Der Pfad bleibt `cfg(test)`; weder Serving-Integration noch +Performance-Parität sind damit behauptet. + +**Compile-Simplify 2026-09-09:** `qwen_mtplx/compile_graph.rs` bildet den +DFS-/Parents-Graph und die drei CSE-Durchläufe aus dem gepinnten +`mlx/compile.cpp:590–800` in Rust ab. Verfügbare Rang-0-Skalare werden über +Bits plus Dtype zusammengeführt. Äquivalente Primitive verlangen identische +geordnete Inputs und ursprüngliche Primitive-Parameter; identische Primitive- +Pointer werden wie in der Referenz ausdrücklich nicht zusammengelegt. +Frühere Tape-Position gewinnt, spätere globale Ausgaben bleiben geschützt, +Split-Siblings werden in kanonischer Reihenfolge zusammengeführt und die +High-Fanout-Gruppierung ab mehr als 100 Parent-Einträgen bleibt erhalten. +Neue Deskriptoren werden aufgebaut, ohne den eingefangenen Modellgraph oder +seine Gewichte zu mutieren. Der Modell-Run verwendet inzwischen `trace_compiled`; +bereits explizit abgesenkte QSA-Graphen verwenden weiterhin `trace`. + +Slice und SliceUpdate behalten dafür zusätzlich ihre ursprünglichen Stop- +Parameter im Primitive. Die GPU-Ausführung benötigt diese nicht, aber die +Referenz-CSE vergleicht sie ausdrücklich: beispielsweise Stop=3 und Stop=4 +bei Stride=2 sind trotz gleicher Werte keine äquivalenten Slice-Primitive. +CustomKernel erbt in der Referenz die standardmäßig falsche Äquivalenz; +gleiche Shadertexte allein lösen deshalb keine Zusammenlegung aus. + +CPU-Graphprüfung bestanden: mehrstufige Zusammenlegung, geschützte Ausgaben, +Slice-Parameter, Split-Siblings, identische Primitive-Pointer und 110-facher +Fanout. Der angeschlossene Decoder-/Modell-/MTP-Smoke besteht weiterhin +beide Tests (`local-eval-results/compile-graph-20260909.WCXIbS/model.*.log`, +0,28 s, gesampelter Peak 313.705.264 Bytes), einzeln unter +`test-supervisor 2048 15 15`. Keine Modellgewichte geladen. Diese Prüfungen +ersetzen nicht den noch offenen vollständigen Compile-/Dispatch-Tracevergleich +gegen MTPLX und sind keine Durchsatzmessung. + +Zusätzliche Skalarkonstanten-/Identitätsprüfung bestanden (`simplify.*.log`): +gleiche NaN-Bitmuster werden zusammengeführt, +0/-0, verschiedene Dtypes und +Rang-1-Einzelwerte nicht. CustomKernel-Äquivalenz bleibt falsch; ursprüngliche +Deskriptoren bleiben unverändert. Der abschließende verbundene Lauf am finalen +Build besteht erneut beide Tests (`final-model.*.log`, 0,27 s, gesampelter +Peak 313.492.296 Bytes). Release-Testbuild, warnings-denied Clippy, originale +Shader-Quellprüfung sowie Format-/Diffprüfung bestanden. Kein Bundle erstellt. + +**Compile-Fuse und dynamische Library-Verwaltung, 2026-09-09:** +`compile_graph.rs` bildet die Fusionsgrenzen aus `mlx/compile.cpp:805–1028` +ab: Tiefe 11, Kandidatenlimit 24, Stream-Gleichheit, Schutz globaler Ausgaben +anderer Form, Mehrfachverbraucher und Broadcast-Splitting. Eine zweite DFS +ordnet Inputs, Zwischenwerte und mehrere Ausgaben. `fused.rs` erzeugt die +originalen Metal-Ausdrücke mit dem unveränderten gemeinsamen Funktor-Header. +Die Shadernamen werden umbenannt; die vollständigen 19 SiLU-Kernelkörper +stimmen nach ausschließlicher Symbolnormalisierung bytegenau mit dem gepinnten +Export überein. Der gemeinsame Compiled-Evaluator unterstützt eingebettete +Konstanten, Rang-0-Inputs und mehrere Ausgaben samt Referenz-Donation. + +Verschachteltes SiLU, SwiGLU und `compute_g` legen bei Tracer-Eingaben ihren +Operationsgraph offen, statt bereits abgesenkte Compiled-Primitive einzusetzen +(`mlx/compile.cpp:1136`). Damit kann der äußere GDN-Run über diese Grenzen +hinweg nach den Referenzregeln fusionieren. + +Der erste GPU-Test identifizierte eine Lücke der gemeinsamen Metal-Brücke: +eine dynamische Library hielt nur ihre zuerst erzeugte Pipeline erreichbar. +Beim Wechsel von contiguous zu strided fehlte die weitere Funktion. +`ds4_gpu_mtplx_compile` hält jetzt die Library mit allen ihren Funktionen; +`ds4_gpu_mtplx_pipeline` erzeugt die jeweils angefragte Pipeline verzögert. +Die anfängliche, eventuell ungenutzte Pipeline wird nicht vorab erzeugt. +Die Libraries werden mit dem Metal-Kontext freigegeben. + +Eine weitere fehlgeschlagene Testassertion betraf **die Test-Erwartung**, nicht +die Engine: Die Referenz wählt den Compiled-Kernel vor der Ausgabe-Allokation +anhand von `data_size` (`metal/compiled.cpp:384,419`). Dieser Wert ist bei +frischen Array-Deskriptoren null. Deshalb muss auch bei 65536 logischen +Elementen zunächst `_contiguous`, nicht `_contiguous_n`, erwartet werden. +Der korrigierte Test prüft ausdrücklich den Nullwert, die gewählte Variante, +die vollständige Gridgröße und sämtliche Ausgabewerte; keine Änderung dieser +Referenz-Ausführungsreihenfolge. + +Rohdaten: `local-eval-results/compile-fusion-20260909.K2FLi8/`. +Alle GPU-Läufe einzeln unter `test-supervisor 2048 15 15`, ohne Modellladen: + +- `source.stdout.log`: Konstantenschreibweise und alle 19 SiLU-Quellkörper + bestanden; die beiden GPU-Tests bei diesem CPU-Aufruf ausdrücklich ignoriert. +- `graph.*.log`: drei Tests für Simplify, Konstantenidentität und Fusion + bestanden; Mehrfachausgaben, Broadcast-Splitting, äußere Verbraucher, + verschiedene Streams und Tiefengrenze geprüft. +- `final-fusion.*.log`: sechs SiLU-Layouts (Rang 1/4/8, positive/negative + Strides), drei nichttriviale `compute_g`-Fälle (1/4/17 Zeilen) und vier + Mehrfachausgabe-/Skalarfälle (8/65536 Elemente, eingebettet/nicht eingebettet) + bestanden. Je Fall eine fusionierte Dispatch; SiLU/GDN bitgleich mit den + erfassten Originalkerneln, Mehrfachausgaben exakt zum arithmetischen Soll. +- `silu.*.log`: vorhandener Split-/SiLU-Layout-/Donationstest bestanden. +- `qsa.*.log`: alle 396 vorhandenen QSA-Compile-Referenzfälle bestanden. +- `model.*.log`: beide verbundenen Decoder-/Modell-/MTP-Tests bestanden, + einschließlich Cache-Fortsetzung und Capture-Commit; 314.835.760 Bytes + gesampelter Peak. Das bleibt ein synthetischer Modelltest. + +Noch zu prüfen sind vollständige äußere GDN-Run-Traces mit echten Gewichten, +die Referenz-Cacheäquivalenz der generierten Shader sowie verschachtelte +Compile-Aufrufe mit ausschließlich partiell getraceten Eingaben. Die kurzen +Funktionsprüfungen sind keine Messung der UI-Responsiveness oder des +Modelldurchsatzes. Serving-/Generator-Verbindung und P16 bleiben offen. + +Release-Testbuild, `cargo clippy --offline --all-targets --all-features -j 1 +-- -D warnings`, originale Shader-Quellprüfung und Format-/Diffprüfung bestanden. +Cargo meldet weiterhin die bestehende Future-Incompatibility von `block 0.1.6`. +Keine Downloads, kein Bundle und kein Commit in diesem Arbeitsschritt. + +**Vollständige synthetische GDN-Run-Graphen und Ausgaben, 2026-09-09:** +`tools/mtplx-gdn-run-reference.py` ruft die unveränderte ursprüngliche +`Qwen4ExpTextModel._get_run_fn((0,), capture)` auf. Reale GDN-/HC-Dimensionen, +zwei kleine MoE-Experten, synthetische Nullgewichte und Hidden=0,125; keine +Modellgewichte geladen. Acht Kombinationen: S=1/4, Capture aus/an und +HC-Fusion aus/an. Referenzmodell ausdrücklich `eval()`, Zustände zwischen +HC-Profilen zurückgesetzt und Compile-Cache beim Flagwechsel geleert. + +Der vorhandene externe Wächter unterstützt dafür zusätzlich +`test-supervisor MEMORY_MIB START_SECONDS IDLE_SECONDS --command EXECUTABLE ARGS...`. +Er startet den Referenz-Pythonprozess direkt, nicht Cargo oder eine Shell. +Direkte Worker-Argumente werden unverändert übergeben; im Rust-Testmodus bleiben +die bisherigen Testargumente erhalten. Die zwei CPU-Selbsttests prüfen beide +Aufrufarten sowie Speicher-/Start-/Fortsetzungsabbruch und Fehlerbehandlung. +Speichertelemetrie gilt weiterhin nur für den direkten Worker, nicht einen +beliebigen Prozessbaum. Alle nachstehenden GPU-Läufe einzeln mit 2048 MiB und +15 Sekunden Start-/Fortsetzungsgrenze, ohne Gesamtzeitlimit. + +Rohdaten: `local-eval-results/gdn-run-20260909.xTGA2h/`. +`reference.jsonl` ist **kein gültiger Inferenzbeleg**: beim ersten Export fehlte +`model.eval()`, wodurch der Training-Rekurrenzpfad gewählt wurde. +`hyper-profiles.jsonl` enthält die acht gültigen Original-Inferenzbelege; +`tests/fixtures/mtplx-gdn-runs.jsonl` hält deren Formen, Ausgabe-Hashes und +Graphverträge ohne die umfangreichen DOT-Texte. + +Der Vergleich identifizierte zusammenhängend folgende Abweichungen: + +- GDN-Q-Skalierung und HC-Inject: Python `scalar * array` läuft durch + `array.cpp:631::__rmul__` und erzeugt `multiply(array, scalar)`. Rust hatte + Scalar zuerst. Gleiche Arithmetik, aber andere Broadcast-/Fusionsreihenfolge. + Beide Aufrufstellen sind korrigiert; andere Scalar-first-Operationen wie + C++-`isclose`, Reverse-Power und Reverse-Divide bleiben referenzgerecht. +- Nichtfusioniertes HC: die Matmul-Factory erzeugte `Reshape` statt der + ursprünglichen Primitive `Flatten` und `Unflatten` (`ops.cpp:3515,3533`). + Beide Identitäten samt CSE-Parametern sind jetzt erhalten. Wie im Original + benutzen beide denselben Reshape-View-/Copy-Evaluator, keine neuen Kernel. +- Der Graphvertrag unterscheidet nun auch `Broadcast` und `AsType` innerhalb + von Compiled-Namen. Die Emitterschreibweise bleibt unverändert; eine + Normalisierung, die diese Unterschiede verstecken würde, findet nicht statt. + +Ergebnisse am korrigierten Build: + +- `final.*.log`: beide verbundenen Decoder-/Modelltests bestanden; alle acht + ursprünglichen GDN-Graphvarianten stimmen überein. HC-fusioniert 60–70, + unfusioniert 97–107 Primitive, je 3 oder 9 Ausgaben. +- `numeric.*.log`: derselbe Test zusätzlich mit **allen** Hidden-/Conv-/Delta- + und sechs Capture-Ausgaben pro Capture-Fall. Formen und Float32-SHA256 + bytegenau zur Referenz, beide Tests bestanden (0,35 s Testzeit, + 315.458.424 Bytes gemessener Peak-Footprint). Der zusätzliche wiederholte + Ein-Zeilen-Aufruf prüft auch Fortsetzung nach Capture. +- `dense.*.log`: 114 Matmul-Fixtures in jeweils beiden Prepare-Modi bestanden, + Peak 203.277.080 Bytes. +- `compiled.*.log`: vier Tests bestanden, darunter alle 396 QSA-Compile-Fälle, + nichttriviale GDN-/SiLU-Fusion und 19 ursprüngliche SiLU-Quellkörper; + Peak 282.493.816 Bytes. Warnings-denied Clippy und originale Shaderprüfung + ebenfalls bestanden. + +Grenze des Graphvertrags: er vergleicht Primitive-Namen, geordnete Abhängigkeiten +und Ausgabe-/Siblingpositionen; konstante Blätter gehen nicht mit ihren Bytes +ein. Die zusätzlichen Ausgabe-Hashes schließen diese konkrete numerische +Fixture, nicht beliebige Gewichte oder alle Shaderparameter ab. Die Nullgewichte +ersetzen keine Modellinferenz und diese Zeiten sind keine Durchsatzbelege. +Vollständige echte Gewichtsbindung, Generator-/Serving-Anschluss, verbleibende +Compile-Cache-/Partial-Tracer-Abweichungen und die sechs P16-Messzellen bleiben +offen. Kein Bundle und kein Commit, keine 2%-Paritätsfreigabe. + +**Gewichtsbindung: Shard-Loader und alle drei Vorab-Fusionen, 2026-09-09:** +`qwen_mtplx/weights.rs` lädt wie der ursprüngliche `load_model` die +`model*.safetensors` als verzögerte CPU-Load-Deskriptoren über den bereits +vorhandenen Safetensors-Loader. Danach bildet derselbe Vorbereitungspfad +`_fuse_gate_up_sanitize`, `_fuse_gdn_in_proj_sanitize` und +`_fuse_qsa_qkv_sanitize` in ihrer Referenzreihenfolge ab. Kein neuer Loader, +keine zusätzliche Runtime-Bibliothek und keine Gewichts-Materialisierung in +diesem Schritt. + +Die Fusionsmetadaten enthalten Bits, Gruppengröße und Split-Positionen für die +spätere Konstruktion der ursprünglichen Ersatzmodule. Gate/Up wird bei Experten +entlang Achse 1 und beim Shared Expert entlang Achse 0 verbunden; GDN behält die +Reihenfolge QKV/Z/B/A. QSA prüft Bias und tatsächliche Packgeometrie, lässt bei +abweichender Indexer-Packung nur diesen separat und verzichtet ohne Indexer +auf die gesamte QKV-Fusion. Fehlende Parameter oder nicht unterstützte GDN- +Bitbreiten behalten den ursprünglichen Pfad. Layer-Indizes außerhalb des +Modells werden mit Fehler beendet, nicht durch indizierenden Panic. + +Originalreferenz: MTPLX `e652d55e2652137a4abcf1312357abbf3eb9d692`, +Unterbau `1f8e74e3f12f31365464a6867c6579f0e9b29d85` / Version 0.32.2. +`tools/mtplx-weight-fusion-reference.py` ruft die drei unveränderten +Sanitize-Funktionen auf. Die Modellattrappen stellen ausschließlich die +gelesenen/ersetzten Modulattribute bereit; sie ersetzen keine Fusionslogik. +Rohdaten: `local-eval-results/weight-fusion-20260909.pqMBBu/`. + +- `reference.jsonl` / `rust.*.log`: 18 Varianten bestanden, alle acht + Schalterkombinationen plus zehn Bias-/Missing-/Mixed-Pack-/Indexer-Fälle. + Rust lädt echte kleine temporäre Safetensors-Dateien, prüft vollständige + Namen, Formen, Fusionsmetadaten und sämtliche Float32-Ausgabe-Hashes. + Schwache Referenzen auf die ursprünglichen Load-Blätter belegen vor Eval, + dass die Fusion die Quellen erreichbar hält, aber noch nicht materialisiert. + Testzeit 0,18 s, Peak-Footprint 154.288.872 Bytes. +- `installed-reference.json` / `installed-rust.*.log`: Header des **aktuell + vorhandenen vollständigen Checkpoints**, 2.466 ursprüngliche Parameter, + 1.782 vorbereitete Parameter und 144 Fusionen (96 Gate/Up, 36 GDN, 12 QSA). + Namen/Formen/Dtypes als geordneter Metadaten-Hash und sämtliche Rezepte/Splits + stimmen mit MTPLX überein. Alle ursprünglichen Blätter und vorbereiteten + Ausgaben bleiben ohne Daten; aktiver kanonischer Allocator = 0 Bytes. + Kein Eval des Modellpayloads. Rust-Testzeit 0,07 s, Peak-Footprint + 10.699.424 Bytes; Referenz-Peak 59.720.256 Bytes. + +Installierter Pfad: +`/Users/gb/Library/Application Support/de.rfc1437.ds4server/models/qwen3.8-flash-next`. +Konfigurations-SHA256: +`826302af9ff3293cfc9975c9a5a96546fa0aa9f0808505adfc30a62fef806965`; +Index-SHA256: +`81e77f5b25bb29e25e239ae2f9f324c9cada379ee600441d6c229f1d95a13443`. +Vorbereiteter Metadaten-SHA256: +`fb7106c8a24a6dc1073cbc386d57c9e60a9f30858ecf294bd9bba215b1bfa8b8`. +Dies sind **keine vollständigen Gewichts-Hashes**. + +Wichtige Artefakt-Präzisierung gegenüber älteren Notizen: In diesen vorhandenen +Shards sind Q/K/V 4 Bit, der Indexer ist 8 Bit (je Gruppe 64). Deshalb enthalten +alle zwölf QSA-Fusionen **nur drei Projektionen**; Splits `[12288,12800]`. +Der ältere Produktpfad prüft diese Packkompatibilität ebenfalls bereits +(`qwen.rs::attention_input`); der Befund belegt hier keinen neuen Produktfehler. +Eine frühere Aussage über vier gleichartig gepackte Projektionen darf nicht +als Eigenschaft dieses aktuellen Artefakts in Messverträge übernommen werden. + +Alle Prozesse einzeln unter `test-supervisor 2048 15 15`, ohne Modell-Download. +Abschließender gemeinsamer Lauf am finalen Build (`final.*.log`): beide Tests +bestanden, 0,20 s Testzeit, Peak-Footprint 154.223.336 Bytes. Zusätzlich geprüft: +ungültiger Modell-Layerumfang wird vor der ersten Fusion ohne Parameterverlust +abgewiesen. Release-Testbuild, warnings-denied Clippy sowie Format-/Diffprüfung +bestanden; kein Bundle und kein Commit. +Die neuen APIs sind noch Teil des testinternen kanonischen Ports. **Offen:** +restliches Sanitize/Norm- und Quantisierungsbinding, echte persistente +Decoder-/MTP-Modulkonstruktion aus diesen Parametern, PLE-Sidecar-Anschluss, +Generator/Serving und anschließend vollständige Modellmessungen. Die geprüfte +Ladevorbereitung ist kein Ersatz für diese Integration und keine +Performance-Paritätsabnahme. + +**Vollständige installierte Modulbindung und Sidecar-Lebenszyklus, 2026-09-09:** +`qwen_mtplx/binding.rs` bindet jetzt alle 48 Decoder (36 GDN / 12 QSA), +beide Hyper-Connections pro Decoder, MoE, PLE auf Layer 1, Embedding, +Ausgabemixer/-kopf sowie optional den eigenen MTP-Decoder aus dem installierten +Checkpoint. Bits/Gruppen werden aus der tatsächlichen Modulkonfiguration bzw. +der ursprünglichen MTP-Packgeometrie bestimmt. Nur die zwei MTP-Pre-FC-Normen +erhalten den ursprünglichen Float32-`+1`-Schritt mit Rückkonvertierung; +Trunk-Normen werden nicht erneut verschoben. Fehlende oder ungebundene +Checkpoint-Parameter führen zu Fehlern. Raw-HF-Sanitize ist ausdrücklich noch +nicht implementiert und wird nicht stillschweigend als konvertiertes Format geladen. + +`BoundModel` hält die Gewichtsbank und ihre entlehnten Module dauerhaft zusammen, +einschließlich veränderlichem Compile-/Staging-Zustand. Dazu wird die bereits +transitiv vorhandene, unveränderte `self_cell` 1.3.0 direkt verwendet. Kein +lokaler unsicherer Selbstreferenz-Code und keine Kopie der Gewichtspayloads. +Der Test prüft unveränderte Moduladresse und erhaltenen Zustand beim Verschieben +sowie Rückgewinnung der Gewichtsbank nach Freigabe der Module. + +`TextModel::post_weight_load` verbindet die bestehenden Tabellenfunktionen wie +MTPLX: Sidecar je PLE-Layer, optional Resident-Anschluss, bestehender SSD-Fallback +bei gescheitertem Resident-Bind. Die originale Policy verwendet +`MTPLX_NGRAM_RESIDENT` bzw. ab 160 GiB physischen RAM den residenten Modus. +Die neue Integrationsprüfung pinnt ausdrücklich SSD-Modus; sie lädt keine +vollständige Tabelle und behauptet keine neu geprüfte residente Modellinferenz. + +Referenz: dieselben oben gepinnten MTPLX-/Runtime-Versionen. +`tools/mtplx-binding-reference.py` konstruiert **die echten unveränderten +MTPLX-Module** über `load_model(lazy=True, strict=True)` und `attach_mtp`. +Die Variante `--post-weight-load` ruft zusätzlich die originale Anschlussfunktion +und den echten Tabellen-Gather auf. Keine Modellattrappen oder ersetzte +Referenzfunktionen. Fixtures: `tests/fixtures/mtplx-binding{,-sidecar}.jsonl`; +Rohdaten: `local-eval-results/binding-20260909.ikUh5D/`. + +- Vier Varianten, alle drei Fusionen gemeinsam aus/an × MTP aus/an: + 2.466 / 1.782 / 2.524 / 1.840 Parameter und 626 / 398 / 639 / 411 + quantisierte Module. Sämtliche Namen/Formen/Dtypes und Packrezepte exakt; + beide MTP-Normausgaben als Float32-SHA256 exakt. +- Sidecar in allen vier Varianten auf Layer 1, nicht resident, Prefetch an, + ursprüngliche abgerundete Hot-Cache-Kapazität 1023 MiB. Vier echte Lookup-Zeilen + `[0,1,255,1]`, Form `[4,160]`, vollständiger Float32-SHA256 exakt. + AR-Pipeline-Freigabe bleibt wie im Original ohne residente Tabelle `false`. +- Finaler Rust-Test (`final.*.log`) bestanden, 0,12 s Testzeit. Alle übrigen + Modellparameter bleiben ausdrücklich ohne materialisierte Daten. + Benachbarte Fusionsprüfungen: zwei Tests bestanden, 0,17 s; + Tabellen-Routingprüfung bestanden, 0,06 s. Release-Testbuild, gezieltes + warnings-denied Clippy für Tests und Format-/Diffprüfung bestanden. +- Referenz und Rust ausschließlich einzeln unter externem + `test-supervisor 2048 15 15`. Bei diesen sehr kurzen Prozessen sind die + 100-ms-Ressourcenstichproben kein lückenloser Peak-Nachweis. Keine neuen + Downloads, kein Bundle und kein Commit. + +**Verbleibender kritischer Integrationspfad:** originale Trunk-Materialisierung +einschließlich Parameterbaum-/Eval-Reihenfolge; dauerhafter Engine-/Session-Besitz +mit dem neuen BoundModel; Generator/Sampler mit AR- und spekulativen Pfaden; +Anschluss an den gemeinsamen UI-/Headless-Runtimepfad. Der kanonische Port ist +weiterhin `cfg(test)`; das produktive `QwenExecutor` verwendet weiterhin den +alten FP32-Scratch-Pfad. Deshalb wird dieser Abschnitt **nicht** als behobenes +UI-Performanceproblem oder Abschluss von P16 gewertet. Die sechs vergleichbaren +End-to-End-Messzellen und die 2%-Abnahme aller drei Modelle bleiben offen. + +**Parameterbaum-/Eval-Reihenfolge, 2026-09-10:** +Die echte MTPLX-`Module.parameters()`-Traversal wurde jetzt zusätzlich erfasst +(`tools/mtplx-binding-reference.py --parameter-order`). Sie verwendet die +Einfügereihenfolge der Module; auch der Python/C++-`tree_visit` vor `mx.eval` +sortiert Dictionary-Schlüssel nicht. Die Rust-Bindung zeichnet deshalb die +ursprüngliche Modul-Konstruktionsreihenfolge auf, statt die alphabetische +`BTreeMap`-Reihenfolge als Auswertereihenfolge zu verwenden: + +- GDN: Conv, unverknüpfte Eingangsprojektionen, dt_bias, A_log, Norm, Ausgang; + der Sanitize-Ersatz `in_proj_fused` wird wie im Original hinten angefügt. +- QSA: Q/K/V einschließlich jeweiligem Bias, Ausgang, Q/K-Normen, Indexer; + `qkv_fused` ebenfalls nach den verbleibenden ursprünglichen Kindern. +- MoE: Router, SwitchGLU, Shared Expert, Shared Gate. Das nicht fusionierte + Shared-MLP konstruiert Gate/Down/Up, SwitchGLU dagegen Gate/Up/Down. +- MTP: Embedding-Norm, Hidden-Norm, Embedding-FC, Hidden-FC, Decoder, Mixer. + +`TextModel.parameter_order` hält diese Reihenfolge über die Lebensdauer der +Modulbindung. `Bank::materialize` reicht die benannten Wurzeln gemeinsam an +den vorhandenen synchronen Graph-Auswerter weiter; keine Einzel-Evals pro +Gewicht, zusätzliche Gruppierung oder neue Datei-Ladelogik. Fehlende Namen +werden vor dem Eval abgewiesen. Der vorhandene Bindungstest prüft jetzt die +vollständigen geordneten Namen gegen die vier originalen SHA256-Belege in +`tests/fixtures/mtplx-binding-order.jsonl`. Er übt den Materialisierungspfad +an den zwei echten MTP-Normen aus, nicht am gesamten 72.640.204.792-Byte-Trunk. + +Belege im bestehenden Rohdatenverzeichnis `binding-20260909.ikUh5D`: +`reference-order.jsonl` enthält die vollständigen Namen, `order.*.log` den +bestandenen Rust-Lauf (vier Varianten, 0,16 s Testzeit). Die zwei verbundenen +Decoder-/Cache-Regressionstests bestanden ebenfalls (`order-decoder.*.log`, +0,47 s). Die Prozesse liefen +einzeln unter `test-supervisor 2048 15 15`; keine vollständige Gewichts- oder +N-Gram-Tabellenmaterialisierung. Release-Testbuild, warnings-denied Clippy für +Tests sowie Format-/Diffprüfung bestanden. Kein Bundle, kein Commit. +Die zuvor offene Reihenfolge ist damit belegt und der gemeinsame Auswertepfad +implementiert. **Noch nicht belegt:** vollständige Trunk-Materialisierung, +produktiver Executor-/Generator-Anschluss und die sechs End-to-End-Messzellen. +Dieser Befund ist kein Durchsatz- oder UI-Responsiveness-Nachweis. + +**Vollständiger Trunk und fortlaufender Ping, 2026-09-10:** +`qwen_mtplx::execution::Execution` hält jetzt BoundModel, Streams und den +modellweiten Cache dauerhaft. Der nicht-lazy Lader materialisiert den gesamten +Trunk in der originalen Parameterreihenfolge und schließt den SSD-Sidecar an. +`forward` baut denselben Modellgraphen auf; `logits_f32` verwendet den vorhandenen +Auswerter. Dieser Ausführungspfad bleibt bis zum Generator-/Produktanschluss +`cfg(test)`, nicht der produktive QwenExecutor. + +Der erste echte Forward deckte eine fehlende Spezialisierung auf: +`QuantizedEmbedding` indiziert gepackte U32-Gewichte mit I32-Token-IDs. Der +Rust-Gather wies diese Kombination bislang ab. Der Export enthält nun auch +U32/I32 und F16/I32 für Front-Gather und den allgemeinen Gather-Wrapper; +die gepinnten Kernelkörper sind unverändert. Der bestehende Layouttest prüft +beide Kombinationen mit negativen Indizes und zusammenhängenden/strided +Quellen. Bestanden unter `test-supervisor 2048 15 15`; Export-Identität ebenfalls +bestanden. Keine Cast-Umgehung im Embedding, keine kleinere Testform. + +Rohdaten: `local-eval-results/execution-20260910.Ngpzu7/`. +`tools/mtplx-execution-reference.py` verwendet den tatsächlichen Server-Encoder +für Ping/Thinking-low, `load_model(lazy=False, strict=True)`, den originalen +Modellaufruf und persistenten Cache. `--decode` folgt für diesen numerischen +Oracle greedy bis zum natürlichen EOS; es ersetzt nicht den Serving-Sampler. +`--server-defaults` übernimmt die zwölf Einstellungen unmittelbar aus +`_server_runtime_env_overrides` (Qwen-Familiendefaults, nicht zusätzlich ein +generisches Serverprofil). Die Rust-Paarläufe verwendeten dieselben Werte. + +| Numerischer Vollmodell-Lauf | Exakt geprüfte Logit-Reihen | Canary max MTPLX / Rust | Ergebnis | +| --- | --- | --- | --- | +| Direkte Modell-Defaults (`reference-decode` / `canonical-decode`) | 41 Prefill + 56 Decode, je 248.320 Float32-Werte | 4,053 / 4,853 ms | alle SHA256 und Argmax gleich, natürliches EOS; Antwort „Pong! …“ | +| Qwen-Server-Familiendefaults (`reference-server` / `canonical-server`) | 41 Prefill + 46 Decode, je 248.320 Float32-Werte | 3,650 / 3,962 ms | alle SHA256 und Argmax gleich, natürliches EOS; Antwort „pong“ | + +Alle Vollmodellprozesse liefen **nacheinander** unter `test-supervisor 81920 30 45`: +80-GiB-Abbruchbudget, Start-/Fortsetzungsgrenzen statt Gesamtlaufzeitlimit. +Zusätzlich durchgehende native UI-GPU-Probe (4-KiB-Blit/100 ms), Testabbruch bei +2-s-Probenstall oder Probe-Fehler. Python verwendet den aus der vorhandenen +ObjC-Brücke gelinkten Canary; Rust den vorhandenen model-eval-Monitor. +Keine Canary-Fehler oder unvollständigen Proben. Höchster Lifetime-Peak im +Familienpaar: Referenz 76.258.077.296 Bytes, Rust 75.878.557.624 Bytes. +Keine neue Modellinstallation. Der anfängliche Referenz-Importfehler wurde durch +Wiederverwenden der bereits lokalen Python-3.12-Pydantic-Core-Erweiterung +derselben Version 2.46.4 behoben; Modell- und Runtime-Revision unverändert. + +Die instrumentierten Kaltzeiten sind **keine Performance-Abnahme**: etwa +7,734/7,527 s Load, 5,860/5,424 s Prefill und 2,083/2,014 s summierte 46 +Decode-Forwards für MTPLX/Rust im Familienpaar. Reihenfolge nicht alterniert, +keine sauberen Warmup-Paare, Hash-/Readback-Diagnostik aktiv, kein produktiver +Sampler/Generator. Die Tests schließen die zuvor offene reale +Trunk-Materialisierung und diese beiden numerischen Cache-Fortsetzungen; +nicht UI-Eventloop, spekulativen Generator, laufenden Drei-Prompt-Chat oder P16. +Release-Testbuild, gezieltes warnings-denied Clippy sowie Format-/Diffprüfung +bestanden; kein Bundle, Commit oder Push. + +**Sampler-Anschluss: originaler LogSumExp-Pfad, 2026-09-10:** + +Der tatsächliche serielle Generator ruft `fast_sampling.py` auf, nicht nur die +NumPy-Hilfen in `sampling.py`. `_device_serial_support_arrays` normalisiert die +Top-p-Masse mittels GPU-Float32-`logsumexp` über das gesamte Vokabular und liest +Kandidaten erst an der gemeinsamen Eval-Grenze zurück. Ein vollständiges +Host-Readback als Ersatz würde diese Ausführung nicht abbilden. + +`qwen_mtplx/normalization.rs` ergänzt daher den bislang fehlenden kanonischen +Last-axis-LogSumExp-Knoten. Rust übernimmt den unveränderten Auswahl-/Layoutpfad +aus `mlx/ops.cpp` und `mlx/backend/metal/logsumexp.cpp` der gepinnten +MTPLX-Runtime: Original-`block_logsumexp_*` bis einschließlich 4096 Elemente, +darüber Original-`looped_logsumexp_*`, originale Threadgroup-Geometrie, +erforderliche Kontiguitätskopie, physische Zeilenreihenfolge, Ausgabe-Strides, +kein Input-Donation und keine zusätzliche Synchronisation. Die Kernel kommen +aus der bereits gepinnten Metallib, nicht aus einer Ersatzimplementierung. +Die Graph-Vereinfachung übernimmt auch `LogSumExp::is_equivalent`. + +Rohdaten: `local-eval-results/sampler-primitives-20260910.lnnnAf/`. +Der vorhandene Original-Fixturegenerator enthält `logsumexp_graph_fixtures`: +150 Fälle aus drei Datentypen (BF16/FP16/FP32), fünf Achsengrößen +(1/17/4096/4097/248320), fünf Speicherlayouts und beiden Keepdims-Werten. +`tests/fixtures/mtplx-logsumexp-graph.jsonl` enthält die direkt gewonnenen +Float32-Ausgabe-SHA256. Fixture-SHA256: +`c2e4a855f6f84a355b69e21f1be6fac96a82ac6e0cdeabbddd89260c03c05018`. + +- Original- und Rust-Läufe jeweils seriell unter `test-supervisor 2048 15 15`, + keine Gewichte geladen, keine Downloads. Original-Lifetime-Peak + 322.339.608 Bytes; Rust-Lifetime-Peak 213.041.896 Bytes. +- `mtplx_logsumexp_graph_matches_reference`: alle 150 Hashes exakt, + Ausgabeformen und Nicht-Donation geprüft, leere Eingaben und skalare Eingaben + mit Last-axis-Reduktion abgewiesen. Rust-Test 0,73 s; dies ist keine + Durchsatzmessung. Der erste Rust-Versuch scheiterte kontrolliert an einem + lokalen RefCell-Borrow bei Ausgabe-Allokation; korrigiert, kein GPU-Hang. +- `mtplx_compile_simplify_preserves_reference_parent_rules`: bestanden, + einschließlich Zusammenlegung äquivalenter LogSumExp-Knoten. Der anfängliche + Aufruf mit unqualifiziertem `--exact` führte null Tests aus und zählt nicht; + der vollqualifizierte Wiederholungsaufruf führte den Test tatsächlich aus. +- Release-Testbuild, gezieltes Clippy mit `-D warnings`, Format- und Diffprüfung + bestanden. Kein Bundle, Commit oder Push; kein Testprozess bleibt aktiv. + +Dies schließt eine benötigte Sampler-Primitive, **nicht P11 oder P16**. +Die Kandidaten-GatherAxis-Typkombination und Cutoff-Tie-Selektion sind im +folgenden Nachweis ergänzt. Offen bleiben originale Host-Normalisierung und +RNG-Ziehungsfolge, Penalties/Fallback sowie der +vollständige AR-/MTP-Generator-Anschluss an UI/Harness. Das bereits vorhandene +NumPy-kompatible PCG64 wird wiederverwendet. Die vollständigen fortlaufenden +Chat-A/B-Läufe aller drei Modelle mit/ohne Spekulation bleiben ausstehend. + +**Sampler-Anschluss: deterministische Kandidatenauswahl, 2026-09-10:** + +`qwen_mtplx/sampling.rs::deterministic_top_k` bildet den vollständigen Graphen +von MTPLX `fast_sampling._deterministic_mlx_top_k_support` ab: erster +ArgPartition, Gather der provisorischen Werte, Min-Cutoff, Greater/Equal, +I32-Summe der strikt höheren Werte, I32-Cumsum der Gleichstände, Auswahl +kleinerer Vokabular-IDs bis zur Restquote, Where(-inf), zweiter ArgPartition +und finaler Gather. Alle Operationen bleiben lazy; kein Host-Readback und +keine zusätzliche GPU-Synchronisation innerhalb des Graphen. + +Die vorhandenen Reduktions-/Scan-Auswerter werden wiederverwendet: +Min und I32-Sum nutzen die originalen Reduce-Kernel, Scan übernimmt für +vier Byte die originalen N_READS=4-Threadgroup-Regeln, für den bisherigen +I64-NGram-Pfad unverändert N_READS=2. GatherAxis ergänzt BF16/F16/F32/U32 mit +I32-/U32-Indizes durch Instanziierungen des unveränderten Original-Templates. +Die Originalquellprüfung bestätigt weiterhin 17 Custom-Körper und +22 Runtime-Einheiten; kein Kernelkörper wurde für diesen Schritt verändert. + +Rohdaten: `local-eval-results/sampler-selection-20260910.s0lvxY/`. +Der vorhandene Original-Fixturegenerator ruft den tatsächlichen MTPLX-Helper +auf und erzeugt `tests/fixtures/mtplx-sampler-selection.jsonl` mit 48 Fällen: +Vokabular 17/4097/248320, eine/vier Reihen, Top-k 1/min(20,Vokabular), normales +Muster, große Gleichstandsgruppen, vollständig gleiche und nichtendliche Werte. + +- Zusammenhängender Rust-Selektor: **96 Ausgabe-Hashes exakt**, Token-IDs und + Werte für alle 48 Fälle. Zusätzlich tatsächlich dispatchte Min-/I32-Sum-/ + I32-Scan-Kernel geprüft. Zehn I32-Scan-Fälle decken alle Threadsize-Bereiche + (17/4096/4097/8192/8193) sowie zeilen-/spaltenkontiguierliche Layouts ab. +- Bestehende Gather-Regression einschließlich neuer Float-/U32-Kombinationen, + 232 ursprüngliche Summenfälle und ursprünglicher NGram-GPU-Test mit + 120 Referenzfällen plus I64-Scan-/Donation-/Layout-Zweigen: bestanden. +- Original und Rust ausschließlich nacheinander unter `test-supervisor 2048 + 15 15`, modellfrei, ohne Downloads. Original-Selektor Lifetime-Peak + 248.890.040 Bytes; Rust-Selektor 262.374.144 Bytes. Selektortest 1,30 s, + kein Durchsatzvergleich. Ein anfänglicher Buildfehler in der temporären + Test-Shape-Bindung wurde vor GPU-Ausführung korrigiert. +- Release-Testbuild, gezieltes Clippy mit `-D warnings`, Originalquellprüfung, + Format- und Diffprüfung bestanden; kein Bundle, Commit oder Push. + +**Keine Umstellung des heißen seriellen Pfads auf diese teurere Auswahl:** +MTPLX verwendet dort zunächst die M=4k-Kandidatenmenge mit nur einem +ArgPartition und Host-Sortierung. Der oben portierte Graph wird bei +Cutoff-Tie-Spill beziehungsweise vom entsprechenden gebundenen Batch-Pfad +benötigt. Die M=4k-Route und Sparse-Normalisierung/RNG sind im folgenden +Nachweis verbunden. Die vollständige Generator-Anbindung bleibt ausstehend. +P11/P16 und die sechs Modell-/Spekulations-A/B-Abnahmen bleiben +offen; diese isolierten Tests belegen keine UI- oder Gesamtperformance-Parität. + +**Sampler-Anschluss: serielle M=4k-Route und Sparse-Stochastik, 2026-09-10:** + +`serial_support` bildet `_device_serial_support_arrays` ab: F32-Cast und +Temperaturreziprok, ein ArgPartition über M=min(4k,Vokabular), Gather und +bei aktivem Top-p LogSumExp/Exp, anschließend **eine gemeinsame Auswertung**. +Das Host-Readback kopiert nur die M ausgewählten Spalten je Reihe, auch wenn +die Slice einen vollständigen Vokabular-Stride besitzt; kein zusätzlicher +GPU-Pack oder Full-Vocab-Readback. Host-Lexsort, Top-p-Präfixmasse und +Cutoff-Spill bleiben unverändert. Nur bei mindestens einem Spill folgt eine +zweite Auswertung des deterministischen Selektors für alle Reihen; ersetzt +werden anschließend ausschließlich die Spill-Reihen. + +Der Sparse-Verteilungspfad übernimmt `_serial_row_distribution`, die zweite +Normalisierung im `SparseDistribution`-Konstruktor, erste Treffer bei +Token-Lookups, Vereinigung/Residual und die bedingte Korrekturziehung. +Kein neuer RNG: vorhandenes `Rng::new_qwen`/PCG64 wird verwendet. +NumPys [paarweise Summierung](https://raw.githubusercontent.com/numpy/numpy/v2.4.4/numpy/_core/src/umath/loops_utils.h.src) +und [CDF/Choice-Reihenfolge](https://raw.githubusercontent.com/numpy/numpy/v2.4.4/numpy/random/_generator.pyx) +wurden gegen Version 2.4.4 geprüft: kumulative Summe, Division durch den +letzten CDF-Wert, Searchsorted rechts. Eine Punktmasse verbraucht weiterhin +eine Ziehung; Verify zieht zuerst für Akzeptanz und nur bei Rejection erneut. +Die BSD-3-Clause-Mitteilung zum Summierungsport steht im Rust-Quelltext; bei +späterer Produktintegration ist sie auch in die ausgelieferten Lizenzhinweise +aufzunehmen. Der kanonische Pfad ist weiterhin nur im Testbuild enthalten. + +Rohdaten: `local-eval-results/sampler-serial-20260910.h4pidl/`. + +- 108 tatsächliche Original-Helper-Aufrufe: Vokabular 17/4097/248320, + eine/vier Reihen, Top-p 0,1/0,95/1,0, Temperatur 0,6, k=20 (am Vokabular + begrenzt), eindeutige Werte, Gleichstandsgruppen, uniforme/scharfe, + nichtendliche und gemischte Spill-/Nicht-Spill-Reihen. +- Token-IDs und alle endlichen Float64-Werte bitgenau; NaNs werden in beiden + Receipts kanonisiert, ihre ungültige Verteilungsmasse bleibt erhalten. + Die Originalzahl expliziter `mx.eval`-Aufrufe stimmt mit den expliziten + kanonischen GPU-Commits überein (automatische Primitive-Commits getrennt). + Der tatsächlich dispatchte Tie-Scan stimmt mit der Original-Fallbackzahl + überein, nicht nur mit einer vorhergesagten Verzweigung. +- 252 daraus erzeugte Sparse-Verteilungen: normalisierte Float64-Werte und + 8.064 gewöhnliche Tokenziehungen exakt. Dazu 8.064 Verify-Entscheidungen, + davon **7.559 Akzeptanzen und 505 Korrekturen**, einschließlich exakter + Akzeptanzmassen und Residual-Verteilungen. Je Sequenz ist der nächste + PCG64-Wert ebenfalls exakt; keine versteckten zusätzlichen RNG-Ziehungen. +- Alle drei `mtplx_sampler_`-Tests gemeinsam bestanden, 0,44 s Testdauer, + Lifetime-Peak 258.835.224 Bytes. Original-Support-Peak 355.943.216 Bytes, + ursprüngliche CPU-Verteilungsprüfung 87.933.600 Bytes. Alle Läufe seriell + unter `test-supervisor 2048 15 15`, keine Modelle/Downloads. +- Release-Testbuild, gezieltes Clippy mit `-D warnings`, Format-/Diffprüfung + bestanden; kein Bundle, Commit oder Push. Reine Diagnostikzeiten, keine + Aussage zu Modell-Token/s oder UI-Latenz. + +**Sampler-Anschluss: Dense-Verteilung und Bad-mass-Fallback, 2026-09-10:** + +`dense_probabilities` übernimmt den Host-Float64-Pfad `softmax` und +`apply_top_p_top_k`, einschließlich deterministischer Top-k-Gleichstände, +Top-p-Präfixmasse und erneuter Normalisierung auch ohne aktive Filter. +Die abschließende paarweise Summierung behält die Nullpositionen des vollen +Vokabulars bei. Der plurale GPU-Einstieg `sparse_distributions` übernimmt die +serielle Route und liest volle Host-Logits erst bei der ersten ungültigen +Reihe; weitere ungültige Reihen verwenden diesen Readback wieder. +Der originale Sparse-Fallback liefert bei ungültiger Host-Masse Token 0; +der gewöhnliche Dense-Pfad meldet dagegen einen Fehler. Greedy oder +deaktiviertes Top-k liefern am pluralen Einstieg unverändert `None`. + +Rohdaten: `local-eval-results/sampler-fallback-20260910.Csse1Y/`. +150 Originalfälle (30 GPU-Batches mit je vier Reihen und 120 Dense-Fälle) +stimmen überein: Sparse-IDs und Float64-Bits vollständig, Dense-Werte über +den vollständigen Float64-SHA256 beziehungsweise denselben Fehlerzweig. +Vokabular 17/4097/248320, uniforme/scharfe/eindeutige/nichtendliche/gemischte +Reihen, Top-p 0,95/1, Top-k 0/20, Temperatur 0/0,6. +Alle vier bisherigen Sampling-Tests gemeinsam bestanden (0,68 s); +Lifetime-Peak Rust 276.022.040 Bytes, Original 356.614.984 Bytes. +Beide seriell unter `test-supervisor 2048 15 15`, ohne Modell oder Download. +Release-Testbuild und gezieltes warnings-denied Clippy bestanden. +Keine Kernelkörper geändert. Das ist noch kein vollständiger +`_sample_from_logits`-Einstieg: Dense-Tokenziehung, Penalties und die +eigentliche Generator-Verbindung sind davon getrennt. + +**Sampler-Anschluss: originaler GPU-Argmax, 2026-09-10:** + +Der vorhandene Reduktionsbaustein enthält jetzt `ops.cpp::argmax(axis)` und +`metal/primitives.cpp::ArgReduce::eval_gpu`. Der Aufruf verwendet unverändert +`argmax_bfloat16`/`argmax_float16`/`argmax_float32` aus der gepinnten Metallib, +keinen nachgebauten Kernel. Achsen-/Input-/Output-Strides, Scalar-Platzhalter, +uint32-Ausgabe und Dispatch entsprechen dem Original (vier Elemente je +Thread, Rundung auf 32, Begrenzung durch die tatsächliche Pipeline). +Singleton-Achsen liefern den originalen Zeros-Pfad; andere Eingaben werden +weder für die Reduktion kopiert noch als Output-Allokation gespendet. +Die CSE-Äquivalenz enthält die Reduktionsachse wie im Original. + +Rohdaten: `local-eval-results/sampler-argmax-20260910.nHvwG6/`. +480 Originalvergleiche mit BF16/F16/F32, Achsenlängen +1/17/4096/4097/248320, keepdims an/aus, nichtendlichen Werten und +Gleichständen. Acht Layouts: gewöhnlich, transponiert, strided, Offset, +Broadcast, Vektor, Mittelachse und negative Strides. Alle uint32-Outputhashes +und Formen exakt; für jede nichttriviale Reduktion genau ein Originaldispatch +mit passender Grid-/Threadgroup-Geometrie, ohne zusätzliche Copy oder Sort. +Alle fünf damaligen Sampling-Tests gemeinsam bestanden (1,90 s), +Rust-Lifetime-Peak 283.820.776 Bytes, Original 322.323.200 Bytes. +Serielle modellfreie Läufe unter dem externen 2-GiB-/15-s-Wächter; +Release-Testbuild und gezieltes Clippy bestanden, keine Kerneländerung. +Der Primitive-Nachweis ersetzt noch nicht den vollständigen Greedy-Einstieg +mit Penalties und dessen vorgeschalteter Auswertung im Generator. + +**Sampler-Anschluss: Dense-/Sparse-Tokenziehung und Verify, 2026-09-10:** + +`Distribution` bildet die zwei originalen Verteilungsarten ab. Dense-Sampling +behält seine zusätzliche Float64-Normalisierung vor NumPy-Choice; Sparse +verwendet weiter die Konstruktorverteilung. Beide verwenden dieselbe +CDF-Reihenfolge und den bereits vorhandenen PCG64. Ungültige Dense-Masse +liefert einen Fehler vor der Ziehung, keine Token-0-Ersatzantwort. +Dense-/gemischte Residual-Verteilungen behalten die vollständigen +Vokabularpositionen, Sanitization und erneute Normalisierung. Beide +Sparse-Verteilungen verwenden weiter ihren vorhandenen Union-/Lookup-Pfad. +Bei leerem Sparse-Residual wird der Target wie im Original unverändert +weitergereicht; die bisherige zusätzliche `clone()`-Kopie entfällt (`Cow`). + +Rohdaten: `local-eval-results/sampler-mixed-20260910.y18CqV/`. +Der erste Originaldatensatz belegte jede Sparse-Position des Vokabulars und +wurde bei 248320 Tokens vom Wächter nach 16,330 s ohne Fortschritt beendet +(`reference.*`, 83 vollständige Receipts). Dies erzwingt im originalen +Sparse-Residual quadratisch viele lineare Token-Lookups und bildet die +Top-k=20-Testkonfiguration nicht ab. Der korrigierte Datensatz +(`reference-topk.*`) enthält weiterhin das **volle Dense-Vokabular**, aber +maximal 20 über das Vokabular verteilte Sparse-IDs. Weder Runtime noch +Wächtergrenzen wurden dafür verändert. Der Fehlversuch bleibt dokumentiert. + +- 100 Originalfälle: Vokabular 1/17/129/4097/248320, Dense/Dense, + Dense/Sparse, Sparse/Dense und Sparse/Sparse; umgekehrte, identische, + disjunkte, nichtendliche und Nullmassen. +- 2.560 Tokenziehungen exakt; 20 Sample-Fehlerfälle ohne abweichenden + RNG-Verbrauch. 3.200 Verify-Ergebnisse exakt: 1.659 Akzeptanzen, + 1.227 Korrekturen, 314 Fehler. Akzeptanzbits und jeweils der nächste + PCG64-Wert stimmen ebenfalls überein. +- Residual-Art, vollständige Float64-Hashes, Sparse-ID-Hashes und + Wiederverwendung des Targets exakt; 20 Residual-Fehlerfälle stimmen. +- Alle **sechs** Sampling-Tests gemeinsam bestanden (2,36 s Testdauer), + Rust-Lifetime-Peak 298.763.008 Bytes. Korrigierte Originalprüfung: + 1,197 s inklusive Wächter, Peak 101.057.184 Bytes. Dies sind + Korrektheitsprüfungen und keine Modell- oder Performance-Benchmarks. +- Unveränderte serielle Überwachung mit 2048 MiB und 15 s + Start-/Fortsetzungsgrenzen, keine Modellladung oder Downloads. + Release-Testbuild und gezieltes warnings-denied Clippy bestanden. + Bestehende Sparse-Prüfungen bestehen nach gemeinsamer CDF-Nutzung weiter. + +**Sampler-Anschluss: Raw-Logit-Penalties und Overlay, 2026-09-10:** + +`apply_penalties_host` und `apply_penalties_gpu` übernehmen die beiden +Originalfunktionen aus `sampling.py` und `fast_sampling.py`. Presence und +Frequency werden auf [-2,2] begrenzt; das nachgeschaltete sparse Overlay wird +nicht begrenzt. Counts beziehen sich weiterhin auf Completion-Tokens, nicht +auf Prompt-Tokens. Ohne aktive Counts/Overlay bleibt die Originalidentität +erhalten, auch wenn die unbenutzten Penalty-Parameter ungleich null sind. + +Die GPU bildet die Float64-Deltas auf dem Host, rundet diese zu Float32 und +führt für Counts und Overlay je einen unabhängigen `Scatter(Sum, axes=[0])` +aus. Der allgemeine Scatter castet Updates **vor** der Addition in den +ursprünglichen Logit-Datentyp; BF16/FP16-Logits werden nicht zu FP32 befördert. +Der CPU-Pfad bleibt Float64 und verwendet die originale Read-all/Write-all- +Reihenfolge der indizierten Subtraktion je Stufe. Deaktivierte Penalties sind +keine Kopie und kein neuer Dispatch. + +Der vorhandene Indexing-Baustein und Copy-/Donation-Pfad werden wiederverwendet. +Der neue eindimensionale additive Scatter verwendet die unveränderten +Originalkörper `scatter_impl`, Atomic-/Sum-Helfer sowie zwölf spezialisierte +Original-JIT-Wrapper (BF16/F16/F32, Updates contiguous/strided, 32/64-Bit +Offsets). Für rank-one Indizes wählt auch der Originalplan immer nwork=1. +Die Host-Exportnamen des namespaced Wrappers sind explizit gesetzt; der erste +Lauf ohne diese Alias-Angabe scheiterte vor dem ersten Scatter-Dispatch +(`rust.*`). Die Korrektur betrifft nur den Einstieg, keine Berechnung. + +Rohdaten: `local-eval-results/sampler-penalties-20260910.kW51NO/`. + +- 360 direkte Originalfälle: Vokabular 17/4097/248320, BF16/F16/F32, + gewöhnliche/strided/Offset/reverse/Broadcast-Logits. Acht Profile: + deaktiviert, keine Counts, Counts, Overlay, beide, begrenzte Penalties, + Null-Overlay und ein einzelner Count-Eintrag. +- Alle vollständigen GPU-Float32- und CPU-Float64-Hashes exakt. Identität + bei No-op, kein Dispatch bei No-op, Anzahl separater Scatter-Stufen und + Erhalt der vom Aufrufer gehaltenen Eingabelogits zusätzlich geprüft. +- Korrigierter Einzeltest bestanden (`rust-export.*`, 1,30 s), + Rust-Lifetime-Peak 172.671.720 Bytes; Original 232.211.176 Bytes. + Alle sieben Sampling-Tests gemeinsam bestanden (`samplers.*`, 2,70 s), + Lifetime-Peak 313.541.472 Bytes. Auch der bestehende QSA-ScatterAxis-Test + mit den gemeinsam verwendeten Originaldefinitionen besteht weiter. +- Sämtliche Läufe seriell unter `test-supervisor 2048 15 15`, keine Modelle + geladen/heruntergeladen. Release-Testbuild, gezieltes warnings-denied + Clippy und Originalquellprüfung bestanden. Die Quellprüfung ermittelt die + Runtime-Einheiten nun aus dem Export statt einer veralteten Konstanten: + 26 Runtime-Einheiten, 17 Custom-Körper/41 Custom-Einstiege plus dynamische + QSA-Quellen unverändert zur gepinnten Referenz beziehungsweise ihrem Export. + +**Sampler-Anschluss: gewöhnlicher Generator-Einstieg, 2026-09-10:** + +`SamplerConfig`, `distribution_from_logits` und `sample_from_logits` verbinden +die geprüften Bausteine entsprechend `generation._distribution_from_mlx_logits` +und `generation._sample_from_logits`. Greedy verwendet unverändert den +Raw-Dtype-Penalty-Pfad, wertet dessen Logits **vor** der Argmax-Erzeugung aus +und verbraucht keinen PCG64-Wert. Der einzelne Sparse-Einstieg flacht die +Logits ab, wendet GPU-Penalties an, castet danach zu Float32 und verwendet +die serielle Unterstützung mit ihrem originalen Bad-mass-Fallback. Dense +castet die unbestraften Logits zu Float32, liest logisch zu Float64 und +wendet erst dort die Host-Penalties und Distribution/Choice-Normalisierung an. +Ein GPU-Penalty-Ergebnis wird nicht als Dense-Fallback wiederverwendet. + +Beim Verbinden wurde die Einschränkung des bisherigen Full-Logit-Readbacks +auf zusammenhängende Zeilen entfernt. Der bereits vorhandene Integer-Reader +teilt nun seine evaluierte, span-validierte CPU-Ansicht mit Float32→Float64: +auch negative/mehrdimensionale/Broadcast-Strides werden ohne GPU-Pack oder +GPU-Flatten gelesen. Der heiße 4k-Support-Readback bleibt unverändert und +kopiert weiterhin nur die ausgewählten Kandidaten. Der plurale Bad-mass- +Fallback verwendet denselben vollständigen strided Reader einmal für alle +ungültigen Reihen. + +Rohdaten: `local-eval-results/sampler-entry-20260910.WyVtqa/`. + +- 1.080 tatsächliche Aufrufeinstellungen des originalen MTPLX- + `generation._sample_from_logits`: BF16/F16/F32, Vokabular + 17/4097/248320, gewöhnliche/Rank-3/strided/reverse/Broadcast-Logits, + periodische/uniforme/nichtendliche Eingaben; Greedy, Sparse Top-k, + Dense Top-p und Dense ohne Filter, jeweils Penalties/Overlay an/aus. +- Pro Konfiguration drei aufeinanderfolgende Ziehungen mit einem PCG64 + und fortgeschriebenen Completion-Counts. Alle 3.240 Ergebnisse stimmen: + 810 Greedy-, 810 Sparse-, 1.080 Dense-Ergebnisse und 540 erwartete Fehler. + Token, Verteilungstyp, vollständige Float64-/Sparse-ID-Hashes, Count- + Reihenfolge und nachfolgender RNG-Wert exakt. +- Die Referenz-Python-Aufrufe von eval/argmax werden aufgezeichnet. Der + Rust-Test prüft tatsächliche GPU-Commitgrenzen: Greedy hat zwei getrennte + Auswertungen; ein bereits ausgewerteter Bad-mass-Host-Readback erzeugt + keinen zusätzlichen GPU-Commit. Argmax bleibt dem Greedy-Pfad vorbehalten, + Dense-Penalties dispatchen keinen GPU-Scatter. +- Alle acht Sampling-Tests gemeinsam bestanden, 6,99 s Testdauer, + Rust-Lifetime-Peak 320.389.936 Bytes. Originalsequenzen: 4,114 s inklusive + Wächter, Peak 286.769.968 Bytes. Unterschiedliche gesamte Testumfänge; + diese Zeiten sind ausdrücklich kein Performance-A/B-Vergleich. +- Beide bestehenden N-Gram-Stage-Tests bestehen nach Wiederverwendung des + Integer-Readers weiter. Alle Läufe seriell unter dem externen + `2048 MiB / 15 s Start / 15 s Fortschritt`-Budget, ohne Modelle/Downloads. + Release-Testbuild, gezieltes warnings-denied Clippy, Format- und + Diffprüfung bestanden. Keine Änderung an Metal-Kernelkörpern. + +Dieser Einstieg ist weiterhin Teil des kanonischen Testbuilds. Die Python- +Owner-Progress-/Watchdog-Anbindung ist zusammen mit dem vollständigen +Generator und den UI-/Harness-Metriken zu verbinden; der Methodenvergleich +allein weist weder Produktintegration noch UI-Responsivität nach. + +**Residenter Keyed-GPU-Sampler, 2026-09-10:** +`sampling::lazy_sample` bildet `generation._mx_lazy_sample` vollständig als +verzögerten Graphen ab. ArgPartition arbeitet auf den unveränderten +Modell-Dtypes; erst die k gewählten Logits werden F32. Top-p verwendet den +originalen inklusiven Scan, Bool-Sum, Maximum und Select. Die gepinnte +`categorical(sv[None], key)`-Route ist inverse CDF, nicht Gumbel-max: +Max/Inf-Behandlung, exklusiver Scan, Uniform und SearchSorted-right. +`random.rs` übernimmt U32-Key-Erzeugung, Split und F32-Uniform aus dem +gepinnten `random.cpp`; `rbits`/`rbitsc`, Scan, SearchSorted und Reduktionen +kommen unverändert aus der originalen Metallib. Der Host-PCG64 bleibt davon +getrennt. Keine Auswertung, Rücklesung oder Synchronisation im Graphaufbau. + +Für Bool-Sum verwendet der gemeinsame Reduktionsplan die originale +`remap_reduce_types`-Zuordnung Bool -> Int8-Eingabe / Int32-Ausgabe, ohne +Cast-Dispatch. Die vorhandenen Gather-Exporte umfassen nun auch F16/F32 mit +U32-Indizes, einschließlich F16-GatherFront mit beiden Arbeitsbreiten. +Nur Original-Template-Instanziierungen wurden ergänzt, keine Kernelkörper +verändert. CSE berücksichtigt RandomBits-Outputshape und Scan-/Suchrichtung. + +Belege: `local-eval-results/sampler-resident-20260910.7576Ll/`; +Fixture `tests/fixtures/mtplx-sampler-resident.jsonl`, SHA256 +`497e1175cf18e2d76d2b18f7547bc27c9138b9f3ea82f2b3bead0cf0f72ac7a3`. + +- 63 Original-RNG-Fälle: drei vollständige U64-Seeds, zusammenhängende, + geslicte und rückwärts gerichtete Keys, leere/gerade/ungerade sowie + mehrdimensionale Ausgaben (Uniform bis 4097, Split bis 8194 Elemente). + Vollständige U32-Bits- und + F32-Uniform-Hashes, vier aufeinanderfolgende Split-Keys und der nächste + Key stimmen bitgenau überein. +- 324 Sequenzen des echten MTPLX-Samplers mit jeweils vier aufeinanderfolgenden + GPU-Key-Ziehungen: Vokabular 17/4097/248320, BF16/F16/F32, vier Layouts, + normale/gleiche/nichtendliche Logits, drei Temperature/Top-p/Top-k-Profile. + Alle 1296 Tokens und Fortsetzungs-Keys stimmen exakt überein. Rust prüft + zusätzlich skalare unevaluierte Ergebnisse, keine Dispatches/Commits beim + Aufbau sowie acht RandomBits- und vier SearchSorted-Aufrufe pro Sequenz. +- `samplers-export.*`: alle neun Samplertests bestanden, 7,86 s Testzeit, + Lifetime-Peak 337.036.080 Bytes. Original-Oracle `reference-fixed.*`: + 1,289 s einschließlich Wächter, Peak 282.280.704 Bytes. Verschiedene + Testumfänge; ausdrücklich keine Performance-A/B-Messung. +- Frühere Versuche im selben Verzeichnis sind nicht als Erfolg gewertet: + Python exportiert `bits` nicht öffentlich (Oracle nutzt danach den echten + `random.split`-Einstieg); Rust fehlten zunächst Bool-Sum-Kernelzuordnung + und F16-GatherFront-Instanziierungen. Die Referenzwerte wurden nicht an + Rust angepasst. Alle GPU-Läufe seriell unter dem externen + 2048-MiB-/15-s-Start-/15-s-Fortschritts-Wächter, ohne Modell/Download. +- Release-Testbuild, gezieltes warnings-denied Clippy, Format-, Diff- und + Originalquellprüfung bestanden. P11/P16 bleiben offen: der Sampler allein + ist weder ein integrierter Generator noch ein UI-/Performance-Nachweis. +- Der bestehende gemeinsame Sum-Graph-Test mit 232 Referenzfällen besteht + ebenfalls (`sum.*`, 2,41 s, Lifetime-Peak 396.804.960 Bytes). + +**Gebundene und seriale Batch-Verteilungen, 2026-09-10:** +`BatchedDistributions` und `BoundBatchedDistributions` übernehmen die zwei +verschiedenen Wege aus MTPLX `fast_sampling.py`. Der normale Batch-Einstieg +verwendet die vorhandene Serial-Support-Auswertung und `_from_execution_arrays`: +Zeilensumme vor Vokabularsortierung, dann einmalige Matrix-Normalisierung. +Eine einzige ungültige Zeile schaltet **alle** Zeilen auf Host-Sampling um; +`-1`-Padding und Nullwahrscheinlichkeiten bleiben erhalten. Das ist nicht der +bereits vorhandene Sparse-Listenpfad mit einzelnen Zeilen-Fallbacks. + +Der vorgebundene Weg friert Temperature/Top-p/gekappte Top-k/Vokabular vor dem +Decode-Loop ein, bestimmt den Support auf den rohen F32-Logits und wertet +Rows/Indices gemeinsam aus. Anschließend laufen Full-Vocab-Softmax und Top-p +in Host-F64 wie im Original. Ungültige Masse bleibt hier ein Fehler, ohne +automatische One-hot-Ersetzung. Vorhandene Auswahlgraphen, Readback, PCG64, +CDF-Ziehung und Sparse-Konvertierung werden wiederverwendet; kein neuer Kernel. + +Die Batch-Methoden behalten ihre getrennten Regeln: `probability` nimmt den +ersten passenden Eintrag, `sample` filtert positive Einträge ohne zusätzliche +Normalisierung, `to_distribution` normalisiert über den originalen +Sparse-Konstruktor erneut. Der gemeinsame Choice-Validator wird auch vom +bisherigen dichten Sampler benutzt. Ungültige Ziehungen verbrauchen keinen RNG. + +Der erste Vergleich deckte bei Broadcast-Rows eine Ein-Bit-Abweichung auf. +`np.asarray(rows).astype(float64)` verwendet `order='K'`: aus Strides `(0,4)` +wird eine Fortran-Anordnung `(8,32)`; die Zeilensummen entstehen dann +sequenziell statt paarweise. Das separate Originalexperiment `layout.*` +belegt die unterschiedlichen Normalisierer. Rust wählt jetzt anhand der +evaluierten 2D-Inputstrides die entsprechende Summationsreihenfolge, ohne +Referenzwerte oder Toleranzen zu verändern. Referenzimplementierung: +[NumPy 2.4.4 Keep-order allocation](https://github.com/numpy/numpy/blob/v2.4.4/numpy/_core/src/multiarray/ctors.c#L1033), +[absolute-stride ordering](https://github.com/numpy/numpy/blob/v2.4.4/numpy/_core/src/multiarray/shape.c#L765). + +Belege: `local-eval-results/sampler-batched-20260910.5QvwOq/`; +Fixture `tests/fixtures/mtplx-sampler-batched.jsonl`, SHA256 +`60e35333cc2f11ca950fdef1c3c1bcbc56da76331ce33867ad50a8d9f8719b6c`. + +- 324 Originalfälle je Route plus fünf Konstruktorfälle: Vokabular + 17/4097/248320, BF16/F16/F32, zusammenhängende/strided/reverse/broadcast + Vier-Zeilen-Batches, normale/gleiche/gemischt ungültige Logits und drei + Temperature/Top-p/Top-k-Profile. 108 globale Fallbacks und 111 erwartete + Konstruktor-/Auswertungsfehler. Die vollständigen IDs-/F64-Matrix-Hashes, + Einzelkonvertierungen, Probability-Lookups einschließlich negativer und + ungültiger Zeilenindizes sowie 17.344 Sample-Versuche mit anschließenden + RNG-Werten stimmen exakt. Ablehnungen sind Teil des Vergleichs. +- Tatsächliche explizite Commit-Grenzen passen zu den Originalauswertungen; + der bereits erledigte Readback bei Host-Fallback erzeugt keinen neuen + GPU-Commit. Binden und abgelehnte Greedy-/Top-k-Anfragen lösen keine + Inferenz aus. `samplers-layout.*`: alle zehn Samplertests bestanden, + 11,96 s, Lifetime-Peak 797.639.856 Bytes. Der fehlschlagende frühere + `samplers.*`-Lauf bleibt als Diagnosebeleg erhalten. +- Original-Oracle: 2,286 s einschließlich Wächter, Peak 393.233.200 Bytes. + Die Testumfänge unterscheiden sich; daraus wird keine Performance-Parität + abgeleitet. Alle GPU-Läufe seriell unter 2048 MiB / 15 s Start / 15 s + Fortschritt, ohne Modelle/Downloads. Release-Testbuild, gezieltes + warnings-denied Clippy sowie Format-/Diffprüfung bestanden. + +**Device-side Target-prefix-Sampler, 2026-09-10:** +`sampling::sample_token_ids` bildet jetzt die unveränderte +`fast_sampling.sample_token_ids_from_mlx_logits`-Operationsfolge ab: Float32- +Division durch Temperatur, deterministischer Support, begrenzte paarweise +Rangordnung (Wert absteigend/Token-ID aufsteigend), Full-vocabulary-LSE und +Top-p-Maske beziehungsweise Token-ID-Sortierung vor der Ziehung. Der positive +Top-p-Pfad lehnt k > 32 nach Begrenzung auf die Vokabulargröße ab; k <= 0 +mit aktivem Top-p bleibt nicht unterstützt. Beide Pfade verbrauchen keinen +RNG-Schritt. Greedy verwendet den originalen Logit-Datentyp ohne RNG. + +`random::categorical_last` übernimmt die tatsächlich unterschiedlichen +Referenzpfade: ein einzelner Verteilungsvektor ohne Prefix nutzt Gumbel-Max, +ein Singleton-Prefix inverse CDF, mehrere Reihen Gumbel-Max. Die Log-Operation +verwendet das originale Runtime-Metallib; die vorhandenen Reduce-, Scan-, +Gather- und Threefry-Graphen werden wiederverwendet. Keine neuen Metal-Körper, +keine CPU-Ziehung und keine vorgezogene GPU-Auswertung beim Graphaufbau. +`KeySequence` bildet Seed, Split und fortgesetzten Zustand ab. Dies ist noch +**kein** angeschlossener produktiver threadlokaler Default-RNG: Owner- +Lebenszyklus, gemeinsame unkeyed Aufrufe, zeitbasierter Initialseed und Wechsel +des Default-Streams müssen im Generator integriert werden. Der aktuelle +Sequenzhelfer hält den beim Anlegen übergebenen Stream fest; diese Tests +belegen den unveränderten Default-GPU-Stream, keine Streamwechsel-Parität. + +Nachweis: `tools/mtplx-kernel-fixtures.py::prefix_sampler_fixtures` ruft den +originalen MTPLX-Einstieg auf. 162 Fälle mit Vokabular 17/4097/248320, +BF16/F16/F32, Vektor/Singleton/2x2-Prefix sowie strided/reverse/broadcast, +Muster/Gleichständen/NaN und Unendlichkeiten. Je elf aufeinanderfolgende +Aufrufe mit Greedy, nicht unterstützter und abgelehnter Konfiguration zwischen +Zufallsziehungen; expliziter Reseed innerhalb derselben Folge. Rust prüft +Token-IDs, Rückgabeform, Fehlermeldung und den vollständigen RNG-Zustand nach +jedem Aufruf exakt. Zusätzlich keine Dispatches oder Commits beim Graphaufbau. + +- Fixture `tests/fixtures/mtplx-sampler-prefix.jsonl`, SHA-256 + `e74e239d30749f66d74d92eb9124f47de460fbf3f01b338b3adc65fef7bdbd07`. +- Rohdaten: `local-eval-results/sampler-prefix-20260910.SIdwjQ/`. + Original-Oracle regulär beendet, 1,616 s inklusive Wächter, + gemessener Lifetime-Peak 447.480.696 Bytes. +- Alle elf `mtplx_sampler`-Tests bestanden, 13,34 s Testzeit / 14,042 s + inklusive Wächter, gemessener Lifetime-Peak 815.416.520 Bytes. Original und + Rust jeweils einzeln unter 2048 MiB / 15 s Start / 15 s Fortschritt, + ohne Modellgewichte oder Downloads. Die Umfänge unterscheiden sich; + dies sind keine vergleichbaren Gesamtmodell-Geschwindigkeitsmessungen. +- Release-Testbuild, gezieltes warnings-denied Clippy, Originalquellprüfung + (17 Körper/41 Custom-Einstiege/26 Runtime-Einheiten plus dynamische QSA), + Format- und Diffprüfung bestanden. Keine Bundle-/Commit-/Push-Aktion. + +**AR-Decode-Verbindung, 2026-09-10:** `ar.rs` und +`Execution::decode_ar` verbinden den bereits vorhandenen Modell-/Cache-Graphen +mit dem normalen Text-Decode-Zweig von `generation.generate_ar`: + +- Klassischer synchroner und asynchroner AR-Pfad, Host-PCG64, Penalties nur + über bereits generierte Tokens, Stop-Token intern behalten und nicht an den + Text-Callback ausgeben. Keine zusätzliche CPU-Konvertierung residenter IDs + vor dem Modell-Forward. +- Pipeline-Admissibilität, eigener `seed & 0x7fffffff`-Key und originale + Reihenfolge: erster Token aus Host-Sampler; aktuellen Schritt async auswerten, + Folgeschritt bauen/async auswerten, erst dann aktuellen Token materialisieren. + Vorangehende Logit-Zeile bis zum nächsten Schritt behalten. +- Die Pipeline hat den finalen Token schon konsumiert; die klassische + Schleife hat ihn nur ausgegeben. Finale Cache-Erfassung verwendet daher die + vorhandene Pipeline-Zeile oder genau einen klassischen Tail-Forward. Der + Modell-Owner schaltet den Pipeline-Modus vor dieser Erfassung zurück; auch + Result-Fehler des Decode-/Callback-Pfades stellen den Modus zurück. + Antwortzeit wird vor dieser Session-Nacharbeit beendet; Capture-Fehler + bleiben separat und vernichten die fertige Antwort nicht. + +Dieser Einstieg beginnt **nach** Prompt-Restore/Prefill und implementiert den +normalen Textzweig. Er ist noch kein Ersatz für den vollständigen Request- +Owner: Grammar/Constraint, Repetition-/Loop-/Thinking-Guards samt Übergang von +Pipeline zu klassischer Steuerung und die Owner-Progress-Hooks fehlen noch. +Die Pipeline-Admissibilität darf daher nicht allein zur Auswahl für solche +Requests benutzt werden. `qwen_mtplx` bleibt `cfg(test)`; UI und `model-eval` +wurden nicht auf einen unvollständigen Generator umgeschaltet. + +**Orchestrierungsnachweis:** `ar_driver_fixtures` ruft das unveränderte +MTPLX-`generate_ar` mit einer kleinen GPU-Transitionstabelle statt Modellgewichten +auf. Prefill, Sampling, Pipeline und finale Erfassung sind die originalen +Generatoroperationen, keine nachgebaute Python-Decode-Schleife. 480 Fälle, +1384 interne Tokens, 32 tatsächlich aktivierte Pipeline-Fälle und +192 finale Cache-Erfassungen. 96 Fälle stoppen durch EOS; die zusätzlichen +Stop-Sets erzwingen insbesondere den ersten und zweiten Pipeline-Token, +also sofortiges EOS und EOS mit bereits laufendem Folgeschritt. Rust stimmt +für Tokenfolgen, Callback-Ausgaben, +Forward-Eingaben/Reihenfolge/Hidden-Anforderung, Pipeline-Admissibilität, +Verify-Zähler und finale Logit-Bytes exakt überein. Dies testet den Decode- +Ablauf, **nicht** Qwen-Modellrechnung, den gesamten Session-Owner oder Speed. + +- Fixture `tests/fixtures/mtplx-ar-driver.jsonl`, SHA-256 + `9916c29df3d937c36df1f12a477bcd1160683806b6941faa7ff108f8533307a5`. +- Rohdaten `local-eval-results/ar-driver-20260910.Ph2gDy/`. + `reference.jsonl`/`driver.*` dokumentieren den ersten fehlgeschlagenen + Vergleich von JSON-Float64-Dezimalwerten. Finale Float32-Zeilen werden im + `reference-bits.jsonl` unverändert als Byte-Hash erfasst; + `driver-bits.*` besteht ohne Toleranzänderung. Der erweiterte maßgebliche + Satz `reference-eos.jsonl` / `driver-eos.*` umfasst auch die erzwungenen + frühen EOS-Fälle: 0,64 s Testzeit, 1,297 s einschließlich Wächter, + gemessener Lifetime-Peak 173.589.272 Bytes. + Original-Oracle 1,636 s einschließlich Wächter, Peak 231.129.880 Bytes; + unterschiedliche Umfänge, keine Performance-A/B-Abnahme. +- Alle elf vorhandenen Sampler-Referenztests (`samplers.*`) danach bestanden. + Modellfreie GPU-Läufe ausschließlich seriell unter 2048 MiB / 15 s Start / + 15 s Fortschritt. Keine neuen Modellartefakte oder Downloads. + +**Angeschlossener Vollmodell-Decode:** Der vorhandene installierte Ping-Test +behält seine 41 Prefill-Zeilen und 46 vollständigen Decode-Logit-Vergleiche. +Zusätzlich setzt er den Cache zurück, evaluiert denselben 41-Token-Prompt und +ruft `Execution::decode_ar` auf. Greedy mit `max_tokens=usize::MAX`, also kein +geschätztes Antwortlimit: alle 46 Antworttokens und das natürliche EOS stimmen +mit `execution-20260910.Ngpzu7/reference-server.stdout.log` überein. Der Callback +prüft jeden Token gegen diese Referenz und meldet tatsächlichen Fortschritt. +Das ist eine Verbindung zum echten Qwen-Trunk, nicht nur ein Tabellenmodell. + +Maßgeblicher Lauf `installed-phase.*`: 9,05 s Testzeit / 9,758 s einschließlich +Wächter, Lifetime-Peak 75.893.991.712 Bytes, 86 Canary-Proben ohne Fehler/Stall. +Maximale GPU-Probenlatenz 3,579 ms beim Laden, 0,620 ms im Prefill und +0,505 ms im Decode. Beide Prefills sind ausdrücklich als Prefill markiert; +der erste Lauf `installed.*` hatte den zweiten Prefill noch im Decode-Abschnitt +und ist deshalb **keine** Grundlage für phasenbezogene Latenzvergleiche. +Unverändert 81920 MiB / 30 s Start / 45 s Fortschritt, nativer Canary während +des gesamten Workers mit 2-s-Abbruch, installierter Trunk ohne MTP-Head, +`MTPLX_NGRAM_RESIDENT=0`, originale AR-Server-Familiendefaults, Power 100 %. +Kein paralleler GPU-Prozess, kein Download. + +Dieser diagnostische Test nutzt weiter den vorhandenen gemeinsamen +41-Token-Numerik-Prefill, **nicht** den noch zu verbindenden originalen +Restore-/Body-/Tail-Requestablauf. Greedy aktiviert keine residente Pipeline. +Die 9,758 s enthalten Laden, Referenzprüfungen und zwei Decode-Folgen und sind +kein vergleichbarer Modell-Durchsatz. Release-Testbuild, gezieltes +warnings-denied Clippy, Originalquellprüfung und Format-/Diffprüfung bestanden. +Kein Bundle, Commit oder Push. + +**Kalter Text-Prefill mit echtem AR verbunden, 2026-09-10:** +`qwen_mtplx/prefill.rs` führt den originalen `_prefill`-Body-/Tail-Ablauf aus: +Cache-Erzeugung nach dem ersten Abbruchcheck, Chunk-Views auf demselben +Promptkörper, bedarfsabhängige Logits-/Cache-Auswertung, Fortschritt nach +abgeschlossener Auswertung und separates letztes Prompt-Token. Die rohe +Cache-Wurzelmenge folgt `_tree_mx_arrays` über Objektattribute, nicht der +abweichenden `cache.state`-Ansicht: inklusive QSA-Kapazität, F32-Mirror, +GDN-/PLE-Captures und Alias-Deduplizierung. Nicht ausgewertete Head-Logits +werden im External-Emit-Cachepfad vor der Cache-Auswertung freigegeben. + +505 originale Referenzfälle decken Wurzelreihenfolge und Prefill-Kontrollfluss +ab: 0/1/2/9/2050 Tokens, ungeteilter Körper oder Chunks 1/4/2048, +Final-Logits-/Cache-only-/External-Emit-Pfade, Hidden-Ausgabe und Abbrüche. +Fixture `tests/fixtures/mtplx-prefill-driver.jsonl`, SHA-256 +`5b5fb0ba51480507e6849020b3137af8af2bc4394d95e4277701f9441bb5041e`. +Der erste Diagnoseadapter beobachtete fälschlich `rt._count`; originaler +Prefill schreibt über `generation._runtime_count` direkt in die Zähler. +Nach Anschluss an diesen tatsächlichen Schreibpfad stimmen auch die +Chunk-/Fortschrittsereignisse; keine Änderung der Original-Inferenz dafür. +`unit-counted.*`: bestanden, 0,874 s Supervisor, Peak 161.759.976 Bytes. + +Rohdaten: `local-eval-results/prefill-driver-20260910.XwGFhY/`. +`Execution::prefill_prompt` ist mit derselben gebundenen Modellinstanz und +dem tatsächlichen AR-Decode verbunden. Der installierte Trunk wird ohne +Downloads, MTP-Head oder residente N-Gram-Tabelle geladen; Power 100 %, Low, +Sampler Temperatur 0,6 / Top-p 0,95 / Top-k 20 / Seed 0, originale +AR-Server-Familiendefaults, sustained Prefill 2048. Externer Wächter +81920 MiB / 30 s Start / 45 s Fortschritt, native GPU-Canary durchgehend +mit 2-s-Abbruch; ausschließlich sequenzielle GPU-Prozesse. + +- Ping (`reference-ar.*`, `installed-ar.*`): 41 Eingabetokens, ein Body-Chunk; + exakte vollständige F32-Prefill-Logits, alle 68 gesampelten Tokens inklusive + EOS und die vollständigen finalen Logits nach 67 AR-Schritten stimmen. + Der Rust-Lauf hatte hier noch nur einen Prefill, die Referenz bereits zwei; + **kein zeitlich symmetrischer Vergleich**. Diese Diagnoseasymmetrie ist + anschließend im Rust-Test korrigiert worden, nicht im Inferenzkern. +- README-Summary (`reference-summary.*`, `installed-summary.*`): echter Prompt + `Give a summary of the following text:` plus README, 2748 Eingabetokens; + Body-Spans 2048 + 699 und letztes Token separat. Exakte erste Prefill-Logits, + alle **613 Tokens inklusive EOS**, 612 AR-Schritte und volle finale Logits + stimmen. Die Antwort ist eine abgeschlossene README-Zusammenfassung. + README-SHA-256 `80c01ea096843312de6662d3cd8c94c8e14bdf286b58824752981fc4920fd1f8`; + der Oracle speichert außerdem vollständigen Prompt und dessen Hash. + Beide Seiten führen jetzt erst den diagnostischen Fingerprint-Prefill und + danach einen frischen Prefill mit anschließendem AR bis natürlichem EOS aus. + Dies ist **kein vollständiger Chat-Warmup** und kein ongoing Dreiturn-Chat. +- Summary: erster Prefill MTPLX 9,159 s / Rust 6,456 s, wiederholter Prefill + 2,256 s / 1,755 s. Rust meldet danach 11,636 s Decode; MTPLX meldet 14,741 s + Generation **einschließlich** des wiederholten Prefills. Diese unterschiedlich + geschnittenen Rohzähler nicht als gleichnamige Decode-Metrik vergleichen. + Supervisor-Gesamtzeit 31,391 s / 26,477 s, Peak-Footprint + 81.212.995.568 / 80.948.295.160 Bytes. Kein 2%-Pass aus diesen Einzelmessungen + mit Canary, Token-Logging, Fingerprints und nicht balancierter Laufreihenfolge. +- Summary-Canary: MTPLX 288 / Rust 243 Proben, keine Fehler/Abbrüche; + Prefill-Maximum 0,726 / 0,720 ms, Decode-Maximum 0,520 / 0,737 ms. + Diese GPU-Proben messen nicht den produktiven UI-Eventloop. Die Behauptung + eines vollständig identischen Cache-Inhalts wäre ebenfalls zu weitgehend: + geprüft sind hier Folge-Tokens und finale Logits, nicht jeder Cache-Puffer. + +Gezielte Nachprüfung: AR-Driver-Regression (480 Referenzfälle, 0,62 s) und +alle elf bestehenden Sampling-Tests (13,26 s) unter 2048-MiB-/15-s-Wächter +bestanden. Release-Testbuild, warnings-denied Clippy für Binary/Tests, +Originalquellprüfung (17 Körper, 41 Einstiegspunkte, 26 Runtime-Einheiten +plus dynamisches QSA), rustfmt und Diffprüfung bestanden. Kein Bundle, +Commit oder Push. Der kanonische Modulpfad bleibt `cfg(test)`; diese +vollständigen einzelnen AR-Interaktionen sind noch nicht die produktive +UI-/`model-eval`-Ausführung und kein Nachweis der sechs Endmatrix-Zellen. + +**Streaming-MTP-Historie am Modell verbunden, 2026-09-10:** +`prefill::committed` portiert den kalten Textablauf aus +`_prefill_committed_mtp_history_streaming`; `Execution::prefill_mtp_history` +bindet dafür die bereits vorhandenen Trunk- und MTP-Cache-Graphen ein. +Body-Chunks liefern nur dann Hidden States, wenn das History-Fenster sie +benötigt; die Hidden-/Token-Paare werden um ein Token versetzt, passend +geschnitten und pro Chunk zwingend ausgewertet. Der letzte Prompt-Token +bleibt ein separater Trunk-Aufruf. Chunk-Callback-Fehler werden wie im Original +ignoriert, Abbrüche an den separaten Kontrollpunkten dagegen weitergegeben. +Target- und History-Zeit sind getrennt. Der explizite History-Positionswert +wird berechnet; Qwens originale `mtp_update_cache` ignoriert ihn zugunsten +des QSA-Cache-Offsets, und der Rust-Modelladapter tut dasselbe. + +Rohdaten: `local-eval-results/mtp-prefill-20260910.7S6cT2/`. +656 unveränderte Originalsteuerungsfälle mit kleinen Modell-Testtensoren +prüfen Ergebnisse, Forward-/History-Eingaben, Hidden-Slices, Positionen, +Zähler-/Heartbeat-/Abbruchreihenfolge und Chunk-Callbacks. Eingaben 0/1/9/2050 +Tokens; ungeteilter Körper bzw. 4/2048-Chunks; vollständige/0/1/3/2049-Historie, +Cache-/absolute Position, Full-Logits-/Cache-only-/External-Emit-Zweige. +Null-Länge des angeforderten History-Fensters wird wie im Original auf 1 +geklemmt. Abbruchfälle vergleichen auch die schon ausgeführten Calls. +Fixture `tests/fixtures/mtplx-mtp-prefill-driver.jsonl`, SHA-256 +`ae00ab6c91b98382c35784309ee35f5d2e641e9f2333e050905d03a4fdae70cf`. +Erzeugung mit dem endgültigen Adapter nochmals byteidentisch bestätigt; +Rust-Test bestanden (0,26 s, Supervisor 0,968 s, Peak 157.303.552 Bytes). +Der erste Fixture-Adapterversuch brach wegen eines fehlenden Runtime-Vertrags +vorzeitig ab; korrigiert wurde der Adapter, nicht MTPLX oder dessen Algorithmus. + +Vollmodell-Nachweis (`reference-installed.*`, `installed.*`): installierter +Trunk plus tatsächlicher MTP-Head, README-Summary mit 2748 Eingabetokens, +Power 100 %, sustained Prefill 2048, originale MTP-Server-Familienflags und +SSD-N-Gram-Policy. Keine Downloads, keine parallelen GPU-Läufe. Externer +81920-MiB-/30-s-Start-/45-s-Fortschrittswächter und durchgehende native +GPU-Canary mit 2-s-Abbruch unverändert. + +- Vollständige Historie: 2747 verschobene Token-/Hidden-Paare in zwei Chunks; + Cache-Offset 2747 vor bzw. 2748 nach erstem Draft. Vollständige F32-Hashes + für letzte Trunk-Logits, letzte Trunk-Hidden, erste Draft-Logits und + Draft-Hidden sind exakt identisch zu MTPLX. +- Letzte drei History-Tokens: erster Body-Chunk ohne Hidden-Ausgabe, aus dem + zweiten nur die letzten drei Paare für den Head; History-Positionsbasis + 2744, Cache-Offset 3 vor bzw. 4 nach Draft. Dieselben vier Tensorprüfungen + sind exakt; die Draft-Tensoren unterscheiden sich erwartungsgemäß vom + Vollhistorie-Fall. Die Fixture prüft auch absolute Positionsmetadaten; + der Vollmodell-Lauf nutzt Qwens normalen Cache-Positionsmodus. +- Rohzeiten MTPLX/Rust: vollständiger Target-Prefill 11,202/5,509 s, + History 0,270/0,291 s; Drei-Token-History-Fall Target 2,221/1,710 s, + History 0,0133/0,0154 s. Die höheren Rust-History-Einzelwerte sind damit + ausdrücklich festgehalten. Keine Wiederholungs-/Reihenfolgebalance, kein + sauberer Speed-Test und kein belegter 2%-Pass oder harter Rücknahmegrund. +- Supervisor insgesamt 20,833/13,477 s; Peak-Footprint + 81.452.808.584/81.093.507.008 Bytes. Canary 189/126 Proben, kein Abbruch, + Prefill-Maximum 1,391/0,918 ms. Die kurzen ersten Drafts trafen kein + 100-ms-Probenfenster: **keine gemessene Decode-Latenz** aus diesem Test. + +Alter AR-Prefill (505 Fälle) weiterhin bestanden. Release-Testbuild, +warnings-denied Clippy für Binary/Tests, Originalquellprüfung, rustfmt und +Diffprüfung bestanden. Keine neue Metal-Implementierung, kein künstliches +Cache-Leeren, keine Power-/Chunk-Absenkung, kein Bundle/Commit/Push. +Dies ist noch kein vollständiger `generate_mtpk`-Lauf bis EOS und keine +produktive UI-/Harness-Integration; der kanonische Pfad bleibt `cfg(test)`. + +**Standard-MTP-Generator bis EOS mit Context-copy verbunden, 2026-09-10:** +`Execution::decode_mtp` verbindet den echten MTP-Head, die vorhandenen +Sampler/PCG64-Verteilungen, batched Verify, Family-Capture-Commit, +Snapshot-Rollback/Reforward, persistente autoritative MTP-Historie, +Bonus/Pending-Correction und finalen Pending-Commit. Der Original-Oracle ruft +`generate_mtpk` auf; keine nachgebaute Referenzschleife. Natürlicher EOS, +Sampler 0,6 / 0,95 / 20, Seed 0, Draft-Tiefe 3, History `committed`, Qwen-Low, +Power 100 %, Prefill 2048, serverseitige Familienflags und SSD-N-Gram-Policy +sind innerhalb jedes Paares identisch. Rohdaten: +`local-eval-results/mtp-generator-20260910.pYRdXK/`. + +Der erste vollständige Ping (`rust-ping.*`, nochmals `rust-ping-trace.*`) +scheiterte am 30. ausgegebenen Token: MTPLX 328, Rust 264. Die ersten neun +Draft-/Acceptance-Zyklen stimmten, im zehnten nahm Rust alle drei Drafts an, +während MTPLX den zweiten ablehnte. Ursache im neu verbundenen Generator: +der Family-Commit bekam weiterhin `capture=true`, obwohl MTPLX seinen +`verify_capture_scope` VOR dem Commit beendet. Beim Ein-Token-Replay der +PLE-Schicht verhinderte das den originalen Fused-GDN-Step und änderte den +Folgezustand. Korrektur: Commit mit `GraphOptions::from_env(false, false)`, +wie im bereits geprüften Modelloperationsadapter. Keine Kerneländerung, +keine Toleranzlockerung und kein geänderter Seed/Prompt. + +- Ping nach Korrektur (`rust-ping-capture-fix.*`): alle **52 Tokens inklusive + EOS**, **19 vollständige Zyklen**, 57 Drafts/33 angenommene Drafts, finale + Logits und Hidden States als vollständige F32-SHA-256 sowie MTP-Offset 92 + exakt wie MTPLX. Kein vollständiger Trunk-Cache-Hash behauptet. +- Die ursprüngliche Summary enthielt fünf Runden mit leerer MTP-Draftliste. + Das ist KEINE adaptive Verkürzung der MTP-Tiefe: MTPLX aktiviert auch in + der batched Qwen-Lane standardmäßig Context-copy. Dieser Zweig wurde + portiert und NICHT für den Vergleich deaktiviert: Prompt-only N-Gram-Index, + rückwärtige Match-Verlängerung/neuester Tie-Break, Blockleiter, Probation, + EMA/Backoff, Punktmassen-p/q-Akzeptanz, Family-Commit und dessen Original- + Rückfall (gesamten Block zurückrollen, nur Primary nachfahren, Copy für den + Request deaktivieren). MTP-History enthält die akzeptierten autoritativen + Paare, nicht die noch ungeprüfte Korrektur. Auch die optionale RAMP-Fixed- + und Fuzzy-Match-Auswahl ist im Index vorhanden; Vollmodell-Abnahme hier + ausschließlich mit den unveränderten Standardwerten, RAMP aus. +- Summary (`reference-summary-copy.*`, `rust-summary-copy.*`): **2748 + Prompt-Tokens, 401 Tokens bis EOS, 135 Verify-Zyklen**, 390 MTP-Drafts/247 + angenommene MTP-Drafts. Alle fünf Copy-Ereignisse sind exakt: Block/Accept + 8/0, 8/8, 16/4, 8/7, 24/0; auch Extension, Korrektur, Position und übrige + Zyklen stimmen. Vollständige finale Logits/Hidden-F32-Hashes identisch, + MTP-History-Offset 3148, finaler Zustand commit-fähig. Die Ausgabe ist + dieselbe abgeschlossene README-Zusammenfassung wie im Original. +- Summary-Rohzeiten: Rust Prefill 6,540 s, Decode 5,619 s, davon gemeldete + Draft-Aufrufe 0,679 s, Verify 4,614 s, History 0,143 s; separate Reforward- + Repair-Zeit 0. MTPLX meldet 10,330 s Generation inklusive 4,582 s Prefill. + Diese Zähler haben noch keine vollständig vereinheitlichten Messgrenzen; + aus Subtraktion allein keinen 2%-Pass ableiten. Supervisor-Gesamtzeiten + MTPLX/Rust 17,671/18,022 s, Peak-Footprint + 82.048.399.848/81.575.557.248 Bytes. Unterschiedliche kalte Prefill-Zeiten, + Token-Logging, Canary, Endtensor-Readbacks und fehlende balancierte + Wiederholungen schließen eine saubere Performance-Abnahme aus. +- Durchgehende Summary-GPU-Canary: MTPLX/Rust 159/170 Proben, keine + unvollständige Probe/Fehler/Abbrüche, Prefill-Maximum 0,813/0,746 ms, + Decode-Maximum 0,516/0,203 ms. Das ist keine Messung des UI-Eventloops. + Alle Vollmodellprozesse liefen einzeln unter 81920-MiB-/30-s-Start-/45-s- + Fortschrittswächter und 2-s-Canary-Abbruch. Keine neue Last ohne Wächter. + +Gezielte Prüfungen: Context-copy-Match/Probation/Backoff/Promptende-Test, +bestehende AR-Driver-Regression (480 Fälle), Release-Testbuild, warnings-denied +Clippy für Binary/Tests, rustfmt und Diffprüfung bestanden. Kein Bundle, +Commit oder Push. Der kanonische Modulpfad bleibt `cfg(test)`; die erfolgreiche +Standard-MTP-Interaktion ist noch NICHT die produktive UI-/Harness-Ausführung. +Capture-off-Rückfall, Greedy-Copy und optionale RAMP-Konfigurationen benötigen +zusätzliche Referenzfälle; sie werden durch die zwei Sampled-Läufe nicht als +vollständig abgenommen ausgewiesen. + +**Warmer Text-Suffix auf dem tatsächlichen MTP-Endzustand, 2026-09-10:** +Die Integrationsprüfung der produktiven `Generator::generate_inner`-/ +`prefill_suffix`-/Checkpoint-Verträge zeigte eine noch fehlende Voraussetzung: +der neue Modellpfad konnte bisher nur kalt vorfüllen. Ein direktes Umschalten +der UI hätte deshalb laufende Chats nicht mit MTPLX-Semantik fortgesetzt. +`Execution::prefill_restored_suffix` ergänzt den Live-/Restored-Cache-Pfad aus +`generation._prefill_restored_prompt_suffix`, ohne Reset oder Nachfahren des +bisherigen Kontexts. Es nutzt bestehende Modell-, History-, Slice- und +Auswerterfunktionen; keine neue Kernel-Implementierung und kein zweites Modell. + +- Kurze Suffixe bis zum übergebenen Original-Limit (Default 512) werden in + einem Forward mit final-only Logits verarbeitet. Lange Suffixe verwenden + einen gemeinsamen Body-Eingabetensor mit Chunk-Views und separatem Tail. +- Vor dem ersten neuen Token wird der letzte gespeicherte Hidden-Zustand + dem ersten Suffix-Token zugeordnet. Danach werden die um eins versetzten + Hidden-/Token-Paare pro Body bzw. Fused-Forward in die bestehende MTP-Historie + übernommen und zwingend ausgewertet. Kein MTP-Cache wird neu erzeugt. +- Rückgabe und Fortschrittsereignisse halten Target-/History-Zeit auseinander. + Der separate Tail meldet Fortschritt, zählt aber wie in MTPLX nicht zu + `prefill_chunks`; ein Fused-Forward zählt als ein Chunk. Chunk-Callbackfehler + werden ignoriert, Abbrüche an den separaten Kontrollpunkten weitergegeben. + +Rohdaten: `local-eval-results/restored-suffix-20260910.OovSi9/`. +Oracle: `--mtp-generate --restored-suffixes README.md`, echte originale +`generate_mtpk` bis EOS und danach der originale warme Suffix-Helper. Der +erste Referenzlauf sichert die Tensoren; `reference-counters.*` ergänzt die +echten Runtime-Zähler. Rust prüft zuerst erneut sämtliche 52 Ping-Tokens, +19 MTP-Zyklen und Endtensoren und danach die drei Suffixe auf demselben Cache: + +| Warme Erweiterung | Tokens / bereits im Cache | Fortschritts-Chunks | Runtime-Chunks | Target MTPLX / Rust | History MTPLX / Rust | +| --- | --- | --- | --- | --- | --- | +| Story-Anweisung | 28 / 93 | 28 | 1 | 0,10313 / 0,10226 s | 0,00359 / 0,00343 s | +| README-Summary-Anweisung | 2720 / 121 | 2048 + 671 + 1 | 2 | 2,61440 / 2,58890 s | 0,04834 / 0,05187 s | +| Python-Anweisung | 33 / 2841 | 33 | 1 | 0,11914 / 0,11780 s | 0,00439 / 0,00518 s | + +Alle sechs vollständigen F32-Endtensor-Hashes (Logits und Hidden je Erweiterung), +die Fortschrittsfelder und MTP-Offsets 120/2840/2873 stimmen exakt. Die höheren +Rust-History-Rohzeiten bleiben sichtbar. Dies sind einzelne instrumentierte +Numerikläufe, keine balancierte 2%-Abnahme. Die drei Folge-Anweisungen wurden +hier **nur vorgefüllt**: keine drei vollständig generierten Antworten und kein +vollständiger SessionBank-/UI-/Harness-Chat werden daraus behauptet. + +Canary MTPLX/Rust: 120/111 Proben, keine Fehler/Abbrüche; Maximum der gemeinsamen +Prefill-Phase (kalter Ping plus warme Suffixe) 0,719/0,589 ms, Ping-Decode +0,161/0,182 ms. Kein UI-Eventloop gemessen. Supervisor-Gesamtzeit 13,374/12,461 s, +Peak-Footprint 81.600.772.008/81.307.416.056 Bytes. Alle Modellläufe einzeln, +81920-MiB-/30-s-Start-/45-s-Fortsetzungsbudget und durchgehende 2-s-GPU-Canary. +Release-Testbuild, warnings-denied Clippy und Format-/Diffprüfung bestanden. + +**Schutzkorrektur am Test-Wächter:** Der bisherige Ausgabe-Watchdog konnte durch +workerinterne Canary-Meldungen einen Stillstand der eigentlichen Inferenz +übersehen. `test-supervisor` leitet diese Meldungen weiterhin vollständig +weiter, zählt die bekannten GPU-Canary-/Ressourcen-Messereignisse aber nicht +mehr als Fortschritt. JSON wird über Pipe-Lesegrenzen zusammengesetzt; +normale Teilzeilen wie Rust-Testbanner bleiben Fortschritt, Pufferung ist +begrenzt. CPU-Selbsttests prüfen auch Start-/Fortsetzungsabbruch trotz endloser +Canary-Ausgabe und erlauben einen tatsächlich fortschreitenden Lauf über +mehrere Timeoutfenster: drei Tests, 2,39 s, bestanden. Neues Release-Binary +des Wächters gebaut. Das bleibt ein kooperativer Ausgabe-Wächter, kein Beweis +für GPU-Fortschritt aus beliebigen Worker-Logs und keine Garantie gegen einen +nicht unterbrechbaren Treiberfehler. Kein neuer GPU-Lauf war dafür erforderlich. + +Weiter offen am warmen Pfad: SessionBank-Auswahl, Snapshot-/Checkpoint-Restore, +Policy-Wechsel AR/MTP, optionale recurrent Boundary-Captures, Vision-Splicing, +Cleanup/Repaging und zusätzliche Abort-/AR-Referenzfälle. Der kanonische Pfad +bleibt `cfg(test)`, bis seine produktiven Owner-Verträge verbunden sind. +Kein Bundle, Commit oder Push. + +**Trunk-/MTP-Snapshot und Restore, 2026-09-10:** +`qwen_mtplx/session_cache.rs` verbindet die vorhandenen Cache-/Arraytypen mit +den originalen `snapshot_cache`, `snapshot_cache_lazy_hybrid` und `restore_cache` +aus dem gepinnten `mtplx/cache_state.py:4334–4482`. Recurrent/GDN/PLE-Zustände +werden wie `_clone_tree` durch lazy Add-zero-Ausdrücke kopiert. Trimmable +QSA-Zustände bleiben beim Lazy-Snapshot gehaltene Views; der Restore erzeugt +neue mutable Array-Container statt die gespeicherten Container einzusetzen. +Die vorhandene Donation-Prüfung schützt die gehaltenen Deskriptoren. Offset, +Raw-/Pool-Frontier und Kapazitäten kommen aus dem originalen QSA-State-Setter; +abgeleitete Mirrors und Verify-Captures sind keine Snapshot-Blätter. +Keine erzwungene Auswertung oder zusätzliche Synchronisation im Snapshot/Restore. + +Der bestehende Vollmodelltest und sein Original-Oracle wurden um drei echte +Snapshot-/Fresh-container-Restores erweitert: lazy / kopiert / lazy, mit +28 / 2720 / 33 Suffix-Tokens. Für sämtliche Cache-Blätter (Dtype, Shape, +vollständige F32-Werte) werden gemeinsame SHA256-Belege geprüft, getrennt für +Trunk und MTP. Gespeicherte Zustände müssen auch nach der Fortsetzung exakt +unverändert sein. Alle sechs finalen Logits-/Hidden-Hashes, Chunk-Fortschritte, +History-Offsets und die vorausgehenden 52 Ping-Tokens/19 MTP-Zyklen stimmen. + +Rohdaten: `local-eval-results/session-cache-20260910.KesHxk/reference.*.log` +und `rust.*.log`. Erster Rust-Lauf bestanden in 14,27 s; dabei materialisiert +die diagnostische Hashprüfung den Snapshot noch vor dem Restore. MTPLX/Rust: +Supervisor 15,102/14,990 s, Lifetime-Peak 81.965.136.024/81.545.557.784 Bytes, +Canary 140/139 Proben ohne Fehler. Prefill-Maximum 4,643/6,774 ms, +Decode-Maximum 0,507/0,137 ms. Diese instrumentierten Einzelläufe sind kein +sauberer Performancevergleich; insbesondere lief jeweils zusätzlich ein +CPU-Build beziehungsweise Clippy. Kein UI-Eventloop und keine drei generierten +Folgeantworten gemessen. + +Der strengere Regressionstest liest die gespeicherten Rust-Blätter erst +**nach** der Fortsetzung und vergleicht dann mit den unveränderten +Original-Belegen vor/nach Mutation. Dieser strengere Lauf +(`rust-lazy.*.log`) ist ebenfalls vollständig bestanden: 12,00 s Testzeit, +12,719 s Supervisorzeit, Lifetime-Peak 81.546.377.248 Bytes. Kein paralleler +Build/Clippy oder anderes Modell; 117 Canary-Proben, null Fehler, Maximum +3,146 ms. Der rohe OS-Disk-Write-Zähler liegt nahe u64::MAX und ist ungültig; +er wird nicht als IO-Leistungswert interpretiert. Alle gespeicherten Blätter +und sechs Fortsetzungstensoren stimmen weiterhin exakt mit MTPLX. Damit ist +auch Restore ohne diagnostisches Vorab-Materialisieren geprüft, nicht nur +der erste, bereits ausgewertete Snapshot-Lauf. +Release-Testbuild, gezieltes warnings-denied Clippy für App/Tests/Wächter, +`cargo fmt --all -- --check` und `git diff --check` bestanden. Keine Downloads, +kein Bundle, Commit oder Push; sämtliche Modellprozesse regulär beendet. + +SessionBank-Auswahl/Metadaten, Disk-Checkpoints, AR/MTP-Policy-Wechsel und die +produktive Owner-Anbindung sind damit noch nicht implementiert. Der neue +Executor bleibt testintern; die sechs UI-identischen Paritätsläufe sind offen. + +**Vollständiger Session-Chat, 2026-09-10:** +`session_cache::SessionSnapshot` hält nun Tokenpräfix, finale Logits/Hidden, +Trunk-, MTP- und recurrent Boundary-Zustände. `capture_session` und +`restore_session` verwenden die echten SessionBank-Payload-Regeln: Lazy-Trunk +abhängig von der Bankpolicy, MTP immer per vollständigem `snapshot_cache` und +beim Restore ebenfalls geklont, Logits/Hidden beim Speichern und Wiederherstellen +jeweils `_clone_tree`. Nicht passende Tokenpräfixe werden vor Mutation abgelehnt. +Dies ist die Zustandsübergabe im Executor, noch keine vollständige SessionBank +mit Identitätsauswahl, Eviction, SSD-Cold-Tier und UI-Anbindung. + +`tools/mtplx-execution-reference.py --chat --readme README.md` nutzt jetzt die +**originale SessionBank** zusammen mit `generate_ar` beziehungsweise +`generate_mtpk`: README-Summary → vollständige Story → Python-Primzahlfunktion, +mit allen vorherigen Ausgabetokens im nächsten Prompt. Alle drei Antworten +enden natürlich; kein Tokenlimit als Testabschluss, keine Tools/Skills oder +Downloads. Seed 0, Temperatur 0,6, top-p 0,95, top-k 20, Low-Thinking, +2048er Prefill, SSD-PLE, MTP-D3/committed/batched, originale Serverdefaults. +Der bestehende Referenz-Runner wurde erweitert, kein weiterer Modellpfad gebaut. + +**Erst durch die Session-Reproduktion sichtbar gewordene Abweichung:** +Der erste Rust-MTP-Chat (`rust-mtp.*.log`) bricht am achten ausgegebenen Token +des Summary-Turns ab: Soll 3766, Ist 19953. MTPLX aktiviert mit SessionBank +`_gdn_boundary_capture_enabled` und verfeinert den letzten Prefill-Body-Span +mit `_prefill_spans_with_tail_grid`: nicht 2048+699, sondern +**2048+256+256+187**, danach das letzte Token separat. Die bisherigen isolierten +Generator-/Suffixfixtures hatten keine SessionBank und prüften deshalb diesen +Requestpfad nicht. Die globale Chunkgröße wird ausdrücklich nicht reduziert. + +Der gemeinsame Rust-Prefill-Treiber benutzt jetzt dieselbe Spanaufteilung bei +aktivierter Boundary-Policy. Nach dem History-Update werden nur recurrent +GDN/PLE-Zustände geklont; vorhandenes Hidden wird über `contiguous` ausgewertet +und gehalten, wie `detach_array_leaf(..., mode="contiguous_eval")`. Geometrische +Retention begrenzt die Snapshotzahl. Finale Sessions erben diese Grenzen und +ersetzen im geprüften geradlinigen Chat ältere Präfixeinträge. Explizite +Mandatory-Edges werden vom gemeinsamen Spanhelfer unterstützt; die produktive +Stable-Prefix-/Near-Prefix-Auswahl ist weiterhin offen. + +**Nach Korrektur beide vollständigen Chats bestanden:** jede ausgesendete +Token-ID, jedes natürliche EOS, alle finalen vollständigen F32-Logit-/Hidden- +Hashes, alle MTP-Zyklen (inklusive Context-Copy), MTP-Offsets und geerbten +Grenzpositionen sind exakt wie MTPLX. Die vier Grenzen bleiben in allen Turns +2048/2304/2560/2747. Rust hält Prompt-Snapshots während Decode und nutzt echte +Snapshot-/Restore-Container für die folgenden Turns; kein stiller Cold-Replay. + +| Modus / Turn | Prompt | davon wiederverwendet | Output einschließlich EOS | +|---|---:|---:|---:| +| AR Summary | 2748 | 0 | 635 | +| AR Story | 3411 | 3383 | 1347 | +| AR Python | 4791 | 4758 | 266 | +| MTP Summary | 2748 | 0 | 466 | +| MTP Story | 3242 | 3214 | 1394 | +| MTP Python | 4669 | 4636 | 326 | + +Rohdaten: `local-eval-results/session-chat-20260910.jT3hf5/`. +Maßgeblich `reference-{ar,mtp}-boundary.*.log` und +`rust-{ar,mtp}-boundary.*.log`; ursprüngliche Referenzen und der fehlerhafte +Rustlauf bleiben erhalten. Die ergänzte MTP-Referenz liefert gegenüber ihrem +ersten Lauf unveränderte Tokens, Zyklen und Endtensor-Hashes in allen drei Turns. +Ausgaben wurden gelesen: zusammenhängende Summary und vollständige Story ohne +Rückfrage, Python enthält die erwartete `is_prime`-Funktion mit fünf Assertions. +Generierter Code wurde dabei nicht ausgeführt; das ist noch keine automatische +inhaltliche Benchmark-Abnahme. + +Alle Modellläufe einzeln unter 81920 MiB / 30-s-Start / 45-s-Fortsetzung und +durchgehender 2-s-GPU-Canary. Keine Canaryfehler. AR MTPLX/Rust: 661/550 Proben, +Prefill-Maximum 2,342/1,653 ms, Decode-Maximum 0,935/0,786 ms; Lifetime-Peak +82.686.638.304/82.424.002.208 Bytes. MTP: 566/561 Proben, Prefill-Maximum +97,546/0,810 ms, Decode-Maximum 0,540/0,715 ms; Lifetime-Peak +83.454.868.352/82.950.518.912 Bytes. Kein GUI-Eventloop wurde gemessen. + +**Keine 2%-Freigabe:** instrumentierte numerische Läufe ohne separaten Warmup, +bei Referenzläufen teilweise paralleler CPU-Testbuild. Original-`elapsed_s` +enthält andere Phasengrenzen als der innere Rust-Decode-Zähler. Trotzdem bleibt +ein konkreter Performanceverdacht sichtbar: MTP-Story benötigt in Rust bereits +31,663 s Decode, gegenüber 29,938 s für den gesamten entsprechenden +Referenz-Generierungsaufruf. Das wird nicht durch die funktionale Gleichheit +oder die kurzen Canaryzeiten als erledigt behandelt. Saubere gepaarte +Performanceabnahme folgt am vollständig integrierten UI/Harness-Pfad. + +Bestehende modellfreie Prefill-Regressionen unverändert bestanden: 656 MTP- +und 505 AR-Receipts, zwei Tests in 0,32 s unter 2048-MiB-/15-s-Wächter. +CPU-Policytest prüft Tail-Grid/Mandatory-Edges und geometrische Retention; +die tatsächliche gepinnte Pythonfunktion lieferte zusätzlich exakte Cap-8-/64- +Belege. Die native Ganzzahlrechnung sättigt das Potenzprodukt, um Python- +Integersemantik auch bei großem Retentionslimit zu erhalten. +Abschließender Release-Testbuild, Cap-8-/64-Policytest, gezieltes warnings-denied +Clippy für App/Tests/Wächter sowie Format-/Diffprüfung bestanden. Die abschließende +Änderung betrifft nur den Überlaufschutz bei großem Retentionslimit; die +Vollmodellläufe benutzen vier Grenzen unter dem unveränderten Limit acht. +Alle Modellprozesse sind regulär beendet. Kein Bundle, Commit oder Push. + +**Gemeinsamer Token-Turn-Einstieg, 2026-09-10:** +`Execution::session_turn` in `qwen_mtplx/session_cache.rs` übernimmt jetzt +Cold-/Restore-Prefill, AR-/MTP-Decode, die während Decode gehaltene +Prompt-Snapshot-Referenz und den sicheren finalen Snapshot. Der vollständige +Chat-Test ruft diesen Einstieg auf; seine zuvor eigene Prefill-/Decode-Steuerung +ist entfernt. Vorhandene Treiber bleiben unverändert, keine neuen Kernel oder +Dependencies. Dies bereitet die gemeinsame Produktanbindung vor, aktiviert sie +aber noch nicht: `qwen_mtplx` bleibt `cfg(test)`. + +Finale MTP-Arrays sind nur bei angefordertem Capture und ohne Pending-Token oder +Capture-Fehler bankfähig. Ein fehlgeschlagener Snapshot wird separat gemeldet, +nicht als Verlust einer fertig generierten Antwort. Der CPU-Test +`mtplx_session_final_state_requires_capture_and_safe_cache` prüft fehlendes, +abgeschaltetes, erfolgreiches und fehlgeschlagenes Capture sowie den Pending-Fall; +er erzeugt nur unallokierte Array-Deskriptoren, keine GPU-Arbeit. Der unveränderte +Promptzustand bei null MTP-Ausgabetokens bleibt entsprechend der Referenz erlaubt, +wenn Capture ausdrücklich angefordert ist (`generation.py:12291`). + +Beide vollständigen Chats gegen die vorhandenen `reference-{ar,mtp}-boundary` +Belege erneut bestanden: alle Tokens einschließlich natürlichem EOS, finale +Logit-/Hidden-Fingerprints, Cache-Präfixe und Boundary-Positionen; zusätzlich alle +MTP-Zyklen und History-Offsets. Keine Referenz neu erzeugt oder Erwartung geändert. +Rohdaten: `local-eval-results/session-entry-20260910.F1yAZH/{capture,ar,mtp}.*.log`. + +| Modus / Turn | Ausgabetokens inkl. EOS | Prefill s | Decode s | +| --- | ---: | ---: | ---: | +| AR Summary | 635 | 6,213481 | 12,075834 | +| AR Story | 1347 | 0,105876 | 25,776388 | +| AR Python | 266 | 0,124386 | 5,102924 | +| MTP Summary | 466 | 5,956198 | 6,339998 | +| MTP Story | 1394 | 0,114543 | 27,345384 | +| MTP Python | 326 | 0,154080 | 4,225220 | + +Alle Prozesse einzeln mit `test-supervisor`: CPU-Test 2048/15/15, Modelltests +81920/30/45, SSD-Ngram, originale Server-Overrides, Chunk2048, ohne Drosselung. +Der permanente 100-ms-GPU-Canary hatte AR/MTP 516/468 Proben, keine Fehler; +Prefill-Maxima 0,747/0,727 ms, Decode 0,559/0,540 ms, Laden 3,229/11,644 ms. +Peak-Footprint 82.422.937.008/82.943.817.736 Bytes; Supervisor 55,407/50,261 s, +beide regulär beendet. Kein CPU-Build parallel zu den Modellläufen. +Diese instrumentierten Kalt-/Fortsetzungsprüfungen ohne vorgeschalteten Warmup +sind weiterhin **keine** saubere 2%-Performanceabnahme und messen keinen GUI-Loop. + +Release-Testbuild (`cargo test --release --offline --bin ds4-server --no-run -j 1`), +gezieltes Clippy mit `-D warnings`, Format-/Diffprüfung bestanden. Testbinary SHA256: +`14e13eaa14e810af12ad149e7b1ebe6bf231cef8129d7c951a5b4da661e74441`. +Weiter nötig für den Produktanschluss: Session-Auswahl/Identität und Disk-Payload, +Erhalt von Prefill-Bankeinträgen bei Abbruch, Abbruch-/Text-Stop-Ausgänge im Turn-Adapter, +Power-Pausen sowie gemeinsame Metriken. Keine Umschaltung auf den neuen Executor, +bevor diese bestehenden `Generator`-Verträge angeschlossen sind. + +**Gemeinsame produktive Textausgabe, 2026-09-10:** +`Generator::generate_inner` verwendet jetzt `GeneratedText` für den bisherigen +UTF8-/Thinking-/Stop-Zustand. Die vorhandenen Helfer `append_generated_bytes`, +`emit_safe_text` und `flush_generated` werden unverändert wiederverwendet. Die +scalar Decode-Schleife enthält keine eigene Kopie dieser Zustandsübergänge mehr. +EOS, Abbruchprüfung, Completion-Zähler und Cache-Gültigkeit bleiben unverändert +beim Generator. Keine Änderung an Sampling, Prefill-Größe, GPU-Dispatch oder +Power-Policy; keine zusätzliche Dependency oder Queue. + +Der kanonische Vollmodell-Chat verwendet exakt dieselbe Textausgabe im +Token-Callback, mit dem installierten Produkt-Tokenizer. Zusätzlich zur bisherigen +Token-/Zyklus-/Cache-Parität prüft er jetzt Thinking- und Antworttext sowie deren +gestreamte Chunks bytegenau gegen `chat_turn.text` der bestehenden MTPLX-Belege. +Alle sechs Turns erneut bestanden; Referenzen und Erwartungen unverändert. +Zwei CPU-Regressionstests (`generated_text_`) prüfen geteilte UTF8-Sequenzen, +unvollständige Sequenzen beim Drain/Phasenwechsel, Thinking-Ereignisse, einen +tokenübergreifenden Text-Stop und duplikatfreies abschließendes Flushen. + +Rohdaten: `local-eval-results/shared-emission-20260910.IrS1L4/`: +`text-matched.*.log` (2 tatsächliche Tests), `ar.*.log`, `mtp.*.log`. +Das vorausgehende `text.*.log` traf mit falsch qualifiziertem Filter null Tests +und ist ausdrücklich kein Testnachweis. + +| Modus / Turn | Thinking / Antwort Bytes | Prefill s | Decode s | +| --- | ---: | ---: | ---: | +| AR Summary | 194 / 2514 | 4,667441 | 12,064467 | +| AR Story | 226 / 5774 | 0,105925 | 25,786883 | +| AR Python | 142 / 711 | 0,125289 | 5,135448 | +| MTP Summary | 174 / 1837 | 5,230820 | 6,341459 | +| MTP Story | 270 / 5817 | 0,114802 | 27,293845 | +| MTP Python | 203 / 875 | 0,147034 | 4,231167 | + +Unveränderte sequentielle Supervisor-Grenzen: CPU 2048/15/15, Vollmodell +81920/30/45, SSD-Ngram, Server-Overrides, Chunk2048, ungedrosselt, 100-ms-Canary. +AR/MTP: 504/460 Proben ohne Fehler oder 2-s-Stall; Prefill-Maxima 8,309/0,683 ms, +Decode 0,620/0,535 ms, Laden 3,334/4,606 ms. Peak-Footprint +82.497.910.432/83.026.982.920 Bytes; Supervisor 53,920/49,404 s, regulär beendet. +Keine parallelen Builds während der Modelltests. Release-Testbuild, gezieltes +Clippy mit `-D warnings`, Format-/Diffprüfung bestanden. Testbinary SHA256: +`e02b2d809197d224a56423b029f8e8dbc66c4f35a0f3cdbe727de019d8b81fa8`. + +Dies verbindet die produktive **Ausgabe-Verarbeitung**, noch nicht den +kanonischen **Inferenz-Executor** mit UI/`model-eval`. Letzterer bleibt `cfg(test)`. +Session-/Disk-Adapter, Whole-Turn-Abbruch/Stop, Power und Metriken sind weiter +anzuschließen. Die Messungen sind instrumentierte Funktionsregressionen ohne +vorgeschalteten Warmup, keine 2%-Abnahme und kein GUI-Eventloop-Nachweis. +Kein Bundle, Commit, Push oder Download. + +**Qwen-Checkpoint-Payload nach MTPLX, 2026-09-10:** +Der neue `qwen_mtplx/session_codec.rs` bildet für die vorhandenen typisierten +Qwen-Zustände `cache_bank/codec.py` ab: JSON-Baum mit Tuple-/List-/None-Metadaten, +Trunk, Logits, Hidden, MTP-Head und innere GDN-Grenzen. Die Blob-Namen folgen der +originalen Besuchsreihenfolge. Axis-2-Tensoren werden ab `2 * block_size` in +Blöcke zerlegt (Default der Referenz 256, null wird zu eins). Schreiben kann +über denselben Callback entweder gestaged oder direkt auf Disk erfolgen; die +fertigen Bytevektoren werden übergeben, nicht für den Speicher-Handler kopiert. + +`bytes(memoryview(array))` wird nach der Auswertung mit vorhandenen +Array-/Buffer-Helfern in logischer C-Reihenfolge gelesen, auch für negative, +transponierte und Broadcast-Strides. Kein zusätzlicher GPU-Cast/Contiguous- +Dispatch zum Export. BF16 bleibt als rohe 16-Bit-Darstellung erhalten; Restore +verwendet den ursprünglichen View-/Reshape-/Concatenate-Pfad. Der skalare +Referenzfall Shape `[]` wird beim Restore wie im Original `[1]`, nicht heimlich +korrigiert. Abbruch wird vor jedem Tensor und jedem Block geprüft. + +Vollständiger Payload-Restore und separat aufrufbarer Boundary-Restore bilden +die zwei originalen Routen ab. Ein exakter Restore kann Boundary-Blobs vollständig +überspringen; späterer partieller Restore liest ausschließlich diese Blobs. +Die separat gebatchte Boundary-Auswertung und anschließende Gesamt-Auswertung +bleiben erhalten. Ältere Payloads ohne `gdn_boundaries` und Records ohne +`hidden_last` werden wie in der Referenz akzeptiert. Ungültige Blob-Namen +(einschließlich Pfad-Traversal), falsche Bytezahlen und Lesefehler werden abgewiesen. + +Referenz unverändert gepinnt auf `e652d55e2652137a4abcf1312357abbf3eb9d692`. +`tools/mtplx-session-codec-reference.py` verwendet dessen tatsächliche +`encode_payload`-/`decode_payload`-Funktionen mit kleinen synthetischen Tensoren, +keine Modellgewichte. Blockgrößen 0/256/1024 ergeben 1568/19/13 Blobs, jeweils +41.480 Payload-Bytes. Alle **1600 Blobs byteidentisch**, ebenso Payload-Spec, +restaurierte Datentypen/Shapes/Hashes und erneute Serialisierung. Der Rust-Test +liest die originalen Python-Dateien, nicht nur seine eigenen Writes. Zusätzlich +geprüft: selektive Blob-Zugriffe, Legacy-Records, Lesefehler, ungültige Namen, +abgeschnittene Daten und Abbruch vor dem zweiten Block nach genau einem Write. + +Belege: `local-eval-results/session-codec-20260910.GQsCzv/`. +Maßgebliche finale Fixtures unter `compat/`, Logs `reference-compat.*.log` und +`rust-ready.*.log`; `rust.*.log` ist der vorausgehende erfolgreiche Grundvergleich. +Alle Programme einzeln unter `test-supervisor 2048 15 15`, keine geladenen Modelle +oder Downloads. Finaler Rust-Test: **1 Test bestanden**, 0,24 s Testzeit, +0,967 s Supervisor; Peak Physical 171.524.912 Bytes. Referenz-Supervisor 0,315 s, +Peak 156.140.192 Bytes; der winzige Referenzlauf überlappte einen CPU-Build. +Diese Werte sind Funktionsdiagnostik, **kein Performance-A/B**. Release-Testbuild, +gezieltes Clippy mit `-D warnings`, Format-/Diffprüfung bestanden; alle Tests beendet. + +**Import-Korrektur nach vollständigem Caller-Trace (10.09.):** Die vorige +Forderung, hier einen Zero-Copy-Host-Owner zu portieren, war falsch. Zwar besitzt +`python/src/convert.cpp:190,259` einen `copy=None`-Übernahmepfad. Aber der tatsächlich +von `mtplx/cache_bank/codec.py:395–409` verwendete `mx.array(...)`-Konstruktor +übergibt in `python/src/array.cpp:311` ausdrücklich `create_array(v, t, true)`; +`convert.cpp:706–722` reicht dieses **copy=true** an `nd_array_to_mlx` weiter. +Deshalb kopiert der Codec auch seitenalignierten Host-Speicher. Der Default eines +internen Helfers ist kein Beleg für das Verhalten seines konkreten Aufrufers. + +Die modellfreie Probe `tools/mtplx-host-import-reference.py` bestätigt direkt in +der unveränderten installierten MTPLX-Runtime: alignierte 16-KiB-, unalignierte +16-KiB-, kurze 17-Byte- und leere Eingaben werden nicht übernommen; keine hält den +NumPy-Host-Owner fest. Nach der Freigabe liegen 16384/16384/17/0 Bytes im Pool. +Belege: `local-eval-results/host-import-20260910.dfNdNK/reference-verified.stdout.log` +(finale Probe mit Assertions; `reference-default.stdout.log` war der erste +erfolgreiche Lauf). +Der erste Versuch mit einem `copy`-Keyword wurde vom Python-Konstruktor abgewiesen; +`reference.stdout.log` / `reference.stderr.log` sind **kein erfolgreicher Nachweis**. + +Die reale Abweichung war das Umgehen des kanonischen Allocators außerhalb einer +GPU-Scope. `decode_tensor` kopiert nun ausdrücklich über `streams.allocator()`; +leere Tensoren behalten den bestehenden null-storage-Descriptor. Es wurde **kein** +Zero-Copy-/Host-Lifetime-Pfad oder neuer nativer Allocator eingeführt. Der gezielte +Rust-Test prüft Referenzgrößen, Copy-Semantik, View-/GPU-Hold-Lebensdauer, Pool-Rückgabe +und Wiederverwendung beim zweiten Import. **Beide Codec-Tests bestanden**: +`mtplx_session_codec_host_import_matches_reference` und +`mtplx_session_codec_matches_original_blobs_and_restore` (weiterhin alle 1600 Blobs). +Der neue Test läuft ausdrücklich ohne aktive GPU-Scope und würde bei der alten +`scalar_buffer`-Route an der aktiven Pool-Belegung scheitern. + +Nachweise im selben Verzeichnis: `rust.stdout.log` / `rust.stderr.log`. +Supervisor 2048 MiB / Start 15 s / Fortschritt 15 s; keine Modelle, Downloads oder +parallelen Builds während der Proben. Beide Tests 0,24 s, Supervisor 0,938 s, +gemessener Peak Physical 168.657.664 Bytes. Der 0,105-s-Pythonlauf ist für eine +belastbare Peak-Speichermessung zu kurz; keine Performance-A/B-Aussage. +Release-Testbuild (`/tmp/ds4-host-import-build.log`), gezieltes Clippy mit +`-D warnings` (`/tmp/ds4-host-import-clippy.log`), Format-/Diffprüfung bestanden; +alle Prozesse regulär beendet. Testbinary SHA256: +`39a0165f0e0aa26b6a4db2075cb3f59786bef9a21db2395c381c46ecdeb4ef6e`. +Die native Bridge und Buffer-Lifetime-Implementierung wurden in diesem Schritt +nicht verändert. Die Python-Extension der unveränderten Referenz hat SHA256 +`5ff77c777a73864d2af86defd61b141467746636f0047b76b66a7ae645fa12fb`. + +**Qwen-Request-Grenze und abbrechbare Ausgabe, 2026-09-10:** +`qwen_mtplx/request.rs::Execution::generate_text` benutzt ausschließlich +`session_turn` für Prefill/AR/MTP und liefert das bestehende `GenerationOutput` +mit dem gemeinsamen `GeneratedText`. Es gibt keinen zusätzlichen skalaren +Sampling-/Decode-Loop. Tokenzähler schließen wie in der UI EOS aus, während der +Sessionzustand die vollständige Tokenfolge inklusive EOS behält. UTF-8, +Thinking-Wechsel und Text-Stops verwenden dieselbe Ausgabe-Verarbeitung wie die UI. + +Ein tatsächlich im Adapter beobachteter Abbruch oder Text-Stop liefert den +bereits erzeugten Text, aber **keinen finalen Sessionzustand**. GPU-/IO-/Observer- +Fehler werden nicht als erfolgreiche Abbrüche verschluckt. Der Adapter versucht +nicht, einen möglicherweise vorausgerechneten AR-/MTP-Cache nach einem Stream-Stop +als vollständigen Chat zu speichern. Die nächste Generierung restauriert einen +gültigen Bankeintrag. Die Referenz speichert den Prompt bereits vor Decode +(`generation.py::_maybe_store_prefix_snapshot`, Zeilen 3888–3973); bisher hielt +Rust diesen Snapshot nur auf dem `session_turn`-Stack und verlor ihn bei Fehlern. +Nun übernimmt ihn ein Storage-Callback vor `TurnProgress::Decode`, sodass er +auch nach einem Abbruch beim Caller verbleibt. Ein fehlgeschlagenes Prefix-Store +bleibt wie in MTPLX nichtfatal (`prefix_snapshot_error`). + +Der vorhandene Vollmodell-Chat-Test läuft jetzt durch diesen Request-Adapter, +nicht mehr durch einen separat im Test zusammengesetzten Text-Callback. +AR und MTP jeweils **1 Test bestanden**: alle drei natürlichen Antworten, +sämtliche Tokens und finalen Fingerprints, Boundary-Positionen und zusätzlich +alle MTP-Zyklen und Head-Offsets unverändert zur gespeicherten Referenz. +Zusätzlich je Modus: Abbruch vor Prefill ohne Ausgabe/Store, echter Observer- +Fehler bleibt Fehler, Abbruch nach erster Ausgabe erhält Teiltext und Prompt- +Snapshot, Literal-Stop leakt keinen Text, fehlgeschlagener Prefix-Store erreicht +trotzdem den Decode-Einstieg. Die zwei folgenden regulären Chat-Turns restaurieren +weiterhin exakt den gültigen Finalzustand, nicht die unterbrochenen Cache-Reste. + +Belege: `local-eval-results/request-turn-20260910.lh9PZ4/{ar,mtp}.{stdout,stderr}.log`. +Nur installierte Qwen-Gewichte, sequentiell, kein paralleler Build; unveränderte +Referenz-Overrides, SSD-Ngram, Chunk2048, ungedrosselt, Supervisor 81920/30/45, +100-ms-GPU-Canary mit 2-s-Abbruch. AR/MTP 601/529 Canary-Proben, null Fehler/Stalls; +Prefill-Maxima 7,005/3,794 ms, Decode-Maxima 0,834/1,241 ms. Die zusätzlichen +Abbruch-Proben zwischen den regulären Turns liegen im äußeren Testabschnitt +`finishing`, nicht in einer nachgebildeten GUI-Phase. Kein GUI-Eventloop-Nachweis. +Peak Physical 82.724.992.648/83.067.795.392 Bytes; beide Supervisoren regulär beendet. + +| Modus / Turn | Prefill s | Decode s | +| --- | ---: | ---: | +| AR Summary | 10,480830 | 12,810777 | +| AR Story | 0,111735 | 27,830894 | +| AR Python | 0,141198 | 5,605803 | +| MTP Summary | 9,687827 | 6,756337 | +| MTP Story | 0,122406 | 29,269802 | +| MTP Python | 0,154803 | 4,568898 | + +Diese Zeiten sind gegenüber mehreren vorherigen Diagnostikläufen schlechter, +insbesondere der kalte Prefill. **Keine Performance-Parität oder unveränderte +Performance behauptet:** kein Warmup, keine zeitnah gepaarte Referenz und zusätzliche +Abbruch-Proben. Die Ursache der Zeitdifferenz ist damit nicht belegt und muss in +der kontrollierten End-to-End-Abnahme geprüft werden; die Funktionsprüfung darf +sie nicht als erledigt deklarieren. Release-Testbuild und gezieltes Clippy mit +`-D warnings` (`/tmp/ds4-request-{build,clippy}.log`), Format-/Diffprüfung bestanden. +Testbinary SHA256 `6c44e2150e9bc34e362d73fb5dd688357ca71e5f7fbed3179c9510ad42b12959`. + +Der Request-Adapter bleibt Teil des `cfg(test)`-Ports. **Noch keine produktive +Umschaltung:** `Generator`/UI/`model-eval` müssen erst denselben Owner einschließlich +Session-Auswahl/Identität/Disk-Store, Power-Pausen und laufender gemeinsamer Metriken +benutzen. Die sechs 2%-Vergleiche bleiben vollständig offen; kein Bundle/Commit/Push. + +**Gemeinsame Fortschritts-/Decode-Messung und frischer Golden-Master-Abgleich, 10.09.:** +`request::RequestProgress` liefert nun den bestehenden UI-/Runtime-Callback +`(used, limit, Option)` ab dem gecachten Frontier, für Prefill und +jeden ausgegebenen Token. Der warme Backend-Fortschritt ist bereits absolut; +gecachte Tokens werden nicht doppelt addiert. Der Adapter nutzt `Metrics` für +Prefix-Reuse und denselben `DecodeTimer` wie die UI. AR und MTP melden ihre +Decode-Endgrenze jetzt **vor** finalem Token-/Cache-Capture; bisher kam +`TurnProgress::Finalize` erst danach. Normale Ergebnisse übernehmen die gemessene +Backend-Decode-Dauer, Fehler/Abbruch verwenden weiterhin die gemeinsame RAII- +Zeitmessung. Weder Sampling noch Shader/Command-Submission wurden verändert. + +Zwei modellfreie Tests bestanden: `qwen_request_progress_uses_ui_frontiers_and_decode_timer` +und `decode_timer_excludes_later_work_and_resets_between_requests`. Die AR-/MTP- +Referenz-Chats samt Abbruchfällen jeweils erneut bestanden; zusätzliche Assertions +prüfen Start-/Endfrontier, jeden Token-Fortschritt, Kontextlimit und die exakt im +gemeinsamen Metrikobjekt gespeicherte Decode-Dauer. Belege: +`local-eval-results/request-progress-20260910.DvrBll/{timing,ar,mtp}.*.log`. +AR/MTP: 607/529 Canary-Proben, keine Fehler/Stalls; Prefill-Maxima 10,841/0,906 ms, +Decode 0,690/0,901 ms, Finishing 0,789/0,580 ms. Peak Physical +82.719.667.704/83.067.533.128 Bytes. Negative/übergelaufene OS-Disk-Write-Zähler +in diesen Logs sind ungültig und werden nicht als IO-Leistung interpretiert. + +Die wiederholten kalten Prefills nahe 10 s wurden unmittelbar am unveränderten +MTPLX-Master gegengeprüft. Der erste AR-Referenzlauf benötigte 11,367 s, der zweite +9,664 s: **keine belegte Rust-spezifische Ursache für den Abstand zu älteren ~5–6-s- +Läufen**, aber auch keine Erklärung der äußeren Ursache allein aus diesen Proben. +Dabei wurde die Referenz-Metrikgrenze vollständig nachverfolgt: +`generation.py::_generation_rate_fields` zieht Prefill, Restore und sonstige +Prompt-Phase ab; `elapsed_s` ist dagegen die Gesamtspanne einschließlich Prefill. +Der Recorder gibt nun direkt `decode_elapsed_s`, `decode_tok_s` und +`prompt_state_total_time_s` aus, statt einen Vergleich mit reiner Rust-Decode-Zeit +aus der Gesamtzeit ableiten zu müssen. Modellfreier Original-Stats-Gegencheck +(`reference-rates.*.log`): 14 s Gesamtzeit minus 10 s Prefill, 1 s Restore, 1 s +sonstige Vorbereitung = 2 s Decode und 50 Token/s bei 100 Tokens. + +Zeitnaher diagnostischer Vergleich, **kein Warmup/Median und keine produktive +UI-/Harness-Abnahme**. Beide Seiten dieselben installierten Gewichte, Server- +Overrides, Chunk2048, SSD-Ngram, niedriges Thinking, ungedrosselt/100 %, durchgängiger +100-ms-Canary mit 2-s-Abbruch, Supervisor 81920/30/45, sequentiell ohne CPU-Builds. +README-Prompt-SHA256 auf beiden Seiten +`69a37cf788e427fd384558517092e9a2a222f33910be63b48175516bf15ad84d`. +Neue Referenz-Receipts stimmen nach Entfernung ausschließlich der Zeitfelder mit +den bisherigen Tokens, Texten, Cache-Fingerprints, Boundaries und MTP-Zyklen überein. +Quellen: `reference-{ar,mtp}-rates.{stdout,stderr}.log` im selben Verzeichnis. + +| Qwen / Prompt | Prefill Rust / MTPLX s | Decode Rust / MTPLX Token/s | Rust-Decode-Differenz | +| --- | ---: | ---: | ---: | +| AR Summary | 9,950 / 9,664 | 48,91 / 50,22 | −2,60 % | +| AR Story | 0,113 / 0,119 | 48,03 / 47,02 | +2,16 % | +| AR Python | 0,141 / 0,140 | 47,08 / 46,85 | +0,48 % | +| MTP Summary | 9,840 / 12,351 | 69,07 / 66,56 | +3,78 % | +| MTP Story | 0,121 / 0,125 | 47,89 / 45,83 | +4,49 % | +| MTP Python | 0,158 / 0,154 | 72,32 / 69,03 | +4,77 % | + +Die Raten verwenden auf beiden Seiten Tokens inklusive EOS; die UI-Completion- +Zahl bleibt unverändert ohne EOS. Positiv bedeutet schneller. AR Summary verfehlt +in diesem Einzelvergleich 98 % der Referenzgeschwindigkeit; außerdem sind einzelne +Prefill-Vergleiche außerhalb 2 %. Das Gesamtziel ist damit ausdrücklich **nicht** +erfüllt. Native MTP-Akzeptanz (ohne Context-Copy-Zyklen), identisch in beiden Ports: +Summary 301/444 = 67,79 %, Story 746/1920 = 38,85 %, Python 225/279 = 80,65 %. +Das passt zum geringen MTP-Nutzen bei der Story und erklärt, warum kein pauschaler +Speedup vorausgesetzt werden darf; es ersetzt keine Zerlegung der einzelnen Kosten. +Die frischen Referenzen hatten 602/592 Canary-Proben ohne unvollständige Probes, +maximal 3,066/2,516 ms über alle Phasen. Alle Prozesse sind regulär beendet. + +Release-Testbuild, Test- und Produktions-Clippy mit `-D warnings`, Format-/Diffcheck +bestanden (`/tmp/ds4-request-progress-{build,clippy,production-clippy}.log`). +Testbinary SHA256 `cfc781c74406ecef37d27c77ed9f204c6480b8326db1c2f14b1c277fae432eaa`. +Offen: produktiver Owner/Session-Store, gemeinsame Executor-Verdrahtung und echte +Power-Pausen unter 100 % (bei AR-Lookahead genügt Schlafen im Token-Callback nicht), +danach warme wiederholte Abnahme aller drei Modelle mit/ohne Spekulation. Dieser +Schritt fügt keine Warte-/Flushpunkte bei 100 % ein und erklärt den Test-Port nicht +zur produktiven UI-Ausführung. Kein Bundle, Commit oder Push. + +**Backend-explizite Allokation als Integrationsvoraussetzung, 10.09.:** +`gpu::Buffer::{bytes,untracked}` hatten zuvor unter `cfg(test)` automatisch die +MTPLX-Rundungs-/Pool-Policy verwendet, während Produktbuilds direkt DS4 allozierten. +Dieser versteckte Backendwechsel ist entfernt. DS4/GLM und der alte Qwen-Executor +verwenden dieselben nativen Allokationsfunktionen unabhängig vom Buildtyp. Alle +Aufrufe im kanonischen Qwen-Graph und seinen Fixtures wählen ausdrücklich +`mtplx_bytes`, `mtplx_untracked` oder `mtplx_floats`; Rundung, leere Deskriptoren, +aktiver Pool und GPU-Lebensdauer bleiben für diesen Pfad unverändert. Keine neue +Allokator-Abstraktion, kein geänderter Kernel und keine Scheduling-/Power-Änderung. + +Neun überwachte modellfreie Tests bestanden: vier Bridge-/Lebensdauerprüfungen +einschließlich der neuen Backend-Isolation innerhalb und außerhalb eines Qwen- +Scopes, vier vorhandene Allokator-Referenzprüfungen und die Encoder-/Pool-Anbindung. +Die neue Prüfung weist insbesondere nach, dass DS4-Allokationen keine MTPLX- +Rundung übernehmen und auch bei aktivem Qwen-Scope dessen Pool nicht beanspruchen. +Rohdaten: `local-eval-results/explicit-allocator-20260910.olnx1y/` mit +`allocation`, `allocator` und `encoder` stdout/stderr. Test- und Produktions-Clippy +mit `-D warnings`, Release-Testbuild, Format- und Diffprüfung bestanden. +Build-/Clippy-Logs: `/tmp/ds4-explicit-allocator-{build,clippy,production-clippy}.log`. +Testbinary SHA256 `d070eaa625a15a8d1abc6c4b23a0b28b057495b05e8417c732ed8cedbfc32cc4`. + +Anschließend beide vollständigen Qwen-Referenz-Chats einschließlich der vorhandenen +Abbruch-/Text-Stop-/Cache-Fehlerfälle bestanden (`ar`/`mtp` stdout/stderr im selben +Verzeichnis). Unveränderte Referenzen `session-chat-20260910.jT3hf5/reference-{ar,mtp}-boundary.stdout.log`, +installierte Gewichte, Power100, Chunk2048, SSD-Ngram, sequentiell unter Supervisor +81920/30/45 und durchgängigem 100-ms-Canary; keine neuen Downloads. Referenztokens, +Texte, Cache-/Boundary-Zustände, MTP-Zyklen und gemeinsame Fortschritts-/Decode- +Metriken unverändert korrekt. AR/MTP: 604/551 Canary-Proben, keine Fehler oder +Stalls; GPU-Completion-Maximum Prefill 2,026/2,697 ms, Decode 0,658/1,175 ms. +Peak Physical 82.718.471.720/83.064.911.928 Bytes; Supervisor-Ende nach +62,657/58,785 s, beide exit 0. Diese kalten Einzel-Regressionsläufe sind weder +ein frischer gepaarter Performancevergleich noch die UI-/Harness-Endabnahme. + +**Gemeinsame Modell-Metadaten vom alten Qwen-Executor entkoppelt, 10.09.:** +`engine::ModelRef::Qwen` verweist jetzt auf `QwenMetadata`, nicht mehr auf den alten +`QwenModel` mit dessen Gewichts-Mappings und PLE-Leserpool. Tokenizer, Chat-/History- +Rendering, Fortsetzung, Stop-/Thinking-Erkennung, Modellübersicht und Checkpoint- +Identität liegen in dieser gemeinsamen Struktur. Der bestehende Produkt-Executor +delegiert unverändert dorthin. Der separate Metadaten-Lader verwendet dieselbe +Artefakt-/Header-/Tokenizer-Validierung, öffnet aber keine Gewichts-Mappings, +GPU-Kontexte oder PLE-Leser; der kanonische Controller benötigt dafür keine zweite +Instanz des alten Modell-Executors. Sein vollständiger Chat-Test verwendet bereits +diesen Loader. Prefill-/Decode-Controller, Kernel und Persistierungsformat wurden +in diesem Schritt nicht verändert. + +Vier überwachte Metadaten-/Artefakttests bestanden, darunter +`pinned_qwen_metadata_matches_product_without_executor_state`: mit/ohne MTP gleiche +Übersicht (2469/2527 Tensoren), gleiche Checkpoint-Identität, Direct-/Low-/XHigh- +Rendering, History und Fortsetzung einschließlich `skip_previous_eos`, Stop- und +Tokenbyte-Verhalten; zusätzlich bestehende Literal-Goldens und Fail-Closed-Prüfungen. +Rohdaten: `local-eval-results/qwen-metadata-20260910.qJ4vq2/metadata.{stdout,stderr}.log`. +Test-/Produktions-Clippy mit `-D warnings`, Release-Testbuild, Format-/Diffcheck +bestanden. Logs: `/tmp/ds4-qwen-metadata-{clippy,production-clippy,build}.log`. +Testbinary SHA256 `067370d61a22354d8de9ffe7bbd98d150b647b75b8b617dd7e96447d6465c2d2`. +Die vollständigen AR-/MTP-Chats mit dem separaten Metadaten-Lader bestanden danach +ebenfalls: gleiche eingefrorene Referenzen und Supervisor-/Power-/Canary-Einstellungen +wie oben, unveränderte Token-/Text-/Cache-/Boundary-/MTP- und Abbruch-Assertions. +Rohdaten `ar`/`mtp` stdout/stderr im selben Verzeichnis. AR/MTP: 571/553 Canary-Proben, +keine Fehler oder Stalls; maximale GPU-Completion im Prefill 2,261/2,347 ms, im +Decode 1,049/0,548 ms. Peak Physical 82.622.526.968/83.166.132.544 Bytes; +Supervisor-Laufzeit 59,333/57,389 s, jeweils exit 0. Keine neue gepaarte +Performance-Abnahme und keine Zuordnung der Prefill-Zeitstreuung zu diesem Patch. +Die produktive Turn-Auswahl bleibt noch auf dem alten Executor. Diese Entkopplung +schließt die gemeinsame Metadaten-Schnittstelle, nicht die Controller-/Cache-/Power- +Anbindung; noch kein neues UI-Bundle oder Nachweis der sechs Performance-Zellen. + +**Power-Steuerung am kanonischen Executor angebunden, 10.09.:** +`Execution::load` nimmt jetzt den effektiven `power_percent` entgegen; 0 bedeutet +wie im DS4-Executor automatisch 100, Werte über 100 werden vor dem Modellladen +abgelehnt. Der reale Chat-Test bezieht den Wert aus `ExecutionPreferences` / +`EngineExecutionSettings`; Standard bleibt 100. `DS4_QWEN38_TEST_POWER=75` ist nur +ein expliziter Diagnosearm, keine Änderung der Paritätskonfiguration. +Die bestehende DS4-Formel ist als `throttle_delay` wiederverwendet: +EWMA 0,875/0,125, Pause = Mittelwert * (100-power)/power. Separate persistente +Prefill-/Decode-Mittelwerte; keine Pause im Text-Callback. Der AR-Pfad pausiert an +seinen Forward-/Lookahead-Grenzen, MTP nach abgeschlossenen Verify-/Repair- bzw. +ContextCopy-Runden; Prefill nach ausgeführten Chunks, History-Updates und Tail, +einschließlich restaurierter Suffixe. Vor dem Schlafen wird der Modellstream +synchronisiert, damit bereits eingereichte GPU-Arbeit nicht durch die Pause läuft. +Bei 100 werden weder zusätzliche Uhren gelesen noch Commands eingereicht oder +synchronisiert. Keine Chunk-Verkleinerung, keine Kerneländerung. + +Pausenzähler und tatsächliche Schlafzeit werden in den Chat-Receipts getrennt +ausgewiesen; Prefill-Zeit enthält die zusätzliche Warte-/Pausenzeit, Decode-Wallzeit +ebenfalls. Der neue kleine Metal-Test lässt ein GPU-Ereignis zunächst uneingereicht: +bei 0/100 bleibt es uneingereicht (Commit-Zähler 0, kein Sleep-Aufruf), bei 75 muss +es vor Beginn des Sleep-Aufrufs signalisiert sein. Ein Drain-Fehler darf nicht +schlafen oder einen erfolgreichen Pausenzähler erhöhen. Ein separater CPU-Test +prüft dieselbe DS4-Mittelung und ihren 100%-Bypass. Diese Power-Anbindung liegt +weiterhin im `cfg(test)`-Controller, nicht im produktiv ausgewählten QwenExecutor; +die gesamte EngineSettings-/MTPLX-Serverdefault-Auswahl und Produktumschaltung +bleiben offen. + +**Power-Verifikation:** Zwei gezielte Power-Tests plus die drei bestehenden +AR-/Prefill-Treiberreferenzen bestanden unter Supervisor `2048 15 15`. +Test-/Produktions-Clippy mit `-D warnings`, Release-Testbuild, Format und Diffcheck +bestanden; Logs `/tmp/ds4-power-{clippy,production-clippy,build}.log`. +Testbinary SHA256 `88429c4652219fa1c3db3fd544ee672c80ef2df849631b96560fb0ec4b06380b`. +Anschließend vollständige installierte Qwen-Chats, sequenziell AR100, MTP100, +AR75, MTP75, unter `81920 30 45` und durchgehendem Canary. Unveränderte +`session-chat-20260910.jT3hf5/reference-{ar,mtp}-boundary.stdout.log`-Referenzen, +SSD-Ngram, Chunk 2048, Low, Seed 0, gleiche Server-Flags wie im vorherigen Lauf. +Alle vier liefen bis EOS und bestanden sämtliche Prompt-/Token-/Text-/State-/ +Boundary-/MTP-Cycle- sowie Owner-Abbruch-/Textstop-Assertions. Keine Assertion und +keine Referenz geändert. Zähler kumulativ über den Chat einschließlich kurzer +Abbruchproben; sie sind nicht mit der Anzahl sichtbarer Tokens gleichzusetzen. + +| Modus | Supervisor s | Prefill-Pausen | Decode-Pausen | Canary-Proben | Prefill max ms | Decode max ms | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| AR 100 | 56,180 | 0 | 0 | 524 | 3,466 | 0,747 | +| MTP 100 | 56,282 | 0 | 0 | 527 | 3,780 | 0,720 | +| AR 75 | 90,502 | 7 | 2246 | 846 | 1,515 | 1,393 | +| MTP 75 | 90,247 | 15 | 892 | 844 | 2,645 | 1,130 | + +Überall keine Canary-Fehler/Stalls. Bei 100 tatsächlich 0 s Schlafzeit. Bei 75 +AR Prefill/Decode 7,464/22,663 s tatsächliche Schlafzeit, MTP 12,754/20,345 s. +Das Duty-Cycle-Setting ist keine Messung elektrischer GPU-Leistung; EWMA und +Aufwachlatenz erlauben keine pauschale lineare Laufzeitprognose. Peak Physical +AR100/MTP100/AR75/MTP75: 82.720.290.248 / 83.179.927.464 / +82.617.677.328 / 83.078.084.640 Bytes. Rohdaten: +`local-eval-results/qwen-power-20260910.K856XD/`, +`{throttle,drivers,ar100,mtp100,ar75,mtp75}.{stdout,stderr}.log`. +Die 100%-Läufe belegen Funktionsregression und ausgebliebene Drosselung; die +75%-Läufe belegen die aktivierte Steuerung. Kein frisches Referenzpaar, kein +Warmup-/Wiederholungsdesign, daher keine neue 2%-Abnahme aus diesen Diagnosezeiten. +Kein Bundle, Commit oder Push. + +**EngineSettings und MTPLX-Serverdefaults im kanonischen Einstieg (10.09.):** +`Execution::open(&EngineSettings)` liefert Executor und bestehende `TurnOptions`. +Er übernimmt den installierten Modellpfad, integriertes MTP an/aus, Power und den +nativen Prefill-Chunk-Override (automatisch 2048). Die gemeinsame +`effective_settings`-Aufbereitung liefert nun auch im Drei-Turn-Test Engine- und +TurnSettings; die Referenzkonfiguration wird nur noch geprüft, nicht in die +Ausführungsoptionen kopiert. Der native Chunk-Vertrag entspricht dem begrenzten +Sustained-Pfad mit Final-Logits-Prefill. Die bisherige `Execution::load`-Methode +bleibt für unveränderte Modell-/Treiberdiagnosen ohne zusätzliche Serverdefaults. + +Die Qwen-Verzweigung von MTPLX `_server_runtime_env_overrides` liegt als lokale +Override-Map vor: neun Family-Speed-Flags, gemeinsamer Compiled-GDN-Off-Schalter, +NAX-Verify-Default 0 und bei MTP zwingender Verify-Snapshot. Keine Env-Mutation, +keine TLS-Profilumschaltung. Gewichts-Fusion, CompilePolicy und alle produktiven +Graph-Options-Aufrufe des Controllers (auch ContextCopy-Repair) lesen diese Werte. +Explizite Operatorwerte bleiben gemäß Referenz erhalten; der zwingende Snapshot +ist dieselbe Ausnahme wie im Original. AR-Pipeline/Sync-Eval, native MTP-Tiefe 3, +Committed-History, Capture-/Repair-Flags, Cache-Snapshot-/Suffix- und Boundary- +Defaults werden in vorhandene Optionsstrukturen übersetzt. Das ist keine Abnahme +sämtlicher optionaler MTPLX-Generation-Lanes oder experimenteller Kernel-Overrides. + +`tools/mtplx-policy-reference.py` ruft ausschließlich die Original-Konfigurations- +funktionen aus Commit `e652d55e2652137a4abcf1312357abbf3eb9d692` auf, ohne Modellladen +oder Generierung. 268 AR-/MTP-Fälle: unset, explizit ein/aus, leere und ungültige +Werte, GDN-Interlock, numerische Grenzen und Boolean-Aliase. Der erste Recorder- +Lauf deckte auf, dass Capture-Commit/Deferred-Repair anders als einfache `_env_truthy` +mit `env_bool` arbeiten: Aliase enable/disabled akzeptieren, ungültige Werte +ablehnen. Rust bildet diese Leser getrennt ab. Der korrigierte Recorder behält +Fehlerfälle als solche, statt sie auszuschließen. Alle 268 Vergleiche bestanden. +Der Seed der bestehenden eingefrorenen Vollmodellreferenz bleibt explizit 0 im +Executor-Test; `GenerationPreferences` akzeptiert aktuell nur positive explizite +Seeds. Dieser Fixture-Override ist **kein** Nachweis einer Seed-0-UI-Eingabe. + +Danach AR/MTP-Vollchats über `Execution::open`, jeweils 100 %, Low, 2K, SSD-Ngram, +Supervisor `81920 30 45` und durchgängiger Canary. Anders als zuvor keine manuell +gesetzten Qwen-Speed-, Compile-, Sustained- oder Snapshot-Flags: sämtliche 12/13 +in `qwen_runtime_setting` protokollierten Umgebungswerte waren `null`; effektive +Werte exakt wie die eingefrorene Referenz. Beide Chats einschließlich aller +Prompt-/Output-/Logits-/Hidden-/Cache-/Boundary-/MTP-Cycle- und Abbruch-Assertions +bestanden. Keine Referenz und keine bestehende Assertion abgeschwächt. +AR: 562 Canary-Proben, Prefill/Decode-max 1,416/0,804 ms, Peak Physical +82.725.746.312 Bytes, Supervisor 58,395 s. MTP: 549 Proben, max 2,085/0,559 ms, +Peak Physical 83.187.169.336 Bytes, Supervisor 57,055 s. Keine Fehler/Stalls, +keine Drosselungspausen. Drei bestehende AR-/Prefill-Treiberreferenzen ohne +Servervorgaben bestanden anschließend ebenfalls. + +Rohdaten: `local-eval-results/qwen-policy-20260910.FBHrg3/`, +`{reference,reference-fixed,policy,drivers,ar,mtp}.{stdout,stderr}.log`. +Finale Binary SHA256 `2711ff2ae542a91d0c62d69fccc7e62de0deb4a91a884dfd9cb924e03ea559c5`. +Test-/Produktions-Clippy, Release-Testbuild, Format und Diffcheck bestanden; +Logs `/tmp/ds4-policy-{clippy-final,production-clippy,build-final}.log`. +Der Controller ist weiterhin `cfg(test)`; dieser neue Einstieg wird noch nicht +vom produktiven Generator ausgewählt. KV-Persistierung, produktive Umschaltung, +UI-/Harness-Abnahme und gepaarte sechsstellige Performance-Matrix bleiben offen. +Kein Bundle, Commit oder Push; keine 2%-Abnahme aus diesen Diagnosezeiten. + +**SSD-Checkpoint am kanonischen Live-Owner (10.09., nach dem Policy-Nachweis):** +`qwen_mtplx/session_checkpoint.rs` verbindet den vorhandenen Referenz-Codec mit +`LiveSession::save_checkpoint/load_checkpoint`. Eine einzelne `QWMTKV01`-Datei +enthält rohe Tensorblobs und ein begrenztes Manifest; keine dtype-Konvertierung, +keine zweite Datenbank, keine neuen Writer-Threads. Die bestehende DS4-Verwaltung +übernimmt weiterhin Conversation-Key, Index, Prefix-Suche, Budget, Touch und Eviction. +Temporärdatei, `sync_all` und Rename folgen dem bestehenden Rust-DS4-Verfahren. +Modellidentität, Kontext, Vokabular, MTP, Tokenpräfix und vollständige Blobbereiche +werden geprüft. Abbruch-/IO-Fehler veröffentlichen weder einen partiellen Checkpoint +noch einen neuen Live-Zustand/Tag. Alte `DS4QWN01`-Dateien sind ausdrücklich inkompatibel +und müssen vom gemeinsamen Aufrufer als Cache-Miss/Rebuild behandelt werden. + +Der modellfreie Metal-Test prüft bitgleiches Payload-/Blob-Roundtrip einschließlich +BF16, Recurrent-State, MTP und Boundaries, bytegenaue IO-Zähler, fehlende Datei, +Abbruch nach IO-Beginn, Modell-/Kontext-/MTP-Wechsel, ungültige Token, überlaufende +und falsche Blobbereiche, falsche Tensorgrößen, Trunkierung und altes Dateiformat. +Alle Fälle bestanden; ein fehlgeschlagenes Speichern bewahrt die vorherige Datei, +fehlgeschlagenes Laden den vorherigen Live-Zustand. + +Der bestehende vollständige Drei-Turn-Oracle besitzt nun einen optionalen +`DS4_QWEN38_CHECKPOINT_DIR`-Diagnosepfad: nach jedem natürlich beendeten Turn +Speichern und `KvStore::record`, alle Live-Snapshots und die Engine verwerfen, +Engine erneut öffnen, `KvStore` erneut öffnen/find/touch und von SSD laden. +Es handelt sich um eine **prozessinterne Engine-Neuöffnung**, noch nicht um einen +Neustart des produktiven UI-Prozesses. Die Folge-Turns behalten unverändert sämtliche +eingefrorenen Prompt-/Output-/Logits-/Hidden-/Boundary-/MTP-Cycle-Assertions. Kein +RAM-Prefix bleibt als alternative Quelle erhalten. Summary → Story → Python +bestand AR und MTP bei Power 100, Low, Chunk 2048; keine Drosselungspausen, keine +zusätzlichen Voll-Prefills der bereits gecachten History. + +| Modus | Checkpointgrößen, Turn 0/1/2 (Bytes) | Speichern (ms) | Laden (ms) | GPU-Canary max, gesamt / Prefill / Decode (ms) | +| --- | --- | --- | --- | --- | +| AR | 675831746 / 714926075 / 723427506 | 359,805 / 519,763 / 438,827 | 181,206 / 217,471 / 185,126 | 6,126 / 1,485 / 0,711 | +| MTP | 678764762 / 722567188 / 733621273 | 366,524 / 406,042 / 385,907 | 172,320 / 183,714 / 176,829 | 3,996 / 1,264 / 0,527 | + +Canary durchgängig inklusive Speichern/Neuladen, 812/727 Proben, jeweils null +Fehler/Stalls. Die Gesamtmaxima liegen in Loading; dessen Phasenlabel umfasst +hier auch das SSD-Laden. Supervisor-Gesamtzeit 86,094/77,604 s, maximale Physical- +Footprints 81.629.560.424 / 82.099.961.736 Bytes. Genau ein Modellprozess, kein +Download, Supervisor `81920 30 45`; kein Gesamtlaufzeitlimit. Der kleine Test lief +separat mit `2048 15 15`. IO-/Neuladezeiten sind Diagnosewerte mit aktivem Canary +und warmem OS-Dateicache, keine SSD-Kaltstart- oder Performance-Paritätsabnahme. + +Rohdaten: `local-eval-results/qwen-checkpoint-20260910.clSZAD/`, +`{small,ar,mtp}.{stdout,stderr}.log`, Testcheckpoints in `{small,ar-cache,mtp-cache}`. +Referenzen unverändert: `local-eval-results/session-chat-20260910.jT3hf5/`, +`reference-{ar,mtp}-boundary.stdout.log`. +Binary SHA256 `8e87e337ac78c502d0d03fccd7f375b61e13ae4cb446c88fad5aa99bcf7feda3`. +Test-Clippy und Release-Testbuild bestanden, Logs `/tmp/ds4-checkpoint-{clippy,build}.log`. + +**Historischer Integrationsblocker (durch den folgenden Anschluss überholt):** +`qwen_mtplx` bleibt `cfg(test)`; der produktive +Generator wählt noch den alten Executor. Der neue Dateiadapter ist mit dem realen +KV-Index im Vollmodelltest geprüft, aber noch nicht mit Bootstrap, Sessionwechsel, +Kompaktierung und der produktiven Backend-Umschaltung verbunden. Erst deren +Anschluss macht diese Nachweise für UI und produktive Harness wirksam. Keine +UI-/Harness- oder 2%-Abnahme, kein Bundle, Commit oder Push. + +**Produktiver Owner angeschlossen (10.09., nach dem SSD-Checkpoint-Nachweis):** +`Generator::open` wählt Qwen jetzt vor dem alten `LoadedModel`-Loader über +`Executor::open_qwen` aus. `qwen_mtplx` ist nicht mehr test-exklusiv. Der neue +`owner.rs` delegiert vollständige Turns an `LiveSession`, einschließlich AR/MTP, +anstatt den alten skalaren Generatorloop zu benutzen. Bootstrap-/Suffix-Prefill, +Reset, Resident-Sessionwechsel und Checkpoint-Dispatch erreichen denselben Owner. +Die gemeinsame Runtime bleibt der Einstieg von UI und `model-eval`. Der alte +Qwen-Executor bleibt für Diagnosepfade vorhanden, wird vom Generator nicht gewählt. + +`qwen_product_generator_chat_matches_reference` bestand AR und MTP mit den +unveränderten drei eingefrorenen Referenzturns: natürliche Abschlüsse, exakte +Prompt-/Output-Tokens, Reasoning/Text sowie finale Logits-/Hidden-Hashes. Nach jedem +Turn werden Resident-Sessionwechsel und SSD-Restore über den wirklichen Generator +geprüft. Zusätzlich bestehen kalter und fortgesetzter Pure-Prefill und dessen +Abbruch ohne Veröffentlichung eines partiellen Zustands. + +Rohdaten: `local-eval-results/qwen-product-20260910.8EeH8M/`, +`{ar,mtp}.{stdout,stderr}.log`; Testbinary SHA256 +`4cb3f4e0b9e26f441088b8367f7d53a33f6a584a07424cc4ee0e356f44501e7d`. +Testzeiten AR 59,52 s / MTP 52,49 s, Canary 555 / 489 Proben, null Fehler/Stalls, +Maximum 3,475 / 4,045 ms. Dies sind überwachte Integrationstests, keine gepaarte +Performance-Abnahme. Die groben Phasen umfassen auch nachfolgende Checkpointarbeit; +ein UI-Render-/Eventloop-Nachweis ist damit nicht erbracht. Der OS-Disk-Write-Zähler +enthält ungültige Werte und ist kein Durchsatznachweis. + +Offen nach diesem Anschluss: tatsächlicher Bootstrap-/Kompaktierungsablauf und +Abbruch/Fortsetzung im Generator, normaler Release-Worker mit prozesskaltem Ping, +Release-Bundle samt UI-Nachweis sowie die vollständige Performance-Matrix. +MTP-Zähler werden bisher am Turn-Ende veröffentlicht, PLE-Hot-Cache-Zähler sind +angebunden, weitere SSD-Zähler noch nicht. Die gemeinsame Buffer-Ownership wurde +für Produktion aktiviert; Auswirkungen auf DS/GLM müssen mitgemessen werden. +Optionale Referenz-APIs und historische Diagnoseadapter sind kein Nachweis, dass +alle optionalen MTPLX-Policies produktiv integriert sind. + +**Lebenszyklus-Nachprüfung, erster Lauf:** Der ergänzte +`DS4_QWEN38_TEST_LIFECYCLE=1`-Pfad prüft nach dem Chat den echten +`prepare_bootstrap` samt Cache-Hit und `Generator::compact` samt Rebuild. +AR bestand die drei Referenzturns erneut, wurde danach im Kompaktierungs-Prefill +vom externen 80-GiB-Limit beendet: Physical-Peak 86.164.456.144 Bytes, Lauf +68,460 s, `memory_limit`. Kein erfolgreicher Kompaktierungsnachweis. Bis zum +Abbruch lagen Canary-Proben vor; eine finale Canary-Zusammenfassung fehlt wegen +des Supervisor-Abbruchs. Rohdaten `ar-lifecycle.{stdout,stderr}.log` im obigen +Produktverzeichnis. Wiederholung mit 88 GiB überwachten Speichergrenze, unveränderten +Modellparametern und unveränderter Ausführung; kein künstliches Cache-Leeren oder +Verkleinern von Prefill-Chunks. Testbinary SHA256 +`6c72d5d8ba2ef563a4b5d945d4dc7d0098b16f849be0f126fdc10998eac308d8`. + +**Lebenszyklus erfolgreich nachgeprüft (10.09.):** Die unveränderte Wiederholung +mit 88-GiB-Watchdog bestand AR und MTP einschließlich drei Referenzturns, +Bootstrap (37 Tokens), erneutem Bootstrap ohne Prefill und Kompaktierung samt +gespeichertem Rebuild. Rebuild 1961 / 2138 Tokens, jeweils `tail_start=2`, +nichtleere sinnvolle Task-State-Summary. Supervisor 69,176 / 64,457 s, +Physical-Peak 86.300.246.808 / 86.341.305.472 Bytes. Canary 643 / 599 Proben, +null Fehler/Stalls, Maximum 3,014 / 3,385 ms. Rohdaten +`{ar,mtp}-lifecycle-88g.{stdout,stderr}.log`. Die erhöhte Supervisorgrenze verändert +nicht die Engine oder ihre Speicherpolicy; kein Nachweis eines behobenen Leaks. + +**Normaler Release-Worker, kalter Ping (10.09.):** `--warmup off` ist im +`model-eval` verfügbar, Default bleibt `on`; Options-Test bestanden. Normale +Binary SHA256 `89d6ef5ea14fbfdb980d4512aee89fbbb77955964f6f52ad8e4c963dd58c9f97`, +kein Testbinary-Einstieg. Power 100, Low, Chunk 2048, Kontext 32768, +Temperatur 0,6, top-p 0,95, min-p 0, Seed 42, Plain-Chat, maximaler Produkt-Tokenwert, +Canary an, 80-GiB-Watchdog, Startup 30 s / Fortschritt 45 s. Keine Downloads, +isolierte temporäre Sessions, kein Warmup und kein globales Leeren des OS-Dateicaches. +AR/MTP enden natürlich mit „Pong!“, 55 / 63 Completion-Tokens. Gesamt +10,157 / 9,384 s, Laden 6,406 / 5,495 s, gemeldetes Prefillfenster +2,617 / 2,296 s (einschließlich Systembootstrap), Decode 0,953 / 1,409 s. +Die 41 Prompttokens enthalten 30 im selben kalten Lauf aufgebaute Bootstrap-Tokens; +der Quotient aus 11 Suffix-Tokens und dem gesamten Prefillfenster ist deshalb +keine reine Kernel-Prefillgeschwindigkeit. Keine Paritätsabnahme aus kaltem Ping. +Canary-Maximum 3,703 / 3,935 ms, im Prefill 0,629 / 0,628 ms; kein Stall. +Headless-Control-Loop-Maximum 57 / 47 ms ist keine Messung des GUI-Eventloops. +Rohdaten `cold-ping-{ar,mtp}.{stdout,stderr}.log` im Produktverzeichnis. + +Dabei neu belegt: normale GPU-Busy-/Command-Buffer-Zähler bleiben fälschlich null. +Der bisherige Recorder hängt am nativen DS4-Wait, den der kanonische MTPLX-Pfad +nicht benutzt. Die separate Canary-Messung ist davon unabhängig. Der Anschluss +an MTPLX-Command-Completion ist in Arbeit; keine zusätzlichen GPU-Waits/Flushes +als Instrumentationsersatz. Diese Nullwerte sind nicht als GPU-Leerlauf auszuwerten. + +**GPU-Busy-Instrumentation korrigiert und nachgeprüft (10.09.):** Der vorhandene +native Recorder ist nun auch an die asynchrone MTPLX-Command-Completion angeschlossen. +Mutexgeschützte Snapshots verhindern konkurrierende Zugriffe von UI/Worker und +Completion-Thread; eine Mess-Epoche schließt nach Reset verspätet eintreffende +MTPLX-Completions aus dem vorherigen Messfenster aus. Keine neue GPU-Arbeit, +kein zusätzlicher Wait, Flush oder geänderter Kernel-/Submission-Plan. +Der bestehende Encoder-Regressionscheck prüft nun positive GPU-Zeit und exakt +eine Buchung je Command-Buffer auch nach späterem Wait; Canary-Probes bleiben +ausgeschlossen. Bestanden unter `test-supervisor 2048 15 15`, +`busy-counter.{stdout,stderr}.log`, Testbinary SHA256 +`c7cf8b3d524673dad7e1cfeec6de4b7e419129c34f073f042dc377b80234136e`. + +Erneuter normaler Release-Ping AR/MTP mit unveränderten Parametern, jeweils +prozesskalt: natürliches Ende, exakt gleiche Tokenzahlen, Reasoning und Antworten +wie vor der Messkorrektur. Binary SHA256 +`4763e16687ed53c787825a391f45d51d6fe793f8bb6dc157bf7d4dfd627458ec`. +Rohdaten `cold-ping-{ar,mtp}-busy.{stdout,stderr}.log` im Produktverzeichnis. + +| Messung | AR | MTP | +| --- | ---: | ---: | +| Gesamter Request inklusive Laden (s) | 8,630 | 8,721 | +| Modellladen (s) | 5,505 | 5,494 | +| Prefillfenster inklusive Bootstrap (s) | 1,989 | 2,276 | +| Decode-Loop (s) | 0,950 | 0,773 | +| Completion-Tokens | 55 | 63 | +| Decode-Loop tok/s | 57,90 | 81,54 | +| GPU-Zeit, Summe der Command-Buffer (ms) | 2121,73 | 1980,39 | +| Längster Command-Buffer (ms) | 112,22 | 120,46 | +| Command-Buffer | 12730 | 9162 | +| GPU-Canary max, gesamt / Prefill (ms) | 3,444 / 0,616 | 3,873 / 0,620 | +| Headless-Control-Loop max (ms) | 52 | 59 | + +Canary 82 / 84 Proben, null Fehler/Stalls, Supervisor Exit 0. Summierte GPU-Zeit +ist keine queueübergreifende Vereinigungszeit. Unterschiedliche Pipeline-/OS- +Caches zwischen Prozessstarts verhindern eine Performance-Aussage aus dem +Vorher/Nachher-Ping; insbesondere die schnellere MTP-Wiederholung ist **kein** +belegter Beschleunigungseffekt der Messkorrektur. CPU-Overhead der Completion- +Instrumentation bleibt Teil der noch offenen warmen Referenzabnahme. Normaler +Headless-Einstieg ist jetzt geprüft, ein neues GUI-Bundle und GUI-Eventloop-Nachweis +bleiben offen. Keine Behauptung der vollständigen 2%-Parität. + +**Laufende MTP-Zähler und Abbruch/Fortsetzung nachgewiesen (10.09.):** +Der kanonische `decode_mtp` meldet über den vorhandenen `TurnProgress`-Kanal jeden +abgeschlossenen Zyklus. Der produktive Owner veröffentlicht diese Werte sofort +in denselben atomaren `Metrics`, die UI und Harness lesen. Keine neue GPU-Arbeit, +kein zusätzlicher Thread und keine zusätzliche Synchronisation. Der bisherige +Turn-Ende-Sammelpass entfällt, damit keine doppelte Buchung entsteht. Verifier- +und Repair-Zeiten bleiben bis zur Umrechnung kumulativ innerhalb des Turns; +Sub-Millisekunden-Anteile werden nicht je Zyklus abgeschnitten. Bei Abbruch bleibt +der letzte beobachtete abgeschlossene Zyklus erhalten; unvollständige Zyklen +werden nicht als abgeschlossen behauptet. + +Zusätzliche Zählkorrektur: Context-Copy-Runden führen ebenfalls einen gebatchten +Target-Verifier aus. Vorher wurden sie bei `verifier_passes` ausgelassen. +Der eingefrorene MTP-Chat enthält pro Turn 148+7, 640+2 und 93+2 +MTP-/Context-Copy-Verifikationen. Native MTP-Draft-/Acceptance-Zähler zählen weiter +nur die nativen Drafts, nicht die kopierten Kontexttokens. Der modellfreie Test +prüft Live-Publikation ohne Turn-Ende, Zeit-Rundung, Context-Copy-Verify, Primary-EOS +ohne Verify und ausbleibende Doppelbuchung beim Finalize; bestanden. + +Der vollständige Produkt-Generator-Test prüft jetzt zusätzlich, dass MTP-Zähler +bereits während der Textausgabe eintreffen, und vergleicht nach jedem Turn deren +Delta mit allen eingefrorenen Referenz-Cycles. AR muss die MTP-Zähler unverändert +lassen. Beide Modi bestehen weiterhin exakte Tokens, Texte, Logits-/Hidden-Hashes, +Resident-Switch und SSD-Restore. + +Im erweiterten Lebenszyklustest wird auf einem kopierten Checkpoint ein +ununterbrochener Kontrollturn erzeugt. Abbruch vor Decode und während Decode +müssen die Originaldatei SHA256-identisch erhalten. Nach Aufhebung des Abbruchs +muss derselbe Request dieselben finalen Tokens, Reasoning und Text wie der +Kontrollturn liefern. AR und MTP bestanden jeweils mit 23 Completion-Tokens und +„PONG“. Abgeschlossene MTP-Zähler bleiben auch nach Abbruch sichtbar. Bootstrap- +Cache-Hit und Kompaktierung/Rebuild bestehen anschließend ebenfalls. Dies testet +den produktiven Generator, nicht UI-Buttonzustände oder jeden denkbaren IO-Abbruch. + +Rohdaten: `local-eval-results/qwen-live-metrics-20260910.iD9AZm/`, +`{unit,ar,mtp}.{stdout,stderr}.log`, isolierte Checkpoints in `{ar,mtp}-cache`. +Testbinary SHA256 `d9c6fd174b51af793b61d0f06740cdc398fa85778fb8ec8d908ec442cbefa75b`. +Power 100, Low, Referenz-Seed 0, Chunk 2048, Kontext 32768; nur installierte +Gewichte. Volltests `test-supervisor 90112 30 45`, kleiner Test `2048 15 15`. +AR/MTP Supervisor 72,130 / 70,118 s; Physical-Peak 86.596.617.488 / +86.535.603.592 Bytes. Canary 672 / 651 Proben, keine Fehler/Stalls, Maximum +3,004 / 3,192 ms, im Prefill 0,887 / 0,998 ms. Keine warmen gepaarten +Performance-Abnahmen aus diesen Integrationsläufen. Clippy-Log +`/tmp/ds4-live-mtp-clippy3.log`, Build `/tmp/ds4-live-mtp-test-build.log`. + +Die normale Harness serialisiert die kumulativen `speculation`-Felder nun auch +in `runtime_sample`, nicht nur als Turn-Delta im Endergebnis. Ein normaler +Release-Lauf zur Nachprüfung dieses JSON-Einstiegs ist wie folgt bestanden. + +**Warmer laufender Chat über die normale Headless-Binary (10.09.):** +`warm-chat-mtp.{stdout,stderr}.log` im selben Verzeichnis, normale Binary SHA256 +`b74e3126e911b3f57d83829ee216c77d45fbe29fb597694ab28c2895ec1301dc`. +`model-eval --warmup on --plain-chat on`, README-Summary → Lighthouse-Story → +Python `is_prime` mit fünf Assertions, ein zusammenhängender Chat. Power 100, +Low, Chunk 2048, Kontext 32768, Temperatur 0,6 / top-p 0,95 / min-p 0, Seed 42, +MTP an, Canary an, Speicherwatchdog 88 GiB, Startup 30 s / Fortschritt 45 s. +Keine Gesamtzeitbegrenzung; alle drei Messturns enden natürlich mit `stop`. +README SHA256 `80c01ea096843312de6662d3cd8c94c8e14bdf286b58824752981fc4920fd1f8`. +Der vollständige erste Prompt ist nach direktem JSON-Vergleich bytegleich mit +`reference-mtp-boundary.stdout.log`; die frühere Annahme eines abweichenden +README-Inhalts ist damit verworfen. Referenz-Seed 0 und erster Referenz-Prefill +ohne Bootstrap-Reuse unterscheiden sich von diesem Lauf: weiterhin keine +gepaarte Performance-Abnahme, keine Verrechnung als 2%-Pass. + +| Messturn | Prompt / cached / completion | Gesamter Turn (s) | Prefillfenster tok/s | Decode-Loop tok/s | +| --- | --- | ---: | ---: | ---: | +| Summary | 2748 / 30 / 519 | 9,446 | 1304,22 | 72,14 | +| Story | 3296 / 3268 / 1450 | 28,113 | 264,15 | 52,13 | +| Python | 4780 / 4747 / 230 | 3,151 | 242,65 | 81,00 | + +Während Decode enthält die Harness 7 / 27 / 3 `runtime_sample`-Ereignisse mit +steigenden kumulativen Cycle-Zählern 36→185 / 208→841 / 868→913, nicht erst +ein Endergebnis. Summary fachlich lesbar, abgeschlossene Lighthouse-Geschichte +ohne Rückfrage, Python-Code vor Ausführung geprüft. Die generierten fünf Asserts +und ein unabhängiger Trial-Division-Vergleich für -10 bis 5000 (5011 Fälle) +bestehen unter isoliertem Python mit 3-s-CPU-Grenze; keine Imports im generierten +Code, keine Netzwerk-/Toolnutzung. Beleg `python-validation.stdout.log`. + +Gesamtprozess einschließlich Warmup 49,581 s, Supervisor Exit 0, maximaler +Fortschrittsabstand 1,625 s. Canary 456 Proben, null Fehler/Stalls, Maximum +3,293 ms; Headless-Control-Loop-Maxima 53 / 37 / 33 ms. Der Supervisor meldet +82.983.156.272 Bytes als abgetasteten Peak-Footprint; dieser ist kein lückenloser +Kernel-Lifetime-Peak. GPU-Busy-Zähler sind in allen Turns positiv. Clippy und +Formatprüfung bestehen (`/tmp/ds4-live-mtp-final-clippy.log`). Kein GUI-Bundle, +kein GUI-Eventloop-Nachweis und keine vollständige Referenzmatrix in diesem Schritt. + +**Warmer Bootstrap-Suffix: Vergleichsprofil und Boundary-Lücke (10.09.):** +Die ersten Vergleichspaare unten sind **Zwischendiagnosen, keine Freigaben**. +Die strengere Zustandsprüfung deckte danach einen nicht angeglichenen Sustained- +Prefill-Modus auf. Maßgeblich ist die abschließende Profilkorrektur unten. +Der angeglichene Referenztreiber `tools/mtplx-execution-reference.py --source-run` +übernimmt den vollständigen normalen Harness-Startvertrag einschließlich +Warmup, Seed 42, Sampler-Floatwerten und Bootstrap-Reuse. Er akzeptiert nur drei +natürlich abgeschlossene Plain-Chat-Turns und prüft je Turn Prompt-, Cache- und +Ausgabetokenzahl sowie den vollständigen Text. Der erste Versuch gegen den oben +genannten alten Stand scheiterte ausdrücklich: Summary 448 statt 519 Tokens. +Rohdaten: `local-eval-results/qwen-matched-warm-20260910.ig0qT1/`. + +Erste Untersuchung: MTPLX `_prefill_restored_prompt_suffix` übergibt die +Chunkgröße **implizit**. Ohne `MTPLX_SUSTAINED_PREFILL` ist zunächst der gesamte +Body ein Span, den die aktive rekurrente Boundary-Policy auf ihr 256er-Tailraster +aufteilt. Der kalte committed-MTP-Pfad dagegen übergibt 2048 explizit. Rust hatte +im warmen Pfad eine eigene gleichmäßige 2048er-Schleife und erfasste dort keine +Boundaries. Der erste Patch verwendete den vorhandenen `prefill::spans`-Helper +mit denselben Regeln und erfasst absolute rekurrente Zwischenzustände vor dem +History-Append. Optionale Capture-Fehler brechen wie im Original den Turn nicht ab. +Keine pauschale Änderung des UI-Chunkwerts und keine neue Cache-Persistenz. + +Der neue normale MTP-Chat und der anschließende unveränderte MTPLX-Lauf stimmen +für **alle drei Turns** in Prompt-/Cache-/Ausgabetokenzahlen und vollständigem +Text überein: 2748/30/448, 3225/3197/997, 4256/4223/301. Beide enden natürlich. +Summary-Prefill-Fortschritt nun in beiden Pfaden: 30, 286, 542, 798, 1054, 1310, +1566, 1822, 2078, 2334, 2590, 2747, 2748. Damit ist die neue Warm-Prefill-Lücke +nicht bloß durch ein anderes gesampeltes Ergebnis verdeckt. + +Rohdaten: `local-eval-results/qwen-warm-suffix-20260910.vWPeE5/`, +`product-mtp-metal.{stdout,stderr}.log` und `reference-mtp.{stdout,stderr}.log`. +Binary SHA256 `bff5b55c15a101f236f6bf3466d62154417ef9a93ee235b7efbae6ee570eddd9`. +MTP-Produkt: 401 Canary-Proben, null Fehler/Stalls, Maximum 3,158 ms, +Headless-Control-Loop-Maxima 38/32/44 ms. Prozess inklusive Warmup 43,565 s, +abgetasteter Peak-Footprint 80.643.439.968 Bytes. Referenz-Supervisor Exit 0, +44,238 s und Lifetime-Peak 81.251.187.272 Bytes. Sein Disk-Write-Rohzähler läuft +erneut über und ist kein brauchbarer IO-Nachweis. + +Boundary-Regressionstest und Referenztreiber-Vertragstest bestehen, Release-Build +und fokussiertes Release-Clippy bestehen. Ein erster Sandbox-Versuch endete vor +der Inferenz mit fehlendem Metal-Gerät; der oben ausgewertete Lauf erfolgte mit +Metal-Zugriff. AR-Vergleich und exakte finale Tensor-/Tokenprüfung des warmen +Produkt-Generators folgen. Canary aktiv, Einzelpaare und teils parallele +CPU-Kompilierung: ausdrücklich **keine saubere 2%-Performance-Abnahme**. + +**Strengerer Nachweis und abschließende Profilkorrektur:** Der vorhandene +Produkt-Generator-Test unterstützt nun Bootstrap/Warmup vor dem laufenden Chat +und prüft neben exakten Tokens, Texten und finalen Logits-/Hidden-Hashes auch +rekurrente Boundary-Positionen. Der erste MTP-Turn scheiterte (`exact-mtp.*`): +Rust bewahrte Bootstrap-Boundary 29, die Referenz nicht. Ohne Sustained-Modus +wählt MTPLX für den kalten MTP-Bootstrap `_prefill_with_hidden_sequence` ohne +Boundary-Capture; die UI nutzt hingegen den begrenzten Streaming-Pfad. +Der vorhandene `mtplx-policy-reference.py` bildet diese native Policy bereits +mit `MTPLX_SUSTAINED_PREFILL=1` ab. Dies fehlte im neuen Chat-Referenztreiber. + +Der Treiber setzt jetzt denselben Sustained-Modus und den originalen +request-lokalen Chunk-Override. Rusts warmer Pfad verwendet entsprechend den +vorhandenen Spans-Helper mit 2048er-Hauptchunks und 256er-Unterteilung nur im +letzten Body-Chunk. Die zwischenzeitliche Unterteilung des gesamten Bodys nach +dem nicht angeglichenen Referenzprofil ist zurückgenommen. Die echte Korrektur +sind das fehlende Tail-Raster und absolute Captures vor dem History-Append, +nicht eine allgemeine Chunkverkleinerung. Optionales Capture bleibt wie im +Original fehlertolerant. End-to-end-Nachweise dieses endgültigen Profils stehen +zum Zeitpunkt dieses Eintrags aus; obige Text-Pässe ersetzen sie nicht. + +Zusätzlich korrigiert: Der erste AR-Referenzlauf verlor den Bootstrap-Hit, +weil der Treiber `hidden_variant=None` statt der vom originalen Resolver +normalisierten Identität `post_norm` bankte. Nach Korrektur passen auch dort +die Texte aller drei Turns (`reference-ar-policy.*`), jedoch noch unter dem +zwischenzeitlichen Nicht-Sustained-Profil. Das war kein Produktfehler. + +**Endgültiges Sustained-Profil in beiden Modi bestanden (10.09.):** +`local-eval-results/qwen-warm-suffix-20260910.vWPeE5/manifest.md` trennt alle +Zwischenstände von den maßgeblichen `*-sustained.*`-Receipts. Die normalen +UI-Runtime/Headless-Chats und originalen MTPLX-Chats stimmen in allen drei Turns +überein: AR 570/1129/266, MTP 438/1144/279 Ausgabetokens. Der erweiterte +Produkt-Generator-Test besteht für beide Modi außerdem exakte Tokens inklusive +EOS, finale Logits-/Hidden-Hashes, rekurrente Grenzen, laufende MTP-Zähler, +Resident-Wechsel und SSD-Restore. Die separate Lifecycle-Cancel-Erweiterung +wurde in diesen Wiederholungen nicht zugeschaltet. Python-Ausgaben bestehen +je fünf Assertions und 5011 unabhängige Fälle. Die fehlgeschlagenen strengeren +Tests bleiben erhalten; keine Abschwächung der Assertions für den grünen Stand. + +Normale AR/MTP-Canary-Maxima 3,741/3,471 ms, null Fehler/Stalls; kein tatsächlicher +GUI-Eventloop-Nachweis. Release-Binary SHA256 +`0ecc5f13e94a78f71c116d877ab0fa0101edf76e2b9b4cfdecc40c927d7e1b90`. +Fokussierte Tests, Clippy und Formatcheck bestanden. Die auffällig langsame +AR-Referenz in diesem Einzelpaar wird nicht als bewiesener Produktvorteil +gewertet: saubere alternierende Wiederholungen ohne Canary stehen aus. +GLM-2-Row-Verify, vollständige sechszellige Performance-Abnahme und aktualisiertes +GUI-Bundle bleiben offen. Die Warm-Prefill-Funktionslücke ist damit geschlossen, +nicht das gesamte Paritätsziel. + +**Drei alternierende Paare pro Qwen-Modus ohne Canary — keine Abnahme (10.09.):** +`local-eval-results/qwen-clean-pairs-20260910.Y2DWsl/{manifest.md,comparison.json}` +enthält zwölf natürlich abgeschlossene Prozesse mit identischen Antworten und +vollständigen Settings-/Rohdatenbelegen. Reihenfolge pro Modus P1,R1,R2,P2,P3,R3; +Power100, Low, gleiche Warmup-/Bootstrap-/Sustained-Verträge, kein Build parallel. +Die Referenz kann mit `--token-events progress` die Token-JSON-Ausgabe auf echten +Fortschritt einmal pro Sekunde begrenzen; Tokens/Text bleiben vollständig in den +End-Receipts. Kleiner modellfreier Test prüft die Rate und verhindert Fortschritt +ohne neue Tokens. Beide Canary-Summaries bestätigen jeweils null Proben. + +Der frühere günstige Einzelvergleich ist keine ausreichende Freigabe: Im zweiten +Paar liegt Rust AR bei Summary/Story/Python 2,34/4,63/10,71% hinter MTPLX, MTP +6,48/4,26/3,24%. Im ersten und dritten Paar ist Rust schneller; beide Programme +driften im Verlauf stark. Kein Aussortieren langsamer Läufe oder Median-Pass. +MTP-Story behält 515 Cycles / 1539 Drafts / 624 Accepts, doch GPU-Busy steigt +17,193→21,100s und CB-Zahl 142256→147830; Checkpoint-Write bleibt 358→366ms. +Das verengt die Suche, beweist aber weder thermisches Drosseln noch einen +Rust-Schedulerfehler. Die GPU-Clock-/Temperaturzeitreihe fehlt. + +Passive Diagnose: macOS meldete keine Thermalwarnung und normalen Speicherdruck. +Powermetrics ist ohne Administratorpasswort nicht verfügbar. Das installierte +mactop lieferte zwei Idle-Samples, beendete sich aber mit Exit139; dieser +Hilfsprozess ist kein verlässlicher Zusatzmonitor und wurde nicht in die +Benchmarkserie eingebaut. Die Rust-Speicher-/Fortschrittswächter blieben aktiv. +Nächster Messblock: zuverlässige optionale passive Geräte-Telemetrie und +Submission-/GPU-Zeitkorrelation; Prefill-Zeitgrenzen getrennt angleichen. +Keine Behauptung, das gesamte Ziel sei nur durch Messrauschen verfehlt: +Ursache bleibt zu belegen, GLM-2-Row-Verify und DS/GLM-Abnahme bleiben offen. + +**Prompt-Eval-Messgrenzen im gemeinsamen Produktpfad veröffentlicht (10.09.):** +`local-eval-results/qwen-prompt-timing-20260910.gPvUlU/{manifest.md,comparison.json}` +belegt vier vollständige serielle Chats (Produkt/MTPLX, AR/MTP). Die bereits +berechneten Target-/History-/Restore-Zeiten werden vor Decode über dieselben +MetricsSnapshots veröffentlicht, die UI und Harness beobachten. Das bisherige +UI-Prefillfenster bleibt unverändert; nicht verfügbare Messung bleibt `null`, +gemessener Exact-Hit darf null Sekunden haben. Keine neue GPU-Arbeit oder +Änderung der Ausführungsstrategie. Regressionstest prüft Reset und dass spätere +Checkpoint-/Decode-Arbeit die Promptzeiten nicht verändert. + +Alle Antworten/Tokenzahlen stimmen mit Original und vorheriger Clean-Serie +überein. Die neue Sicht grenzt einen verbleibenden MTP-Summary-Rückstand ein: +Eval Rust 2,999957s / MTPLX 2,887888s, also -3,736% Durchsatz; History +52,902 / 52,791ms, Target 2,947055 / 2,835097s. In diesem Paar liegt der Rest +im Target-Intervall, nicht im History-Aufbau oder Checkpoint. Ursache innerhalb +Target (GPU-Takt/Dispatch/Streaming/Kernel) weiter offen. Andere Turns in diesem +Einzelpaar schneller, aber keine Aufhebung der vorherigen Drift und kein 2%-Pass. +Originale Prompt-State-Gesamtzeit und UI-Phase bleiben wegen zusätzlicher Arbeit +ausdrücklich getrennt. Alle Wächter beendet ohne Fehler; Canary aus, kein +GUI-Eventloop-Nachweis. Fokussierter Regressionstest, Treibertests, Release-Clippy, +Build, Format- und Diffcheck bestanden. P14–P16 und Bundle weiter offen. + +**Restumfang (historisch; nachfolgende Produktnachweise oben beachten):** Nicht-streamender Hidden-Sequence-Prefill und Session-Restore, +optionale Prefill-Cleanup-/Repaging- und +recurrent Boundary-Snapshot-Pfade mit dem AR-Decode verbinden, +Default-GPU-RNG in den Owner integrieren, verbleibende MTP-Options-/Requestpfade und +die Guard-/Drain-Übergänge einschließlich Owner-Progress sowie die +produktive UI/Harness-Integration abschließen. Die sechs vollständigen +Geschwindigkeitsvergleiche sind +noch abzuschließen. Diese +Modulnachweise sind kein Nachweis der vollständigen spekulativen +Generierung oder der Performance-Parität aller drei Modelle. + +**Realer MTP-Head mit Draft/Verify/Commit, 2026-09-10:** +Der persistente `Execution`-Pfad besitzt zusätzlich den MTP-QSA-Cache und +verwendet die bestehenden `TextModel::mtp_forward`-/`mtp_update_cache`-Graphen +über `draft` und `append_mtp_history`. Trunk-Aufrufe geben den bereits +modellseitig gehaltenen Widened-Stream weiter; Float32-Diagnose nutzt denselben +Auswerter für Logits und Hidden States. Keine neuen Kernel oder Engine-Duplikate. + +Der Vollmodell-Oracle `tools/mtplx-execution-reference.py --mtp` lädt den +installierten Head über das originale `Model.attach_mtp`. Er prüft eine +zusammenhängende echte Modelloperationsfolge, **nicht** den vollständigen +`generate_mtpk`-Sampler/Generator: + +- Kalter Ping: Promptkörper (40 Tokens) und letztes Token getrennt, entsprechend + `generation._prefill_with_hidden_sequence`; 40 verschobene Hidden/Token-Paare + für den Draft-Cache. Kein ungeteiltes 41-Token-MTP-Prefill. +- Drei rekursive Draft-Aufrufe mit dem tatsächlich geladenen Head, anschließend + Vier-Token-Verify mit originalem Capture-Scope und GDN-/PLE-Snapshots. +- Tatsächliche Greedy-Ablehnung nach dem ersten akzeptierten Draft: zwei von + vier Verify-Eingaben bleiben. Originaler `commit_verified_window`, MTP-Trim + von Offset 43 auf **41**, Erhalt der ersten autoritativen Draft-Zeile, + Ergänzung nur der folgenden Target-Historie bis Offset 42. Dies entspricht + dem Retain-/Reappend-Pfad in `generation.generate_mtpk` um Zeile 12110. +- Nächster Target-Aufruf und nächster Draft bei Offset 43 prüfen die Wirkung + des Commits auf die Fortsetzung, nicht nur die Rückgabewerte des Trim-Aufrufs. + +Referenz und Rust stimmen für alle 40 Prefill-Logit-Reihen sowie **16 vollständige +Logit-/Hidden-State-Fingerprints**, Shapes, Greedy-Entscheidungen und Cache-Offsets +bitgenau überein. Zwei separat geprüfte Konfigurationen: direkte Modell-Defaults +und originale MTP-Server-Familiendefaults (13 protokollierte Werte, einschließlich +`MTPLX_SKIP_VERIFY_SNAPSHOT=0`). Das Rust-Testprogramm prüft diese Umgebungswerte +vor dem Laden, ebenso Vollständigkeit und Reihenfolge der Referenzoperationen. + +Rohdaten im bestehenden `execution-20260910.Ngpzu7/`: +`reference-mtp-retained.*` / `canonical-mtp.*` (Familiendefaults), +`reference-mtp-plain.*` / `canonical-mtp-plain.*` (direkte Defaults). +Das frühere `reference-mtp.*` ist durch den Retain-Abgleich ersetzt: es baute +die erste bereits autoritative Draft-Zeile unnötig neu auf und ist **keine** +Abnahmegrundlage. Sein Disk-Write-Rohzähler enthält zudem einen offensichtlich +ungültigen OS-Wert nahe u64::MAX; daraus werden keine IO-Leistungswerte abgeleitet. + +Alle vier maßgeblichen Prozesse einzeln unter unverändertem +`test-supervisor 81920 30 45` und durchgehendem 100-ms-GPU-Canary mit 2-s-Abbruch. +Keine Canary-Fehler, alle Prozesse regulär beendet. Lifetime-Peak MTPLX/Rust: +76.770.450.672 / 76.379.298.192 Bytes (Familie), +74.458.239.088 / 74.179.498.048 Bytes (direkt). +Canary-Maxima MTPLX/Rust **4,170 / 15,104 ms** (Familie) und +**3,911 / 92,204 ms** (direkt). Beide Rust-Ausreißer liegen im Laden, nahezu +vollständig bis zur Scheduling-Rückmeldung. Der Host-gemessene Wait-Wert +trennt hier GPU-Scheduling und verspätete Probe-Thread-Rückkehr nicht; die +Latenzdifferenz bleibt offen, wird nicht durch das 2-s-Risikoflag wegdefiniert. + +Release-Testbuild, gezieltes warnings-denied Clippy und Format-/Diffprüfung +bestanden. Keine Downloads, kein Bundle, Commit oder Push. +**Weiter offen:** vollständiger Sampler/Generator einschließlich RNG, adaptiver +Draft-Tiefe, natürlichem MTP-EOS und laufendem Chat; produktiver Executor; +Serverprofil-/Lazy-Eval-/Submission-Vertrag. Die bisherige Bank erzeugt MTP- +Ladedeskriptoren noch vor der Trunk-Materialisierung (Head-Daten bleiben lazy), +während MTPLX den Head erst danach anhängt; auch diese Reihenfolge ist vor +Produktabnahme anzugleichen. Der neue Pfad bleibt `cfg(test)`. Die 2%-Matrix +und UI-/Headless-Responsiveness-Abnahme sind damit ausdrücklich nicht erreicht. + +Modellweiter Capture-Commit prüft zunächst alle Einträge. Erst danach erfolgen +QSA-Trim, reine GDN-Rekurrenz über das akzeptierte Präfix beziehungsweise +PLE-Snapshot-Restore, erneutes Staging und Layer-Forward des Präfixes. +Ablehnungen bleiben ohne Cache-Mutation; Capture-Clear entfernt nur Capture- +Referenzen. Keine zusätzlichen Eval-/Wait-Grenzen im Commit eingeführt. + +Prüfbelege: vorhandene Decoder-Fixtures um den echten äußeren Modellaufruf +erweitert, beide Attention-Typen mit/ohne PLE, cache-only Prefill, Head-Slicing, +Capture an/aus und Trace-Wiederverwendung. Bekannte Embedding-/Widened-/Logits- +Werte bitgenau, fehlender Snapshot unverändert abgelehnt, Zwei-Token-Commit +erfolgreich; PLE-History ist danach `[3,4]` statt Verify-Tail `[5,6]`. +Fortsetzung mit übergebenen Embeddings und separatem Head ebenfalls bestanden. +Zusätzlicher CPU-Test prüft Compile-Kill-Switch und Run-Grenzen. +Rohdaten: `local-eval-results/model-graph-20260909.JbRO3E/commit.*.log`; +GPU unter unverändertem `test-supervisor 2048 15 15`, kein Modell geladen. +Release-Testbuild, warnings-denied Clippy, Quell-Identität und Format-/Diffprüfung +bestanden. Die synthetischen Ein-Layer-Smokes sind keine vollständigen +Golden-Master-Modellfixtures oder Durchsatzmessungen. P16 und die Sechs-Zellen- +Performance-Abnahme innerhalb 2 % bleiben offen. + +**MTP-Head-Verbindung 2026-09-09:** `qwen_mtplx/mtp.rs` und die Methoden +`mtp_forward`, `mtp_update_cache`, `make_mtp_cache` am äußeren Modell bilden +`qwen4_exp.py:4134–4250` ab. RMSNorm über die volle Breite 10240 vor dem +Reshape in vier 2560-Streams, gemeinsame Hidden-Projektion, normierte und +projizierte Token-Embeddings als Broadcast-Add, eigener nicht-PLE-QSA-Decoder +und eigener Mixer. Der LM-Head und das Embedding bleiben mit dem Trunk geteilt. +Rekursive Drafts verwenden den Pre-Mixer-Output des vorherigen Drafts; +Cache-only Updates erzeugen weder Mixer noch LM-Head. Übergebene Embeddings +ersetzen den Lookup, Positionen kommen aus dem eigenen QSA-Cache. + +Der verbundene synthetische Test prüft drei rekursive Drafts und danach +mehrzeilige Cache-Updates (2 Lookup-Zeilen und 3 explizite Embedding-Zeilen), +bekannte BF16-Ergebnisse mit unterschiedlichen Hidden-Streams, Offset-Fortschritt, +optionale Hidden-Ausgabe und unveränderte Trunk-Caches/`last_widened`. +Der erste Lauf (`head.*.log`) scheiterte beim mehrzeiligen Update am zuvor +fehlenden batched QuantizedMatmul-Zweig. Dieser wird nun direkt nach +`quantized.cpp` ausgeführt: originale Batch-Strides, `_batch_1`-Kernel aus der +unveränderten gepinnten Metallib und kein Split-K bei B > 1. Kein Zerlegen in +Einzelzeilen oder zusätzliches Contiguous-Materialisieren als Ersatz. + +Nach Ergänzung bestehen beide Decoder-Tests (`fixed.*.log`, 0,33 s, +gesampelter Peak-Footprint 314.868.528 Bytes). Der bestehende affine +Referenztest besteht unverändert 78 Fälle in je drei physischen Varianten, +also 234 exakte Vergleiche (`affine.*.log`, 1,00 s). +Der zusätzliche Batch-Test besteht 24 Identitätsprojektionen mit K=64/128/2560, +M=1/3/33/64 und Broadcast- beziehungsweise permutierten Batch-Strides. Er +prüft bitgenaue Ausgabe und die tatsächlich ausgeführten Kernel samt Geometrie. +21 Fälle dispatchen ohne Inputkopie direkt batched; bei drei Broadcast-Fällen +mit M=1 verlangt bereits die Referenz wegen des Null-Strides der Singleton- +Matrixachse eine Kopie und anschließend non-batched Dispatch. Die anfangs +pauschale Ein-Dispatch-Erwartung wurde entsprechend korrigiert, nicht der +Referenzpfad verändert (`batched-fixed.*.log`, 0,25 s, gesampelter Peak +163.578.600 Bytes). +Release-Testbuild, warnings-denied Clippy für App/Tests, beide CPU-Policy-Tests, +Quell-Identität sowie Format-/Diffprüfung bestanden. +Rohdaten: `local-eval-results/mtp-head-20260909.gXSh00/`. +Alle GPU-Läufe einzeln unter `test-supervisor 2048 15 15`, keine Modelle +geladen oder heruntergeladen. Dies ist ein Funktionsnachweis mit künstlichen +Gewichten, kein Nachweis der realen MTP-Akzeptanz, Compile-Fusion oder +Performance-Parität; der gesamte kanonische Pfad bleibt `cfg(test)`. + +**Arraygraph-Nachweis 2026-09-09:** `qwen_mtplx/moe.rs` bildet die tatsächliche +Aufruffolge von MTPLX `SparseMoeBlock`, `_FusedGateUpSwitchGLU` und dem +gepinnten `SwitchGLU`/`Qwen3NextMLP` ab: + +- Präziser Softmax über alle Experten, ArgPartition, strided Top-k-Slice, + GatherAxis und optionale Score-Normalisierung bleiben einzelne Array-Knoten. +- Gather-Sort ab 64 Routen, Argsort/inverse Argsort, U32-Floor-Divide, + Gather/Unsort und die ursprünglichen Expand-/Squeeze-/Reshape-Views. + Expert- und Shared-Gewichte bleiben graph-eigene Arrays. +- Gemeinsame Gate/Up-Projektion verwendet Split, den vorhandenen kompilierten + SiLU und gewöhnliche Multiplikation. Getrennte Projektionen verwenden den + unveränderten kompilierten SwiGLU-Kernel als **einen** Knoten. Experten: + Up vor Gate; Shared Expert: Gate vor Up, wie in den beiden Referenzklassen. +- Fusioniertes AR (S=1) und Verify (S=2–4) haben zwei CustomKernel-Knoten mit + Original-Inputreihenfolge, Output-Layouts, Gruppen32/64 und Dispatch-Geometrie. + Sie werden nur bei den ursprünglichen Flag-/Batch-/Quantisierungsbedingungen + selektiert. Der Shared-Gate-Aufruf liegt im fusionierten Zweig vor dem Shared + MLP, im Standardzweig danach. Keine zusätzliche Eval-/Wait-Grenze im Modellblock. + +`mtplx_graph_sparse_moe_matches_reference` vergleicht die unveränderten 220 +vollständigen MTPLX-MoE-Belege zweimal: zunächst mit lazy Parameter-Views, +danach mit zuvor ausgewerteten Parametern. Eingabe und Modellbesitzer werden +vor der Auswertung freigegeben; der Graph muss ihre Lebensdauer selbst halten. +**440/440 Ausgaben exakt**. Rohdaten: +`local-eval-results/moe-graph-20260909.xLwfFW/graph.*.log`. +Diagnostischer Gesamtlauf 17,988 s, OS-Lifetime-Peak 5.194.256.488 Bytes +(4,84 GiB), unter dem unveränderten 8-GiB-/15-s-Wächter. Dies ist kein +Modell-Durchsatzbenchmark und kein Vergleich gegen die frühere Buffer-Testzeit. +Der zusätzliche vorhandene GatherQMM-Test einschließlich Streamwechsel, +physischer Views und lazy/vorbereiteter Ausführung ist ebenfalls bestanden +(`gather.*.log`). + +Der anschließende vollständige Lauf mit Dispatch-Erfassung +(`dispatch.*.log`) besteht ebenfalls alle 440 Vergleiche. Zusätzlich wird an +der tatsächlichen nativen Dispatch-Grenze geprüft: exakt die beiden passenden +fusionierten Kernel in H-/Down-Reihenfolge, Gruppen-/M-Spezialisierungen, +Grid und Threadgroup sowie `dispatchThreads`; in allen nicht geeigneten +Fällen keine dieser beiden Fusionen. Quell-Identitätsprüfung, Release-Testbuild, +warnings-denied Clippy und Format-/Diffprüfung sind bestanden. + +Der gemeinsame synthetische Pack-Generator berechnet nun `n*k/32*bits`, +damit die gültigen 512-Experten-Packs nicht bereits im Zwischenprodukt +`n*k*bits` einen u32-Überlauf erzeugen; die Pack-Werte bleiben identisch. + +- MTPLX `_FusedGateUpSwitchGLU.__call__` sortiert ab 64 Routen und benutzt den + gemeinsamen gate/up-Gather auch im sortierten Fall. Der vorangestellte Kommentar + zur Large-M-Fallback-Absicht ist nicht der ausgeführte Code. Shared Expert ist + ebenfalls gemeinsam gepackt. Der noch nicht migrierte Rust-Produktpfad führt + beide Prefill-Projektionen getrennt aus; der neue Arraygraph ist oben belegt. +- Aktivierte gepackte Gewichte, Top-10-Routenauswahl/Ties, Sortiergrenze S=5/6/7, + inverse Permutation, Gewichtung, Tile-Reste und stark ungleich verteilte Experten + vergleichen. Auch der standardmäßig deaktivierte `FUSED_MOE_VERIFY` gehört + gemäß Auftragspräzisierung zum Port, ohne ihn abweichend zur Referenz zu aktivieren. +- Abnahme: Referenz-Outputs und Routenzuordnung für identische Matrizen; bestehender + `qwen_sorted_routed_prefill_matches_grouped_output` bleibt unverändert gültig. + Performance-Abnahme erst am vollständig integrierten Referenzport, keine + erneute Auswahl einzelner Bestandteile anhand von Teilbenchmarks. + +BK-Teilversuch 2026-09-05: Die online geprüfte, tatsächlich benötigte +[MLX-0.32.2-Implementierung](https://raw.githubusercontent.com/ml-explore/mlx/v0.32.2/mlx/backend/metal/quantized.cpp) +nutzt im NAX-Pfad BK=64 und für sortierte Experten BM=32 bei weniger als 64 +Durchschnittszeilen je Experte. Rust Sorted-QMM nutzt BM=64/BK=32 mit M5-MPP. +Der lokale allgemeine MLX-Checkout steht hingegen auf **0.32.3** (`b636898`); +er ist nicht ungeprüft als Code der installierten MLX-0.32.2-Referenz zu behandeln. + +Nur BK von 32 auf 64 geändert und geprüft: vorhandener +`qwen_sorted_routed_prefill_matches_grouped_output` mit 137 Zeilen/ungleichen +Expertenbelegungen exakt bestanden. Vollständiger AR-Chat ebenfalls identische +Antworten/Tokenzahlen, alle Stop/Exit0. Summary-Prefill 5,578 s, großer GPU-Buffer +3,812 s, gegenüber normal zuvor 5,291 s / 3,861 s und erneut 5,289 s / 3,848 s. +PLE-pread im Summary beträgt im BK64-Lauf 552 ms statt 227 ms im ersten Kontrolllauf; +die höhere Gesamt-Prefillzeit ist deshalb kein isolierter BK-Nachteil. Umgekehrt +beweist die kleine GPU-Differenz ohne Wiederholungen keinen belastbaren Vorteil. +**BK64 zurückgenommen**, keine unbewiesene Optimierung verbleibt im Produkt. +Rohbelege: `sorted-bk64-check.log`, `qwen-bk64-ar.*` im gleichen Messverzeichnis. +BM-/Experten-Worklist und BF16- statt FP32-Aktivierungsspeicher bleiben getrennte +P07/P09-Kandidaten; die BK-Geometrie allein erklärt den Rückstand nicht. + +BF16-Speicher-Teiländerung danach umgesetzt (2026-09-05, siehe P09): Der sortierte +Gather und dessen SwiGLU-Zwischenergebnis speichern jetzt BF16 direkt für den +Sorted-QMM-Eingang. BM64/BK32 und die getrennten gate/up-Dispatches bleiben bestehen. +Das ist kein Abschluss der ausstehenden Routing-/Fusions-/Tile-Vergleiche. + +**BM32 isoliert geprüft und zurückgenommen (2026-09-05):** Route-Map, Worklist- +Kapazität und Sorted-Dispatch konsistent auf 32er-M-Blöcke umgestellt; der +Grouped-Referenzpfad blieb bei 64. Alle acht exakten Formen bis S2048 bestanden. +Vollständiger AR-Chat mit identischen Antworten: Summary-Prefill 5629 ms und +großer GPU-Buffer 3977 ms gegenüber BF16/BM64 zuvor 5289–5368 ms / 3604–3662 ms +bei ähnlicher PLE-Lesezeit. Kein globaler BM32-Produktpfad bleibt zurück. +Der kleine Canary-Maximalwert von 1,26 ms in diesem langsameren Lauf ist erneut +kein Ersatz für Performance-Messung. Kein MTP-Leistungsnachweis aus diesem Versuch. + +Der genauer geprüfte [MLX-0.32.2-NAX-Kernel](https://raw.githubusercontent.com/ml-explore/mlx/v0.32.2/mlx/backend/metal/kernels/quantized_nax.h) +verteilt das Grid über zusammenhängende sortierte Routen und durchläuft innerhalb +eines Tiles dessen Expertengrenzen; nur beteiligte SIMD-Gruppen rechnen. Rust +erzeugt dagegen getrennte, je Experte aufgerundete Workitems. Bloß BM32 zu kopieren +stellt diese Ausführung nicht her. Worklist-Verteilung und aktive SIMD-Gruppen +bleiben innerhalb P07 zu untersuchen; der negative Versuch widerlegt keine +formabhängige kleinere Tile-Strategie. + +**Sortierte Gate/Up-Fusion geprüft und zurückgenommen (2026-09-06):** Gemeinsames +Dispatch-Grid bei unveränderten Gewichtsansichten/Tile-Mathematik besteht alle +acht exakten Vergleichsformen. 16 abwechselnde Komponentenpaare: GPU-Zeit bei +S2048 9,405→9,376 ms, bei S137 0,794→0,850 ms. Vollständiger AR-Chat textidentisch, +Prefill4880 statt4907 ms bei gleicher PLE-Lesezeit784 ms; kein belastbarer +allgemeiner Gewinn und keine Erklärung des großen Rückstands. Kein experimenteller +Fusionspfad verbleibt. Belege: `local-eval-results/20260906-sorted-gate-up/manifest.md`. + +### P08 — Attention/QSA-Kernel und KV-Datentransfers + +Kanonischer Graphstand 2026-09-07: Batch-Matmul/Softmax, Dense-SDPA-Fallback, +Rows-Gather und gekachelter portabler Prefill-Gather sind verbunden; siehe +„Verbundene Attention-Matrixpfade und Softmax“ und „Gekachelter portabler +Prefill-Gather“, „Fused-Vector-SDPA und typisierte Metal-Konstanten“ sowie +„Originale RoPE-Graphen und KV-Cache-Objektsemantik“ sowie „Direkte Sparse- +Attention-Consumer im Arraygraph“. Originaler Flash-Skip-Decode und TensorOps- +Prefill sind als eigene CustomKernel-Primitive geprüft. Auch die vollständige +originale Blockmaskenrekonstruktion samt ScatterAxis ist verbunden und geprüft +(siehe „Vollständige QSA-Blockmaskenrekonstruktion“). RoPE und gewöhnlicher +KVCache sind jetzt im kanonischen Arraygraph geprüft, einschließlich +Python-Objektalias/Graphdescriptor-Unterscheidung. Auch der positionale QSACache +einschließlich FP32-Spiegel und Replay-Reservierungen verwendet diese Semantik +(siehe „Positionaler QSACache im kanonischen Arraygraph“). Die originalen +Query-/Pooling-CustomKernel sind inzwischen vollständig parametrisiert als +Array-Primitiven geprüft (siehe „Parametrisierte QSA-Query-/Pooling-Primitiven“). +Die gemeinsamen Float-Summen samt QSA-F32-Mittelwert sind ebenfalls portiert; +GDN/PLE/HC nutzen jetzt dieselbe Reduktionsauswahl (siehe „Gemeinsame Float- +Summen und QSA-Mittelwert“). +Auch F32-/F16-Matmul inklusive TF32 on/off und der verbundene Eager-QSA- +Score-Ausdruck sind nun im kanonischen Graph geprüft (siehe „Kanonischer +Float-Matmul und verbundener QSA-Score-Pfad“). +Sort/Argsort/Partition/Argpartition sind jetzt ebenfalls als kanonische +Operationen geprüft; der bisherige Buffer-Argsort teilt deren Backend +(siehe „Gemeinsames kanonisches Sort/Argpartition“). +Die Eager-Auswahl verbindet jetzt Scores, Maskierung, Argpartition, QSACache- +Spiegel und alle fünf Rückgabeformen einschließlich Kachel-Eval und Lane- +Zählern (siehe „Verbundene kanonische Eager-QSA-Auswahl“). +Die Verbindung zur kanonischen Indexer-Ausführung ist nun geprüft (siehe +„Durchgehender kanonischer Indexer und Cache-Commit“). Der vollständige +BF16/D256-Attention-Aufruf ist inzwischen ebenfalls verbunden (siehe +„Verbundener Qwen-Attention-Modulaufruf“). +Der gemeinsame Projektions-/Vorbereitungs-/Update-Vorlauf ist inzwischen +mit fortlaufendem Cache und Eager-Auswahl geprüft (siehe „Gemeinsamer +QSA-Indexer-Vorlauf und fortlaufender Cache“). +Der kanonische Fused-Selektor einschließlich aller drei Ausgabeformen, +Graph-Scratch-Siblings und ursprünglicher Query-Chunking-Regel ist ebenfalls +geprüft; alter und neuer Aufrufer teilen dessen Backend (siehe „Fused-QSA- +Selektor im kanonischen Arraygraph“). Der vektorisierte Prefill-Selektor +ist nun ebenfalls als zusammenhängender Zweistufen-Graph geprüft, mit +TensorOps BF16/F16 und dem allgemeinen F32-Ausdruck (siehe „Zweistufiger +Prefill-Selektor im kanonischen Arraygraph“). Compiled-Indexer und Routing +sind nun ebenfalls verbunden. +Die dafür benötigten dynamischen Slice-/Update-Primitiven sind jetzt mit +gemeinsamem Copy-/Offset-Encoder geprüft (siehe „Dynamische Cache-Fenster +im kanonischen Arraygraph“); die Graphbank ist inzwischen angeschlossen. +Der reine Compiled-Body samt tatsächlichem Arraygraph-Replay ist inzwischen +für die erfassten Q/K-/Hidden-Fälle geprüft (siehe „Reiner Compiled-Indexer +und kanonisches Graph-Replay“). Der Host-Core mit vollständigen Compile- +Schlüsseln, Validierung und Statistik ist nun ebenfalls geprüft (siehe +„Kanonischer Compiled-Host-Core und Engagement“). Parameter-Lebenszyklus, +Cache-Commit und Routing sind nun mit 200 vorhandenen vollständigen Aufrufen, +720 Zulässigkeitsfällen und 26 zusätzlichen Lifecycle-Receipts geprüft. +Weitere Compiled-Geometrien/Dtypes und die allgemeine Nicht-MPP-Score-Fusion +bleiben offen. +Andere SDPA-Dtypes/Geometrien einschließlich Full-SDPA sowie die vollständige +Modell-/Produktintegration bleiben offen. Die folgenden Befunde zum alten Produktpfad sind dadurch +noch nicht behoben. + +Priorität P1; nach P02, P04; Quellcodedifferenzen und Nachweislücken. + +- Dense Decode, Verify unter/über 16k, Prefill unter/über 32k, Sparse-Selection, + Pooling, Tail und Positionierung mit MTPLX `QSACache`, `QSAIndexer` und Attention + vergleichen. Rust poolt in einer CPU-Dispatchschleife und staged Dense-KV erneut. +- BF16-KV, F16-Staging für FlashAttention und F32-Zwischenpuffer getrennt prüfen; + kopierte Bytes, Layout/Strides und tatsächliche M5-Kernel protokollieren. +- Abnahme: Masken/Indices/States und numerischer Referenzvergleich an 2048,8192, + 16384,32768 und ihren Nachbarpositionen sowie partiellen Pool-Blöcken. Der entfernte + 8192-Flash-Guard benötigt einen direkten numerischen Test oberhalb der alten Grenze. + Ein Allokationstest für langen Kontext ersetzt keinen Attention-Test. + +### P09 — Affine Matmuls, HC und Speicherformate + +Kanonischer Graphstand 2026-09-07: Originale affine Quantisierung sowie der +installierte GatedResidual-Read einschließlich eager Norm/Matmul/Mean, +Fused/V3-Auswahl und Modul-Pack-Cache sind verbunden und mit128 tatsächlichen +MTPLX-Fällen exakt geprüft; siehe „Verbundener GatedResidual einschließlich +eager Prefill“. Decoder-/Modell- und Produktintegration sowie Gesamtperformance +sind weiterhin offen. Historische Befunde unten bleiben vom aktuellen +kanonischen Port zu unterscheiden. + +Priorität P1; nach P01, P02, P04; Teiltests bestanden, Gesamtnachweis offen. + +**K-Tile/Padding/BF16-Versuch verworfen (2026-09-06):** Ein kombinierter Versuch +mit gruppengroßem K-Schritt, gepaddetem Gewichtstile und BF16-Geräteingang senkte +die isolierte QKV2048-Zeit auf2,654 ms, beschleunigte die vollständigen Chats aber +nicht erkennbar: AR/MTP-Summary-Prefill4233/4387 ms gegenüber4214/4351 ms der +vorherigen Kontrolle; GPU-Buffer2140/2151 gegenüber2160/2159 ms. Kleine +Projektionsausgänge bezahlen zusätzliche Konvertierungskosten. Canary-Maxima +49/83 ms, kein allgemeiner Responsivitätsgewinn. Alle drei Antworten pro Modus +Stop/Exit0 und exakt gleiche Texte, Tokens und MTP-Akzeptanz wie die gültige +Rust-Kontrolle; kein erneuter MTPLX-Paritätsnachweis aus diesen Zahlen. + +Der erste Versuch war wegen eines übersehenen direkten GDN-QMM-Aufrufers +(FP32 an BF16-Kernel) ungültig und wurde abgebrochen. Neuer Integrationstest +reproduziert den Fehler bei5 Zeilen und prüft nach Korrektur4/5/32/65/2048 Zeilen +inklusive Unpack exakt. Anschließend wurde die gesamte unvorteilhafte Variante +zurückgenommen, nicht nur der falsche Aufrufer repariert. Test und gewöhnliche +GPU-Timestamps im Operator-Test bleiben erhalten; Produkt-Binary und Metal +sind SHA256-identisch zur vorherigen gültigen Wortloader-Kontrolle. Die Tests +bestehen auch nach Rücknahme. Belege und Rückmessungen: +`local-eval-results/20260906-qmm-k-tile/manifest.md`. + +**Wortweise QMM-Entpackung (2026-09-06):** Der gemeinsame Affine-QMM-Loader liest +gepackte Wörter/Skalen/Bias jetzt einmal je4/8 Werte, wie der vorhandene sortierte +Loader und MTPLXs `QuantizedBlockLoader`, statt pro Einzelwert. FMA/BF16-Rundung, +Tile-Geometrie, Split-K und Aktivierungsformat unverändert. Alle bestehenden +Projektionsgoldens einschließlich partieller Tiles bestehen. Die erweiterten +Operator-Timings grenzen QKV2048 ein: MTPLX2,060 ms, Rust vorher7,272 ms, +wortweise3,150 ms (Host-Aufruf und Completion, keine reine GPU-Zeit). +Separat geprüfte BF16-Aktivierungsvarianten brachten keinen generellen Gewinn +und sind zurückgenommen; FP32 ist damit nicht als alleinige Ursache bewiesen. +Vollständiger AR-Chat text-/tokenidentisch: erster Prefill4214 statt4907 ms, +größter GPU-Buffer2160 statt2656 ms, ähnliche PLE-Lesezeit792/784 ms. Canary-Max +3,962 ms; Einzelvergleich, kein GUI- oder2%-Nachweis. Weitere Form-/Layout-/ +Referenzwiederholungen bleiben offen. Belege: +`local-eval-results/20260906-sorted-gate-up/manifest.md`. + +Vollständige MTP-Kontrolle ebenfalls text-/token-/acceptance-identisch mit Stop +beendet: erster Prefill4351 statt5079 ms; Decode70,622/47,038/66,224 tok/s. +AR/MTP-Canary-Max3,962/3,006 ms, keine Fehler. Diese Einzelkontrollen ersetzen +keine saubere zeitnahe Referenzmatrix; DeepSeek/GLM wurden dabei nicht neu gemessen. + +**Verifier-Zeilenspezialisierung (2026-09-06):** Der gemeinsame Wide-QMV-Metal- +Helper spezialisiert nun 2/3/4 Zeilen mit konstanten Akkumulator-Indizes und +unrollten inneren Schleifen wie die installierten MTPLX-Kernel. Zwölf zusätzliche +echte MTPLX-Projektionshashes (QKV/Router/GDN-Control/Shared-Gate) bestehen vor und +nach der Änderung; vorhandene Prefill-Goldens bleiben gültig. Vollständiger +MTP-Chat bei 100%/2048/Low, ohne Profiler, mit Canary: unveränderte Texte, Tokens +und Akzeptanz, Decode 70,732/47,279/68,033 statt 57,166/37,921/52,799 tok/s. +Canary-Max31,552 ms, Decode-Max0,874 ms. Erster Prefill5079 statt zuvor4609 ms: +keine belegte Prefill-Verbesserung. Einzelvergleich, keine gepaarten sauberen +Referenzwiederholungen und keine 2%-Abnahme. Belege und Grenzbedingungen: +`local-eval-results/20260905-verifier-stage-counters/manifest.md`. +AR-Kontrolle ebenfalls vollständig/textidentisch beendet, Decode +48,919/48,795/48,857 tok/s, keine beobachtete Regression. Deren Canary-Max3,141 ms +ist ebenfalls viel kleiner als im historischen Lauf, obwohl AR den geänderten +Wide-QMV-Pfad nicht nutzt. Deshalb die verbesserten Canary-Maxima nicht kausal +der Kerneländerung zuschreiben; zeitnahe gepaarte Messungen bleiben erforderlich. + +**Vor weiterer QMM-Optimierung belegte Abweichung (2026-09-05):** Der erweiterte +Projektions-Komponententest besteht bei QKV 4-bit/g64 mit 32/64/2048 Zeilen und +Router 8-bit/g64 mit 2048 Zeilen. Router 32 und 64 weichen ab. Die Referenzwerte +wurden danach durch die quantisierten Projektionsmodule von MTPLXs +`GatedDeltaNet` und `SparseMoeBlock` bestätigt; alle zwölf generierten Hashes +entsprechen dem vorherigen direkten Bibliotheks-Diagnosetest. MTPLX bleibt das +Qwen-Orakel; diese Operatorchecks ersetzen keinen Modell-/Serving-Vergleich. +Belege: `tools/qwen-qmm-reference.py`, `local-eval-results/20260905-qmm-loader/` +mit `mtplx-components.jsonl` und `affine-all-shapes-before.log`. Der Test sammelt +alle Formfehler und schlägt weiterhin fehl; keine Golden-Hashes wurden angepasst. +**Ursache inzwischen bestätigt (2026-09-05):** Im begrenzten Komponententest +wurden über LLDB die vom unveränderten, installierten MTPLX angeforderten +Pipeline-Namen und Dispatch-Geometrien gelesen. Router 31/32 Zeilen verwendet +`affine_qmm_t_splitk_bfloat16_t_gs_64_b_8_alN_true`, Grid 16×1×20; Router 63/64 +Grid 16×2×10. Danach folgt jeweils `col_reduce_small_1_reduce_sumbfloat16` +mit 32×8 Threads. Router 2048 und die geprüften QKV-Matrizen verwenden dagegen +NAX-QMM, ohne K-Split. Das ist nun ein Nachweis der installierten Ausführung, +nicht eine Annahme anhand eines anderen Bibliotheks-Checkouts. + +`tools/qwen-qmm-reference.py --check-split-k` reproduziert beide Router-Goldens +bitgenau mit 20 beziehungsweise 10 expliziten QMM-K-Partitionen und anschließender +BF16-Reduktion. Ein ungeteilter gebatchter Kontrollfall liefert dagegen genau die +bisherigen abweichenden Rust-Hashes. Die 32-Zeilen-Kontrolle muss beim kleineren K +im QMM-Pfad bleiben: 64 gepaddete Eingabezeilen, anschließend Auswahl der ersten +32. Ohne diese Kontrolle wechselte der erste Diagnoseversuch die Operatorform +und reproduzierte das Golden nicht. Golden-Hashes unverändert; Assertions für +beide Split- und Unsplit-Kontrollfälle bestanden. Keine Timing-Abnahme unter LLDB. + +Diagnosebeleg: `local-eval-results/20260905-router-splitk/manifest.md`. + +**Split-K-Teilkorrektur umgesetzt und nachgemessen (2026-09-05):** Gemeinsamer +Affine-QMM-Pfad mit formabhängiger K-Aufteilung, BF16-Zwischen-/Reduktionsrundung +und wiederverwendbarem 2-MiB-Puffer. Der erste Versuch scheiterte an nativen +BF16-SIMD-Overloads; nach Abgleich mit der installierten MTPLX-Abhängigkeit ist +die Float-SIMD-Zwischenoperation mit BF16-Ergebnisrundung korrigiert. Unveränderte +QKV-/Router-Goldens bestehen jetzt, einschließlich zuvor fehlerhafter Router +32/64. Zusätzliche tatsächliche MTPLX-Projektionsgoldens für GDN-Steuerung (N=48) +und Shared-Expert-Gate (N=1) bei 32/64/2048 bestehen ebenfalls, jeweils mit +Tail-/Sentinel-Prüfung; beide Reduktionspfade einschließlich 40 Partitionen sind +abgedeckt. CPU-Test für Split-Policy, Alignment und Puffergrenzen bestanden. + +Vollständige AR-/MTP-Produktchats bei 100%, Chunk2048, Low, identischen eingefrorenen +Prompts und Canary an enden natürlich. Beide Python-Ausgaben bestehen neun Fälle. +Erster Prefill4,436/4,609s; Decode AR48,740/48,486/48,332 und +MTP57,166/37,921/52,799tok/s. Canary max110,710/96,768ms, keine Fehler. +Das beseitigt die nachgewiesene numerische Teilabweichung, nicht den verbleibenden +Durchsatz-/Latenzrückstand. Gesampelte Historien ändern sich; kein isolierter +Kernel-Speedup und keine 2%-Abnahme daraus ableiten. Alle Produktionsformen, +QMV/QMM-Dispatch-Grenzen, HC und Kernel-Performance bleiben innerhalb P09 offen. +Belege, Hashes und reproduzierbare Prüfung: +`local-eval-results/20260905-splitk-implementation/manifest.md`. + +- Pro Operator Form, Quant-Bits/Group-Size, Packung, Akkumulator, gespeicherten + Datentyp und BF16-Rundungsstelle erfassen. Rust speichert viele BF16-gerundete + Aktivierungen als F32; Werteparität beweist nicht Bandbreiten-/Speicherparität. +- QMV/QMM/Gather/Sorted-QMM, HC-read/mix/write, Norm/Gates, Embedding und LM-Head + abdecken; aktive MTPLX-Fusionen von nicht aktivierten Experimenten trennen. +- Abnahme: vorhandenen `qwen_affine_qmv_and_qmm_match_mlx_reference` und Stage-Trace- + Tests wiederverwenden, keine Golden-Hashes still ändern. Produktionsformen plus + Tail-/Kapazitätsfälle. Vor Änderungen Kernel-Zeit, Dispatchzahl, Kopierbytes und + Peak-Transients ermitteln; Dtype-Änderungen nur mit Referenzbeweis. + +**Sorted-MoE-Eingangsspeicher umgesetzt, Rest offen (2026-09-05):** +`kernel_qwen_route_gather_rows` und die nur dort verwendete BF16-SwiGLU-Variante +schreiben gepacktes BF16; `kernel_qwen_affine_sorted_qmm_mpp` liest es als +`tensor`. Bisher wurden BF16-gerundete Werte als FP32 gespeichert. +Die bestehende SwiGLU-Formel/Rundungsfolge bleibt gemeinsam templatisiert; der +Grouped-/Decode- und Shared-Expert-Pfad bleibt FP32. Outputs und Akkumulatoren +des Sorted-QMM bleiben FP32. Vorhandene Scratch-Puffer werden wiederverwendet, +ihre Kapazität wurde nicht verkleinert: kein behaupteter Peak-Allokationsgewinn. + +Der bestehende exakte Grouped-vs-Sorted-Test wurde auf S=5,6,7,32,64,65,137,2048 +erweitert; alle Fälle bestehen mit MAE0/max0/assert_eq. Danach sechs vollständige +überwachte Chats: BF16 AR/MTP, Rückkehr zu hash-identischem FP32-Metal AR/MTP, +erneut BF16 AR/MTP. Alle Stop/Exit0; Antworten, Reasoning, Tokenzahlen und +Draft-/Accept-/Cycle-Zahlen exakt identisch zu den vorherigen jeweiligen Kontrollen. + +| Modus / Pfad | Summary Prefill ms | größter GPU-Buffer ms | PLE pread ms | Prefill-Canary max ms | Prozess ms | +| --- | ---: | ---: | ---: | ---: | ---: | +| AR FP32 Rückmessung | 5606 | 3863.26 | 607 | 125.06 | 60572 | +| AR BF16 Lauf 1 | 5289 | 3603.53 | 618 | 1.32 | 59791 | +| AR BF16 Lauf 2 | 5368 | 3662.29 | 613 | 156.50 | 59900 | +| MTP FP32 Rückmessung | 5770 | 3821.95 | 611 | 122.33 | 57956 | +| MTP BF16 Lauf 1 | 5677 | 3741.14 | 853 | 115.85 | 59514 | +| MTP BF16 Lauf 2 | 5494 | 3606.83 | 610 | 16.93 | 55938 | + +100%, Chunk2048, Low, gleiche drei Prompts und fortlaufender Chat, Canary an, +keine Layer-Profilierung. Der größte Prefill-GPU-Buffer ist wiederholt kürzer +(AR 5,2–6,7%, MTP 2,1–5,6%). Das ist **keine 2%-Referenzabnahme** und kein Beleg, +dass Decode allgemein schneller wurde. Die hohe PLE-Streuung beeinflusst auch +die Gesamtlaufzeit. Insbesondere widerlegt der zweite AR-Lauf eine aus dem ersten +niedrigen Canary-Wert abgeleitete allgemeine Responsivitätsverbesserung. +Kein GUI-Eventloop-Nachweis; die Spitzen bleiben P04/P05/P07/P08 zugeordnet. +Details/Hashes und normierte End-to-End-Decodewerte: +`local-eval-results/20260905-gdn-delta/bf16-comparison.json`, `bf16-storage.md`. + +Zusätzliche M5-Primärquelle für die verbleibenden P07/P09-Arbeiten: +[Apples MPP Programming Guide, §§2.3.1–2.3.5](https://developer.apple.com/download/files/Metal-Performance-Primitives-Programming-Guide.pdf) +behandelt Tile-Reste/Occupancy, cachefreundliche Work-Reihenfolge und statische +Tensor-Extents zur Vermeidung unnötiger Bounds-Checks. Das stützt die genannten +Messkandidaten, beweist aber weder eine konkrete Beschleunigung unseres Kernels +noch einen behaupteten FP32-Fallback auf Nicht-Tensor-Hardware. Keine weitere +Geometrie-/Synchronisationsänderung mit der BF16-Änderung vermischt. + +**Sorted-QMM-Gewichtsloader optimiert (2026-09-05):** Der skalare Aufruf von +`qwen_quant_weight` im Staging las Packed-Word, Scale und Bias für jeden einzelnen +Wert erneut. Der Loader lädt diese nun einmal je Wort und entpackt daraus die +4 beziehungsweise 8 Werte mit derselben FMA und BF16-Rundung. Die installierte +Konfiguration verwendet bei allen 144 Switch-MLP-Projektionen 4 Bit / Gruppe64. +Der unveränderte Grouped-Kernel dient weiter als exakte Kontrolle. Alle acht +Formen bestehen erneut, auch nach der Rückmessung. Nur diese Loader-Änderung +bleibt zusätzlich zur zuvor geprüften BF16-Speicherung bestehen; BM64/BK32, +Barrieren, Command-Buffer-Grenzen und Scratch-Kapazität bleiben unverändert. +Die Wiederverwendung der Scale-/Bias-Werte ist auch im tatsächlichen +[MLX-0.32.2-QuantizedBlockLoader](https://raw.githubusercontent.com/ml-explore/mlx/v0.32.2/mlx/backend/metal/kernels/quantized.h) +belegt; dessen Implementierung wurde nicht als Engine-Code übernommen. + +Gepaarte vollständige Chats **ohne aktiven Canary** (weiterhin Supervisor, +100%, 2048, Low, bestehende drei Prompts und derselbe fortlaufende Chat): + +| Modus / Loader | Prefill Summary / Story / Python ms | Runtime-Decode Summary / Story / Python tok/s | größter Summary-GPU-Buffer ms | Summe Chat-Turns ms | Prozess inkl. Laden/Warmup ms | +| --- | --- | --- | ---: | ---: | ---: | +| AR skalar | 5297 / 794 / 840 | 48,34 / 47,83 / 48,11 | 3611,37 | 37807 | 58959 | +| AR wortweise | 4310 / 620 / 622 | 48,25 / 47,83 / 47,86 | 2942,65 | 36385 | 56029 | +| MTP skalar | 5508 / 828 / 868 | 52,55 / 40,00 / 69,63 | 3612,77 | 35039 | 56833 | +| MTP wortweise | 4487 / 647 / 648 | 54,22 / 41,61 / 72,89 | 2943,32 | 32616 | 56390 | + +Mit Canary wurde der wortweise Loader separat gemessen: Summary-Prefill AR4309 ms +/ MTP4465 ms, großer GPU-Buffer 2940/2937 ms; Prefill-Probe max108,29/28,95 ms, +keine Fehler. Der AR-Canary-an/aus-Vergleich zeigt in diesen Läufen praktisch +gleiche Prefillzeit, ist aber keine allgemeine Garantie kostenfreier Messung. +Die Probe bleibt optional. Alle sieben aktuellen Chats (inklusive BM32-Trial) +enden dreimal natürlich mit Stop/Exit0; Startvertrag und vollständige Antworten, +Reasoning, Tokenzahlen sowie Draft-/Accept-/Cycle-Zahlen stimmen mit den +jeweiligen vorherigen **Rust**-Kontrollen exakt überein. + +Der große Prefill-Buffer wird auch ohne Canary rund18,5% kürzer. Die AR-Decode- +Rate bleibt praktisch gleich. MTP-Decode und Prozesszeit sind stärker durch +PLE-Lesezeit/Warmup beeinflusst (z.B. Summary PLE905 ms skalar vs607 ms neu); +keinen allgemeinen Decode-Gewinn ausschließlich dem Prefill-Loader zuschreiben. +Das sind gepaarte Diagnosemessungen, **keine 2%-Abnahme gegen MTPLX** und kein +UI-Eventloop-Beweis. Versionen, Einzelwerte, End-to-End-Decodewerte und beide +isolierten Patches: `local-eval-results/20260905-moe-tiles/manifest.md`, +`comparison.json`. Reiner Matrix-/Staging-Restvergleich und P07/P08 bleiben offen. + +### P10 — PLE-Streaming und Hot-Cache mit Referenzkosten vergleichen + +Kanonischer Graphstand 2026-09-07: PLE-Projektion/Gate und dilatierte +Faltung einschließlich lazy Cache-Fortsetzung sind mit84 echten MTPLX-Fällen +unmittelbar und verzögert exakt geprüft; siehe „PLE-Projektion und dilatierte +Cache-Fortsetzung“. Zusätzlich ist der CPU-Staging-Hash samt roher History mit +64 Original-Receipts geprüft; siehe „N-Gram-CPU-Staging-Hash und rohe History“. +Der lazy GPU-Hash bis zu den Tabellen-IDs ist mit60 tatsächlichen GPU-Receipts +unmittelbar und verzögert geprüft; siehe „Lazy N-Gram-GPU-Hash bis zu den +Tabellen-IDs“. Der vollständige residente `_graph_path` ist einschließlich +Lookup/Dequantisierung mit24 Original-Ausgaben sofort und verzögert geprüft; +siehe „Verbundener residenter N-Gram-Graph“. Der Sidecar-Gather samt Prefetch, +Hot-Cache/Bypass und gemeinsamer Tabellenauswahl ist mit192 Original-Receipts +in drei Auswertungsarten geprüft; siehe „Verbundener Sidecar-Gather und +Tabellenauswahl“. Der verbundene Stage-Lifecycle einschließlich QA und Fehler- +History ist mit136 Original-Receipts in zwei Auswertungsarten geprüft; siehe +„Verbundener N-Gram-Stage-Lifecycle“. Der vollständige PLE-Aufruf einschließlich +Sidecar-/Resident-Safetensors-Attach und CPU-Load ist mit144 Original-Receipts +in zwei Auswertungsarten geprüft; siehe „Vollständiger PLE-Aufruf mit +Safetensors-Ladeanbindung“. Modellweite Residency-/Memory-Plan-Auswahl, +übrige Gewichte und Gesamtmodell-/Produkt-Integration bleiben offen. +Keine P10-Performanceabnahme. + +Priorität P1; nach P02, P04; Unterschiede belegt, Anteil an Laufzeit offen. + +- Referenz `NGramEmbedding.stage`, `_SidecarGather._rows_matrices` gegen Rust + `PleReader::rows`/`ple_batch_with_state`: Staging-Zeitpunkt, deduplizierte IDs, + pread-Queueing, Kopien und cachefreie große Prefills prüfen. +- Rust `touch` hängt jedes Mal einen Eintrag an `order`; bereinigt wird nur beim + Überschreiten der Nutzdatenkapazität. Wiederholte reine Cache-Hits lassen damit + Metadaten unbeschränkt wachsen. `cache_bytes` erfasst nur 100 Nutzbytes pro Row, + nicht HashMap/Queue. MTPLX hält seine OrderedDict-Einträge begrenzt. +- Abnahme: identische PLE-Rows über EOS/Chunk/Replay-Grenzen; begrenzte tatsächliche + Cache-Metadaten bei Wiederholung. Warm-/Cold-Lookups in beiden Implementierungen + messen: einzigartige Rows, Bytes, Wall-IO, CPU-Gather, Staging, GPU-Dequant/Projektion. + Nur nicht überlappende kritische Zeitanteile von Gesamtzeit abziehen. +- Die in MTPLX `_SidecarGather` dokumentierten M5-NVMe-Mikrosekunden sind historische + Autorenmessungen; sie ersetzen keine Referenzmessung auf diesem Gerät. + +### P11 — Qwen-MTP-Sampler, Depth und unnötige Arbeit + +Priorität P1; nach P02, P03, P04, P09; Quellcodedifferenz belegt, +direkte Lazy-Übernahme vermessen und nicht beibehalten; Gesamtnachweis offen. + +**Target-Verteilungen gezielt verglichen (2026-09-05):** Direkte zeilenweise +Materialisierung wie im aktiven MTPLX-Pfad implementiert, gegen den bisherigen +Batch-Sampler geprüft und im vollständigen Produktchat nachgemessen. Alle Texte, +Reasoning-Inhalte, Tokens und Draft-/Accept-Zähler bleiben identisch. Der +Regressionstest prüft außerdem jeden Ablehnungs-Slot, All-Accept plus Bonus, +identische weitere RNG-Ziehungen, konzentrierte/breite Masse und CPU-Fallbacks. +Das ist Rust-Eager/Lazy-Äquivalenz, noch kein vollständiges MTPLX-Sampler-Orakel. + +Die isolierte Messung mit 32 alternierenden Paaren zeigt aber: vier gebatchte +Verteilungen kosten rund 0,80ms; lazy 1/2/3/4 benötigte Zeilen rund +0,53/1,02/1,49/2,04ms. Nur sofortige Ablehnung profitiert. Die Produktänderung +wurde deshalb zurückgenommen; Vergleichstest bleibt. Der aktuelle Produktionscode +entspricht nachweislich wieder dem vorherigen Stand, CLI neu gebaut. Eine schnellere +äquivalente Ausführung ist zulässig; ein anderer Aufrufplan allein ist kein Fehler. + +Der vollständige wiederhergestellte Harness-Pfad wurde anschließend mit vorhandener +MTP-Profilierung ausgeführt, erneut mit exakt identischen Antworten/Zählern. +588 Vier-Zeilen-Verifikationen inklusive Warmup: Median Encoding-Wall3,217ms, +anschließendes GPU-Warten42,025ms, Readback0,004ms. Host-Zeitgrenzen, keine +isolierten Kernelzeiten; Profiling und Canary an. Der große Restaufwand liegt +damit im GPU-Verify-/Submission-Pfad, nicht im Auslesen der Verteilungen. +P05–P09 sind dafür weiter zu lokalisieren; keine Performance-Parität behauptet. +Belege und reproduzierbare Prüfungen: +`local-eval-results/20260905-lazy-target-distributions/manifest.md`. + +- Draft-D3 wie Referenzdefault vergleichen. D1..D5-Unterstützung ist eine getrennte + Funktionslücke, kein Grund, während des Default-A/B heimlich die Tiefe zu ändern. +- Voller Verify-Block: Rust berechnet/verliest alle Target-Verteilungen; MTPLX + `generation.py` materialisiert lazy bis zur ersten Rejection bzw. Bonusposition. + CPU/GPU-Sync, Top-k-Pfad und Full-Vocab-Fallback jeweils zählen. +- RNG nicht pauschal als verschieden bezeichnen: Rust enthält bereits + NumPy-kompatibles SeedSequence/PCG64. Draw-Reihenfolge, Softmax/top-p/min-p, + Rejection und Residual müssen auf gleichen Logits/Drafts geprüft werden. +- Abnahme: deterministische Akzeptanz-/Korrekturfälle, identische Zufallsziehungen, + gleiche Verteilungssemantik; pro Zyklus Drafts/Accepted/Bonus/Correction, Forward- + Breiten und Zeiten. Hohe Python-Akzeptanz ist eine Messhypothese, keine Garantie. + +### P12 — Qwen-MTP-Commit, Fallback und vollständiger Abschluss + +Priorität P0; nach P03, P04, P06, P11; potenziell schwerer Fallback belegt. + +Kanonischer Graphstand 2026-09-07: Validierung und reine GDN-Capture-Rekurrenz +sind mit den vorhandenen Array-Primitiven verbunden und gegen 26 tatsächliche +MTPLX-Commit-/Decode-Receipts geprüft. Globale Validierung vor Mutation, +QSA-/PLE-Zweige, Ablehnungszähler, Rollback-/Repair-Orchestrierung und +Produktintegration bleiben offen; siehe „GDN-Capture-Commit mit nachfolgendem +Decode“. Die folgenden Befunde betreffen weiterhin den alten Produktpfad. + +- `restore_or_replay` fällt bei Capture-Fehler auf `replay_tokens` zurück, das + nach Reset den **gesamten bisherigen Kontext tokenweise** ausführt. Der Fehler + erscheint nur in stderr, nicht als eindeutig gezähltes Laufzeitereignis. +- Gegen MTPLX `commit_verified_window`, Conv-Tape-Rekurrenz, Pending-Correction + und begrenzte Repair-Pfade abgleichen. Nicht bloß den Fallback schneller machen: + Ursache unvollständiger Captures und korrekte Zustandsgrenze bestimmen. +- Abnahme: kein unbemerkter Full-Context-Replay; gezielt ausgelöste Rejections an + jeder Draftposition, alles akzeptiert, EOS, Cancel, Kontextende und Save/Restore. + KV/GDN/PLE/MTP-History nach Commit mit Target-Referenz vergleichen; vorhandenen + `qwen_mtp_matches_target_and_restores_its_cache` erweitern statt neuen Teststack bauen. + +### P13 — DSpark-/GLM-Sampling-Vertrag und effektive Einstellungen + +Priorität P0; nach P01, P02 für die Messabnahme; Settings-Korrektur und +Receipt-Tests bestanden, End-to-end-Messung offen. + +- DS4 `ds4.c:61906` wählt Metal-Confidence 0,6; `:66603` hebt nur bei + stochastischem Exact Sampling den nicht expliziten Wert auf mindestens 0,8. + Rust setzte vorher schon normal 0,8 und löste die Exact-Anhebung beim Laden + statt pro Turn auf. Jetzt gemeinsame Auflösung in + `EngineSpeculativeSettings::dspark_confidence_for_temperature`, verwendet von + beiden Proposal-Aufrufern und dem Harness-Receipt. Explizite Werte bleiben + unverändert, einschließlich 0 und 0,7. Kein Eingriff in gespeicherte Konfigurationen. +- Harness-Start enthält nun Sampling-Kategorie (`target_only`, `greedy`, + `opportunistic`, `exact`), Basis-/Turn-Confidence, explizit/automatisch, + Strict-/Exact-Flags und integriertes MTP-Timing. UI-Hilfetext korrigiert; + Performance-Fixture bezieht ihren Default aus denselben Produkt-Settings. +- DSpark opportunistic/strict/exact und GLM opportunistic/exact gesondert erfassen. + Rust GLM-Sampled-Dispatch leitet an greedy draft matching weiter; das entspricht + der opportunistischen Kategorie, nicht dem optionalen Exact-Modus der Referenz. +- Abnahme: Tabellengetriebener Test für fehlenden Wert, expliziten Wert, Exact und + Quality/Strict. Harness-Receipt enthält effektive Schwelle und Semantik, nicht + nur `acceleration.enabled`. Fehlende Exact-Unterstützung ausdrücklich markieren. + +Verifikation 2026-09-05, ohne GPU-Modelllauf oder breite Gates: + +- Regression vor Korrektur: Default-Test scheitert mit Ist 0,8 / Soll 0,6. +- `cargo test --release --bin ds4-server settings::tests::`: 8 bestanden, + einschließlich fehlender/gesetzter Werte und Exact bei Temperatur 0/1. +- `cargo test --release --bin ds4-server model_eval::tests::`: 8 bestanden, + einschließlich Receipt-Modi, Quality/Strict, GLM/Qwen und abgeschalteter Acceleration. +- `cargo test --release --bin ds4-server engine::metal::tests::dspark_`: 2 + CPU-Tests bestanden; modellabhängiger Test blieb explizit ignored. +- `git diff --check`: bestanden. Keine Durchsatzverbesserung aus diesen Tests + abgeleitet. Vor der neuen DSpark-Messung bleiben P02/P03/P04 maßgeblich. + +### P14 — GLM-MTP tatsächlich batchen wie DS4 + +**Produktpfad umgesetzt, Referenz-Performanceabnahme offen (10.09.):** +`local-eval-results/glm-two-row-20260910.Y1SbdU/{manifest.md,comparison.json}` +enthält echten Zwei-Zeilen-Forward, Row0-Head, KDA-GPU-Backup/Restore, +Rejection-Replay und Rewind auf null/ein behaltenes Token. Vorhandene +Batch-Kernel laufen mit einem wiederverwendeten Zwei-Zeilen-Workspace; +HC-Expansion leitet ihre Zeilenzahl aus Bufferbytes ab, deshalb darf hier +nicht die 2048-Zeilen-Allokation verwendet werden. Speicheradmission ergänzt. +Tests an Frontier12/Context128 und Frontier4095/Context8192 bestehen Annahme, +Ablehnung, Rewind, Cap1 und bereits gesetztes Cancel. Replay-KDA/Logits sind +bitgenau skalar; der Grenzfall schaltet wie DS4 auf indexierten Batch um. + +Der normale Vorher-Chat scheiterte an einem schon vorhandenen zu kleinen +skalaren Auswahlbuffer im Dense-Compact-KV-Pfad. DS4 reserviert dafür Context- +statt nur Top-K-Kapazität; gemeinsame Rust-Allokation korrigiert. Danach +vollständige AR/MTP-Chats bis EOS bestanden, beide Python-Ausgaben inklusive +5 Assertions und 5011 unabhängigen Fällen korrekt. Kein Speedup aus dem +abgebrochenen Vorher-Lauf. Decode AR 22,278/21,637/22,443 und MTP +22,576/19,350/30,768 tok/s; unterschiedliche Antworten/Historien, keine direkte +DS4-Messung oder 2%-Abnahme. Prefill-CB-Maxima 5,983s AR / 4,419s MTP bleiben +ein offener Responsivitätsbefund; Canary aus, kein GUI-Stall-Nachweis. +Aktueller DS4-Quellstand ec7642c: nichtfinale 2048er-Chunks können ebenfalls +ohne Layer-Flush laufen (>2048 oder Logits+>8 ist die Bedingung); daher nicht +blind zusätzliche Flushes als Lösung übernehmen. P15 weiter prüfen. + +Zusätzlicher P13-Messpunkt (ursprünglicher Befund): GLM-MTP-Zähler werden mit Resident-State getauscht, +die Harness behandelt sie aber als Engine-Lifetime-Counter. Warmup→neuer Chat +kann deshalb den ersten Turn unterzählen. Vor Akzeptanzraten-Abnahme angleichen; +Rohwerte erhalten, keine bereinigten Quoten als Beweis ausgegeben. + +**P13-Zählerscope korrigiert und geprüft (10.09.):** +`local-eval-results/glm-counter-scope-20260910.HgghwY/manifest.md` enthält den +roten/grünen Sessionwechsel-Test und den vollständigen Produkt-MTP-Chat. Die +fünf kumulativen Zähler bleiben nun auf der aktiven Engine, während Cache und +Draft-Zustand mit dem Chat wechseln. Test prüft Rückkehr in den alten Chat, +monotone Zähler und bitgleichen rekurrenten Zustand. Alle drei Antworten und +Tokenzahlen stimmen per `cmp` mit dem vorherigen Lauf überein. Summary zählt +nun385 statt377 Zyklen und241 statt236 Accepts: Warmup8/5 wurde zuvor fälschlich +abgezogen. Story/Python unverändert. Keine neue GPU-Arbeit; CB-Zahlen gleich. +Kein Performance-Pass: Decode22,336/18,682/29,075 tok/s, Prefill-CB-Max4,451s; +Canary aus. Wächter Exit0, kein laufender Modellprozess. Direkte DS4-Laufzeit- +Referenz und sechszellige Abnahme bleiben offen; Klärung der AGENTS.md-Regel +gegen Kompilieren/Aufrufen des C-Referenzprogramms erforderlich. Keine +C-Produktintegration vorgesehen oder vorgenommen. + +Fokussierte GPU-/CPU-Tests, Release-Clippy, Build, Format-/Diffcheck bestanden. +Keine C-Integration, kein Bundle/Commit/Push, Gesamtziel weiterhin offen. + +**Ursprünglicher Befund und Abnahmekriterien:** + +Priorität P1; nach P04, P13; Quellcodedifferenz belegt. + +- Rust `eval_speculative_greedy` führt beim kompatiblen Draft erst + `eval_glm53_capture(token)` und bei Acceptance nochmals `eval_glm53_capture(draft)` + aus. DS4 `ds4_session_glm_spec_cycle_impl` (`ds4.c:64176`) verifiziert das Paar + in einem Zwei-Zeilen-Batch mit KDA-Backup/Restore. +- Target-Forward, Draft-Head, Rollback und History separat vergleichen. Acceptance + allein beweist keinen Geschwindigkeitsgewinn, wenn Target-Arbeit nicht amortisiert wird. +- Abnahme: echter 2-Row-Verify-Aufruf im Receipt, korrekter KDA/DSA/KV-Zustand bei + Match/Mismatch/Cancel, gleiche Sampling-Kategorie und keine Output-Korruption. + Danach vollständige GLM-AR/MTP-Chats neu messen; alte überlappte Daten nicht verwenden. + +### P15 — DS/GLM-Scheduling, Kaltstart und gemeinsame Runtime abgleichen + +**Aktiver GLM-Pfad und durchgehender Canary geprüft (10.09.):** +`local-eval-results/glm-scheduling-canary-20260910.T1ABR1/{manifest.md,comparison.json}` +enthält zwei vollständige AR/MTP-Chats bis EOS bei Power100/Low und Canary an. +Ausgabe einschließlich Tokens/Thinking/Abschluss ist jeweils exakt zum letzten +Canary-off-Lauf. MTP854/AR935 Proben, keine Fehler, Maxima302,140/251,040ms im +Prefill; Decode-Maxima27,847/0,929ms. Keine Probe über2s. Ein mehrsekündiger +Modell-Command-Buffer blockiert diese unabhängige GPU-Probe nicht automatisch +gleich lange. Keine echte GUI-Eventloop- oder Referenz-Latenzabnahme daraus. + +Wichtige Quellzuordnung: Im aktuellen DS4 ist expanded/full-KV deaktiviert; +GLM5.3 benutzt auch für den dichten Compact-Prefix den indexed-Graph. Dieser +übergibt die Batchtokenzahl als `command_rows`, nicht `pos+rows`. Deshalb passt +die vorhandene Prefill-Flush-Bedingung für die aktiven <=2048er-Chunks; die +anderslautende Bedingung des nicht aktiven full-KV-Pfads darf nicht blind in +Rust übernommen werden. Konkrete Restabweichung im residenten skalaren Decode: +DS4 flusht periodisch alle4 Layer (ohne letzten Layer), Rust nur einmal nach4. +SSD-Expert-Streaming hat eigene Command-Ownership-/Sync-Regeln und ist separat +abzugleichen. Außerdem Host-Encoding-Progress von abgeschlossener GPU-Arbeit +trennen. Das Manifest enthält die zusammenhängende Folgearbeit samt Abnahmen. + +**GLM-Teilprefill: HC-Arbeitsmenge korrigiert (10.09.):** +`local-eval-results/glm-hc-bounds-20260910.BKGvSr/manifest.md` dokumentiert +den roten/grünen Produktpfad-Test. Dense und indexed DS4-Prefill begrenzen +HC-/Collapsed-Ausgaben mit token-genauen Views. Rust übergab bisher die gesamte +Workspace-Kapazität, obwohl sowohl HC-Expansion als auch Split/Sum ihre +Zeilenanzahl aus den Ausgabebytes ableiten. Der Regressionstest weist echte +Schreibzugriffe auf unbenutzte Zeilen nach. Fünf einmalig pro übergroßem Batch +erzeugte, nichtkopierende Views begrenzen jetzt sämtliche vier HC-Aufrufe je Layer; +der gemeinsame Pfad gilt für normalen Prefill und Zwei-Zeilen-Verifikation. +Alle fünf Guard-Ausgaben sowie die vorhandenen Rewind-/Rejection-/Counter- +Prüfungen bestehen. Keine neuen Flushes, keine Chunkverkleinerung, kein anderer +Kernel oder Sampler. Das beweist unnötige Arbeit, nicht deren Anteil an den +mehrsekündigen Command Buffers oder an GUI-Stalls. Eine zuerst vermessene Variante +mit Views auch für bereits exakte Workspaces wurde wegen schlechterer Laufzeiten +nicht beibehalten; Vorher-/Kontrollbinary sind hash-identisch. Die gezieltere +Variante besteht alle Guards mit 2048er-Workspace und den vollen MTP-Chat mit +exakt gleicher Ausgabe. Prefill Summary/Story/Python 6418/269/311ms gegenüber +6648/394/452ms im ersten Vorher-Lauf, Decode22,500/19,173/30,988tok/s. +Gesamt96,901s liegt zwischen den beiden Vorher-Läufen99,559/95,288s, deshalb +kein belastbarer Gesamt-Speedup. Maximaler CB weiterhin4,424s; Canary aus. +AR-Chat ebenfalls natürlich beendet, Tokens/Text/Thinking/Abschluss identisch +zum vorherigen AR-Beleg; Prefill8614/278/333ms, Decode21,648/20,967/21,778tok/s, +Max-CB6,150s. Kein frisches AR-Referenzpaar. Zwischenstände, Messstreuung und +ausstehende Responsivitätsabnahme bleiben sichtbar. P15/P16 offen. + +Priorität P1; nach P01, P04, P13; Source-Inventar vorhanden, Detailbeweis offen. + +- DS4 `ds4.c:35309` teilt nichtkleine Prefills auch wegen echter Progress-Callbacks. + GLM-Referenz `:47379` berechnet Stage-Sync, Layer-Flush, Progress-Flush und Drain + getrennt. Rust GLM koppelt Flush an Logits-Anforderung; Zwischenchunks können + anders laufen. DeepSeek/GLM nicht blind auf eine Qwen-spezifische Policy umstellen. +- Prefill/Decode-Power, echte Pausen bei <100%, Keine-Pause bei 100%, SSD-/Resident- + Varianten, finale und nichtfinale Chunks sowie Cancel-Keepalive prüfen. +- Kalten UI-`ping` separat reproduzieren: Modell-/Pipeline-Laden, Systembootstrap, + Restore und erster Prefill. Kein Warmup darf diesen Fehler unsichtbar machen. + OS-Pagecache nicht global leeren; Prozess-kalt und tatsächlich SSD-kalt unterscheiden. +- Abnahme: Dispatch-/Wait-/Progress-Trace je Phase gegenüber DS4-Code; kalter Ping + und warmer Chat enden ohne unbeobachtete Phase. Release-Bundle- und Harness- + Buildidentität dokumentiert. Noch fehlende direkte DS4-Laufzeitreferenz transparent + halten; C-Inferenz wegen Projektvorgabe nicht eigenmächtig starten. + +### P16 — Gezielte Änderungen erneut messen und Gesamtmatrix abnehmen + +Priorität P1; nach den relevanten P01–P15; offen. + +**Aktuelles interaktives Test-Bundle bereitgestellt (10.09.,22:32):** +`make bundle` und strikte Codesign-Prüfung bestanden. Das Bundle enthält den +zuletzt vermessenen Release-Code und identische Metal-Ressourcen; der genaue +signaturbedingte Mach-O-Unterschied ist im Manifest +`glm-scheduling-canary-20260910.T1ABR1` nachgewiesen. `model-eval --help` direkt +aus dem Bundle besteht ohne Modell-/GUI-Start. Der bisherige September6-Build +ist ersetzt. Kein tatsächlicher GUI-Eventloop-/Kaltstart-Test und keine +sechszellige Performance-Abnahme; die Anwendung ist als Teststand verfügbar. + +**Neue Plain-Chat-Referenzdiagnose (2026-09-05):** Unveränderter MTPLX-Server, +exakte eingefrorene Eingabeprompts und Samplerwerte der Rust-Diagnose, keine +zusätzliche leere Systemnachricht; AR und MTP sequenziell, vollständiger +Summary/Story/Python-Chat. Alle Antworten natürlich beendet, Python-Prüfungen +bestanden, beide Supervisor exit 0. Erster Summary-Prompt identisch 2617 Tokens: +MTPLX-Prefill 2,455 s AR / 2,528 s MTP versus Rust 4,483 / 4,697 s mit sogar +30 bereits gecachten Tokens. Referenz-MTP-Decode 71,403/55,527/90,376 tok/s versus +Rust 53,976/38,874/61,596. Kein Pass: Canary an, jeweils Einzelmessung, andere +gesampelte Historien, Cache-Arbeit und Stop-Token-Zählweise. MTPLX zählt das +Stop-Token mit, Rust nicht; dieser Messvertrag gehört zu P04, keine unautorisierte +Änderung der Produktzähler. Referenz-Canary max 4,679/4,540 ms gegenüber +Rust 102,483/84,761 ms. Der Rückstand bleibt sichtbar, auch ohne Mehrsekunden-Stall. +Details, Rohdaten, Hashes und Grenzen: +`local-eval-results/20260905-plain-reference/manifest.md`. + +- Während der zusammenhängenden Qwen-Portierung: Referenz-/Regressionstests für + Funktions-, Kernel- und State-Abdeckung; Änderungen und Restabweichungen hier + nachtragen. Gesamt-Performancevergleich erst nach vollständiger Integration, + nicht als Auswahlverfahren für einzelne Referenzbestandteile. +- Endmatrix: DeepSeek AR/DSpark, GLM AR/MTP, Qwen AR/MTP. Leistung 100%, Chunks + 2048 soweit Produkt/Referenzvertrag, kleinster aktiver Thinking-Level; Sampler und + MTP-Einstellungen innerhalb jedes Referenzpaares identisch, keine künstliche + Gleichsetzung verschiedener Modellverträge. +- Pro Zelle separater Warmup, danach Summary README → Story → Python als ein + ongoing Chat bis EOS. Zusätzlicher kalter Ping; keine Gesamtzeitbegrenzung. + Startup-/Fortsetzungswatchdog, echte Fortschrittsereignisse, Speichergrenze, + Prozessüberwachung und genau ein GPU-Modell gleichzeitig. +- Saubere Performance-Läufe Canary aus, separate vollständige Responsiveness-Läufe + Canary an; mindestens drei gepaarte Wiederholungen in wechselnder Reihenfolge. + Bei Messstreuung in Größenordnung der 2%-Grenze kein Pass aus einem Einzelwert. +- Tabelle je Turn: neue/cached/Output/Thinking-Tokens, Load/Restore/Prefill/TTFT, + Prefill- und Decode-tok/s, Gesamtzeit, MTP-Akzeptanz und Zeitzerlegung, + GPU/Host/UI-p50/p95/p99/max, Peak-Footprint, IO und Abschlussursache. +- Inhaltliche Abnahme: Summary deckt README ab; vollständige Story ohne Rückfrage; + Python-One-shot anhand vorab festgelegter kleiner funktionaler Assertions prüfen. + Generierten Code vor Ausführung prüfen und isolieren, keine Tools/Netzwerkrechte. +- Durchsatzziel: mindestens 98% der matched-work Referenzgeschwindigkeit; schneller + erlaubt. Gesamtzeiten der natürlichen Chats zusätzlich zeigen, aber unterschiedliche + Antwortlängen nicht als Kernelregression ausgeben. Latenz separat abnehmen; ein + schneller Durchschnitt kompensiert keinen Mehrsekunden-Stall. + Nutzerentscheidung vom 2026-09-10: Die beobachteten 2,6% Rückstand bei **Qwen + Summary ohne MTP** sind als eng begrenzte Ausnahme akzeptiert, ausschließlich + wenn alle übrigen Punkte erledigt sind und die produktive Anwendung ansonsten + Funktions- und Performance-Parität erreicht. Keine allgemeine Toleranzerhöhung, + keine vorgezogene Abnahme und keine Ausnahme für Stalls, Prefill oder andere Turns. + +### R01 — MTPLX-Speculation als zusätzliche Optimierungsquelle für DS/GLM + +Separater Recherche-Task; nach belastbarer DS4-Baseline P13–P16, kein Wechsel des +Golden Masters und keine Voraussetzung für die erste Paritätsabnahme. + +- Im gepinnten MTPLX existiert ein eigener DeepSeek-V4-Backendpfad + (`mtplx/models/deepseek_v4.py`, Registrierung `mtplx/backends/registry.py:299`). + Native MTP-Köpfe dort nicht ohne Prüfung mit DSpark/DFlash gleichsetzen. +- Generische Techniken wie batched verify, lazy distributions, begrenzte + Capture-Commits, Deferred Repair und Draft-Tiefensteuerung auf Übertragbarkeit + für beide Modelle untersuchen. Eine native GLM-5.3-Flash-Unterstützung wird hier + nicht behauptet; allgemeine Techniken können auch ohne diesen Backendpfad relevant sein. +- Ergebnis: kurze Kandidatenliste mit exakter Quellstelle, Artefakt-/Draft-Vertrag, + unveränderter oder abweichender Sampling-Semantik, gemessenem Referenzvorteil und + kleinstem A/B-Versuch. Nicht passende oder nur beworbene Vorteile aussortieren. +- Abnahme einer späteren Übernahme weiterhin gegen **antirez/ds4**: gleiche + Funktion, keine schlechtere Responsiveness, belegter Performancegewinn. Kein + Download anderer Artefakte und keine Umstellung auf MTPLX-Runtime als Abkürzung. + +## Reihenfolge und Fortschrittsführung + +Zuerst P01–P04 als belastbare Vergleichsgrundlage. Danach P05/P06 für den belegten +Qwen-Prefill-Fehler und P12 für unbeschränkte Repair-Kosten; P11 liefert dafür den +Sampler-/Acceptance-Nachweis. P07–P10 schließen die übrigen Kernel-/IO-Unterschiede. +P13 muss vor DSpark-Vergleichen erledigt werden, P14/P15 vor der DS/GLM-Freigabe. +P16 misst den vollständig integrierten Qwen-Port und die komplette Modellmatrix; +die frühere Mikrobenchmark-Auswahl pro Änderung ist aufgehoben. + +Pro Task werden Status, konkreter Patch, Referenz-/Arbeitsstand, Testbefehl, +Rohdatenpfad, vorher/nachher und verbleibende Differenz ergänzt. Eine Abweichung +verlässt die Liste nur durch Nachweis oder ausdrückliche Nutzerentscheidung, +nicht durch Weglassen aus dem nächsten Bericht. diff --git a/docs/qwen-reference-responsiveness-20260905.md b/docs/qwen-reference-responsiveness-20260905.md new file mode 100644 index 0000000..03eb81c --- /dev/null +++ b/docs/qwen-reference-responsiveness-20260905.md @@ -0,0 +1,100 @@ +# Qwen: MTPLX versus DS4Server GPU responsiveness + +Measured on the same M5 Max on 2026-09-05. This is a responsiveness diagnosis, +not acceptance of the goal to match reference throughput within 2%. + +## Method + +- Installed Qwen3.8 Flash Next Bare Speed artifacts only; identical model path + for both implementations. No downloads, offline Hugging Face mode for MTPLX. +- Context capacity 131072, prefill chunks 2048, reasoning low, temperature 1, + top-p 0.95, top-k 20, seed 12345. DS4Server power 100%; MTPLX has no imposed + throttling, fan mode default, turbo profile. +- The exact raw system prompt and user prompts were exported from DS4Server. + Warmup is separate; README summary, story and Python generation form one chat. + Each response runs to EOS, not a fixed-token performance sample. +- Same native `ds4_gpu_canary_probe`: a 4096-byte Metal blit on an independent + queue, in the model process, nominally every 100 ms. Native commit-to-scheduled + and commit-to-completed times exclude Python scheduling delay. The Python + wrapper separately records host scheduling lag. +- MTPLX CLI `exec` handoff is intercepted only to invoke its ordinary server + entry point in the instrumented process; inference code is unchanged. +- Separate supervisor: 120 seconds without startup/inference progress or a + physical footprint above 116823110451 bytes terminates the child. Canary + activity alone does not renew inference progress. No overall runtime timeout. +- Runs are sequential. Both valid MTPLX AR runs and the MTP run completed all + three responses normally. All probes reported successful completion. + +Reference: MTPLX commit `e652d55e2652137a4abcf1312357abbf3eb9d692`, MLX 0.32.2. +DS4Server: dirty working tree based on `b99ce2a`; no scheduling fix applied for +these measurements. The exported JSON records the complete effective settings. + +## Results + +Maximum native GPU-canary completion latency in milliseconds: + +| Run | Prefill | Decode | Warmup | +| --- | ---: | ---: | ---: | +| DS4Server AR, exported-input control | 4090.027 | 17.903 | see raw JSON | +| MTPLX AR, first valid run | 7.610 | 0.527 | 0.894 | +| MTPLX AR, explicit session repeat | 2.974 | 0.713 | 2.854 | +| MTPLX MTP, explicit session | 0.550 | 0.696 | 1.460 | + +Thus the multi-second GPU queue delay is reproduced in DS4Server but was **not +observed in MTPLX**, including a complete MTP conversation. This does not prove +that MTPLX can never stall or replace measurement of an actual GUI event loop. + +## Source-level differences and comparison caveats + +MLX does not put an entire lazy evaluation into one command buffer. Its +[`CommandEncoder::needs_commit`](https://github.com/ml-explore/mlx/blob/v0.32.2/mlx/backend/metal/device.cpp) +checks operations and referenced buffer bytes; the Max defaults are 50 operations +and 50 MiB, with environment overrides. The +[`eval` path](https://github.com/ml-explore/mlx/blob/v0.32.2/mlx/backend/metal/eval.cpp) +commits asynchronously when those thresholds are exceeded. These are batching +thresholds, not a guarantee of a maximum GPU duration. + +DS4Server Qwen `eval_prefill_batch` currently finishes only after all layers at +power 100 unless layer profiling is enabled. This differs from MLX's automatic +submission boundaries. No smaller prefill chunk is needed to investigate this +specific scheduling difference. + +The raw inputs are identical, but rendered tokens are not yet identical: +DS4Server summary has 7490 prompt tokens versus MTPLX's 7460. The Qwen +`encode_continuation` path calls `encode_qwen_messages` with an empty system +string, which still emits the low-reasoning system instruction. That inserts +another system message when extending a checkpoint. Full-conversation rendering +does not repeat that instruction for every user turn. This must be fixed and +tested independently before claiming exact input parity. + +Update after these measurements: the continuation renderer has been corrected +locally and the focused token-only regression test passes. These historical +measurements still describe the pre-fix binary; they are not post-fix evidence. +The complete execution-chain inventory and follow-up work are tracked in the +[reference-parity audit](/Users/gb/Projects/DS4Server/docs/inference-reference-parity-audit-20260905.md). + +MTPLX AR reused 5120 cached tokens on every turn, even with an explicit session +header. MTP reused 5120, 7840 and 8861. Both sent complete ongoing history, but +their cache reuse is different. Native MTPLX `timings.prompt_per_second` divides +the whole prompt by prefill time; for fair suffix throughput use +`(prompt_tokens - cached_tokens) / prefill_seconds`. Neither this number nor raw +total chat time is currently a matched-work 2% acceptance result. + +## Local evidence + +All artifacts are in `/private/tmp/ds4-ongoing-verified.16vzVw/`: + +- `qwen-export.jsonl`: DS4Server inputs, all outputs, per-turn metrics, canary. +- `mtplx-ar-v4.jsonl`: first successful MTPLX AR conversation. +- `mtplx-ar-session.jsonl`: repeated AR with explicit session ID. +- `mtplx-mtp.jsonl`: MTP with explicit session ID. +- `mtplx_probe.py`: supervised reference runner; invoke with `ar` or `mtp` + using the reference checkout's `.venv/bin/python`. Each starts and stops its + own server on localhost port 18091. +- `libds4_probe.dylib`: unchanged DS4Server Metal bridge object, linked with + dead stripping and only `ds4_gpu_canary_probe` exported. No DS4 C inference + implementation is linked or invoked. + +Earlier `mtplx-ar.jsonl`, `mtplx-ar-v2.jsonl`, and `mtplx-ar-v3.jsonl` are failed +instrumentation attempts (linking, CLI exec losing threads, Python module +identity respectively), **not benchmark evidence**. diff --git a/metal/MLX-LM-LICENSE.txt b/metal/MLX-LM-LICENSE.txt new file mode 100644 index 0000000..98ff47b --- /dev/null +++ b/metal/MLX-LM-LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright © 2023 Apple Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/metal/MTPLX-LICENSE.txt b/metal/MTPLX-LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/metal/MTPLX-LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/metal/MTPLX-NOTICE.txt b/metal/MTPLX-NOTICE.txt new file mode 100644 index 0000000..d7cb764 --- /dev/null +++ b/metal/MTPLX-NOTICE.txt @@ -0,0 +1,41 @@ +MTPLX +Copyright 2026 Youssof Altoukhi + +MTPLX is a native MTP speculative decoding project for Apple Silicon. + +ATTRIBUTION REQUIREMENT + +This NOTICE file is part of the Apache License 2.0 terms for MTPLX (see +section 4(d) of the LICENSE). Any product, application, service, or +distribution that includes, embeds, or is built on MTPLX, in whole or in +part, modified or unmodified, must display the following attribution within +the product itself, in a place a user of that product can see (for example an +About screen, a credits or acknowledgements screen, a settings or help page, +documentation shipped with the product, or the startup banner of a command +line tool): + + Powered by MTPLX + https://github.com/youssofal/mtplx + +Attribution in a source repository, a README, or a marketing page alone does +not satisfy this requirement. The words "Powered by MTPLX" must appear +in-product. The link is required wherever the display medium supports it. + +Public benchmarks, articles, and research that use or build on MTPLX should +credit "MTPLX by Youssof Altoukhi" with the same link. + +If MTPLX informs academic or technical writing, please cite the repository using +the included CITATION.cff metadata. + +This distribution includes a vendored standalone subset of vllm-metal's +Apache-2.0 licensed Metal paged-attention kernels under vllm_metal/metal. +The vendored subset is used only for local MLX/Metal kernel dispatch and does +not include or depend on the vLLM serving stack. + +This product includes Metal kernel code adapted from dflash-mlx +(https://github.com/bstnxbt/dflash-mlx), Copyright dflash-mlx contributors, +licensed under the Apache License 2.0. See mtplx/nax_verify.py for details. + +This product includes the Apache-2.0 licensed MLX implementation for +Laguna-S-2.1 from PipeNetwork, Copyright 2026 PipeNetwork, under +mtplx/models/laguna.py. diff --git a/metal/MTPLX-RUNTIME.txt b/metal/MTPLX-RUNTIME.txt new file mode 100644 index 0000000..9460610 --- /dev/null +++ b/metal/MTPLX-RUNTIME.txt @@ -0,0 +1,551 @@ +MTPLX Qwen runtime shaders +========================= + +mtplx-runtime-0.32.2.metallib is an unchanged copy of mlx/lib/mlx.metallib +from the existing MTPLX reference environment (runtime version 0.32.2). + +SHA256: dc59d1cceb1a5c7e578232e6e41e28e2c73c9463ac6dbc3886c3ee17ffc270ed +Source tag: v0.32.2 +Source commit: 1f8e74e3f12f31365464a6867c6579f0e9b29d85 +Source: https://github.com/ml-explore/mlx/tree/v0.32.2 +License: MIT, reproduced in MLX-LM-LICENSE.txt (identical license text). + +Only GPU shader code is included. No libmlx.dylib, Python inference code, +or C/C++ application/backend code is linked into DS4Server. Rust selects +the shader entry points, binds model buffers and owns graph execution. + +The reference's get_quantized_kernel implementation was verified to call +Device::get_kernel on the default precompiled library, matching +mlx/backend/metal/nojit_kernels.cpp at the pinned commit. The shader library +is reused byte-for-byte, including its precompiled specializations, rather +than independently rebuilding different kernels or compiler settings. + +Provenance on the evaluation machine: +/private/tmp/MTPLX-analysis-20260901/.venv/lib/python3.12/site-packages/mlx/lib/mlx.metallib + +The Rust test mtplx_runtime_shaders_are_pinned enforces the complete file +hash. Existing resource packaging includes the metal directory recursively. +This artifact adds approximately 174 MiB to the resources; it is not a model +download. Loading is lazy on the first runtime-shader dispatch. + +The shader identity is not a claim that the complete Rust model graph, +scheduling, cache behavior, or end-to-end performance has reached parity. + +Compiled QSA moving offsets +-------------------------- + +tests/fixtures/mtplx-qsa-update-jit.json records the actual compiled indexer +scalar shaders and compute_dynamic_offset_int32, observed without changing +the original compilation by tools/mtplx-jit-reference.py --operation qsa-update. +Only the contiguous int32[1] scalar specializations are retained; full observed +library source hashes are included. --check reruns the original compiled core. +The Dynamic Offset body is used unchanged by the Rust dynamic-copy path; +its original full source hash is +48a7309664f797e749aa42d2c2c4db0cf3abedf97297f0068d06b7847d988b93. +It is Copyright Apple Inc., MIT as reproduced in MLX-LM-LICENSE.txt. +The following gg1/gg2_dynamic_copybfloat16bfloat16 kernels are taken directly +from the unchanged runtime metallib. No frontiers are read back to the CPU. +Clamp/Multiply now feed the connected qsa_compiled_cache_window stage. +mtplx-qsa-compiled-scalars.json retains the actual generated scalar kernels, +including all three constant-CSE layouts for the Clamp and an independent +257/255 specialization check. Only structural integer literals and exported +symbols change when Rust specializes a kernel; the computations are unchanged. +mtplx-qsa-compiled-header.metal is the unmodified original compiler prefix; +SHA256: 2665a76463f3f6ee283c6a50b66e4a527318a114080b31441dfa900042097a39. +--qsa-header --check compares that prefix with a fresh original compilation. +Both resources contain runtime shader code, not host runtime code. Most is +Apple MIT. The unchanged full prefix also retains the Apache-2.0 cexpf.h +notice (Apple, NVIDIA, Filipe RNC Maia; license text in MTPLX-LICENSE.txt) and +the full BSD-2-Clause expm1f.h notice/disclaimer (Norbert Juffa 2015-2023). +Those overloads are retained as original header dependencies, not new Qwen +complex/exponential computation in the integer scalar kernels. +26 compiled reference calls verify the complete retained-input cache window. +They do not establish graph-bank replay, allocation/donation, BFS scheduling +or production inference parity. + +tests/fixtures/mtplx-qsa-select-jit.json also retains the actual compiled Add +kernels for selector row offsets 0/1/2/3. Rust substitutes only the structural +offset literal and exported symbol, preserving the original +0 dispatch. +--operation qsa-update --qsa-mode blocks --qsa-score-budget 4096 --qsa-header +--check reproduces the connected reference selector and its exact sources. +Query preparation and both selector families now accept GPU frontier leaves +through the same original kernel dispatch used by the host-frontier entry. +66 actual compiled reference calls cover all five output modes, chunked +selection and the connected cache state for retained old input leaves. These +are functional Q/K-entry checks, not graph-bank, ownership or UI performance +acceptance. Host integration and the runtime evaluator remain open. +The retained-input Hidden entry has since been connected through the already +verified original affine projection kernels to that same Q/K implementation. +132 actual select_hidden calls cover 4/8-bit, group32/64 projections and all +five output modes. The combined entry test covers 198 reference calls. No new +Metal bodies or alternative projection/selection arithmetic are introduced. +The installed B1/BF16 cache/phase routing is now connected to backing reserve, +explicit GPU frontiers, those same retained-input arithmetic entries and cache +commit. 720 actual original host-method decisions and 108 additional complete +indexer calls cover routing and ongoing state/output transitions. The combined +host-flow test includes the previous 92 non-compiled calls through the same +entry. A parameter-bound QSA graph bank now replaces the direct compiled +expression chains. It rebinds explicit inputs to cached primitive dependencies +and uses the pinned degree/BFS-width algorithm for a single indexer graph. +99 optimized original graph contracts, all 198 arithmetic calls, stride-changing +replay, parameter invalidation and the original connected-call trace/entry +counters pass. Evaluated constants are omitted from structural fingerprints; +kernel-source and output checks remain separate. No alternate Metal kernel was +introduced. The dtype/shape-generic guard, donation/allocator, early release, +global model scheduling and production integration remain open. Last-use +graph leaves are now detached after their consumer, separately from explicit +completion ownership that protects GPU work until its existing CB finishes. +The shared canonical dispatch bridge holds bound Metal resources through +completion as well; this fixes four Invalid Resource failures exposed with +unretained command buffers. Compile/dispatch use scoped autorelease pools. +The normal and strengthened model-free collections cover 34 tests. This is +not performance acceptance or evidence of matching whole-model Metal encoder +timelines. Donation must still account for both descriptor and shared Data +ownership, including outstanding GPU evaluator holds. +The canonical test-bound Buffer now separates array/view identity from shared +Data ownership, including nested native views and completion holds. QSA COW +checks both Rc sharing and underlying Data sharing. A direct pinned +QSACache alias/view update and its negative Rust regression check prove that +array aliases observe replacement while distinct views retain old values. +The QSA graph now applies the pinned primitive input/sibling-minus-primary-output +Data retention protocol before the next primitive, rather than re-holding leaves +at their last consumer. Its scheduler tracks the actually selected sibling, not +just the producer node. CPU scheduling and GPU ownership-count checks cover that +distinction, duplicate Data, empty-batch fallback and completion. +QSA raw/pool DynamicSliceUpdate now performs actual BF16 vector-copy donation +for exclusive mutable cache state. Retained inputs, snapshots, views and GPU +Data holds select copying instead. The 16 KiB bound uses root allocation size. +All 198 core reference cases also run with state snapshots and exclusive state, +checking old/new hashes and actual Data reuse. No kernels or synchronization +boundaries changed. Model-wide integration, other primitive donation and generic +dtype/layout contracts remain open. + +The allocator policy is now ported from the pinned buffer_cache.h with the same +best-fit/oldest-equal-size choice, strict reuse ceiling and age-based/90%-clear +eviction. A 101-event trace from the real installed runtime checks allocation +identities and active/cached bytes, including cache-limit transitions. Reference page rounding and the +device maxBufferLength precheck are connected to the test-bound Buffer methods; +logical views preserve tensor bounds while Data records the rounded root size. +The explicit Rust Allocator now owns a real 1 MiB untracked/shared Metal heap, +uses it for requests below 256 bytes with device-allocation fallback, and +recycles native roots only after the final physical allocation hold releases. +Its active/cache/peak/resource accounting, cache and memory limits, resource +pressure GC (including the original unsigned subtraction), zero/null result +and actual cached storage reuse are checked against the 101-event receipt. +Residency/wired limits are now connected to this explicit allocator, including +heap registration, cache retention and erase-before-release. Set selection and +budgets follow resident.cpp: first fit, oversize/empty-set reuse, 32-set ceiling, +emptiest fallback and touched-set commits on resize. Native membership and the +ten original residency lifecycle scenarios are tested. Queue attachment uses +the published set count and is exercised immediately before test commits; +The new test-bound Submission owner now attaches automatically at actual native +commit boundaries through a scoped encoding-thread callback, including flush, +readback, finish and cleanup paths. Its queue cursor persists across batches; +scope teardown drains before unregistering the callback. Legacy work outside +the scope and other queues do not inherit it. Externally wrapped storage, +the process-wide owner and model-wide routing remain open. +Existing canonical helpers +are not globally switched to untracked buffers before encoder dependencies +are ported. No whole-model allocator/performance parity is claimed. + +The test-bound Rust Encoder now owns an independent queue with unretained +command buffers and Concurrent compute encoders, following the pinned +device.cpp/event.cpp/error.h dependency and completion rules. Access roles, +barrier epochs, deferred concurrent outputs, cross-encoder fences, temporary +exclusion and shared-event error propagation are managed in Rust. The bridge +only issues Metal API calls and reuses the same original kernel dispatcher. +Commit thresholds count array.data_size() ELEMENTS (as the reference does), +not allocation bytes; counters persist across encoder boundaries. The three +new checks include dependent untracked GPU copies, two-queue event transfers +and safe synthetic error-completion tests. The 48-test suite passes in both +legacy retention modes. Only these new encoder tests use the independent +queue. Complete operator access metadata, stream/evaluator integration and +production routing are still open; this is not a model-performance receipt. + +Operator scopes now connect the existing normalization and full MoE chain to +the independent Concurrent encoder and its pooled untracked allocator. Explicit +binding roles/data_size spans cover routing, sorting, gather/unsort, Gate/Up, +SwiGLU, casts/norms, affine and gathered quantized projections, Split-K and both +stock/fused experts plus the shared expert. Sort and split-reduction scratch is +registered as backend temporaries. RMSNorm's default one and GatherSort's divisor +are real scalar array bindings, not setBytes replacements. No shaders changed. +The nine existing fixture groups (540 cases) execute through BOTH encoders with +unchanged reference-output checks. This does not multiply independent fixtures. +QSA routing, general array/donation semantics, evaluator/stream integration, +production instrumentation and complete model/performance acceptance remain open. + +GDN routing now uses the same typed dispatch/allocator path, including conv, +mask/cache, Q/K normalization, compute_g/beta, recurrence, fused step and output. +The direct native fused-step bypass is removed. Scalar operands and custom T +are original scalar array inputs. Concatenate uses the original concurrent +disjoint slice writes and dependency join; checked-input copies retain the +original order and backend-temporary registration. No shader bodies changed. +Four further existing groups (476 GDN cases) execute in both encoders, bringing +the dual-encoder total to 1,016 existing cases. This remains operator-level +correctness coverage, not whole-model scheduling or production parity. + +QSA static/dynamic copies now bind explicit array data_size metadata rather +than treating the copied region as the whole bound array. Dynamic offset arrays +are inputs/backend temporaries. Zero fill, COW/General copies, compiled frontier +operations and fused query/pool preparation carry access roles. KV concatenate +uses the reference concurrent slice-write region. The existing 12 backing/copy +and 26 compiled cache-window cases now run in both encoders (1,054 existing +dual-encoder cases in total). Eager preparation, score/select operators and full +graph/production integration remain open. Shader sources/geometries unchanged. + +Eager QSA preparation now carries access roles and exact slice spans through +RoPE, mean/RMS pooling and projections; all three RoPE concatenates use the +reference concurrent writer regions. Scalar arithmetic uses array inputs. +The fused selector and chunk concatenation also use the same encoder; its three +frontiers are distinct scalar arrays and its private score plane remains a +custom-kernel output, not a backend temporary. The existing 210 preparation, +88 ongoing cache and 75 selector/chunk cases now execute in both encoders, +bringing the existing dual-encoder total to 1,427 cases. Empty-array placeholder +storage is unchanged; general zero-storage array semantics and the remaining +score/eager-selection, evaluator and production paths are still open. + +Both QSA prefill score producers and the connected score/top-k/chunk route now +use the independent encoder. FP32 GEMV/Steel/NAX/Split-K, ReLU and reduction +carry explicit array spans; Maximum/Divide scalars are array inputs. Matmul's +output is allocated before transpose-copy preparation; those copies and the +Split-K plane are registered as backend temporaries after their consumers. +The MPP producer retains its original stride-aware inputs. Prefill top-k +allocates outputs before checked-input copies, registers those copies after +dispatch and uses three separately allocated frontier arrays. Shader bodies, +specializations and dispatch geometries are unchanged. The existing 384 FP32 +score, 146 MPP/top-k/prefill and 96 mixed-producer cases now run in both encoders, +bringing dual-encoder coverage to 2,053 existing cases. These manual fixture +batches do not establish general evaluator/stream boundaries or production +parity; eager selection/output and full graph integration remain open. + +Eager QSA score masking, ranking and all output branches now carry explicit +input/output array spans through the independent encoder. Scalar operands are +real arrays; per-tile mx.eval(top_t) synchronizes that queue before constructing +the next tile. Tiled index concatenation, decode-tail concatenation, rows-gather +outputs and dense padding use the original concurrent slice-write regions. +Dense padding is materialized before concatenation, and rows-gather builds its +two separate Arange expressions; these restore previously collapsed operations. +No Metal body or specialization changed. + +The fixed-signature indexer graph now defers input/sibling Data on the active +queue rather than retaining fallback descriptors in its returned state. The +selected output's Data remains excluded, preserving donation. Compiled chunk +concatenation joins concurrent writers and moving frontiers are four separate +int32 arrays. Existing empty/nonempty Data-ownership checks run in both queues. +The existing 540 eager cases and 200 ongoing indexer calls (including compiled +routes) also execute in both encoders: 2,793 existing dual-encoder cases total. +Explicit tile eval counts, output/state hashes and graph engagement are checked. +These bounded fixture batches still do not apply the complete model-wide +evaluator/stream scheduler and its automatic primitive-level commit policy. +Production routing/instrumentation and whole-model performance acceptance remain +open, as does general zero-storage array handling. + +Primitive submission and task scheduler +-------------------------------------- + +The fixed indexer tape now checks the original encoder thresholds after a whole +primitive, never after an individual kernel dispatch. Input/sibling Data and +backend holds are attached before a possible commit. Counted GPU tasks complete +from the command callback; failed submissions balance ownership/accounting. +The single-stream tape also applies the original active-task/memory pressure +condition, finalizes its stream and waits for progress without inserting sleeps. + +The Rust scheduler uses stdlib FIFO workers per CPU stream, earliest-error +preservation, non-consuming cross-stream event error propagation and draining +shutdown. CPU event waits/signals use the existing Metal shared-event bridge. +Explicit tile/final fixture synchronizations are checked separately from +automatic commits, with independent expectations for the two full-prefill +indexer cases that cross the pinned Max data-size threshold. + +CPU dispatch now counts every tenth operation, with completion as a separate +FIFO task so failed work still completes its activity accounting. The CPU +primitive cleanup task participates in that count and retains complete backend +temporary descriptors until earlier work has run. CPU and GPU now share the +input/sibling Data-selection function, excluding donated primary output Data. +The private CPU temporary wrapper is Send only for drop-only worker ownership; +Buffer itself remains !Send/!Sync. Five scheduler tests and the existing GPU +ownership/connected-indexer checks pass, including unretained indexer execution. + +An explicit runtime-owned stream registry now connects CPU/GPU encoders for the +installed single-CPU/single-Metal backend. Defaults and template resolution are +per thread/device. Local encoders are destroyed at thread exit; global streams +allow sequential cross-thread use. Explicit clear preserves the reference's +metadata/stale default handles and global CPU/GPU cleanup distinction. +Registry locks do not cover encoding or waits. GPU selection reuses the same +Rc/TLS encoder and allocator; exclusive ownership is checked before returning +an encoder to storage. CPU/GPU events and finalize-all pressure handling use +the existing scheduler and native bridge. Two new checks include actual +two-queue copies, eleven blocked CPU tasks, thread cleanup and error unwinding. +The 200 ongoing indexer cases now use a registered GPU stream in the independent +path; the full model-free collection passes 57/57 normal and unretained. + +Graph events now preserve per-copy values/origin streams while sharing native +events and errors. Inter-stream fences use either the reference SharedEvent +path or its opt-in Metal3/macOS15 fast path. Fast synchronization remains off +by default. The existing pinned metallib supplies input_coherent, fence_update +and fence_wait unchanged. Rust preserves array output registration, raw timestamp +bindings, explicit update barriers, cross-device coherence and CPU SeqCst +timestamp operations. Shared fence counts and per-dispatch snapshots are +separate; completion/task ownership retains timestamp storage until work ends. +The bridge now accepts empty dispatch grids, including the original zero-work +coherence dispatch. Three new checks cover events/errors, partial-word/empty +coherence and CPU/GPU/GPU/CPU transfer in both modes with a test-only deadlock +rescue. All 60 model-free tests pass normal and unretained; no rescue fired. +No shader body, metallib, inference default or production routing was changed. + +This is still test-bound. Full array/evaluator cross-stream dependency construction, actual +CPU model primitives, compile-cache cleanup integration and the complete model +graph remain open. Production Qwen and performance acceptance remain unchanged; +stream/operator checks do not establish whole-model parity. + +Canonical dispatch now transfers deduplicated Rust root-allocation ownership +to its existing Metal completion callback. This replaces the native resource +set in that path and prevents physical release without adding Data aliases +that would disable donation. Typed bindings also retain their descriptor/scalar +borrow until dispatch. Early failures keep ownership with Rust; registration +transfers it even when a submitted standalone command later reports failure. +No shader, flush, commit, wait or additional completion-handler change. +Normal and unretained collections pass 45/45 tests including native allocation, +heap exhaustion, limits, residency and in-flight cache exclusion. This is not model parity. +Binding input/output roles, barrier epochs, concurrent contexts, inter-encoder +fences and reference commit thresholds still require the full encoder port. + +Runtime-generated indexing shader +-------------------------------- + +The same pinned runtime JIT-compiles gather_front instead of using the +precompiled library. tools/mtplx-kernel-source.py resolves its two headers +into metal/mtplx_qwen.metal without editing shader code and supplies the +BF16/U32/FP32 template instantiations. Original notices and MIT attribution +are retained. Header identities: + +indexing/indexing.h: +e820b8ee2b5132a97122780c12433ebb5100d8078d31e211d0429400a11415bb +indexing/gather_front.h: +64aacebf6576dfcd389383564fa1214bc87f2a091dd33cc64c598c5367ecab96 + +The generator requires the pinned runtime source checkout alongside the +MTPLX reference checkout, named mtplx-runtime-0.32.2. The product requires +only the generated shader resource, not this reference source checkout. + +Runtime-generated SiLU shader +---------------------------- + +tools/mtplx-jit-reference.py observes original runtime compilation without +changing it. tests/fixtures/mtplx-silu-jit.json pins the generated19variants; +full observed source SHA256: +76cafb45db55a91efba66503dde59b37628ea360f220f35dd860f4ac3c3d0111 + +The shader exporter retains the generated computation and its original +BF16 math, Sigmoid, Multiply, cast and stride helpers. Only host-name aliases +change. All supporting header identities are enforced by the exporter and +the emitted unit hashes by the focused Rust test. Copyright Apple Inc.; MIT +as reproduced in MLX-LM-LICENSE.txt. This does not link a host runtime. + +Runtime-generated GatherAxis shader +----------------------------------- + +The pinned GatherAxis source and generic elem_to_loc helper are retained +unchanged, with BF16/U32 index instantiations for contiguous/strided inputs +and int/int64 offsets. The router retains the strided last-ten-column view; +no replacement top-k kernel is used. Header identities: + +indexing/gather_axis.h: +e1a745391ff4990f3f1ad75c5687c3b102dcdc4833d8fbbac38e10f54af29af4 +utils.h: +5e1568e9edde9d05dbf86f68fa0d6c6240f2c32b973c7c6a76166b9c0d91543d + +Copyright Apple Inc.; MIT as reproduced in MLX-LM-LICENSE.txt. Softmax, +reduction, binary operations and index copies use the pinned metallib. + +Runtime-generated SwiGLU shader +------------------------------ + +The original compiled activations.swiglu used by non-sanitize-fused SwitchGLU +and Qwen3NextMLP is captured separately from nn.silu. Full observed source SHA: +bf78eee5cf96ea7c112c4e61546c12bcacf57fe512e0572182604cb94137510b. +tests/fixtures/mtplx-swiglu-jit.json preserves all 19 original generated variants. +The exporter changes only host aliases and reuses the already pinned BF16, +Sigmoid, Multiply and cast/stride dependencies. Copyright Apple Inc.; MIT. + +Runtime-generated compute_g shader and staged GDN +------------------------------------------------ + +The original compiled gated_delta.compute_g is captured with the same observer: +tests/fixtures/mtplx-compute_g-jit.json. Full observed source SHA256: +34143a98046f8af5538767734fc169a5cab22a4920c26f9ba7ea45b8097152de. +Receipt SHA256: +701e2f54b7cb8bf97616f83256657e6c5e8cc8b46f4b65c559ccc030ab111dbf. +All 19 variants retain their original BF16 Add/LogAddExp intermediates and +FP32 final exponential. Only host aliases change. The exporter pins the +additional Exp, Negative, Add, LogAddExp, Limits and log1p shader dependencies. + +complex.h SHA256: +16e8a815b2cbdb6070e0824e64fe33fccb6e918f1b84ea5c792bd89d33e57bf1. +cexpf.h SHA256: +88b6e15a52a5800d98d9bc6da840ca5cf70bf572fda136409580c1f17b1e0aab. +The complex overload dependencies are retained unchanged, not used to add a +complex-valued Qwen path. complex.h is Apple MIT. cexpf.h is Apache-2.0, +Copyright Apple 2025, NVIDIA 2008-2013 and Filipe RNC Maia 2013. Its full original +copyright/license notice remains embedded in the generated shader; the Apache +license text is included in MTPLX-LICENSE.txt. + +Stock depthwise Conv1D, copies, casts, reductions and elementary operations +use the unchanged runtime metallib. Cache valid-length GatherAxis additionally +instantiates the original signed INT32-index template; router indices remain +UINT32. No shader body is replaced by a hand-written equivalent. + +Original QSA indexer preparation +------------------------------- + +qsa_indexer_prepare.py SHA256: +a77f6ca5ae805e729519c4629ae88b455a6dbf473a457a6e1c8219174eb59091. +The exporter reads _prepare_queries_kernel and _pool_keys_kernel as AST data; +it does not execute the model or kernel module. Both original source strings +are unchanged. Header substitutions match the installed geometry: four query +heads, width128, rotary64, ratio4, epsilon1e-6, attention scaling1. Includes are +resolved at translation-unit scope; separate namespaces avoid collisions among +the original header constants. Only entry-point declarations, host aliases and +template instantiations are adapted. Stride metadata retains the original +constant int64_t address space. Original Metal math and BF16 rounding remain. +Copyright MTPLX; Apache-2.0, see MTPLX-LICENSE.txt and MTPLX-NOTICE.txt. + +This is the preparation portion, not the full QSA indexer, selection, +attention graph or production integration. Runtime frequencies are input buffers, +not host replacements for the model's frequency construction. + +QSACache/KVCache host lifecycle now uses the original scalar/vector/general +copy and BF16/FP32 cast entries from this runtime, including positional writes, +growth, strided restored state and the derived mirror. Rust distinguishes array +object identity (__setitem__ overwrites its descriptor) from shared slice storage. +Retained state aliases are checked against actual MTPLX cache operations, not +assumed immutable. No additional shader bodies or runtime host library are used. +The connected canonical cache remains test-only until product graph integration. + +Original dynamic QSA selector +----------------------------- + +qsa_indexer_select.py SHA256: +a3c74af27a7045c12f2893a8b7a91724c00d8a4148315c3165f3480c83016cf3. +metal/mtplx-qsa-select.json preserves the original header, common body and all +three epilogues (blocks, dense_mask, row_tokens), extracted without importing +the model. Rust substitutes the original literal header parameters and supplies +only the entry-point ABI. Tests additionally compare full generated header/body +hashes against the actual MTPLX factory. H4/D128/ratio4 match the installed model; +BF16/FP32 operands, backing capacity, top-k and TF32 remain specializations. +Native compilation follows runtime 0.32.2 CustomKernel defaults: Safe math and +its platform-selected Metal language version. No runtime host library is linked. +The original 32MiB score-scratch chunk planner and typed output concatenation +are connected to the cache/preparation port. General submission/concurrency, +the complete eager indexer and production integration remain open. +Copyright MTPLX; Apache-2.0, see MTPLX-LICENSE.txt and MTPLX-NOTICE.txt. + +Original vectorized QSA prefill +------------------------------ + +qsa_indexer_prefill.py SHA256: +4d6fd428243c001746f69f8aed45991356772c2bd4a45586eb3c6813c91998d3. +The same JSON export retains _MPP_SCORE_HEADER/_MPP_SCORE_SOURCE, the original +top-k body and literal f-string header segments. Rust resolves only their named +constants and provides entry-point ABI/type aliases. TensorOps tile layout, +ordered per-head ReLU reduction, adaptive radix/insertion and all epilogues are +unchanged. The original required General FP32 copy is used for non-contiguous +score views; MPP input views keep their strides without added copies. +The 128MiB producer-aware planner and score -> top-k -> concat chain are connected +for the installed BF16/M5 geometry, including a 2K continuation from live cache. +Full indexer branch routing, compiled graph bank and production integration +remain open. Copyright MTPLX; Apache-2.0. + +The general FP32 score expression now shares that prefill entry point. Rust +ports runtime matmul.cpp's H4/D128 M5 Max routing: AsType Vector/General layout, +check_transpose and broadcast copies, batch collapse, GEMV, regular Steel/NAX +and both Split-K variants, original per-head Maximum, row/column Sum and Divide. +All shader entries come from the unchanged pinned metallib; no shader body or +host runtime library was added. The pooled cast is retained once across chunks; +producer selection and the H4+1 workspace budget follow the reference. +384 score cases and 96 connected selection cases are exact with real runtime +MLX_ENABLE_TF32=0/1 in separate processes. These remain canonical correctness +fixtures, not production integration or performance-parity evidence. + +Original eager QSA selection +--------------------------- + +The untiled QSAIndexer._select_eager score/top-k path uses the original +runtime Arange, Add, integer Divide, Less, casts, Select, Subtract and +ArgPartition (implemented by the pinned runtime as argsort). The chronological +flash_prefill block epilogue adds original int32 Sort, int64 index conversion, +bool GatherAxis and Select. The exporter adds only the required +gather_axis instantiation of the already preserved +GatherAxis body; no body is changed. Its original file/unit hashes are unchanged. +All untiled output epilogues are connected: dense mask (original bool +ScatterAxis, repeat/concatenate and causal/tail mask), rows-gather (argsort-order +tokens and validity), decode flash (chronological blocks, host tail bound) and +decode gather (chronological tokens and variable-length tail). The flash branch +retains precedence; neither decode branch evaluates the dead selected-mask DAG. +Shared original cast/sort/vector dispatch helpers do not alter the shader bodies. + +ScatterAxis adds these unchanged pinned Apple MIT runtime source units: +- atomic.h, full-file SHA256: + 4c35ea2798a2335502865247aee878149fc9ada0d7e84c05d771baef0c7fcc60 +- reduction/ops.h None operation, full-file SHA256: + 78d06730fc9564a73944e7f1fe3897d25c8789b28a939bf418e1968db311da41 +- indexing/scatter_axis.h, full-file SHA256: + 43eabd0216101f8e32f5cdd19ce40b7f954564be27fad98a5e0fe345e7b94ce5 +Only include/pragma-once placement, namespace and the two required +scatter_axis instantiations are added +outside the preserved bodies. The exporter guards full-file and body hashes. +No host C/C++ runtime implementation is linked. + +The 408 eager receipts tap actual QSAIndexer calls: 60 score/top-k, 24 prefill +blocks, 144 dense masks, 108 rows-gather and 72 decode outputs. They include 2K +queries, 65,536 blocks, tails 0/1/3 and separate real TF32-on/off processes. +The tiled path shares the same score/rank functions, pooled FP32 input and tie +vector. Each original mx.eval(top_t) is a synchronous command completion before +the next tile, not an asynchronous flush. Only evaluated index views/backings +are retained through the original GeneralGeneral uint32 concatenate. Index +stride changes N -> K, independently of the N-strided validity. No new shader +source or specialization is needed. Rust shares the original output-branch +priority, including the tiled rows-gather exclusion and decode flash precedence. +132 further actual-call receipts (108 tiled, 24 tile-off boundaries) bring the +eager total to 540. They include observed reference eval row counts, 2K queries, +65,536 blocks, tail 0/1, partial tiles and stride-2 FP32 query views. +The existing GPU busy counters additionally verify one completed command buffer +per observed reference tile eval, plus the final output batch. +Full indexer routing, the general scheduling tape/allocator and production +integration are not established by these checks. + +Original eager QSA preparation +------------------------------ + +The installed BF16 H4/D128 query and H1/D128 pool paths now use the original +eager preparation expression as well as the fused custom-kernel branch. +RMSNorm uses the pinned runtime kernel and its required General-Copy for sliced +projection inputs. Pool mean is FP32 sum multiplied by 0.25 and cast to BF16 +before weighted RMSNorm. RoPE preserves all Arange, casts, concatenations, +Cos/Sin, BF16 Negative, FP32 Multiply/Add and final BF16/pass-through stages. +The installed rotary64/ratio4/eps1e-6/scaling1 contract is unchanged. +All entries come from the unchanged pinned metallib; no shader body was added. + +The existing projection and cache-extension entry points select either branch +and retain the eager intermediates through their consuming operations. 105 +additional actual QSAIndexer receipts cover bare and quantized-projection +preparation, including 2K rows, padded/stride-2 inputs and high positions. Another +44 real QSACache/KVCache transitions cover eager pooling, capacity growth, +reservation, trim, state aliases/restore and FP32 mirror rebuilding. These are +not a complete indexer, production-integration or performance-parity receipt. + +Connected non-compiled indexer entry +---------------------------------- + +The Rust entry after compiled-route rejection now connects projection/supplied +QK views, query preparation, raw/pool state and the original large-prefill, +legacy-fused and eager selection order. All existing original shader dispatches +are reused. Query preparation is dead when dense==sparse; KV.offset advances +only in the subsequent Attention step. Shared return variants preserve the +model-visible outputs while retaining other encoded kernel outputs. +92 actual MTPLX indexer calls in 24 ongoing sequences verify lane choice, 82 +selection hashes, 268 raw/pool/mirror hashes, capacities/frontiers and command +completion counts. They cover 2K rows, 32K history, supplied 704-stride QK views, +prefill crossover, gather/flash priority and tiling. No compiled path is silently +replaced. Compiled eligibility/core, attention, graph scheduling and production +integration are still open; these are correctness, not performance receipts. diff --git a/metal/mtplx-qsa-compiled-header.metal b/metal/mtplx-qsa-compiled-header.metal new file mode 100644 index 0000000..4ef453f --- /dev/null +++ b/metal/mtplx-qsa-compiled-header.metal @@ -0,0 +1,2486 @@ + +// Copyright © 2025 Apple Inc. + +// Auto generated source for mlx/backend/metal/kernels/utils.h + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/bf16.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/bf16.h" +// Copyright © 2023 Apple Inc. + + +#include + +using namespace metal; + +typedef bfloat bfloat16_t; +inline uint16_t bfloat16_to_uint16(const bfloat16_t x) { + return as_type(x); +} + +inline bfloat16_t uint16_to_bfloat16(const uint16_t x) { + return as_type(x); +} + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/bf16_math.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/bf16_math.h" +// Copyright © 2023 Apple Inc. + + +/////////////////////////////////////////////////////////////////////////////// +// Metal math for bfloat16 +/////////////////////////////////////////////////////////////////////////////// + +/* + +Following the Metal Shading Language Specification (Metal 3.1) + +"bfloat is an extended itypeing point type that only allows implicit conversion + to a type of greater itypeing point rank. While bfloat can be implicitly + converted to itype, it cannot be implicitly converted to half, and neither + itype nor half can be implicitly converted to bfloat." + +Further, as far as I can tell, the stdlib math/simd functions are not defined +for bfloat and calling with an argument of type bfloat will result in that +argument getting implicitly converted to itype which then returns an output +that is (likely) a itype which cannot be implicitly converted into a bfloat + +This leads to situations where +bfloat a = 5.0bf; +bfloat b = metal::abs(a); // this will throw an error since abs return itype +bfloat c = static_cast(metal::abs(a)); // this is fine + +For the moment, I will be adding overloaded instantiations of the math +functions to accordingly automatically handle the casting + +*/ + +#define instantiate_metal_math_funcs(itype, otype, ctype, mfast) \ + \ + METAL_FUNC otype abs(itype x) { \ + return static_cast(__metal_fabs(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype acos(itype x) { \ + return static_cast(__metal_acos(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype acosh(itype x) { \ + return static_cast(__metal_acosh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype asin(itype x) { \ + return static_cast(__metal_asin(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype asinh(itype x) { \ + return static_cast(__metal_asinh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype atan(itype y_over_x) { \ + return static_cast( \ + __metal_atan(static_cast(y_over_x), mfast)); \ + } \ + METAL_FUNC otype atan2(itype y, itype x) { \ + return static_cast( \ + __metal_atan2(static_cast(y), static_cast(x), mfast)); \ + } \ + METAL_FUNC otype atanh(itype x) { \ + return static_cast(__metal_atanh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype ceil(itype x) { \ + return static_cast(__metal_ceil(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cos(itype x) { \ + return static_cast(__metal_cos(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cosh(itype x) { \ + return static_cast(__metal_cosh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cospi(itype x) { \ + return static_cast(__metal_cospi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype divide(itype x, itype y) { \ + return static_cast( \ + __metal_divide(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype exp(itype x) { \ + return static_cast(__metal_exp(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype exp10(itype x) { \ + return static_cast(__metal_exp10(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype exp2(itype x) { \ + return static_cast(__metal_exp2(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fabs(itype x) { \ + return static_cast(__metal_fabs(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fdim(itype x, itype y) { \ + ctype t = static_cast(x - y); \ + return static_cast(select(t, ctype(0), t < ctype(0) || x == y)); \ + } \ + METAL_FUNC otype floor(itype x) { \ + return static_cast(__metal_floor(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fma(itype x, itype y, itype z) { \ + return static_cast(__metal_fma( \ + static_cast(x), static_cast(y), static_cast(z))); \ + } \ + METAL_FUNC otype fmax(itype x, itype y) { \ + return static_cast( \ + __metal_fmax(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fmax3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmax3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmedian3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmedian3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmin(itype x, itype y) { \ + return static_cast( \ + __metal_fmin(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fmin3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmin3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmod(itype x, itype y) { \ + return static_cast( \ + __metal_fmod(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fract(itype x) { \ + return static_cast(__metal_fract(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype frexp(itype x, thread int& exp) { \ + return static_cast(__metal_frexp(static_cast(x), &exp)); \ + } \ + METAL_FUNC otype ldexp(itype x, int k) { \ + return static_cast(__metal_ldexp(static_cast(x), k, mfast)); \ + } \ + METAL_FUNC otype log(itype x) { \ + return static_cast(__metal_log(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype log10(itype x) { \ + return static_cast(__metal_log10(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype log2(itype x) { \ + return static_cast(__metal_log2(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype max(itype x, itype y) { \ + return static_cast( \ + __metal_fmax(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype max3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmax3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype median3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmedian3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype min(itype x, itype y) { \ + return static_cast( \ + __metal_fmin(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype min3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmin3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype nextafter(itype x, itype y) { \ + return static_cast( \ + __metal_nextafter(static_cast(x), static_cast(y))); \ + } \ + METAL_FUNC otype pow(itype x, itype y) { \ + return static_cast( \ + __metal_pow(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype powr(itype x, itype y) { \ + return static_cast( \ + __metal_powr(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype rint(itype x) { \ + return static_cast(__metal_rint(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype round(itype x) { \ + return static_cast(__metal_round(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype rsqrt(itype x) { \ + return static_cast(__metal_rsqrt(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sin(itype x) { \ + return static_cast(__metal_sin(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sinh(itype x) { \ + return static_cast(__metal_sinh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sinpi(itype x) { \ + return static_cast(__metal_sinpi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sqrt(itype x) { \ + return static_cast(__metal_sqrt(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tan(itype x) { \ + return static_cast(__metal_tan(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tanh(itype x) { \ + return static_cast(__metal_tanh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tanpi(itype x) { \ + return static_cast(__metal_tanpi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype trunc(itype x) { \ + return static_cast(__metal_trunc(static_cast(x), mfast)); \ + } + +namespace metal { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_MAYBE_FAST_MATH__); + +namespace fast { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_FAST_MATH__); + +} // namespace fast + +namespace precise { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_PRECISE_MATH__); + +} // namespace precise + +} // namespace metal + +/////////////////////////////////////////////////////////////////////////////// +// Metal simd for bfloat16 +/////////////////////////////////////////////////////////////////////////////// + +#define instantiate_metal_simd_comm_funcs( \ + itype, otype, ctype, itype_to_ctype, ctype_to_otype) \ + \ + METAL_FUNC otype simd_broadcast(itype data, ushort broadcast_lane_id) { \ + return ctype_to_otype( \ + __metal_simd_broadcast(itype_to_ctype(data), broadcast_lane_id)); \ + } \ + \ + METAL_FUNC otype simd_shuffle(itype data, ushort simd_lane_id) { \ + return ctype_to_otype( \ + __metal_simd_shuffle(itype_to_ctype(data), simd_lane_id)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_down( \ + itype data, itype filling_data, ushort delta, ushort modulo) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \ + itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_down( \ + itype data, itype filling_data, ushort delta) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \ + itype_to_ctype(data), \ + itype_to_ctype(filling_data), \ + delta, \ + __metal_get_simdgroup_size(ushort()))); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_up( \ + itype data, itype filling_data, ushort delta, ushort modulo) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \ + itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_up( \ + itype data, itype filling_data, ushort delta) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \ + itype_to_ctype(data), \ + itype_to_ctype(filling_data), \ + delta, \ + __metal_get_simdgroup_size(ushort()))); \ + } \ + \ + METAL_FUNC otype simd_shuffle_down(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_down(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_rotate_down(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_rotate_down(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_rotate_up(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_rotate_up(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_up(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_up(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_xor(itype data, ushort mask) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_xor(itype_to_ctype(data), mask)); \ + } + +#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype) \ + \ + METAL_FUNC otype simd_max(itype data) { \ + return static_cast(__metal_simd_max(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_min(itype data) { \ + return static_cast(__metal_simd_min(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_exclusive_product(itype data) { \ + return static_cast( \ + __metal_simd_prefix_exclusive_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_exclusive_sum(itype data) { \ + return static_cast( \ + __metal_simd_prefix_exclusive_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_inclusive_product(itype data) { \ + return static_cast( \ + __metal_simd_prefix_inclusive_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_inclusive_sum(itype data) { \ + return static_cast( \ + __metal_simd_prefix_inclusive_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_product(itype data) { \ + return static_cast(__metal_simd_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_sum(itype data) { \ + return static_cast(__metal_simd_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_xor(itype data) { \ + return static_cast(__metal_simd_xor(static_cast(data))); \ + } + +namespace metal { + +instantiate_metal_simd_comm_funcs( + bfloat16_t, + bfloat16_t, + uint16_t, + bfloat16_to_uint16, + uint16_to_bfloat16); +instantiate_metal_simd_reduction_funcs(bfloat16_t, bfloat16_t, float); + +} // namespace metal + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/complex.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/complex.h" +// Copyright © 2023 Apple Inc. + + +#include + + +using namespace metal; + +template +struct complex_t; + +template +static constexpr constant bool is_complex_v = false; + +template +static constexpr constant bool is_complex_v> = true; + +// Metal accepts explicit bfloat casts that is_convertible_v reports as false. +template +static constexpr constant bool is_lane_convertible_v = + is_convertible_v || + (is_same_v && is_convertible_v) || + (is_same_v && is_convertible_v); + +template +struct complex_t { + using value_type = T; + + T real; + T imag; + + // Constructors + constexpr complex_t(T real, T imag) thread : real(real), imag(imag) {}; + constexpr complex_t() thread : real(0), imag(0) {}; + constexpr complex_t() threadgroup : real(0), imag(0) {}; + + // Conversions from scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) thread : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) threadgroup : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) device : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) constant : real(static_cast(x)), + imag(static_cast(0)) {} + + // Conversions between complex types + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) thread : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) threadgroup + : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) device : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) constant : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + // Conversions to and from two-lane vectors (the FFT lane representation) + constexpr complex_t(vec v) thread : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) threadgroup : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) device : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) constant : real(v.x), imag(v.y) {}; + + constexpr operator vec() const thread { + return vec(real, imag); + } + + constexpr operator vec() const threadgroup { + return vec(real, imag); + } + + constexpr operator vec() const device { + return vec(real, imag); + } + + constexpr operator vec() const constant { + return vec(real, imag); + } + + // Conversions to scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const thread { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const threadgroup { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const device { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const constant { + return static_cast(real); + } +}; + +using complex32_t = complex_t; +using complex64_t = complex_t; + +static_assert(sizeof(complex32_t) == 2 * sizeof(half)); +static_assert(sizeof(complex64_t) == 2 * sizeof(float)); +static_assert(sizeof(complex_t) == 2 * sizeof(bfloat16_t)); + +template +constexpr complex_t operator-(complex_t x) { + return {-x.real, -x.imag}; +} + +template +constexpr bool operator>=(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag >= b.imag); +} + +template +constexpr bool operator>(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag > b.imag); +} + +template +constexpr bool operator<=(complex_t a, complex_t b) { + return operator>=(b, a); +} + +template +constexpr bool operator<(complex_t a, complex_t b) { + return operator>(b, a); +} + +template +constexpr bool operator==(complex_t a, complex_t b) { + return a.real == b.real && a.imag == b.imag; +} + +template +constexpr complex_t operator+(complex_t a, complex_t b) { + return {a.real + b.real, a.imag + b.imag}; +} + +template +constexpr thread complex_t& operator+=( + thread complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr threadgroup complex_t& operator+=( + threadgroup complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr device complex_t& operator+=( + device complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(U a, complex_t b) { + return {static_cast(a) + b.real, b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(complex_t a, U b) { + return {a.real + static_cast(b), a.imag}; +} + +template +constexpr complex_t operator-(complex_t a, complex_t b) { + return {a.real - b.real, a.imag - b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(U a, complex_t b) { + return {static_cast(a) - b.real, -b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(complex_t a, U b) { + return {a.real - static_cast(b), a.imag}; +} + +template +constexpr complex_t operator*(complex_t a, complex_t b) { + return {a.real * b.real - a.imag * b.imag, a.real * b.imag + a.imag * b.real}; +} + +template +constexpr complex_t operator/(complex_t a, complex_t b) { + auto denom = b.real * b.real + b.imag * b.imag; + auto x = a.real * b.real + a.imag * b.imag; + auto y = a.imag * b.real - a.real * b.imag; + return {x / denom, y / denom}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator/(U a, complex_t b) { + auto scalar = static_cast(a); + auto denom = b.real * b.real + b.imag * b.imag; + auto x = scalar * b.real; + auto y = -scalar * b.imag; + return {x / denom, y / denom}; +} + +template +constexpr complex_t operator%(complex_t a, complex_t b) { + auto real = a.real - (b.real * static_cast(a.real / b.real)); + auto imag = a.imag - (b.imag * static_cast(a.imag / b.imag)); + if (real != 0 && (real < 0 != b.real < 0)) { + real += b.real; + } + if (imag != 0 && (imag < 0 != b.imag < 0)) { + imag += b.imag; + } + return {real, imag}; +} + +static_assert( + (complex_t{1.0h, 2.0h} * complex_t{3.0h, 4.0h}).real == -5.0h); +static_assert( + (complex_t{bfloat16_t(1.0f), bfloat16_t(2.0f)} * + complex_t{bfloat16_t(3.0f), bfloat16_t(4.0f)}) + .real == bfloat16_t(-5.0f)); + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/defines.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/defines.h" +// Copyright © 2023 Apple Inc. + + +#if defined __METAL__ || defined MLX_METAL_JIT +#define MTL_CONST constant +#else +#define MTL_CONST +#endif + +static MTL_CONST constexpr int MAX_REDUCE_SPECIALIZED_DIMS = 4; +static MTL_CONST constexpr int REDUCE_N_READS = 4; +static MTL_CONST constexpr int REDUCE_N_WRITES = 4; +static MTL_CONST constexpr int SOFTMAX_N_READS = 4; +static MTL_CONST constexpr int RMS_N_READS = 4; +static MTL_CONST constexpr int RMS_LOOPED_LIMIT = 4096; + +// Instantiate a templated kernel. +// Extra args are used as template parameters: +// e.g. instantiate_kernel(binary_int, binary, a, b) -> +// [[host_name(binary_int)]] [kernel] binary +#define instantiate_kernel(name, func, ...) \ + template [[host_name( \ + name)]] [[kernel]] decltype(func<__VA_ARGS__>) func<__VA_ARGS__>; + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/logging.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/logging.h" +// Copyright © 2025 Apple Inc. + + +#if defined(__METAL_VERSION__) && (__METAL_VERSION__ >= 320) +#include + +namespace mlx { +using os_log = metal::os_log; +} // namespace mlx + +#else + +namespace mlx { +struct os_log { + constexpr os_log(constant char*, constant char*) constant {} + + template + void log_debug(constant char*, Args...) const thread {} + + template + void log_debug(constant char*, Args...) const constant {} +}; +} // namespace mlx + +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/utils.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/utils.h" +// Copyright © 2023-2024 Apple Inc. + + +#include + + +typedef half float16_t; + +// Work per thread values for different types. The values here are expected to +// match get_work_per_thread in mlx/backend/metal/utils.h +template +struct WorkPerThread { + static_assert(sizeof(U) <= 8, "Type too large"); + static constexpr int constant n = 8 / sizeof(U); +}; + +/////////////////////////////////////////////////////////////////////////////// +// Type limits utils +/////////////////////////////////////////////////////////////////////////////// + +template +struct Limits { + static const constant U max = metal::numeric_limits::max(); + static const constant U min = metal::numeric_limits::min(); + static const constant U finite_max = metal::numeric_limits::max(); + static const constant U finite_min = metal::numeric_limits::min(); +}; + +#define instantiate_default_limit(type) \ + template <> \ + struct Limits { \ + static constexpr constant type max = metal::numeric_limits::max(); \ + static constexpr constant type min = metal::numeric_limits::min(); \ + static constexpr constant type finite_max = \ + metal::numeric_limits::max(); \ + static constexpr constant type finite_min = \ + metal::numeric_limits::min(); \ + }; + +instantiate_default_limit(uint8_t); +instantiate_default_limit(uint16_t); +instantiate_default_limit(uint32_t); +instantiate_default_limit(uint64_t); +instantiate_default_limit(int8_t); +instantiate_default_limit(int16_t); +instantiate_default_limit(int32_t); +instantiate_default_limit(int64_t); + +#define instantiate_float_limit(type) \ + template <> \ + struct Limits { \ + static constexpr constant type max = \ + metal::numeric_limits::infinity(); \ + static constexpr constant type min = \ + -metal::numeric_limits::infinity(); \ + static constexpr constant type finite_max = \ + metal::numeric_limits::max(); \ + static constexpr constant type finite_min = \ + -metal::numeric_limits::max(); \ + }; + +instantiate_float_limit(half); +instantiate_float_limit(float); +instantiate_float_limit(bfloat16_t); + +template <> +struct Limits { + static constexpr constant bool max = true; + static constexpr constant bool min = false; +}; + +template +struct Limits> { + inline static constexpr constant complex_t max = complex_t( + metal::numeric_limits::infinity(), + metal::numeric_limits::infinity()); + inline static constexpr constant complex_t min = complex_t( + -metal::numeric_limits::infinity(), + -metal::numeric_limits::infinity()); +}; + +/////////////////////////////////////////////////////////////////////////////// +// Indexing utils +/////////////////////////////////////////////////////////////////////////////// + +#define MLX_MTL_PRAGMA_UNROLL _Pragma("clang loop unroll(full)") + +/////////////////////////////////////////////////////////////////////////////// +// Single Array with generic dims + +template +METAL_FUNC IdxT elem_to_loc( + IdxT elem, + constant const int* shape, + constant const int64_t* strides, + int ndim) { + IdxT loc = 0; + for (int i = ndim - 1; i >= 0 && elem > 0; --i) { + loc += (elem % shape[i]) * IdxT(strides[i]); + elem /= shape[i]; + } + return loc; +} + +// Non templated version to handle arbitrary dims +template +METAL_FUNC IdxT elem_to_loc( + uint3 elem, + constant const int* shape, + constant const int64_t* strides, + int ndim) { + IdxT loc = + elem.x * IdxT(strides[ndim - 1]) + elem.y * IdxT(strides[ndim - 2]); + for (int d = ndim - 3; d >= 0; --d) { + loc += (elem.z % shape[d]) * IdxT(strides[d]); + elem.z /= shape[d]; + } + return loc; +} + +/////////////////////////////////////////////////////////////////////////////// +// Single Array with fixed N dims + +template +METAL_FUNC IdxT elem_to_loc_1(uint elem, constant const int64_t& stride) { + return elem * IdxT(stride); +} + +template +METAL_FUNC IdxT elem_to_loc_2(uint2 elem, constant const int64_t strides[2]) { + return elem.x * IdxT(strides[1]) + elem.y * IdxT(strides[0]); +} + +template +METAL_FUNC IdxT elem_to_loc_3(uint3 elem, constant const int64_t strides[3]) { + return elem.x * IdxT(strides[2]) + elem.y * IdxT(strides[1]) + + elem.z * IdxT(strides[0]); +} + +/////////////////////////////////////////////////////////////////////////////// +// Multiple Arrays with generic dims + +template +METAL_FUNC vec elem_to_loc_2_nd( + uint3 elem, + constant const int* shape, + constant const int64_t* a_strides, + constant const int64_t* b_strides, + int ndim) { + vec loc = { + IdxT( + elem.x * IdxT(a_strides[ndim - 1]) + + IdxT(elem.y) * IdxT(a_strides[ndim - 2])), + IdxT( + elem.x * IdxT(b_strides[ndim - 1]) + + elem.y * IdxT(b_strides[ndim - 2]))}; + for (int d = ndim - 3; d >= 0; --d) { + uint l = elem.z % shape[d]; + loc.x += l * IdxT(a_strides[d]); + loc.y += l * IdxT(b_strides[d]); + elem.z /= shape[d]; + } + return loc; +} + +template +METAL_FUNC vec elem_to_loc_3_nd( + uint3 elem, + constant const int* shape, + constant const int64_t* a_strides, + constant const int64_t* b_strides, + constant const int64_t* c_strides, + int ndim) { + vec loc = { + IdxT(elem.x * IdxT(a_strides[ndim - 1])) + + IdxT(elem.y * IdxT(a_strides[ndim - 2])), + IdxT(elem.x * IdxT(b_strides[ndim - 1])) + + IdxT(elem.y * IdxT(b_strides[ndim - 2])), + IdxT(elem.x * IdxT(c_strides[ndim - 1])) + + IdxT(elem.y * IdxT(c_strides[ndim - 2]))}; + for (int d = ndim - 3; d >= 0; --d) { + uint l = elem.z % shape[d]; + loc.x += l * IdxT(a_strides[d]); + loc.y += l * IdxT(b_strides[d]); + loc.z += l * IdxT(c_strides[d]); + elem.z /= shape[d]; + } + return loc; +} + +/////////////////////////////////////////////////////////////////////////////// +// Elem to loc in a loop utils +/////////////////////////////////////////////////////////////////////////////// + +template +struct LoopedElemToLoc { + int dim; + LoopedElemToLoc inner_looper; + OffsetT offset{0}; + int index{0}; + + LoopedElemToLoc(int dim) thread : dim(dim), inner_looper(dim - 1) {} + + void next(const constant int* shape, const constant int64_t* strides) thread { + if (dim == 0) { + return; + } + index++; + offset += OffsetT(strides[dim - 1]); + if (index >= shape[dim - 1]) { + index = 0; + inner_looper.next(shape, strides); + offset = inner_looper.offset; + } + } + + void next(int n, const constant int* shape, const constant int64_t* strides) + thread { + if (dim == 0) { + return; + } + index += n; + offset += n * OffsetT(strides[dim - 1]); + + if (index >= shape[dim - 1]) { + int extra = index - shape[dim - 1]; + if (extra >= shape[dim - 1]) { + inner_looper.next(1 + extra / shape[dim - 1], shape, strides); + extra = extra % shape[dim - 1]; + } else { + inner_looper.next(shape, strides); + } + index = 0; + offset = inner_looper.offset; + if (extra > 0) { + next(extra, shape, strides); + } + } + } + + OffsetT location() thread { + return offset; + } +}; + +template +struct LoopedElemToLoc<1, OffsetT, true> { + int dim; + OffsetT offset{0}; + uint index{0}; + + LoopedElemToLoc(int dim) thread : dim(dim) {} + + void next(const constant int* shape, const constant int64_t* strides) thread { + index++; + if (dim > 1) { + offset = elem_to_loc(index, shape, strides, dim); + } else { + offset += OffsetT(strides[0]); + } + } + + void next(int n, const constant int* shape, const constant int64_t* strides) + thread { + index += n; + if (dim > 1) { + offset = elem_to_loc(index, shape, strides, dim); + } else { + offset = index * OffsetT(strides[0]); + } + } + + OffsetT location() thread { + return offset; + } +}; + +template +struct LoopedElemToLoc<1, OffsetT, false> { + OffsetT offset{0}; + + LoopedElemToLoc(int) thread {} + + void next(const constant int*, const constant int64_t* strides) thread { + offset += OffsetT(strides[0]); + } + + void next(int n, const constant int*, const constant int64_t* strides) + thread { + offset += n * OffsetT(strides[0]); + } + + OffsetT location() thread { + return offset; + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// Calculation utils +/////////////////////////////////////////////////////////////////////////////// + +/** Compute ceil((float)N/(float)M) */ +template +inline T ceildiv(T N, U M) { + return (N + M - 1) / M; +} + +// https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#1202 +inline float log1p(float x) { + float xp1 = 1.0f + x; + if (xp1 == Limits::max) { + return Limits::max; + } + if (xp1 == 1.0f) { + return x; + } + + return x * (metal::log(xp1) / (xp1 - 1.0f)); +} + +inline bfloat16_t log1p(bfloat16_t x) { + float xp1 = 1.0f + static_cast(x); + if (xp1 == Limits::max) { + return Limits::max; + } + if (xp1 == 1.0f) { + return x; + } + + return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f))); +} + +inline complex64_t log1p(complex64_t in) { + float x = in.real; + float y = in.imag; + float zabs = metal::precise::sqrt(x * x + y * y); + float theta = metal::atan2(y, x + 1); + if (zabs < 0.5f) { + float r = x * (2 + x) + y * y; + if (r == 0) { // handle underflow + return {x, theta}; + } + return {0.5f * log1p(r), theta}; + } else { + auto z0 = metal::sqrt((x + 1) * (x + 1) + y * y); + return {metal::log(z0), theta}; + } +} + +/////////////////////////////////////////////////////////////////////////////// +// SIMD shuffle ops +/////////////////////////////////////////////////////////////////////////////// + +inline uint64_t simd_shuffle_down(uint64_t data, uint16_t delta) { + return as_type( + metal::simd_shuffle_down(as_type(data), delta)); +} + +inline int64_t simd_shuffle_down(int64_t data, uint16_t delta) { + return as_type( + metal::simd_shuffle_down(as_type(data), delta)); +} + +inline bool simd_shuffle_down(bool data, uint16_t delta) { + return simd_shuffle_down(static_cast(data), delta); +} + +inline complex64_t simd_shuffle_down(complex64_t data, uint16_t delta) { + return complex64_t( + simd_shuffle_down(data.real, delta), simd_shuffle_down(data.imag, delta)); +} + +inline uint64_t simd_shuffle_up(uint64_t data, uint16_t delta) { + return as_type(metal::simd_shuffle_up(as_type(data), delta)); +} + +inline int64_t simd_shuffle_up(int64_t data, uint16_t delta) { + return as_type(metal::simd_shuffle_up(as_type(data), delta)); +} + +inline bool simd_shuffle_up(bool data, uint16_t delta) { + return simd_shuffle_up(static_cast(data), delta); +} + +inline complex64_t simd_shuffle_up(complex64_t data, uint16_t delta) { + return complex64_t( + simd_shuffle_up(data.real, delta), simd_shuffle_up(data.imag, delta)); +} + +inline uint64_t +simd_shuffle_and_fill_up(uint64_t data, uint64_t filling, uint16_t delta) { + return as_type(metal::simd_shuffle_and_fill_up( + as_type(data), as_type(filling), delta)); +} + +inline int64_t +simd_shuffle_and_fill_up(int64_t data, int64_t filling, uint16_t delta) { + return as_type(metal::simd_shuffle_and_fill_up( + as_type(data), as_type(filling), delta)); +} + +inline bool simd_shuffle_and_fill_up(bool data, bool filling, uint16_t delta) { + return simd_shuffle_and_fill_up( + static_cast(data), static_cast(filling), delta); +} + +inline complex64_t simd_shuffle_and_fill_up( + complex64_t data, + complex64_t filling, + uint16_t delta) { + return complex64_t( + simd_shuffle_and_fill_up(data.real, filling.real, delta), + simd_shuffle_and_fill_up(data.imag, filling.imag, delta)); +} + +inline uint64_t simd_shuffle(uint64_t data, uint16_t lane) { + return as_type(metal::simd_shuffle(as_type(data), lane)); +} + +inline int64_t simd_shuffle(int64_t data, uint16_t lane) { + return as_type(metal::simd_shuffle(as_type(data), lane)); +} + +inline bool simd_shuffle(bool data, uint16_t lane) { + return simd_shuffle(static_cast(data), lane); +} + +inline complex64_t simd_shuffle(complex64_t data, uint16_t lane) { + return complex64_t( + simd_shuffle(data.real, lane), simd_shuffle(data.imag, lane)); +} + +// std::conditional is not included with Metal +template +struct ConditionalType { + using type = U; +}; + +template +struct ConditionalType { + using type = T; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Type casting utils +/////////////////////////////////////////////////////////////////////////////// + +template +inline U cast_to(T val) { + return static_cast(val); +} + +template <> +inline bool cast_to(float val) { + return (as_type(val) & 0x7FFFFFFF) != 0; +} + +template <> +inline bool cast_to(bfloat16_t val) { + return (as_type(val) & 0x7FFF) != 0; +} + +template <> +inline bool cast_to(complex64_t val) { + return cast_to(val.real) || cast_to(val.imag); +} + +/////////////////////////////////////////////////////////////////////////////// + +// Copyright © 2025 Apple Inc. + +// Auto generated source for mlx/backend/metal/kernels/unary_ops.h + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/cexpf.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/cexpf.h" +// Copyright © 2025 Apple Inc. +// Copyright © 2008-2013 NVIDIA Corporation +// Copyright © 2013 Filipe RNC Maia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Forked from +// https://github.com/NVIDIA/cccl/blob/main/thrust/thrust/detail/complex/cexpf.h + +// TODO: We should use thrust::exp but the thrust header in old CUDA versions +// can not be used in JIT. + + +#include + +using ieee_float_shape_type = union { + float value; + uint32_t word; +}; + +inline void get_float_word(thread uint32_t& i, float d) { + ieee_float_shape_type gf_u; + gf_u.value = (d); + (i) = gf_u.word; +} + +inline void get_float_word(thread int32_t& i, float d) { + ieee_float_shape_type gf_u; + gf_u.value = (d); + (i) = gf_u.word; +} + +inline void set_float_word(thread float& d, uint32_t i) { + ieee_float_shape_type sf_u; + sf_u.word = (i); + (d) = sf_u.value; +} + +inline float frexp_expf(float x, thread int* expt) { + const uint32_t k = 235; + const float kln2 = 162.88958740F; + + float exp_x; + uint32_t hx; + + exp_x = metal::exp(x - kln2); + get_float_word(hx, exp_x); + *expt = (hx >> 23) - (0x7f + 127) + k; + set_float_word(exp_x, (hx & 0x7fffff) | ((0x7f + 127) << 23)); + return exp_x; +} + +inline complex64_t ldexp_cexpf(complex64_t z, int expt) { + float x, y, exp_x, scale1, scale2; + int ex_expt, half_expt; + + x = z.real; + y = z.imag; + exp_x = frexp_expf(x, &ex_expt); + expt += ex_expt; + + half_expt = expt / 2; + set_float_word(scale1, (0x7f + half_expt) << 23); + half_expt = expt - half_expt; + set_float_word(scale2, (0x7f + half_expt) << 23); + + return complex64_t{ + metal::cos(y) * exp_x * scale1 * scale2, + metal::sin(y) * exp_x * scale1 * scale2}; +} + +inline complex64_t cexpf(const thread complex64_t& z) { + float x, y, exp_x; + uint32_t hx, hy; + + const uint32_t exp_ovfl = 0x42b17218, cexp_ovfl = 0x43400074; + + x = z.real; + y = z.imag; + + get_float_word(hy, y); + hy &= 0x7fffffff; + + /* cexp(x + I 0) = exp(x) + I 0 */ + if (hy == 0) { + return complex64_t{metal::exp(x), y}; + } + get_float_word(hx, x); + /* cexp(0 + I y) = cos(y) + I sin(y) */ + if ((hx & 0x7fffffff) == 0) { + return complex64_t{metal::cos(y), metal::sin(y)}; + } + if (hy >= 0x7f800000) { + if ((hx & 0x7fffffff) != 0x7f800000) { + /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */ + return complex64_t{y - y, y - y}; + } else if (hx & 0x80000000) { + /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */ + return complex64_t{0.0, 0.0}; + } else { + /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */ + return complex64_t{x, y - y}; + } + } + + if (hx >= exp_ovfl && hx <= cexp_ovfl) { + /* + * x is between 88.7 and 192, so we must scale to avoid + * overflow in expf(x). + */ + return ldexp_cexpf(z, 0); + } else { + /* + * Cases covered here: + * - x < exp_ovfl and exp(x) won't overflow (common case) + * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0 + * - x = +-Inf (generated by exp()) + * - x = NaN (spurious inexact exception from y) + */ + exp_x = metal::exp(x); + return complex64_t{exp_x * metal::cos(y), exp_x * metal::sin(y)}; + } +} + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/expm1f.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/expm1f.h" +// Copyright © 2023 Apple Inc. + + +#include + +// Original license copied below: +// Copyright (c) 2015-2023 Norbert Juffa +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* Compute exponential base e minus 1. Maximum ulp error = 0.997458 + + i = rint(a/log(2)), f = a-i*log(2). Then expm1(a) = 2**i * (expm1(f)+1) - 1. + Compute r = expm1(f). Then expm1(a)= 2 * (0.5 * 2**i * r + 0.5 * 2**i - 0.5). + With t = 0.5*2**i, expm1(a) = 2*(r * t + t-0.5). However, for best accuracy, + when i == 1, expm1(a)= 2*(r + 0.5), and when i == 0, expm1(a) = r. + + NOTE: Scale factor b is only applied if i < 0 or i > 1 (should be power of 2) +*/ +float expm1f_scaled_unchecked(float a, float b) { + float f, j, r, s, t, u, v, x, y; + int i; + + // exp(a) = 2**i * exp(f); i = rintf (a / log(2)) + j = fma(1.442695f, a, 12582912.f); // 0x1.715476p0, 0x1.8p23 + j = j - 12582912.0f; // 0x1.8p23 + i = (int)j; + f = fma(j, -6.93145752e-1f, a); + + // approximate r = exp(f)-1 on interval [-log(2)/2, +log(2)/2] + s = f * f; + if (a == 0.0f) + s = a; // ensure -0 is passed through + // err = 0.997458 ulp1 = 11081805 + r = 1.97350979e-4f; // 0x1.9de000p-13 + r = fma(r, f, 1.39309070e-3f); // 0x1.6d30bcp-10 + r = fma(r, f, 8.33343994e-3f); // 0x1.1111f6p-7 + r = fma(r, f, 4.16668020e-2f); // 0x1.55559ep-5 + r = fma(r, f, 1.66666716e-1f); // 0x1.55555cp-3 + r = fma(r, f, 4.99999970e-1f); // 0x1.fffffep-2 + u = (j == 1) ? (f + 0.5f) : f; + v = fma(r, s, u); + s = 0.5f * b; + t = ldexp(s, i); + y = t - s; + x = (t - y) - s; // double-float canonicalization of difference + r = fma(v, t, x) + y; + r = r + r; + if (j == 0) + r = v; + if (j == 1) + r = v + v; + return r; +} + +/* Compute exponential base e minus 1. max ulp err = 0.99746 */ +float expm1f(float a) { + float r; + + r = expm1f_scaled_unchecked(a, 1.0f); + /* handle severe overflow and underflow */ + if (abs(a - 1.0f) > 88.0f) { + r = pow(2, a); + r = fma(r, r, -1.0f); + } + return r; +} + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/erf.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/erf.h" +// Copyright © 2023 Apple Inc. + +#include + +/* + * Approximation to the error function. + * Based on code from: + * https://stackoverflow.com/questions/35148198/efficient-faithfully-rounded-implementation-of-error-function-erff#answer-35148199 + */ +float erf(float a) { + float r, s, t, u; + t = metal::abs(a); + s = a * a; + if (t > 0.927734375f) { + // maximum error 0.99527 ulp + r = metal::fma( + -1.72853470e-5f, t, 3.83197126e-4f); // -0x1.220000p-16,0x1.91cfb2p-12 + u = metal::fma( + -3.88396438e-3f, t, 2.42546219e-2f); // -0x1.fd1438p-9, 0x1.8d6342p-6 + r = metal::fma(r, s, u); + r = metal::fma(r, t, -1.06777877e-1f); // -0x1.b55cb8p-4 + r = metal::fma(r, t, -6.34846687e-1f); // -0x1.450aa0p-1 + r = metal::fma(r, t, -1.28717512e-1f); // -0x1.079d0cp-3 + r = metal::fma(r, t, -t); + r = -expm1f(r); + r = metal::copysign(r, a); + } else { + // maximum error 0.98929 ulp + r = -5.96761703e-4f; // -0x1.38e000p-11 + r = metal::fma(r, s, 4.99119423e-3f); // 0x1.471a58p-8 + r = metal::fma(r, s, -2.67681349e-2f); // -0x1.b691b2p-6 + r = metal::fma(r, s, 1.12819925e-1f); // 0x1.ce1c44p-4 + r = metal::fma(r, s, -3.76125336e-1f); // -0x1.812700p-2 + r = metal::fma(r, s, 1.28379166e-1f); // 0x1.06eba8p-3 + r = metal::fma(r, a, a); + } + return r; +} + +float erfinv(float a) { + auto t = metal::fma(a, 0.0f - a, 1.0f); + t = metal::log(t); + float p; + if (metal::abs(t) > 6.125f) { // maximum ulp error = 2.35793 + p = 3.03697567e-10f; // 0x1.4deb44p-32 + p = metal::fma(p, t, 2.93243101e-8f); // 0x1.f7c9aep-26 + p = metal::fma(p, t, 1.22150334e-6f); // 0x1.47e512p-20 + p = metal::fma(p, t, 2.84108955e-5f); // 0x1.dca7dep-16 + p = metal::fma(p, t, 3.93552968e-4f); // 0x1.9cab92p-12 + p = metal::fma(p, t, 3.02698812e-3f); // 0x1.8cc0dep-9 + p = metal::fma(p, t, 4.83185798e-3f); // 0x1.3ca920p-8 + p = metal::fma(p, t, -2.64646143e-1f); // -0x1.0eff66p-2 + p = metal::fma(p, t, 8.40016484e-1f); // 0x1.ae16a4p-1 + } else { // maximum ulp error = 2.35002 + p = 5.43877832e-9f; // 0x1.75c000p-28 + p = metal::fma(p, t, 1.43285448e-7f); // 0x1.33b402p-23 + p = metal::fma(p, t, 1.22774793e-6f); // 0x1.499232p-20 + p = metal::fma(p, t, 1.12963626e-7f); // 0x1.e52cd2p-24 + p = metal::fma(p, t, -5.61530760e-5f); // -0x1.d70bd0p-15 + p = metal::fma(p, t, -1.47697632e-4f); // -0x1.35be90p-13 + p = metal::fma(p, t, 2.31468678e-3f); // 0x1.2f6400p-9 + p = metal::fma(p, t, 1.15392581e-2f); // 0x1.7a1e50p-7 + p = metal::fma(p, t, -2.32015476e-1f); // -0x1.db2aeep-3 + p = metal::fma(p, t, 8.86226892e-1f); // 0x1.c5bf88p-1 + } + return a * p; +} + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/fp8.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/fp8.h" + +struct fp8_e4m3 { + template + fp8_e4m3(T f) thread { + // From PyTorch + // https://github.com/pytorch/pytorch/blob/e3643e1e0e923f0fc063dfab6f45c956d568919d/c10/util/Float8_e4m3fn.h#L148 + uint32_t fp8_max = 543 << 21; + uint32_t denorm_mask = 141 << 23; + uint32_t f_bits = as_type(static_cast(f)); + uint32_t sign = f_bits & 0x80000000; + f_bits ^= sign; + if (f_bits >= fp8_max) { + // Default behavior saturates to min/max + bits = 0x7E; + } else { + if (f_bits < (121 << 23)) { + f_bits = as_type( + as_type(f_bits) + as_type(denorm_mask)); + bits = static_cast(f_bits - denorm_mask); + } else { + // resulting mantissa is odd + uint8_t mant_odd = (f_bits >> 20) & 1; + f_bits += ((uint32_t)(7 - 127) << 23) + 0x7FFFF; + f_bits += mant_odd; + bits = static_cast(f_bits >> 20); + } + } + bits |= static_cast(sign >> 24); + } + + operator float16_t() thread { + uint16_t v = (bits & 127) << 7; + half converted = as_type(v); + converted *= 256.0; + auto sign = bits & 128; + return (sign ? -converted : converted); + } + + operator bfloat16_t() thread { + return static_cast(this->operator float16_t()); + } + + operator float() thread { + return static_cast(this->operator float16_t()); + } + + uint8_t bits; +}; + +struct fp8_e8m0 { + fp8_e8m0(float x) thread { + if (!metal::isfinite(x)) { + bits = 0xFF; + return; + } + if (x < 0.0f) { + bits = 0x00; + return; + } + float le = metal::log2(x); + int n = int(metal::round(le)); + + n = n < -127 ? -127 : n; + n = n > 127 ? 127 : n; + bits = static_cast(n + 127); + } + + operator bfloat16_t() thread { + uint16_t out = (bits == 0 ? 0x40 : (static_cast(bits) << 7)); + return as_type(out); + } + + operator float() thread { + uint32_t out = (bits == 0 ? 0x400000 : (static_cast(bits) << 23)); + return as_type(out); + } + + uint8_t bits; +}; + +// Smallest E8M0 >= x. Scales are amax/max_element, so rounding one down +// leaves the block's largest elements outside the element range, where they +// saturate. Matches the CUDA backend, which rounds up via cutlass ue8m0. +inline float mx_scale_round_up(float x) { + fp8_e8m0 s(x); + if (s.bits < 0xFE && float(s) < x) { + s.bits += 1; + } + return float(s); +} + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/unary_ops.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/unary_ops.h" +// Copyright © 2023-2024 Apple Inc. + + +#include +#include + + +namespace { +constant float inf = metal::numeric_limits::infinity(); +} + +struct Abs { + template + T operator()(T x) thread { + return metal::abs(x); + }; + uint8_t operator()(uint8_t x) thread { + return x; + }; + uint16_t operator()(uint16_t x) thread { + return x; + }; + uint32_t operator()(uint32_t x) thread { + return x; + }; + uint64_t operator()(uint64_t x) thread { + return x; + }; + bool operator()(bool x) thread { + return x; + }; + complex64_t operator()(complex64_t x) thread { + return {metal::precise::sqrt(x.real * x.real + x.imag * x.imag), 0}; + }; +}; + +struct ArcCos { + template + T operator()(T x) thread { + return metal::precise::acos(x); + }; + + complex64_t operator()(complex64_t x) thread; +}; + +struct ArcCosh { + template + T operator()(T x) thread { + return metal::precise::acosh(x); + }; +}; + +struct ArcSin { + template + T operator()(T x) thread { + return metal::precise::asin(x); + }; + + complex64_t operator()(complex64_t x) thread; +}; + +struct ArcSinh { + template + T operator()(T x) thread { + return metal::precise::asinh(x); + }; +}; + +struct ArcTan { + template + T operator()(T x) thread { + return metal::precise::atan(x); + }; + + complex64_t operator()(complex64_t x) thread; +}; + +struct ArcTanh { + template + T operator()(T x) thread { + return metal::precise::atanh(x); + }; +}; + +struct BitwiseInvert { + template + T operator()(T x) thread { + return ~x; + }; +}; + +struct Ceil { + template + T operator()(T x) thread { + return metal::ceil(x); + }; + int8_t operator()(int8_t x) thread { + return x; + }; + int16_t operator()(int16_t x) thread { + return x; + }; + int32_t operator()(int32_t x) thread { + return x; + }; + int64_t operator()(int64_t x) thread { + return x; + }; + uint8_t operator()(uint8_t x) thread { + return x; + }; + uint16_t operator()(uint16_t x) thread { + return x; + }; + uint32_t operator()(uint32_t x) thread { + return x; + }; + uint64_t operator()(uint64_t x) thread { + return x; + }; + bool operator()(bool x) thread { + return x; + }; +}; + +struct Cos { + template + T operator()(T x) thread { + return metal::precise::cos(x); + }; + + complex64_t operator()(complex64_t x) thread { + return { + metal::precise::cos(x.real) * metal::precise::cosh(x.imag), + -metal::precise::sin(x.real) * metal::precise::sinh(x.imag)}; + }; +}; + +struct Cosh { + template + T operator()(T x) thread { + return metal::precise::cosh(x); + }; + + complex64_t operator()(complex64_t x) thread { + return { + metal::precise::cosh(x.real) * metal::precise::cos(x.imag), + metal::precise::sinh(x.real) * metal::precise::sin(x.imag)}; + }; +}; + +struct Conjugate { + complex64_t operator()(complex64_t x) thread { + return complex64_t{x.real, -x.imag}; + } +}; + +struct Erf { + template + T operator()(T x) thread { + return static_cast(erf(static_cast(x))); + }; +}; + +struct ErfInv { + template + T operator()(T x) thread { + return static_cast(erfinv(static_cast(x))); + }; +}; + +struct Exp { + template + T operator()(T x) thread { + return metal::precise::exp(x); + }; + complex64_t operator()(complex64_t x) thread { + return cexpf(x); + } +}; + +struct Expm1 { + template + T operator()(T x) thread { + return static_cast(expm1f(static_cast(x))); + }; +}; + +struct Floor { + template + T operator()(T x) thread { + return metal::floor(x); + }; + int8_t operator()(int8_t x) thread { + return x; + }; + int16_t operator()(int16_t x) thread { + return x; + }; + int32_t operator()(int32_t x) thread { + return x; + }; + int64_t operator()(int64_t x) thread { + return x; + }; + uint8_t operator()(uint8_t x) thread { + return x; + }; + uint16_t operator()(uint16_t x) thread { + return x; + }; + uint32_t operator()(uint32_t x) thread { + return x; + }; + uint64_t operator()(uint64_t x) thread { + return x; + }; + bool operator()(bool x) thread { + return x; + }; +}; + +struct Imag { + float operator()(complex64_t x) thread { + return x.imag; + }; +}; + +struct Log { + template + T operator()(T x) thread { + return metal::precise::log(x); + }; + + complex64_t operator()(complex64_t x) thread { + auto r = metal::precise::log(Abs{}(x).real); + auto i = metal::precise::atan2(x.imag, x.real); + return {r, i}; + }; +}; + +struct Log2 { + template + T operator()(T x) thread { + return metal::precise::log2(x); + }; + + complex64_t operator()(complex64_t x) thread { + auto y = Log{}(x); + return {y.real / M_LN2_F, y.imag / M_LN2_F}; + }; +}; + +struct Log10 { + template + T operator()(T x) thread { + return metal::precise::log10(x); + }; + + complex64_t operator()(complex64_t x) thread { + auto y = Log{}(x); + return {y.real / M_LN10_F, y.imag / M_LN10_F}; + }; +}; + +struct Log1p { + template + T operator()(T x) thread { + return log1p(x); + }; +}; + +struct LogicalNot { + template + T operator()(T x) thread { + return !x; + }; +}; + +struct Negative { + template + T operator()(T x) thread { + return -x; + }; +}; + +struct Real { + float operator()(complex64_t x) thread { + return x.real; + }; +}; + +struct Round { + template + T operator()(T x) thread { + return metal::rint(x); + }; + complex64_t operator()(complex64_t x) thread { + return {metal::rint(x.real), metal::rint(x.imag)}; + }; +}; + +struct Sigmoid { + template + T operator()(T x) thread { + auto y = 1 / (1 + metal::exp(metal::abs(x))); + return (x < 0) ? y : 1 - y; + } +}; + +struct Sign { + template + T operator()(T x) thread { + return (x > T(0)) - (x < T(0)); + }; + uint32_t operator()(uint32_t x) thread { + return x != 0; + }; + complex64_t operator()(complex64_t x) thread { + if (x == complex64_t(0)) { + return x; + } + return x / + (complex64_t)metal::precise::sqrt(x.real * x.real + x.imag * x.imag); + }; +}; + +struct Sin { + template + T operator()(T x) thread { + return metal::precise::sin(x); + }; + + complex64_t operator()(complex64_t x) thread { + return { + metal::precise::sin(x.real) * metal::precise::cosh(x.imag), + metal::precise::cos(x.real) * metal::precise::sinh(x.imag)}; + }; +}; + +struct Sinh { + template + T operator()(T x) thread { + return metal::precise::sinh(x); + }; + + complex64_t operator()(complex64_t x) thread { + return { + metal::precise::sinh(x.real) * metal::precise::cos(x.imag), + metal::precise::cosh(x.real) * metal::precise::sin(x.imag)}; + }; +}; + +struct Square { + template + T operator()(T x) thread { + return x * x; + }; +}; + +struct Sqrt { + template + T operator()(T x) thread { + return metal::precise::sqrt(x); + }; + + complex64_t operator()(complex64_t x) thread { + if (x.real == 0.0 && x.imag == 0.0) { + return {0.0, 0.0}; + } + auto r = Abs{}(x).real; + auto a = metal::precise::sqrt((r + x.real) / 2.0); + auto b_abs = metal::precise::sqrt((r - x.real) / 2.0); + auto b = metal::copysign(b_abs, x.imag); + return {a, b}; + } +}; + +struct Rsqrt { + template + T operator()(T x) thread { + return metal::precise::rsqrt(x); + }; + + complex64_t operator()(complex64_t x) thread { + return 1.0 / Sqrt{}(x); + } +}; + +struct Tan { + template + T operator()(T x) thread { + return metal::precise::tan(x); + }; + + complex64_t operator()(complex64_t x) thread { + float tan_a = metal::precise::tan(x.real); + float tanh_b = metal::precise::tanh(x.imag); + float t1 = tan_a * tanh_b; + float denom = 1. + t1 * t1; + return {(tan_a - tanh_b * t1) / denom, (tanh_b + tan_a * t1) / denom}; + }; +}; + +struct Tanh { + template + T operator()(T x) thread { + return metal::precise::tanh(x); + }; + + complex64_t operator()(complex64_t x) thread { + float tanh_a = metal::precise::tanh(x.real); + float tan_b = metal::precise::tan(x.imag); + float t1 = tanh_a * tan_b; + float denom = 1. + t1 * t1; + return {(tanh_a + tan_b * t1) / denom, (tan_b - tanh_a * t1) / denom}; + }; +}; + +complex64_t ArcCos::operator()(complex64_t x) thread { + auto i = complex64_t{0.0, 1.0}; + auto y = Log{}(x + i * Sqrt{}(1.0 - x * x)); + return {y.imag, -y.real}; +}; + +complex64_t ArcSin::operator()(complex64_t x) thread { + auto i = complex64_t{0.0, 1.0}; + auto y = Log{}(i * x + Sqrt{}(1.0 - x * x)); + return {y.imag, -y.real}; +}; + +complex64_t ArcTan::operator()(complex64_t x) thread { + auto i = complex64_t{0.0, 1.0}; + auto ix = i * x; + return (1.0 / complex64_t{0.0, 2.0}) * Log{}((1.0 + ix) / (1.0 - ix)); +}; + +struct ToFP8 { + template + uint8_t operator()(T f) thread { + return fp8_e4m3(f).bits; + } +}; + +struct FromFP8 { + float operator()(uint8_t x) thread { + return float(*(thread fp8_e4m3*)(&x)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Copyright © 2025 Apple Inc. + +// Auto generated source for mlx/backend/metal/kernels/binary_ops.h + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/binary_ops.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/binary_ops.h" +// Copyright © 2023-2024 Apple Inc. + + +#include +#include + +constant mlx::os_log logger("mlx", "binary_ops"); + +struct Add { + template + T operator()(T x, T y) thread { + return x + y; + } +}; + +struct FloorDivide { + template + metal::enable_if_t & !metal::is_signed_v, T> + operator()(T x, T y) thread { + return x / y; + } + template + metal::enable_if_t & metal::is_signed_v, T> + operator()(T x, T y) thread { + auto q = x / y; + if (x % y != 0 && (x < 0) != (y < 0)) { + q -= 1; + } + return q; + } + template + metal::enable_if_t, T> operator()(T x, T y) thread { + return floor(x / y); + } + template <> + complex64_t operator()(complex64_t x, complex64_t y) thread { + // Complex is not supported, simply make compiler happy. + return x / y; + } +}; + +struct Divide { + template + T operator()(T x, T y) thread { + return x / y; + } +}; + +struct Remainder { + template + metal::enable_if_t & !metal::is_signed_v, T> + operator()(T x, T y) thread { + return x % y; + } + template + metal::enable_if_t & metal::is_signed_v, T> + operator()(T x, T y) thread { + auto r = x % y; + if (r != 0 && (r < 0 != y < 0)) { + r += y; + } + return r; + } + template + metal::enable_if_t, T> operator()(T x, T y) thread { + T r = fmod(x, y); + if (r != 0 && (r < 0 != y < 0)) { + r += y; + } + return r; + } + template <> + complex64_t operator()(complex64_t x, complex64_t y) thread { + return x % y; + } +}; + +struct Equal { + template + bool operator()(T x, T y) thread { + return x == y; + } +}; + +struct NaNEqual { + template + bool operator()(T x, T y) thread { + return x == y || (metal::isnan(x) && metal::isnan(y)); + } + template <> + bool operator()(complex64_t x, complex64_t y) thread { + return x == y || + (metal::isnan(x.real) && metal::isnan(y.real) && metal::isnan(x.imag) && + metal::isnan(y.imag)) || + (x.real == y.real && metal::isnan(x.imag) && metal::isnan(y.imag)) || + (metal::isnan(x.real) && metal::isnan(y.real) && x.imag == y.imag); + } +}; + +struct Greater { + template + bool operator()(T x, T y) thread { + return x > y; + } +}; + +struct GreaterEqual { + template + bool operator()(T x, T y) thread { + return x >= y; + } +}; + +struct Less { + template + bool operator()(T x, T y) thread { + return x < y; + } +}; + +struct LessEqual { + template + bool operator()(T x, T y) thread { + return x <= y; + } +}; + +struct LogAddExp { + template + T operator()(T x, T y) thread { + if (metal::isnan(x) || metal::isnan(y)) { + return metal::numeric_limits::quiet_NaN(); + } + constexpr T inf = metal::numeric_limits::infinity(); + T maxval = metal::max(x, y); + T minval = metal::min(x, y); + return (minval == -inf || maxval == inf) + ? maxval + : (maxval + log1p(metal::exp(minval - maxval))); + }; + + complex64_t operator()(complex64_t x, complex64_t y) thread { + if (metal::isnan(x.real) || metal::isnan(x.imag) || metal::isnan(y.real) || + metal::isnan(y.imag)) { + return metal::numeric_limits::quiet_NaN(); + } + constexpr float inf = metal::numeric_limits::infinity(); + complex64_t maxval = x > y ? x : y; + complex64_t minval = x < y ? x : y; + if (minval.real == -inf || maxval.real == inf) + return maxval; + float m = metal::exp(minval.real - maxval.real); + complex64_t dexp{ + m * metal::cos(minval.imag - maxval.imag), + m * metal::sin(minval.imag - maxval.imag), + }; + return maxval + log1p(dexp); + } +}; + +struct Maximum { + template + metal::enable_if_t, T> operator()(T x, T y) thread { + return metal::max(x, y); + } + + template + metal::enable_if_t, T> operator()(T x, T y) thread { + if (metal::isnan(x)) { + return x; + } + return x > y ? x : y; + } + + template <> + complex64_t operator()(complex64_t x, complex64_t y) thread { + if (metal::isnan(x.real) || metal::isnan(x.imag)) { + return x; + } + return x > y ? x : y; + } +}; + +struct Minimum { + template + metal::enable_if_t, T> operator()(T x, T y) thread { + return metal::min(x, y); + } + + template + metal::enable_if_t, T> operator()(T x, T y) thread { + if (metal::isnan(x)) { + return x; + } + return x < y ? x : y; + } + + template <> + complex64_t operator()(complex64_t x, complex64_t y) thread { + if (metal::isnan(x.real) || metal::isnan(x.imag)) { + return x; + } + return x < y ? x : y; + } +}; + +struct Multiply { + template + T operator()(T x, T y) thread { + return x * y; + } +}; + +struct NotEqual { + template + bool operator()(T x, T y) thread { + return x != y; + } + template <> + bool operator()(complex64_t x, complex64_t y) thread { + return x.real != y.real || x.imag != y.imag; + } +}; + +struct Power { + template + metal::enable_if_t, T> operator()(T base, T exp) + thread { + return metal::pow(base, exp); + } + + template + metal::enable_if_t, T> operator()(T base, T exp) + thread { + T res = 1; + // Undefined to raise integer to negative power + if (exp < 0) { + logger.log_debug( + "int pow exp<0 (base=%ld exp=%ld)", (long)base, (long)exp); + return 0; + } + + while (exp) { + if (exp & 1) { + res *= base; + } + exp >>= 1; + base *= base; + } + return res; + } + + template <> + complex64_t operator()(complex64_t x, complex64_t y) thread { + if (x.real == 0 && x.imag == 0) { + if (metal::isnan(y.real) || metal::isnan(y.imag)) { + auto nan = metal::numeric_limits::quiet_NaN(); + return {nan, nan}; + } + return {0.0, 0.0}; + } + auto x_theta = metal::atan2(x.imag, x.real); + auto x_ln_r = 0.5 * metal::log(x.real * x.real + x.imag * x.imag); + auto mag = metal::exp(y.real * x_ln_r - y.imag * x_theta); + auto phase = y.imag * x_ln_r + y.real * x_theta; + return {mag * metal::cos(phase), mag * metal::sin(phase)}; + } +}; + +struct Subtract { + template + T operator()(T x, T y) thread { + return x - y; + } +}; + +struct LogicalAnd { + template + T operator()(T x, T y) thread { + return x && y; + }; +}; + +struct LogicalOr { + template + T operator()(T x, T y) thread { + return x || y; + }; +}; + +struct BitwiseAnd { + template + T operator()(T x, T y) thread { + return x & y; + }; +}; + +struct BitwiseOr { + template + T operator()(T x, T y) thread { + return x | y; + }; +}; + +struct BitwiseXor { + template + T operator()(T x, T y) thread { + return x ^ y; + }; +}; + +struct LeftShift { + template + T operator()(T x, T y) thread { + return x << y; + }; +}; + +struct RightShift { + template + T operator()(T x, T y) thread { + return x >> y; + }; +}; + +struct ArcTan2 { + template + T operator()(T y, T x) thread { + return metal::precise::atan2(y, x); + } +}; + +struct DivMod { + template + metal::array operator()(T x, T y) thread { + return {FloorDivide{}(x, y), Remainder{}(x, y)}; + }; +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Copyright © 2025 Apple Inc. + +// Auto generated source for mlx/backend/metal/kernels/ternary_ops.h + +/////////////////////////////////////////////////////////////////////////////// +// Contents from "mlx/backend/metal/kernels/ternary_ops.h" +/////////////////////////////////////////////////////////////////////////////// + +#line 1 "mlx/backend/metal/kernels/ternary_ops.h" +// Copyright © 2023-2024 Apple Inc. + + +struct Select { + template + T operator()(bool condition, T x, T y) thread { + return condition ? x : y; + } +}; + +/////////////////////////////////////////////////////////////////////////////// diff --git a/metal/mtplx-qsa-compiled-scalars.json b/metal/mtplx-qsa-compiled-scalars.json new file mode 100644 index 0000000..cae998b --- /dev/null +++ b/metal/mtplx-qsa-compiled-scalars.json @@ -0,0 +1,33 @@ +{ + "header_sha256": "2665a76463f3f6ee283c6a50b66e4a527318a114080b31441dfa900042097a39", + "clamp": { + "zero": { + "max_new": 512, + "max_start": 0, + "source_sha256": "fd56a2d3bd76649775e853a28c41bd2a290255c7efbe4df471c6ed5e557b474e", + "kernels": "[[host_name(\"Ei4IBroadcastBFi4ISubtractAEGi4IBroadcastCHi4IMaximumFGIi4IMinimumHDJi4OMinimumIG_VCCV_i4i4_13771019418134704434_contiguous\")]]\n[[kernel]] void Ei4IBroadcastBFi4ISubtractAEGi4IBroadcastCHi4IMaximumFGIi4IMinimumHDJi4OMinimumIG_VCCV_i4i4_13771019418134704434_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(512);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n int32_t tmp_F = cast_to(tmp_D);\n int32_t tmp_G = Subtract()(tmp_A, tmp_F);\n int32_t tmp_H = cast_to(tmp_E);\n int32_t tmp_I = Maximum()(tmp_G, tmp_H);\n int32_t tmp_J = Minimum()(tmp_I, tmp_B);\n int32_t tmp_C = Minimum()(tmp_J, tmp_H);\n C[index] = tmp_C;\n}\n" + }, + "equal": { + "max_new": 512, + "max_start": 512, + "source_sha256": "8f21de0cf23479618a4b0729740e197e50fec09f4f87fcb0caa8b8569ba8173a", + "kernels": "[[host_name(\"Ei4IBroadcastBFi4ISubtractAEGi4IBroadcastCHi4IMaximumFGIi4IMinimumHDJi4OMinimumIE_VCCV_i4i4_13771019418134704434_contiguous\")]]\n[[kernel]] void Ei4IBroadcastBFi4ISubtractAEGi4IBroadcastCHi4IMaximumFGIi4IMinimumHDJi4OMinimumIE_VCCV_i4i4_13771019418134704434_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(512);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n int32_t tmp_F = cast_to(tmp_D);\n int32_t tmp_G = Subtract()(tmp_A, tmp_F);\n int32_t tmp_H = cast_to(tmp_E);\n int32_t tmp_I = Maximum()(tmp_G, tmp_H);\n int32_t tmp_J = Minimum()(tmp_I, tmp_B);\n int32_t tmp_C = Minimum()(tmp_J, tmp_F);\n C[index] = tmp_C;\n}\n" + }, + "distinct": { + "max_new": 1, + "max_start": 1023, + "source_sha256": "15dd362325e0d9ea44a8646c29ed70c7f0ed53b1dcc9fe44b4f65fa4a11823e7", + "kernels": "[[host_name(\"Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous\")]]\n[[kernel]] void Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(1);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n auto tmp_F = static_cast(1023);\n int32_t tmp_G = cast_to(tmp_D);\n int32_t tmp_H = Subtract()(tmp_A, tmp_G);\n int32_t tmp_I = cast_to(tmp_E);\n int32_t tmp_J = Maximum()(tmp_H, tmp_I);\n int32_t tmp_K = Minimum()(tmp_J, tmp_B);\n int32_t tmp_L = cast_to(tmp_F);\n int32_t tmp_C = Minimum()(tmp_K, tmp_L);\n C[index] = tmp_C;\n}\n" + } + }, + "multiply": { + "source_sha256": "1cf792edbbd886d156b68f5082563d7335278c98ad8c996d547b19fd7cf125b0", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(4);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Multiply()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + "check_distinct": { + "max_new": 257, + "max_start": 255, + "source_sha256": "c952e6026e18bc5c5cc6f3b78852607d9efa8ce7a9b083d439515c95c1620ef9", + "kernels": "[[host_name(\"Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_7252438397961030063_contiguous\")]]\n[[kernel]] void Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_7252438397961030063_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(257);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n auto tmp_F = static_cast(255);\n int32_t tmp_G = cast_to(tmp_D);\n int32_t tmp_H = Subtract()(tmp_A, tmp_G);\n int32_t tmp_I = cast_to(tmp_E);\n int32_t tmp_J = Maximum()(tmp_H, tmp_I);\n int32_t tmp_K = Minimum()(tmp_J, tmp_B);\n int32_t tmp_L = cast_to(tmp_F);\n int32_t tmp_C = Minimum()(tmp_K, tmp_L);\n C[index] = tmp_C;\n}\n" + } +} diff --git a/metal/mtplx-qsa-select.json b/metal/mtplx-qsa-select.json new file mode 100644 index 0000000..9b31186 --- /dev/null +++ b/metal/mtplx-qsa-select.json @@ -0,0 +1,45 @@ +{ + "revision": "e652d55e2652137a4abcf1312357abbf3eb9d692", + "file_sha256": "a3c74af27a7045c12f2893a8b7a91724c00d8a4148315c3165f3480c83016cf3", + "header": "\n#include \nusing namespace metal;\n\n// Total order for the block/dense output network: selected blocks by\n// ascending id, followed by invalid/padded lanes.\ninline bool qsa_index_before(\n uint a_index, bool a_valid, uint b_index, bool b_valid) {\n if (a_valid != b_valid) {\n return a_valid;\n }\n return a_index < b_index;\n}\n\n// MLX's Metal ArgPartition currently delegates to its stable ascending merge\n// sort. The v2.10 rows-gather lane consumes the final K indices directly, so\n// its selected valid blocks appear in ascending adjusted-score order. Equal\n// values preserve input order, which is ascending block id. Keep invalid\n// lanes after valid lanes inside the network; the epilogue places the exact\n// number of selected masked fillers before the winners.\ninline bool qsa_row_score_before(\n float a_score,\n uint a_index,\n bool a_valid,\n float b_score,\n uint b_index,\n bool b_valid) {\n if (a_valid != b_valid) {\n return a_valid;\n }\n if (!a_valid) {\n return a_index < b_index;\n }\n bool a_nan = metal::isnan(a_score);\n bool b_nan = metal::isnan(b_score);\n if (a_nan || b_nan) {\n if (a_nan != b_nan) {\n return !a_nan;\n }\n return a_index < b_index;\n }\n if (a_score < b_score) {\n return true;\n }\n if (b_score < a_score) {\n return false;\n }\n return a_index < b_index;\n}\n\n// Monotonic IEEE-754 mapping: numerically larger finite floats produce larger\n// unsigned keys. Appending the block id makes the 64-bit key unique and mirrors\n// v2.10's stable ascending GPU sort followed by a final-K slice: if the\n// 1e-12 adjustment itself rounds away, the later/higher id wins the cutoff.\ninline uint qsa_float_order_key(float value) {\n const uint bits = as_type(value);\n return (bits & 0x80000000u) != 0 ? ~bits : (bits ^ 0x80000000u);\n}\n\ninline ulong qsa_composite_key(float adjusted_score, uint block_id) {\n return (ulong(qsa_float_order_key(adjusted_score)) << 32) |\n ulong(block_id);\n}\n\n// MLX's NAX float32 GEMM path truncates each operand to a 10-bit mantissa\n// before fp32 accumulation, but the legacy GEMV route remains full fp32.\n// A uniform runtime mask mirrors that eager-matmul contract without adding a\n// query-row or logical-history specialization to the Python kernel cache.\ninline float qsa_mlx_gemm_operand(float value, uint operand_mask) {\n return as_type(as_type(value) & operand_mask);\n}\n", + "body": "\n const uint row = threadgroup_position_in_grid.x;\n const uint lane = thread_position_in_threadgroup.x;\n const int qpos = pos_start[0] + int(row);\n const int total = total_tokens[0];\n const int logical_value = logical_blocks[0];\n const uint logical = logical_value > 0\n ? metal::min(uint(logical_value), BACKING_BLOCKS)\n : 0u;\n // Mirror Matmul::eval_gpu's check_transpose + batch-collapse route.\n // A non-f32 astype materializes contiguous storage. For an existing\n // f32 view, check_transpose preserves recognized row/transposed\n // layouts and copies anything else. A copied operand is contiguous;\n // a copied broadcast B, however, no longer has a zero S-batch stride\n // and prevents folding S into M. When folding does not happen, M is\n // HEADS. MLX sends min(M,N)==1 to full-fp32 GEMV before NAX/TF32.\n const bool q_is_vector = HEADS == 1u;\n const bool q_kept_untransposed = Q_INPUT_IS_FLOAT32 &&\n q_strides[3] == 1u &&\n (!q_is_vector || q_strides[2] == HEAD_DIM);\n const bool q_kept_transposed = Q_INPUT_IS_FLOAT32 &&\n !q_kept_untransposed && q_strides[2] == 1u &&\n (!q_is_vector || q_strides[3] == HEADS);\n const bool q_copied =\n !Q_INPUT_IS_FLOAT32 ||\n (!q_kept_untransposed && !q_kept_transposed);\n const bool q_batch_contiguous = q_copied ||\n (q_kept_untransposed && q_strides[2] == HEAD_DIM &&\n q_strides[1] == size_t(HEADS) * HEAD_DIM);\n\n // pooled:[1,N,D] is swapped to B:[1,1,D,N]. For N>1 its two\n // recognized matrix layouts correspond to either original stride\n // being one. Otherwise check_transpose copies the broadcast view.\n const bool pooled_kept = !POOLED_INPUT_IS_FLOAT32 ||\n pooled_strides[1] == 1u || pooled_strides[2] == 1u;\n const bool collapse_s_into_m = q_shape[1] > 1u &&\n !q_kept_transposed && q_batch_contiguous && pooled_kept;\n const bool effective_m_gt_one =\n HEADS > 1u || collapse_s_into_m;\n const bool use_tf32_operands = ENABLE_TF32 &&\n effective_m_gt_one && logical > 1u;\n const uint gemm_operand_mask =\n use_tf32_operands ? 0xffffe000u : 0xffffffffu;\n const int complete_value = (qpos + 1) / int(RATIO);\n const uint complete = complete_value > 0 ? uint(complete_value) : 0u;\n const uint valid_count = metal::min(logical, complete);\n\n threadgroup float exchange_scores[WIDTH];\n threadgroup uint exchange_indices[WIDTH];\n threadgroup uchar exchange_valid[WIDTH];\n threadgroup atomic_uint radix_histogram[RADIX_BINS];\n threadgroup atomic_uint selected_count;\n threadgroup ulong radix_prefix;\n threadgroup uint radix_rank;\n threadgroup ulong threshold_key;\n\n // Score every visible complete block once. The scratch output keeps\n // those fp32 adjusted scores available to all eight radix passes\n // without recomputing HEADS*HEAD_DIM dot products. Only the visible\n // prefix is written/read; backing capacity does not tax an early row.\n const size_t scratch_base = (size_t)row * BACKING_BLOCKS;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n float score_sum = 0.0f;\n for (uint head = 0; head < HEADS; ++head) {\n float dot = 0.0f;\n const size_t q_base =\n (size_t)row * q_strides[1] +\n (size_t)head * q_strides[2];\n const size_t pooled_base =\n (size_t)block * pooled_strides[1];\n for (uint dim = 0; dim < HEAD_DIM; ++dim) {\n const float q_value = qsa_mlx_gemm_operand(\n float(q[q_base + (size_t)dim * q_strides[3]]),\n gemm_operand_mask);\n const float k_value = qsa_mlx_gemm_operand(\n float(pooled[\n pooled_base + (size_t)dim * pooled_strides[2]]),\n gemm_operand_mask);\n dot += q_value * k_value;\n }\n score_sum += metal::max(dot, 0.0f);\n }\n const float score = score_sum / SQRT_HEAD_DIM;\n const float adjusted = score - float(block) * 1.0e-12f;\n score_scratch[scratch_base + block] = adjusted;\n }\n threadgroup_barrier(\n mem_flags::mem_threadgroup | mem_flags::mem_device);\n\n // Select the Kth largest strict composite key a byte at a time. Each\n // pass scans only candidates matching the already-selected high-byte\n // prefix. The rank is relative to that prefix bucket.\n const uint k_eff = metal::min(TOP_K, valid_count);\n if (lane == 0) {\n radix_prefix = 0ul;\n radix_rank = k_eff > 0 ? k_eff - 1 : 0;\n threshold_key = 0xfffffffffffffffful;\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (k_eff > 0) {\n for (uint pass = 0; pass < 8; ++pass) {\n if (lane < RADIX_BINS) {\n atomic_store_explicit(\n &radix_histogram[lane], 0u, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const uint shift = 56u - pass * 8u;\n const ulong prefix = radix_prefix;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n const float adjusted = score_scratch[scratch_base + block];\n const ulong key = qsa_composite_key(adjusted, block);\n bool prefix_matches = true;\n if (pass > 0) {\n prefix_matches = (key >> (shift + 8u)) == prefix;\n }\n if (prefix_matches) {\n const uint digit = uint((key >> shift) & 0xfful);\n atomic_fetch_add_explicit(\n &radix_histogram[digit], 1u, memory_order_relaxed);\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (lane == 0) {\n uint rank = radix_rank;\n uint chosen = 0;\n for (int digit = 255; digit >= 0; --digit) {\n const uint count = atomic_load_explicit(\n &radix_histogram[uint(digit)], memory_order_relaxed);\n if (rank < count) {\n chosen = uint(digit);\n break;\n }\n rank -= count;\n }\n radix_prefix = (radix_prefix << 8) | ulong(chosen);\n radix_rank = rank;\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n }\n if (lane == 0) {\n threshold_key = radix_prefix;\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n // Compact the exact winners into WIDTH-sized threadgroup storage. The\n // atomic arrival order is irrelevant: the following bitonic network\n // establishes the mode's deterministic output order.\n exchange_scores[lane] = -INFINITY;\n exchange_indices[lane] = 0xffffffffu;\n exchange_valid[lane] = 0;\n if (lane == 0) {\n atomic_store_explicit(\n &selected_count, 0u, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n if (k_eff > 0) {\n const ulong threshold = threshold_key;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n const float adjusted = score_scratch[scratch_base + block];\n if (qsa_composite_key(adjusted, block) >= threshold) {\n const uint slot = atomic_fetch_add_explicit(\n &selected_count, 1u, memory_order_relaxed);\n if (slot < TOP_K) {\n exchange_scores[slot] = adjusted;\n exchange_indices[slot] = block;\n exchange_valid[slot] = 1;\n }\n }\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n uint my_index = exchange_indices[lane];\n bool my_valid = exchange_valid[lane] != 0;\n float my_score = exchange_scores[lane];\n for (uint sequence = 2; sequence <= WIDTH; sequence <<= 1) {\n for (uint stride = sequence >> 1; stride > 0; stride >>= 1) {\n exchange_scores[lane] = my_score;\n exchange_indices[lane] = my_index;\n exchange_valid[lane] = my_valid ? 1 : 0;\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const uint partner = lane ^ stride;\n const float other_score = exchange_scores[partner];\n const uint other_index = exchange_indices[partner];\n const bool other_valid = exchange_valid[partner] != 0;\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const bool is_lower = (lane & stride) == 0;\n const float a_score = is_lower ? my_score : other_score;\n const uint a_index = is_lower ? my_index : other_index;\n const bool a_valid = is_lower ? my_valid : other_valid;\n const float b_score = is_lower ? other_score : my_score;\n const uint b_index = is_lower ? other_index : my_index;\n const bool b_valid = is_lower ? other_valid : my_valid;\n\n const bool lower_wants_before = (lane & sequence) == 0;\n const bool b_before_a = ROW_TOKEN_MODE\n ? qsa_row_score_before(\n b_score, b_index, b_valid,\n a_score, a_index, a_valid)\n : qsa_index_before(\n b_index, b_valid, a_index, a_valid);\n const bool a_before_b = ROW_TOKEN_MODE\n ? qsa_row_score_before(\n a_score, a_index, a_valid,\n b_score, b_index, b_valid)\n : qsa_index_before(\n a_index, a_valid, b_index, b_valid);\n const bool swap = lower_wants_before ? b_before_a : a_before_b;\n if (swap) {\n my_score = is_lower ? b_score : a_score;\n my_index = is_lower ? b_index : a_index;\n my_valid = is_lower ? b_valid : a_valid;\n }\n }\n }\n ", + "header_sha256": "d4fc7c3a7aabf30fb070dfbcd08c88dbd58203671ed08a5d7c2ba7d255641221", + "body_sha256": "4af0dfa74e39b513470bc59980ededebfb081860676ed4a7197b8bd22ab3e8a8", + "epilogues": { + "blocks": { + "outputs": [ + "block_ids", + "block_valid", + "adjusted_scores" + ], + "source": "\n if (lane < TOP_K) {\n const bool ok = my_valid;\n const size_t out_at = (size_t)row * TOP_K + lane;\n block_ids[out_at] = ok ? int(my_index) : 0;\n block_valid[out_at] = ok;\n adjusted_scores[out_at] = ok ? my_score : -INFINITY;\n }\n ", + "sha256": "dea9615acddef6faf699262289e4c52c075cfc4bc9b9ecfa12676cb6d8dccf44" + }, + "dense_mask": { + "outputs": [ + "dense_mask" + ], + "source": "\n // First establish the visible incomplete tail (and clear both skipped\n // blocks and capacity beyond runtime T) in O(T/WIDTH) work per lane.\n for (int token = int(lane); token < int(OUTPUT_TOKENS); token += WIDTH) {\n const bool in_tail = token >= int(complete * RATIO);\n const bool causal = token < total && token <= qpos;\n dense_mask[(size_t)row * OUTPUT_TOKENS + token] =\n in_tail && causal;\n }\n threadgroup_barrier(mem_flags::mem_device);\n\n // Then mark each selected complete block. Sorted selected lanes own\n // disjoint blocks, so these writes cannot race with one another.\n if (lane < TOP_K && my_valid) {\n const uint token0 = my_index * RATIO;\n for (uint within = 0; within < RATIO; ++within) {\n const uint token = token0 + within;\n if (token < OUTPUT_TOKENS && int(token) < total &&\n int(token) <= qpos) {\n dense_mask[(size_t)row * OUTPUT_TOKENS + token] = true;\n }\n }\n }\n ", + "sha256": "b36dd77cf4726d26236ebfd61924c198a1588e1ce3e04078c192d20931264073" + }, + "row_tokens": { + "outputs": [ + "token_ids", + "token_valid" + ], + "source": "\n exchange_indices[lane] = my_index;\n exchange_valid[lane] = my_valid ? 1 : 0;\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n constexpr uint BLOCK_TOKEN_SLOTS = TOP_K * RATIO;\n constexpr uint ROW_TOKEN_SLOTS = BLOCK_TOKEN_SLOTS + RATIO;\n const size_t out_base = (size_t)row * ROW_TOKEN_SLOTS;\n for (uint slot = lane; slot < ROW_TOKEN_SLOTS; slot += WIDTH) {\n int token = 0;\n bool ok = false;\n if (slot < BLOCK_TOKEN_SLOTS) {\n const uint block_slot = slot / RATIO;\n const uint in_block = slot % RATIO;\n // The eager GPU argpartition is a full stable ascending sort,\n // sliced to its final min(K, logical) entries. When a row\n // sees fewer than K complete blocks, selected -inf fillers\n // therefore precede the finite winners. If logical= invalid_prefix &&\n block_slot < invalid_prefix + k_eff;\n const uint winner = block_slot >= invalid_prefix\n ? block_slot - invalid_prefix\n : 0u;\n ok = winner_slot && exchange_valid[winner] != 0;\n if (ok) {\n token = int(exchange_indices[winner] * RATIO + in_block);\n }\n } else {\n const uint in_tail = slot - BLOCK_TOKEN_SLOTS;\n token = int(complete * RATIO + in_tail);\n ok = token <= qpos;\n }\n token_ids[out_base + slot] = ok ? token : 0;\n token_valid[out_base + slot] = ok;\n }\n ", + "sha256": "e64f3e99e480faab4ad2cafdf39e594a5a9766beba367f349ec8c47d57b71ca3" + } + }, + "prefill": { + "file_sha256": "4d6fd428243c001746f69f8aed45991356772c2bd4a45586eb3c6813c91998d3", + "mpp_header": "\n#include \nusing namespace metal;\n\nconstant constexpr uint QSA_SCORE_HEADS = 4;\nconstant constexpr uint QSA_SCORE_HEAD_DIM = 128;\nconstant constexpr uint QSA_SCORE_QUERY_TILE = 16;\nconstant constexpr uint QSA_SCORE_KEY_TILE = 32;\nconstant constexpr uint QSA_SCORE_QUERIES_PER_SIMDGROUP = 4;\nconstant constexpr uint QSA_SCORE_SIMDGROUPS = 4;\nconstant constexpr uint QSA_SCORE_THREADS = 128;\nconstant constexpr uint QSA_SCORE_K_FRAGMENTS = 8;\nconstant constexpr float QSA_SCORE_SQRT_HEAD_DIM = 11.313708498984761f;\n\n// Metal 4's 16x32x16 cooperative fragment maps each lane to two rows eight\n// apart and four adjacent columns. This is the same proven map used by MLX's\n// NAX tiles and mtplx/kernels/sdpa_nax_tile.py.\ninline short2 qsa_score_nax_coord(ushort lane) {\n const short qid = short(lane >> 2);\n const short fragment_row =\n ((qid & 4) | ((short(lane) >> 1) & 3));\n const short fragment_col =\n ((qid & 2) | (short(lane) & 1)) * 4;\n return short2{fragment_col, fragment_row};\n}\n", + "mpp_body": "\n const uint tid = thread_position_in_threadgroup.x;\n const uint simdgroup = tid >> 5;\n const ushort lane = ushort(tid & 31u);\n const uint rows = q_shape[1];\n const uint blocks = pooled_shape[1];\n const uint key_tiles = (blocks + QSA_SCORE_KEY_TILE - 1u) /\n QSA_SCORE_KEY_TILE;\n const uint tile = threadgroup_position_in_grid.x;\n const uint query_tile = tile / key_tiles;\n const uint key_tile = tile - query_tile * key_tiles;\n const uint query0 =\n query_tile * QSA_SCORE_QUERY_TILE +\n simdgroup * QSA_SCORE_QUERIES_PER_SIMDGROUP;\n const uint block0 = key_tile * QSA_SCORE_KEY_TILE;\n\n // Four simdgroups share one [32,128] pooled-key tile (8 KiB for fp16 or\n // bf16). Each key is therefore fetched once per sixteen output query rows,\n // rather than once per head or per query row.\n threadgroup InT pooled_tile[QSA_SCORE_KEY_TILE * QSA_SCORE_HEAD_DIM];\n constexpr uint VECTORS_PER_KEY = QSA_SCORE_HEAD_DIM / 4u;\n constexpr uint TILE_VECTORS = QSA_SCORE_KEY_TILE * VECTORS_PER_KEY;\n for (uint item = tid; item < TILE_VECTORS; item += QSA_SCORE_THREADS) {\n const uint key_local = item / VECTORS_PER_KEY;\n const uint dim4 = item - key_local * VECTORS_PER_KEY;\n const uint block = block0 + key_local;\n vec values = vec(InT(0));\n if (block < blocks) {\n const int64_t source =\n int64_t(block) * pooled_strides[1] +\n int64_t(dim4 * 4u) * pooled_strides[2];\n // Source layout is intentionally not guessed on the host. MLX\n // injects the real strides for this invocation; scalar gathers\n // also avoid imposing an unobservable vec4 base-alignment\n // contract on sliced/as_strided views. Contiguous lanes remain\n // adjacent and can still be coalesced by the compiler/hardware.\n for (uint elem = 0u; elem < 4u; ++elem) {\n values[elem] = pooled[\n source + int64_t(elem) * pooled_strides[2]];\n }\n }\n const uint destination =\n key_local * QSA_SCORE_HEAD_DIM + dim4 * 4u;\n for (uint elem = 0u; elem < 4u; ++elem) {\n pooled_tile[destination + elem] = values[elem];\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n constexpr auto descriptor = mpp::tensor_ops::matmul2d_descriptor(\n 16, 32, 16, false, true, true,\n mpp::tensor_ops::matmul2d_descriptor::mode::multiply_accumulate);\n mpp::tensor_ops::matmul2d matmul;\n auto left = matmul.get_left_input_cooperative_tensor();\n auto right = matmul.get_right_input_cooperative_tensor();\n auto accumulator = matmul.get_destination_cooperative_tensor<\n decltype(left), decltype(right), float>();\n\n constexpr short ELEMENTS_PER_FRAGMENT = 8;\n constexpr short ELEMENT_COLUMNS = 4;\n constexpr short ELEMENT_ROW_JUMP = 8;\n const short2 coordinate = qsa_score_nax_coord(lane);\n for (short item = 0; item < 2 * ELEMENTS_PER_FRAGMENT; ++item) {\n accumulator[item] = 0.0f;\n }\n\n // A's sixteen rows are head-major [h0:q0..q3, h1:q0..q3, ...].\n // This layout makes lane^16 pair the h0/h2 carrier with h1/h3 for the\n // same query and output columns after the TensorOp completes.\n for (uint k_frag = 0u;\n k_frag < QSA_SCORE_K_FRAGMENTS;\n ++k_frag) {\n for (short row_part = 0; row_part < 2; ++row_part) {\n const uint matrix_row =\n uint(coordinate.y + row_part * ELEMENT_ROW_JUMP);\n const uint head = matrix_row / QSA_SCORE_QUERIES_PER_SIMDGROUP;\n const uint query_local =\n matrix_row - head * QSA_SCORE_QUERIES_PER_SIMDGROUP;\n const uint query = query0 + query_local;\n vec values = vec(InT(0));\n if (query < rows) {\n const int64_t source =\n int64_t(query) * q_strides[1] +\n int64_t(head) * q_strides[2] +\n int64_t(k_frag * 16u + uint(coordinate.x)) *\n q_strides[3];\n for (uint elem = 0u; elem < 4u; ++elem) {\n values[elem] = q[\n source + int64_t(elem) * q_strides[3]];\n }\n }\n for (short elem = 0; elem < ELEMENT_COLUMNS; ++elem) {\n left[row_part * ELEMENT_COLUMNS + elem] = values[elem];\n }\n }\n\n for (short key_half = 0; key_half < 2; ++key_half) {\n for (short row_part = 0; row_part < 2; ++row_part) {\n const uint key_local = uint(\n key_half * 16 + coordinate.y +\n row_part * ELEMENT_ROW_JUMP);\n const uint source =\n key_local * QSA_SCORE_HEAD_DIM +\n k_frag * 16u + uint(coordinate.x);\n const threadgroup vec* source4 =\n reinterpret_cast*>(\n pooled_tile + source);\n const vec values = source4[0];\n for (short elem = 0; elem < ELEMENT_COLUMNS; ++elem) {\n right[\n key_half * ELEMENTS_PER_FRAGMENT +\n row_part * ELEMENT_COLUMNS + elem] = values[elem];\n }\n }\n }\n matmul.run(left, right, accumulator);\n }\n\n // For a lane with bit 4 clear, row_part 0 carries h0 and row_part 1\n // carries h2. lane^16 carries h1 and h3 for exactly the same query and\n // four output columns. Apply ReLU before the strictly h0,h1,h2,h3-ordered\n // float32 sum, matching the eager expression's reduction contract.\n for (short key_half = 0; key_half < 2; ++key_half) {\n for (short elem = 0; elem < ELEMENT_COLUMNS; ++elem) {\n const float head0_or_1 = metal::max(\n accumulator[key_half * ELEMENTS_PER_FRAGMENT + elem], 0.0f);\n const float head2_or_3 = metal::max(\n accumulator[\n key_half * ELEMENTS_PER_FRAGMENT +\n ELEMENT_COLUMNS + elem],\n 0.0f);\n const float paired_head1_or_0 =\n simd_shuffle_xor(head0_or_1, ushort(16));\n const float paired_head3_or_2 =\n simd_shuffle_xor(head2_or_3, ushort(16));\n if ((lane & 16u) == 0u) {\n const uint query = query0 + uint(coordinate.y);\n const uint block =\n block0 + uint(key_half * 16 + coordinate.x + elem);\n if (query < rows && block < blocks) {\n const float head_sum =\n ((head0_or_1 + paired_head1_or_0) + head2_or_3) +\n paired_head3_or_2;\n scores[size_t(query) * blocks + block] =\n head_sum / QSA_SCORE_SQRT_HEAD_DIM;\n }\n }\n }\n }\n", + "topk_header": "\nconstant constexpr uint BACKING_BLOCKS = @blocks@;\nconstant constexpr uint TOP_K = @topk@;\nconstant constexpr uint RATIO = @ratio@;\nconstant constexpr uint WIDTH = @width@;\nconstant constexpr uint RADIX_BINS = @_RADIX_BINS@;\nconstant constexpr uint FINAL_CANDIDATES = @_FINAL_CANDIDATES@;\nconstant constexpr uint INSERTION_CANDIDATES = @_INSERTION_CANDIDATES@;\nconstant constexpr uint RADIX_PASSES = 6;\nconstant constexpr uint OUTPUT_TOKENS = @output_tokens@;\nconstant constexpr bool ROW_TOKEN_MODE = @str(mode == 'row_tokens').lower()@;\n\ninline uint qsa_prefill_radix_shift(uint pass) {\n return pass == 0u ? 53u\n : pass == 1u ? 42u\n : pass == 2u ? 31u\n : pass == 3u ? 20u\n : pass == 4u ? 9u\n : 0u;\n}\n\ninline uint qsa_prefill_radix_bits(uint pass) {\n return pass < 5u ? 11u : 9u;\n}\n", + "topk_body": "\n const uint row = threadgroup_position_in_grid.x;\n const uint lane = thread_position_in_threadgroup.x;\n const int qpos = pos_start[0] + int(row);\n const int total = total_tokens[0];\n const int logical_value = logical_blocks[0];\n const uint logical = logical_value > 0\n ? metal::min(uint(logical_value), BACKING_BLOCKS)\n : 0u;\n const int complete_value = (qpos + 1) / int(RATIO);\n const uint complete = complete_value > 0 ? uint(complete_value) : 0u;\n const uint valid_count = metal::min(logical, complete);\n const uint k_eff = metal::min(TOP_K, valid_count);\n const size_t score_base = (size_t)row * BACKING_BLOCKS;\n\n threadgroup float exchange_scores[WIDTH];\n threadgroup uint exchange_indices[WIDTH];\n threadgroup uchar exchange_valid[WIDTH];\n threadgroup atomic_uint radix_histogram[RADIX_BINS];\n threadgroup ulong final_candidate_keys[FINAL_CANDIDATES];\n threadgroup atomic_uint selected_count;\n threadgroup atomic_uint final_candidate_count;\n threadgroup uint final_candidate_total;\n threadgroup ulong radix_prefix;\n threadgroup uint radix_rank;\n threadgroup uint radix_done;\n threadgroup uint radix_final_shift;\n threadgroup uint radix_next_pass;\n threadgroup ulong threshold_key;\n\n // Find a <=2048-item bucket containing the Kth-largest strict\n // (adjusted-float, block-id) key. Six high-to-low radix digits cover\n // all 64 bits as 11/11/11/11/11/9. Usually the first 11-bit pass is\n // already selective enough; unlike the decode selector, prefill never\n // performs eight unconditional full-row byte scans.\n if (lane == 0) {\n radix_prefix = 0ul;\n radix_rank = k_eff > 0 ? k_eff - 1 : 0;\n radix_done = k_eff > 0 ? 0u : 1u;\n radix_final_shift = 0u;\n radix_next_pass = 0u;\n threshold_key = 0xfffffffffffffffful;\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (k_eff > 0) {\n for (uint pass = 0; pass < RADIX_PASSES; ++pass) {\n if (radix_done == 0u) {\n for (uint bin = lane; bin < RADIX_BINS; bin += WIDTH) {\n atomic_store_explicit(\n &radix_histogram[bin], 0u, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const uint shift = qsa_prefill_radix_shift(pass);\n const uint bits = qsa_prefill_radix_bits(pass);\n const uint digit_mask = (1u << bits) - 1u;\n const ulong prefix = radix_prefix;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n const float adjusted =\n scores[score_base + block] - float(block) * 1.0e-12f;\n const ulong key = qsa_composite_key(adjusted, block);\n const bool prefix_matches = pass == 0\n ? true\n : (key >> (shift + bits)) == prefix;\n if (prefix_matches) {\n const uint digit = uint((key >> shift) & digit_mask);\n atomic_fetch_add_explicit(\n &radix_histogram[digit], 1u,\n memory_order_relaxed);\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (lane == 0) {\n uint rank = radix_rank;\n uint chosen = 0;\n uint chosen_count = 0;\n const int max_digit = int(digit_mask);\n for (int digit = max_digit; digit >= 0; --digit) {\n const uint count = atomic_load_explicit(\n &radix_histogram[uint(digit)],\n memory_order_relaxed);\n if (rank < count) {\n chosen = uint(digit);\n chosen_count = count;\n break;\n }\n rank -= count;\n }\n radix_prefix = (radix_prefix << bits) | ulong(chosen);\n radix_rank = rank;\n radix_final_shift = shift;\n radix_next_pass = pass + 1u;\n if (chosen_count <= FINAL_CANDIDATES) {\n radix_done = 1u;\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n }\n // All lanes observe radix_done uniformly before the next pass.\n threadgroup_barrier(mem_flags::mem_threadgroup);\n }\n\n // Collect only the final threshold bucket. The adaptive descent\n // guarantees that its cardinality is at most FINAL_CANDIDATES.\n if (lane == 0) {\n atomic_store_explicit(\n &final_candidate_count, 0u, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const ulong final_prefix = radix_prefix;\n const uint final_shift = radix_final_shift;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n const float adjusted =\n scores[score_base + block] - float(block) * 1.0e-12f;\n const ulong key = qsa_composite_key(adjusted, block);\n if ((key >> final_shift) == final_prefix) {\n const uint slot = atomic_fetch_add_explicit(\n &final_candidate_count, 1u, memory_order_relaxed);\n if (slot < FINAL_CANDIDATES) {\n final_candidate_keys[slot] = key;\n }\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (lane == 0) {\n final_candidate_total = atomic_load_explicit(\n &final_candidate_count, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n // vLLM's prefill selector uses insertion for the common small-row\n // regime and radix work for the long-row regime. Make the same\n // choice from the actual threshold-bucket cardinality: insertion\n // is capped at 64 candidates (at most 4096 key comparisons), while\n // a larger bucket finishes the remaining 64-bit radix digits over\n // at most 2048 resident keys. This avoids both an O(2048^2) tail\n // and a padded 2048-key bitonic network's 66 barriers.\n const uint candidate_count = final_candidate_total;\n if (candidate_count <= INSERTION_CANDIDATES) {\n // Composite keys are strict because block_id occupies their\n // low 32 bits, so exactly one candidate has this rank.\n for (uint item = lane; item < candidate_count; item += WIDTH) {\n const ulong key = final_candidate_keys[item];\n uint greater_rank = 0u;\n for (uint other = 0u; other < candidate_count; ++other) {\n greater_rank +=\n final_candidate_keys[other] > key ? 1u : 0u;\n }\n if (greater_rank == radix_rank) {\n threshold_key = key;\n }\n }\n } else {\n // The first phase has already consumed [0, radix_next_pass)\n // and all resident candidates share radix_prefix. Complete\n // every remaining digit using the same 2048-bin histogram,\n // but scan only the bounded candidate array, never the full\n // score row. After pass 5, radix_prefix is the exact unique\n // 64-bit threshold key.\n const uint first_refine_pass = radix_next_pass;\n for (uint pass = 0u; pass < RADIX_PASSES; ++pass) {\n if (pass >= first_refine_pass) {\n for (uint bin = lane; bin < RADIX_BINS; bin += WIDTH) {\n atomic_store_explicit(\n &radix_histogram[bin], 0u,\n memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const uint shift = qsa_prefill_radix_shift(pass);\n const uint bits = qsa_prefill_radix_bits(pass);\n const uint digit_mask = (1u << bits) - 1u;\n const ulong prefix = radix_prefix;\n for (uint item = lane;\n item < candidate_count;\n item += WIDTH) {\n const ulong key = final_candidate_keys[item];\n if ((key >> (shift + bits)) == prefix) {\n const uint digit =\n uint((key >> shift) & digit_mask);\n atomic_fetch_add_explicit(\n &radix_histogram[digit], 1u,\n memory_order_relaxed);\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n if (lane == 0) {\n uint rank = radix_rank;\n uint chosen = 0u;\n const int max_digit = int(digit_mask);\n for (int digit = max_digit; digit >= 0; --digit) {\n const uint count = atomic_load_explicit(\n &radix_histogram[uint(digit)],\n memory_order_relaxed);\n if (rank < count) {\n chosen = uint(digit);\n break;\n }\n rank -= count;\n }\n radix_prefix =\n (radix_prefix << bits) | ulong(chosen);\n radix_rank = rank;\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n }\n if (lane == 0) {\n threshold_key = radix_prefix;\n }\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n // Compact the exact winners. Atomic arrival order is canonicalized by\n // the same bitonic output network as the decode-oriented selector.\n exchange_scores[lane] = -INFINITY;\n exchange_indices[lane] = 0xffffffffu;\n exchange_valid[lane] = 0;\n if (lane == 0) {\n atomic_store_explicit(&selected_count, 0u, memory_order_relaxed);\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n if (k_eff > 0) {\n const ulong threshold = threshold_key;\n for (uint block = lane; block < valid_count; block += WIDTH) {\n const float adjusted =\n scores[score_base + block] - float(block) * 1.0e-12f;\n if (qsa_composite_key(adjusted, block) >= threshold) {\n const uint slot = atomic_fetch_add_explicit(\n &selected_count, 1u, memory_order_relaxed);\n if (slot < TOP_K) {\n exchange_scores[slot] = adjusted;\n exchange_indices[slot] = block;\n exchange_valid[slot] = 1;\n }\n }\n }\n }\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n uint my_index = exchange_indices[lane];\n bool my_valid = exchange_valid[lane] != 0;\n float my_score = exchange_scores[lane];\n for (uint sequence = 2; sequence <= WIDTH; sequence <<= 1) {\n for (uint stride = sequence >> 1; stride > 0; stride >>= 1) {\n exchange_scores[lane] = my_score;\n exchange_indices[lane] = my_index;\n exchange_valid[lane] = my_valid ? 1 : 0;\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const uint partner = lane ^ stride;\n const float other_score = exchange_scores[partner];\n const uint other_index = exchange_indices[partner];\n const bool other_valid = exchange_valid[partner] != 0;\n threadgroup_barrier(mem_flags::mem_threadgroup);\n\n const bool is_lower = (lane & stride) == 0;\n const float a_score = is_lower ? my_score : other_score;\n const uint a_index = is_lower ? my_index : other_index;\n const bool a_valid = is_lower ? my_valid : other_valid;\n const float b_score = is_lower ? other_score : my_score;\n const uint b_index = is_lower ? other_index : my_index;\n const bool b_valid = is_lower ? other_valid : my_valid;\n\n const bool lower_wants_before = (lane & sequence) == 0;\n const bool b_before_a = ROW_TOKEN_MODE\n ? qsa_row_score_before(\n b_score, b_index, b_valid,\n a_score, a_index, a_valid)\n : qsa_index_before(\n b_index, b_valid, a_index, a_valid);\n const bool a_before_b = ROW_TOKEN_MODE\n ? qsa_row_score_before(\n a_score, a_index, a_valid,\n b_score, b_index, b_valid)\n : qsa_index_before(\n a_index, a_valid, b_index, b_valid);\n const bool swap = lower_wants_before ? b_before_a : a_before_b;\n if (swap) {\n my_score = is_lower ? b_score : a_score;\n my_index = is_lower ? b_index : a_index;\n my_valid = is_lower ? b_valid : a_valid;\n }\n }\n }\n ", + "mpp_header_sha256": "eddbff46fac2d4a09e1a1bf1e07b4d10afa2c2bb761304b4ea8683181131176a", + "mpp_body_sha256": "138bfe4485b8c9b979278d6b112fbe45658b37827bd90135594f99dc5328484d", + "topk_header_sha256": "69173e1a65f9e19aa6d684e218168cb9eb62dfe4b91c5ecdafcfc3d9199c1a5f", + "topk_body_sha256": "32da29054cab798ad08bdb982b746bd30c6f130abb6dd10e438b97058ece870d" + } +} diff --git a/metal/mtplx-runtime-0.32.2.metallib b/metal/mtplx-runtime-0.32.2.metallib new file mode 100644 index 0000000..30241c1 Binary files /dev/null and b/metal/mtplx-runtime-0.32.2.metallib differ diff --git a/metal/mtplx_qwen.metal b/metal/mtplx_qwen.metal new file mode 100644 index 0000000..4bcc91a --- /dev/null +++ b/metal/mtplx_qwen.metal @@ -0,0 +1,10419 @@ +// MTPLX bodies: Copyright 2026 MTPLX. SPDX-License-Identifier: Apache-2.0 +// Dependency bodies carry their own license notice below. +// Generated by tools/mtplx-kernel-source.py; do not edit bodies. +// MTPLX revision: e652d55e2652137a4abcf1312357abbf3eb9d692 +// Only entry-point ABI and template instantiations are adapted. +#include +using namespace metal; + +// Source: mtplx/kernels/hyper_connection.py::_SOURCE +// File SHA256: 561b635a4bb36108b617ce2a5e0eda2b1868a8b2242d00112e1858bbf1fe89ea +// Body SHA256: 84beb52939e8965c8038a049bef36b7a10f9d368779883c214770122cff2da86 +template +kernel void kernel_qwen_mtplx_hyper_read( + device const T* x [[buffer(0)]], + device const T* gamma [[buffer(1)]], + device const T* wd [[buffer(2)]], + device const T* wu [[buffer(3)]], + device const T* wi [[buffer(4)]], + device T* mixed [[buffer(5)]], + device T* inject [[buffer(6)]], + uint3 thread_position_in_grid [[thread_position_in_grid]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]]) { + constexpr int HC = 4; + constexpr int D = 2560; + constexpr int HCD = HC * D; + constexpr int R = 320; + constexpr float EPS = 1e-6f; + + const uint row = thread_position_in_grid.y; + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + + threadgroup float gsum[32]; + threadgroup float nrm_scale[HC]; + threadgroup T normed[HCD]; + threadgroup float mixv[R]; + + device const T* xr = x + (size_t)row * HCD; + + // ---- 1) per-group sum of squares (group g owns threads [g*256,(g+1)*256)) + const int g = tid >> 8; + const int t_in = tid & 255; + float ss = 0.0f; + for (int k = 0; k < 10; ++k) { + const int i = g * D + t_in + k * 256; + const float v = (float)xr[i]; + ss += v * v; + } + ss = simd_sum(ss); + if (lane == 0) gsum[sg] = ss; + threadgroup_barrier(mem_flags::mem_threadgroup); + if (tid < HC) { + float tot = 0.0f; + for (int j = 0; j < 8; ++j) tot += gsum[tid * 8 + j]; + nrm_scale[tid] = metal::rsqrt(tot / (float)D + EPS); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- 2) normed = x * scale_g * gamma (bf16 boundary like the module) + for (int k = 0; k < 10; ++k) { + const int i = g * D + t_in + k * 256; + const float nv = (float)((T)((float)xr[i] * nrm_scale[g])); + normed[i] = (T)(nv * (float)gamma[i]); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- 3) down proj rows (320 = 32 simdgroups x 10), /HC, silu + for (int rr = 0; rr < 10; ++rr) { + const int orow = sg * 10 + rr; + float acc = 0.0f; + device const T* wrow = wd + (size_t)orow * HCD; + for (int i = lane; i < HCD; i += 32) { + acc += (float)normed[i] * (float)wrow[i]; + } + acc = simd_sum(acc); + if (lane == 0) { + float t0 = (float)((T)acc); // Linear out cast + t0 = (float)((T)(t0 * 0.25f)); // /hc_count + mixv[orow] = (float)((T)(t0 / (1.0f + metal::exp(-t0)))); // silu + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- 4) inject = 2*sigmoid((Wi @ normed)/HC) — BEFORE the mix, which + // repurposes the `normed` staging below. + if (HAS_INJECT && sg < HC) { + float acc = 0.0f; + device const T* irow = wi + (size_t)sg * HCD; + for (int i = lane; i < HCD; i += 32) { + acc += (float)normed[i] * (float)irow[i]; + } + acc = simd_sum(acc); + if (lane == 0) { + float t1 = (float)((T)acc); + t1 = (float)((T)(t1 * 0.25f)); + inject[(size_t)row * HC + sg] = (T)(2.0f / (1.0f + metal::exp(-t1))); + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- 5a) up proj + sigmoid, gated product written back over `normed` + // (one simdgroup per output row: lanes stride R — coalesced wu reads) + for (int pos = (int)sg; pos < HCD; pos += 32) { + device const T* urow = wu + (size_t)pos * R; + float a = 0.0f; + for (int j = lane; j < R; j += 32) a += mixv[j] * (float)urow[j]; + a = simd_sum(a); + if (lane == 0) { + a = (float)((T)a); // Linear out + float w = 1.0f / (1.0f + metal::exp(-a)); // sigmoid + w = (float)((T)w); + normed[pos] = (T)(w * (float)normed[pos]); // bf16 mul + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- 5b) mean over the HC groups + for (int d0 = tid; d0 < D; d0 += 1024) { + const float acc_mix = (float)normed[d0] + (float)normed[D + d0] + + (float)normed[2 * D + d0] + (float)normed[3 * D + d0]; + mixed[(size_t)row * D + d0] = (T)(acc_mix * 0.25f); + } +} +typedef decltype(kernel_qwen_mtplx_hyper_read) kernel_qwen_mtplx_hyper_read_mix_bf16_type; +template [[host_name("kernel_qwen_mtplx_hyper_read_mix_bf16")]] +kernel kernel_qwen_mtplx_hyper_read_mix_bf16_type kernel_qwen_mtplx_hyper_read; +typedef decltype(kernel_qwen_mtplx_hyper_read) kernel_qwen_mtplx_hyper_read_inj_bf16_type; +template [[host_name("kernel_qwen_mtplx_hyper_read_inj_bf16")]] +kernel kernel_qwen_mtplx_hyper_read_inj_bf16_type kernel_qwen_mtplx_hyper_read; + +// Source: mtplx/kernels/hyper_connection_v3.py::_SRC_R1 +// File SHA256: bc4cc7c59403845c31881f7526dade0f80a7704303c6c5273a794d605cf4e82a +// Body SHA256: 0df4ae0ff5df0352cb1ba2ec67277763ebce77a4425c3004767c19c10895a9cb +template +kernel void kernel_qwen_mtplx_hyper_v3_r1( + device const T* x [[buffer(0)]], + device const T* wn [[buffer(1)]], + device const uint32_t* qw [[buffer(2)]], + device const T* qs [[buffer(3)]], + device const T* qb [[buffer(4)]], + device T* mix_out [[buffer(5)]], + device T* inject_out [[buffer(6)]], + device float* rms_out [[buffer(7)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int K = 10240; + constexpr int GROUP = 2560; // hc group width + constexpr int QGS = 64; // quant group size + constexpr int NGROUPS = K / QGS; // 160 quant groups per row + constexpr int N_DOWN = 320; + constexpr int N_TOTAL = 324; + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint n = threadgroup_position_in_grid.x * 32 + sg; + + threadgroup float tg_sums[4]; + threadgroup float tg_partial[32]; + + // Cooperative x^2 group sums (all 1024 threads, 10 elems each). + float part[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + for (int i = tid; i < K; i += 1024) { + const float xv = (float)x[i]; + part[i / GROUP] += xv * xv; + } + for (int g = 0; g < 4; ++g) { + float v = simd_sum(part[g]); + if (lane == 0) tg_partial[sg] = v; + threadgroup_barrier(mem_flags::mem_threadgroup); + if (sg == 0) { + float acc = (lane < 32) ? tg_partial[lane] : 0.0f; + acc = simd_sum(acc); + if (lane == 0) tg_sums[g] = acc; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + float rms[4]; + for (int g = 0; g < 4; ++g) { + rms[g] = metal::rsqrt(tg_sums[g] / (float)GROUP + 1e-6f); + } + if (threadgroup_position_in_grid.x == 0 && tid < 4) { + rms_out[tid] = rms[tid]; + } + if (n >= (uint)N_TOTAL) return; + + const device uint32_t* wrow = qw + (size_t)n * (K / 4); + const device T* srow = qs + (size_t)n * NGROUPS; + const device T* brow = qb + (size_t)n * NGROUPS; + float acc = 0.0f; + for (int g = lane; g < NGROUPS; g += 32) { + const float s = (float)srow[g]; + const float b = (float)brow[g]; + const device uint32_t* wg = wrow + g * (QGS / 4); + const int base = g * QGS; + float qacc = 0.0f; + float nsum = 0.0f; + for (int wi = 0; wi < QGS / 4; ++wi) { + const uint32_t word = wg[wi]; + const int i0 = base + wi * 4; + for (int by = 0; by < 4; ++by) { + const int i = i0 + by; + const float nx = (float)x[i] * (float)wn[i] * rms[i / GROUP]; + qacc += (float)((word >> (8 * by)) & 0xFF) * nx; + nsum += nx; + } + } + acc += s * qacc + b * nsum; + } + acc = simd_sum(acc); + if (lane == 0) { + if (n < (uint)N_DOWN) { + const float v = acc * 0.25f; // / hc_count + mix_out[n] = (T)(v / (1.0f + metal::exp(-v))); // silu + } else { + const float v = acc * 0.25f; + inject_out[n - N_DOWN] = (T)(2.0f / (1.0f + metal::exp(-v))); + } + } +} +typedef decltype(kernel_qwen_mtplx_hyper_v3_r1) kernel_qwen_mtplx_hyper_v3_r1_bf16_type; +template [[host_name("kernel_qwen_mtplx_hyper_v3_r1_bf16")]] +kernel kernel_qwen_mtplx_hyper_v3_r1_bf16_type kernel_qwen_mtplx_hyper_v3_r1; + +// Source: mtplx/kernels/hyper_connection_v3.py::_SRC_R2 +// File SHA256: bc4cc7c59403845c31881f7526dade0f80a7704303c6c5273a794d605cf4e82a +// Body SHA256: f5ac42120a2c20ebf825bdc290b3b9c8afbfa6ad4a5d18454d9eff542174a74f +template +kernel void kernel_qwen_mtplx_hyper_v3_r2( + device const T* x [[buffer(0)]], + device const T* wn [[buffer(1)]], + device const T* mixv [[buffer(2)]], + device const float* rms_in [[buffer(3)]], + device const uint32_t* qw [[buffer(4)]], + device const T* qs [[buffer(5)]], + device const T* qb [[buffer(6)]], + device T* y [[buffer(7)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int KUP = 320; + constexpr int GROUP = 2560; + constexpr int QGS = 64; + constexpr int NG = KUP / QGS; // 5 quant groups per up row + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint d = threadgroup_position_in_grid.x * 32 + sg; + if (d >= (uint)GROUP) return; + + float acc_mix = 0.0f; + for (int h = 0; h < 4; ++h) { + const uint row = (uint)h * GROUP + d; + const device uint32_t* wrow = qw + (size_t)row * (KUP / 4); + const device T* srow = qs + (size_t)row * NG; + const device T* brow = qb + (size_t)row * NG; + float dot = 0.0f; + for (int g = 0; g < NG; ++g) { + const float s = (float)srow[g]; + const float b = (float)brow[g]; + const device uint32_t* wg = wrow + g * (QGS / 4); + const int base = g * QGS; + float qacc = 0.0f; + float msum = 0.0f; + for (int wi = (int)lane; wi < QGS / 4; wi += 32) { + const uint32_t word = wg[wi]; + const int i0 = base + wi * 4; + for (int by = 0; by < 4; ++by) { + const float mv = (float)mixv[i0 + by]; + qacc += (float)((word >> (8 * by)) & 0xFF) * mv; + msum += mv; + } + } + dot += s * qacc + b * msum; + } + dot = simd_sum(dot); + const float m = 1.0f / (1.0f + metal::exp(-dot)); // sigmoid + const int i = h * GROUP + (int)d; + const float normed = (float)x[i] * (float)wn[i] * rms_in[h]; + acc_mix += m * normed; + } + if (lane == 0) { + y[d] = (T)(acc_mix * 0.25f); + } +} +typedef decltype(kernel_qwen_mtplx_hyper_v3_r2) kernel_qwen_mtplx_hyper_v3_r2_bf16_type; +template [[host_name("kernel_qwen_mtplx_hyper_v3_r2_bf16")]] +kernel kernel_qwen_mtplx_hyper_v3_r2_bf16_type kernel_qwen_mtplx_hyper_v3_r2; + +// Source: mtplx/kernels/gdn_conv_norm.py::_SRC +// File SHA256: b414389736c2f7c166acc7846d4d0b4e021524d75886b7062214306adeab85eb +// Body SHA256: f11cee0261d66aa1ddac3370d747c22a5eb943f1e0cd306764c0a5d280179e09 +template +kernel void kernel_qwen_mtplx_gdn_conv_norm( + device const T* xnew [[buffer(0)]], + device const T* state [[buffer(1)]], + device const T* cw [[buffer(2)]], + device T* q_out [[buffer(3)]], + device T* k_out [[buffer(4)]], + device T* v_out [[buffer(5)]], + device T* state_out [[buffer(6)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int C = 10240; // conv channels + constexpr int QK = 2048; // q width == k width + constexpr int HD = 128; // head dim + constexpr float INV_SCALE = 0.08838834764831845f; // 128^-0.5 + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint c = threadgroup_position_in_grid.x * 1024 + tid; + if (c >= (uint)C) return; + + threadgroup float tg_vals[1024]; + threadgroup float tg_partial[32]; + + // depthwise conv over [state0, state1, state2, new] + silu + const float acc = + (float)cw[c * 4 + 0] * (float)state[0 * C + c] + + (float)cw[c * 4 + 1] * (float)state[1 * C + c] + + (float)cw[c * 4 + 2] * (float)state[2 * C + c] + + (float)cw[c * 4 + 3] * (float)xnew[c]; + const float sv = acc / (1.0f + metal::exp(-acc)); + + // rolled conv state + state_out[0 * C + c] = state[1 * C + c]; + state_out[1 * C + c] = state[2 * C + c]; + state_out[2 * C + c] = xnew[c]; + + if (c >= (uint)(2 * QK)) { + v_out[c - 2 * QK] = (T)sv; + return; + } + + // q/k: per-head l2norm. This TG holds 8 aligned heads of 128 channels; + // 4 consecutive simdgroups own one head. + tg_vals[tid] = sv; + float part = simd_sum(sv * sv); + if (lane == 0) tg_partial[sg] = part; + threadgroup_barrier(mem_flags::mem_threadgroup); + const uint head_sg0 = (sg / 4) * 4; + const float ssum = tg_partial[head_sg0] + tg_partial[head_sg0 + 1] + + tg_partial[head_sg0 + 2] + tg_partial[head_sg0 + 3]; + const float inv = metal::rsqrt(ssum + 1e-6f); + const float normed = tg_vals[tid] * inv; + if (c < (uint)QK) { + q_out[c] = (T)(normed * INV_SCALE); + } else { + k_out[c - QK] = (T)normed; + } +} +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm) kernel_qwen_mtplx_gdn_conv_norm_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_bf16_type kernel_qwen_mtplx_gdn_conv_norm; + +// Source: mtplx/kernels/gdn_conv_norm.py::_SRC_ROWS +// File SHA256: b414389736c2f7c166acc7846d4d0b4e021524d75886b7062214306adeab85eb +// Body SHA256: 291df3d66fccd0feff041313a61e3a8f942068e8ef3557da05a813fe587304f0 +template +kernel void kernel_qwen_mtplx_gdn_conv_norm_rows( + device const T* xnew [[buffer(0)]], + device const T* state [[buffer(1)]], + device const T* cw [[buffer(2)]], + device T* q_out [[buffer(3)]], + device T* k_out [[buffer(4)]], + device T* v_out [[buffer(5)]], + device T* state_out [[buffer(6)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int C = 10240; // conv channels + constexpr int QK = 2048; // q width == k width + constexpr float INV_SCALE = 0.08838834764831845f; // 128^-0.5 + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint c = threadgroup_position_in_grid.x * 1024 + tid; + if (c >= (uint)C) return; + + threadgroup float tg_vals[1024]; + threadgroup float tg_partial[32]; + + const float w0 = (float)cw[c * 4 + 0]; + const float w1 = (float)cw[c * 4 + 1]; + const float w2 = (float)cw[c * 4 + 2]; + const float w3 = (float)cw[c * 4 + 3]; + + // stream(t): t<3 -> conv state row t, else xnew row t-3 + #define STREAM(t) ((t) < 3 ? (float)state[(t) * C + c] : (float)xnew[((t) - 3) * C + c]) + + const bool is_v = (c >= (uint)(2 * QK)); + + for (int s = 0; s < S; ++s) { + const float acc = w0 * STREAM(s) + w1 * STREAM(s + 1) + + w2 * STREAM(s + 2) + w3 * STREAM(s + 3); + const float sv = acc / (1.0f + metal::exp(-acc)); + if (is_v) { + v_out[s * (C - 2 * QK) + (c - 2 * QK)] = (T)sv; + continue; + } + tg_vals[tid] = sv; + float part = simd_sum(sv * sv); + if (lane == 0) tg_partial[sg] = part; + threadgroup_barrier(mem_flags::mem_threadgroup); + const uint head_sg0 = (sg / 4) * 4; + const float ssum = tg_partial[head_sg0] + tg_partial[head_sg0 + 1] + + tg_partial[head_sg0 + 2] + tg_partial[head_sg0 + 3]; + const float inv = metal::rsqrt(ssum + 1e-6f); + const float normed = tg_vals[tid] * inv; + if (c < (uint)QK) { + q_out[s * QK + c] = (T)(normed * INV_SCALE); + } else { + k_out[s * QK + (c - QK)] = (T)normed; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + // rolled conv state: last 3 rows of the stream + state_out[0 * C + c] = (T)STREAM(S + 0); + state_out[1 * C + c] = (T)STREAM(S + 1); + state_out[2 * C + c] = (T)STREAM(S + 2); + #undef STREAM +} +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm_rows) kernel_qwen_mtplx_gdn_conv_norm_rows_s2_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_rows_s2_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_rows_s2_bf16_type kernel_qwen_mtplx_gdn_conv_norm_rows; +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm_rows) kernel_qwen_mtplx_gdn_conv_norm_rows_s3_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_rows_s3_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_rows_s3_bf16_type kernel_qwen_mtplx_gdn_conv_norm_rows; +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm_rows) kernel_qwen_mtplx_gdn_conv_norm_rows_s4_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_rows_s4_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_rows_s4_bf16_type kernel_qwen_mtplx_gdn_conv_norm_rows; +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm_rows) kernel_qwen_mtplx_gdn_conv_norm_rows_s5_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_rows_s5_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_rows_s5_bf16_type kernel_qwen_mtplx_gdn_conv_norm_rows; +typedef decltype(kernel_qwen_mtplx_gdn_conv_norm_rows) kernel_qwen_mtplx_gdn_conv_norm_rows_s6_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_conv_norm_rows_s6_bf16")]] +kernel kernel_qwen_mtplx_gdn_conv_norm_rows_s6_bf16_type kernel_qwen_mtplx_gdn_conv_norm_rows; + +// Source: mtplx/kernels/gdn_step_fused.py::_SRC +// File SHA256: d194412dbea6c3e5758a3a345d5a15fc127ea525f71e9b23f6fe44e19a1c0ad4 +// Body SHA256: 433a6eef305d6be98f2816d6947ea66e93b0193c2f42717adf36ba1e5f5b0771 +template +kernel void kernel_qwen_mtplx_gdn_step_fused( + device const T* xnew [[buffer(0)]], + device const T* z_row [[buffer(1)]], + device const T* a_row [[buffer(2)]], + device const T* b_row [[buffer(3)]], + device const T* state [[buffer(4)]], + device const T* cw [[buffer(5)]], + device const T* A_log [[buffer(6)]], + device const T* dt_bias [[buffer(7)]], + device const StT* dstate [[buffer(8)]], + device const T* norm_w [[buffer(9)]], + device T* y [[buffer(10)]], + device T* state_out [[buffer(11)]], + device StT* dstate_out [[buffer(12)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int C = 10240; // conv channels + constexpr int QK = 2048; // q width == k width + constexpr int HD = 128; // head dim (Dk == Dv) + constexpr int HV_PER_HK = 3; // 48 v heads / 16 k heads + constexpr float INV_SCALE = 0.08838834764831845f; // 128^-0.5 + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint hv = threadgroup_position_in_grid.z; + const uint hk = hv / HV_PER_HK; + + threadgroup float qn[HD]; + threadgroup float kn[HD]; + threadgroup float vraw[HD]; + threadgroup float outv[HD]; + threadgroup float part[8]; + + // ---- phase 1: conv + silu over this head's 384 channels ---- + for (uint i = tid; i < 384; i += 256) { + uint g; + if (i < HD) { + g = hk * HD + i; // q section + } else if (i < 2 * HD) { + g = QK + hk * HD + (i - HD); // k section + } else { + g = 2 * QK + hv * HD + (i - 2 * HD); // v section + } + const float acc = + (float)cw[g * 4 + 0] * (float)state[0 * C + g] + + (float)cw[g * 4 + 1] * (float)state[1 * C + g] + + (float)cw[g * 4 + 2] * (float)state[2 * C + g] + + (float)cw[g * 4 + 3] * (float)xnew[g]; + const float sv = acc / (1.0f + metal::exp(-acc)); + + // rolled conv state: v channels owned uniquely; q/k written by the + // hv%3==0 sibling so each channel has exactly one writer. + if (i >= 2 * HD || (hv % HV_PER_HK) == 0) { + state_out[0 * C + g] = state[1 * C + g]; + state_out[1 * C + g] = state[2 * C + g]; + state_out[2 * C + g] = xnew[g]; + } + + if (i < HD) { + qn[i] = sv; + } else if (i < 2 * HD) { + kn[i - HD] = sv; + } else { + // stock path rounds v to T at the conv-kernel boundary + vraw[i - 2 * HD] = (float)(T)sv; + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- phase 1b: per-head l2norm (fp32, eps on sum of squares) ---- + { + float p = 0.0f; + if (tid < HD) { + p = qn[tid] * qn[tid]; + } else if (tid < 2 * HD) { + p = kn[tid - HD] * kn[tid - HD]; + } + p = simd_sum(p); + if (lane == 0) part[sg] = p; + threadgroup_barrier(mem_flags::mem_threadgroup); + const float qsum = part[0] + part[1] + part[2] + part[3]; + const float ksum = part[4] + part[5] + part[6] + part[7]; + const float qinv = metal::rsqrt(qsum + 1e-6f) * INV_SCALE; + const float kinv = metal::rsqrt(ksum + 1e-6f); + threadgroup_barrier(mem_flags::mem_threadgroup); + if (tid < HD) { + qn[tid] = (float)(T)(qn[tid] * qinv); + } else if (tid < 2 * HD) { + kn[tid - HD] = (float)(T)(kn[tid - HD] * kinv); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + // ---- g / beta (redundant per thread; matches compute_g + sigmoid) ---- + const float a_v = (float)a_row[hv] + (float)dt_bias[hv]; + // softplus = logaddexp(x, 0) = max(x,0) + log1p(exp(-|x|)) + const float sp = metal::max(a_v, 0.0f) + + metal::log(1.0f + metal::exp(-metal::abs(a_v))); + const float g_dec = metal::exp(-metal::exp((float)A_log[hv]) * sp); + const float b_v = (float)b_row[hv]; + const float beta = 1.0f / (1.0f + metal::exp(-b_v)); + + // ---- phase 2: delta recurrence, one simdgroup per row, stride 8 ---- + for (uint dv = sg; dv < HD; dv += 8) { + const uint srow = (hv * HD + dv) * HD; + float s0 = (float)dstate[srow + 4 * lane + 0] * g_dec; + float s1 = (float)dstate[srow + 4 * lane + 1] * g_dec; + float s2 = (float)dstate[srow + 4 * lane + 2] * g_dec; + float s3 = (float)dstate[srow + 4 * lane + 3] * g_dec; + const float k0 = kn[4 * lane + 0]; + const float k1 = kn[4 * lane + 1]; + const float k2 = kn[4 * lane + 2]; + const float k3 = kn[4 * lane + 3]; + float kv_mem = s0 * k0 + s1 * k1 + s2 * k2 + s3 * k3; + kv_mem = simd_sum(kv_mem); + const float delta = (vraw[dv] - kv_mem) * beta; + s0 += k0 * delta; + s1 += k1 * delta; + s2 += k2 * delta; + s3 += k3 * delta; + float out = s0 * qn[4 * lane + 0] + s1 * qn[4 * lane + 1] + + s2 * qn[4 * lane + 2] + s3 * qn[4 * lane + 3]; + out = simd_sum(out); + dstate_out[srow + 4 * lane + 0] = (StT)s0; + dstate_out[srow + 4 * lane + 1] = (StT)s1; + dstate_out[srow + 4 * lane + 2] = (StT)s2; + dstate_out[srow + 4 * lane + 3] = (StT)s3; + if (lane == 0) { + // the stock kernel emits InT here; keep that rounding + outv[dv] = (float)(T)out; + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // ---- phase 3: SigmoidRMSNormGated epilogue ---- + { + float e = 0.0f; + if (tid < HD) e = outv[tid] * outv[tid]; + e = simd_sum(e); + if (lane == 0 && sg < 4) part[sg] = e; + threadgroup_barrier(mem_flags::mem_threadgroup); + const float mean = (part[0] + part[1] + part[2] + part[3]) / (float)HD; + const float rinv = metal::rsqrt(mean + 1e-6f); + if (tid < HD) { + const float normed = (float)(T)(outv[tid] * rinv * (float)norm_w[tid]); + const float zf = (float)z_row[hv * HD + tid]; + const float gate = 1.0f / (1.0f + metal::exp(-zf)); + y[hv * HD + tid] = (T)(gate * normed); + } + } +} +typedef decltype(kernel_qwen_mtplx_gdn_step_fused) kernel_qwen_mtplx_gdn_step_fused_f32_state_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_step_fused_f32_state_bf16")]] +kernel kernel_qwen_mtplx_gdn_step_fused_f32_state_bf16_type kernel_qwen_mtplx_gdn_step_fused; + +// Source: mtplx/kernels/gdn_out_fused.py::_SRC +// File SHA256: f8698820407b5b2c469b8393c20cb2e7841c2fd8e3eef004234d1cd6b38bacdc +// Body SHA256: 21043fd910132a1cd9fd7d99185c85b4b69cc8b24f3747e0ff108d6af2185043 +template +kernel void kernel_qwen_mtplx_gdn_out_fused( + device const T* x [[buffer(0)]], + device const bfloat* z [[buffer(1)]], + device const bfloat* wn [[buffer(2)]], + device const uint32_t* qw [[buffer(3)]], + device const bfloat* qs [[buffer(4)]], + device const bfloat* qb [[buffer(5)]], + device T* y [[buffer(6)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int NH = 48; // value heads + constexpr int HD = 128; // head dim + constexpr int K = NH * HD; // 6144 + constexpr int GS = GS_C; // quant group size + constexpr int NGROUPS = K / GS; + constexpr int WPG = GS / 8; // u32 words per group + constexpr int DMODEL = 2560; + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + + threadgroup float tg_rms[NH]; + threadgroup T tg_v[K]; + threadgroup float tg_part[32]; + + // Phase 1a: per-head sum of squares. Head h owned by simdgroup h%32 + // (simdgroups 0..15 own two heads). + for (uint h = sg; h < (uint)NH; h += 32) { + float part = 0.0f; + for (uint d = lane; d < (uint)HD; d += 32) { + const float xv = (float)x[h * HD + d]; + part += xv * xv; + } + part = simd_sum(part); + if (lane == 0) { + tg_rms[h] = metal::rsqrt(part / (float)HD + 1e-6f); + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // Phase 1b: gated-normed values, bf16-cast through T. + for (uint i = tid; i < (uint)K; i += 1024) { + const uint h = i / HD; + const uint d = i % HD; + const float normed = (float)x[i] * tg_rms[h] * (float)wn[d]; + const float g = 1.0f / (1.0f + metal::exp(-(float)z[i])); + tg_v[i] = (T)(g * normed); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + // Phase 2: one simdgroup per output row. + const uint row = threadgroup_position_in_grid.x * 32 + sg; + if (row >= (uint)DMODEL) return; + const device uint32_t* wrow = qw + (size_t)row * (K / 8); + // scale/bias buffers keep their own dtype (bf16 in shipped packs) — + // never retype them through T (T follows x, which is fp32 when the + // delta kernel hands over float state rows) + const device auto* srow = qs + (size_t)row * NGROUPS; + const device auto* brow = qb + (size_t)row * NGROUPS; + float acc = 0.0f; + for (int g = lane; g < NGROUPS; g += 32) { + const float s = (float)srow[g]; + const float b = (float)brow[g]; + const device uint32_t* wg = wrow + g * WPG; + const int base = g * GS; + float qacc = 0.0f; + float vsum = 0.0f; + for (int wi = 0; wi < WPG; ++wi) { + const uint32_t word = wg[wi]; + const int i0 = base + wi * 8; + for (int nib = 0; nib < 8; ++nib) { + const float vv = (float)tg_v[i0 + nib]; + qacc += (float)((word >> (4 * nib)) & 0xF) * vv; + vsum += vv; + } + } + acc += s * qacc + b * vsum; + } + acc = simd_sum(acc); + if (lane == 0) { + y[row] = (T)acc; + } +} +typedef decltype(kernel_qwen_mtplx_gdn_out_fused) kernel_qwen_mtplx_gdn_out_fused_gs32_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_out_fused_gs32_bf16")]] +kernel kernel_qwen_mtplx_gdn_out_fused_gs32_bf16_type kernel_qwen_mtplx_gdn_out_fused; +typedef decltype(kernel_qwen_mtplx_gdn_out_fused) kernel_qwen_mtplx_gdn_out_fused_gs32_f32_type; +template [[host_name("kernel_qwen_mtplx_gdn_out_fused_gs32_f32")]] +kernel kernel_qwen_mtplx_gdn_out_fused_gs32_f32_type kernel_qwen_mtplx_gdn_out_fused; +typedef decltype(kernel_qwen_mtplx_gdn_out_fused) kernel_qwen_mtplx_gdn_out_fused_gs64_bf16_type; +template [[host_name("kernel_qwen_mtplx_gdn_out_fused_gs64_bf16")]] +kernel kernel_qwen_mtplx_gdn_out_fused_gs64_bf16_type kernel_qwen_mtplx_gdn_out_fused; +typedef decltype(kernel_qwen_mtplx_gdn_out_fused) kernel_qwen_mtplx_gdn_out_fused_gs64_f32_type; +template [[host_name("kernel_qwen_mtplx_gdn_out_fused_gs64_f32")]] +kernel kernel_qwen_mtplx_gdn_out_fused_gs64_f32_type kernel_qwen_mtplx_gdn_out_fused; + +// Source: mtplx/kernels/moe_glu_decode.py::_SRC_A +// File SHA256: ed8b307cd8acd2b111237a57f6adc711d455fac1feb7800df72821c4061b8912 +// Body SHA256: 85d5d607e7d647a17124013d98b9f4b3882b8f024b5131bab2d20c7379a2474b +template +kernel void kernel_qwen_mtplx_moe_glu_h( + device const T* x [[buffer(0)]], + device const uint32_t* gw [[buffer(1)]], + device const T* gs [[buffer(2)]], + device const T* gb [[buffer(3)]], + device const uint32_t* experts [[buffer(4)]], + device T* h [[buffer(5)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int K = 2560; + constexpr int GS = GS_GU; // quant group size (32/64 forges) + constexpr int NGROUPS = K / GS; + constexpr int WPG = GS / 8; // uint32 words per group (8 nibbles/word) + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint gsid = threadgroup_position_in_grid.x * 32 + sg; // global simd id + const int n_inter = n_inter_c; + const int topk = topk_c; + if (gsid >= (uint)(topk * n_inter)) return; + const int e_slot = gsid / n_inter; + const int j = gsid % n_inter; + const uint e = experts[e_slot]; + + float acc_g = 0.0f; + float acc_u = 0.0f; + for (int hh = 0; hh < 2; ++hh) { + const int row = hh * n_inter + j; + const device uint32_t* wrow = gw + ((size_t)e * 2 * n_inter + row) * (K / 8); + const device T* srow = gs + ((size_t)e * 2 * n_inter + row) * NGROUPS; + const device T* brow = gb + ((size_t)e * 2 * n_inter + row) * NGROUPS; + float acc = 0.0f; + for (int g = lane; g < NGROUPS; g += 32) { + const float s = (float)srow[g]; + const float b = (float)brow[g]; + const device uint32_t* wg = wrow + g * WPG; + const device T* xg = x + g * GS; + float qacc = 0.0f; + float xsum = 0.0f; + for (int wi = 0; wi < WPG; ++wi) { + uint32_t word = wg[wi]; + const device T* xv = xg + wi * 8; + for (int nib = 0; nib < 8; ++nib) { + const float xf = (float)xv[nib]; + qacc += (float)((word >> (4 * nib)) & 0xF) * xf; + xsum += xf; + } + } + acc += s * qacc + b * xsum; + } + acc = simd_sum(acc); + if (hh == 0) acc_g = acc; else acc_u = acc; + } + if (lane == 0) { + const float gv = (float)((T)acc_g); + const float uv = (float)((T)acc_u); + const float sw = gv / (1.0f + metal::exp(-gv)); // silu + h[(size_t)e_slot * n_inter + j] = (T)((float)((T)sw) * uv); + } +} +typedef decltype(kernel_qwen_mtplx_moe_glu_h) kernel_qwen_mtplx_moe_glu_h_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_g32_bf16_type kernel_qwen_mtplx_moe_glu_h; +typedef decltype(kernel_qwen_mtplx_moe_glu_h) kernel_qwen_mtplx_moe_glu_h_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_g64_bf16_type kernel_qwen_mtplx_moe_glu_h; + +// Source: mtplx/kernels/moe_glu_decode.py::_SRC_B +// File SHA256: ed8b307cd8acd2b111237a57f6adc711d455fac1feb7800df72821c4061b8912 +// Body SHA256: 698055e6a7703cffe318dbcab2e04e3aaff4ffb6a056be60957e1ca3815e746c +template +kernel void kernel_qwen_mtplx_moe_down_y( + device const T* h [[buffer(0)]], + device const uint32_t* dw [[buffer(1)]], + device const T* ds [[buffer(2)]], + device const T* db [[buffer(3)]], + device const uint32_t* experts [[buffer(4)]], + device const float* rw [[buffer(5)]], + device T* y [[buffer(6)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int GS = GS_DN; // quant group size (32/64 forges) + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint d = threadgroup_position_in_grid.x * 32 + sg; + const int dmodel = dmodel_c; + const int n_inter = n_inter_c; + const int topk = topk_c; + if (d >= (uint)dmodel) return; + + const int ngroups = n_inter / GS; + float acc = 0.0f; + for (int e_slot = 0; e_slot < topk; ++e_slot) { + const uint e = experts[e_slot]; + const device uint32_t* wrow = dw + ((size_t)e * dmodel + d) * (n_inter / 8); + const device T* srow = ds + ((size_t)e * dmodel + d) * ngroups; + const device T* brow = db + ((size_t)e * dmodel + d) * ngroups; + const device T* he = h + (size_t)e_slot * n_inter; + float dot = 0.0f; + for (int k = (int)lane; k < n_inter; k += 32) { + const uint32_t word = wrow[k / 8]; + const float q = (float)((word >> (4 * (k % 8))) & 0xF); + const int g = k / GS; + dot = metal::fma((float)srow[g] * q + (float)brow[g], (float)he[k], dot); + } + dot = simd_sum(dot); + acc += (float)rw[e_slot] * (float)((T)dot); + } + if (lane == 0) { + y[d] = (T)acc; + } +} +typedef decltype(kernel_qwen_mtplx_moe_down_y) kernel_qwen_mtplx_moe_down_y_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_g32_bf16_type kernel_qwen_mtplx_moe_down_y; +typedef decltype(kernel_qwen_mtplx_moe_down_y) kernel_qwen_mtplx_moe_down_y_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_g64_bf16_type kernel_qwen_mtplx_moe_down_y; + +// Source: mtplx/kernels/moe_glu_decode.py::_SRC_A_M +// File SHA256: ed8b307cd8acd2b111237a57f6adc711d455fac1feb7800df72821c4061b8912 +// Body SHA256: 01cd8217814d3417c6daeff9103f9585422b5417467abf4eafaec2f5f4ee34c2 +template +kernel void kernel_qwen_mtplx_moe_glu_h_m( + device const T* x [[buffer(0)]], + device const uint32_t* gw [[buffer(1)]], + device const T* gs [[buffer(2)]], + device const T* gb [[buffer(3)]], + device const uint32_t* experts [[buffer(4)]], + device T* h [[buffer(5)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int K = 2560; + constexpr int GS = GS_GU; // quant group size (32/64 forges) + constexpr int NGROUPS = K / GS; + constexpr int WPG = GS / 8; // uint32 words per group (8 nibbles/word) + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint gsid = threadgroup_position_in_grid.x * 32 + sg; // global simd id + const int n_inter = n_inter_c; + const int topk = topk_c; + const int m_rows = m_rows_c; + if (gsid >= (uint)(m_rows * topk * n_inter)) return; + const int m = gsid / (topk * n_inter); + const int rem = gsid % (topk * n_inter); + const int e_slot = rem / n_inter; + const int j = rem % n_inter; + const uint e = experts[m * topk + e_slot]; + const device T* xm = x + (size_t)m * K; + + float acc_g = 0.0f; + float acc_u = 0.0f; + for (int hh = 0; hh < 2; ++hh) { + const int row = hh * n_inter + j; + const device uint32_t* wrow = gw + ((size_t)e * 2 * n_inter + row) * (K / 8); + const device T* srow = gs + ((size_t)e * 2 * n_inter + row) * NGROUPS; + const device T* brow = gb + ((size_t)e * 2 * n_inter + row) * NGROUPS; + float acc = 0.0f; + for (int g = lane; g < NGROUPS; g += 32) { + const float s = (float)srow[g]; + const float b = (float)brow[g]; + const device uint32_t* wg = wrow + g * WPG; + const device T* xg = xm + g * GS; + float qacc = 0.0f; + float xsum = 0.0f; + for (int wi = 0; wi < WPG; ++wi) { + uint32_t word = wg[wi]; + const device T* xv = xg + wi * 8; + for (int nib = 0; nib < 8; ++nib) { + const float xf = (float)xv[nib]; + qacc += (float)((word >> (4 * nib)) & 0xF) * xf; + xsum += xf; + } + } + acc += s * qacc + b * xsum; + } + acc = simd_sum(acc); + if (hh == 0) acc_g = acc; else acc_u = acc; + } + if (lane == 0) { + const float gv = (float)((T)acc_g); + const float uv = (float)((T)acc_u); + const float sw = gv / (1.0f + metal::exp(-gv)); // silu + h[((size_t)m * topk + e_slot) * n_inter + j] = (T)((float)((T)sw) * uv); + } +} +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m2_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m2_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m2_g32_bf16_type kernel_qwen_mtplx_moe_glu_h_m; +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m2_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m2_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m2_g64_bf16_type kernel_qwen_mtplx_moe_glu_h_m; +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m3_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m3_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m3_g32_bf16_type kernel_qwen_mtplx_moe_glu_h_m; +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m3_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m3_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m3_g64_bf16_type kernel_qwen_mtplx_moe_glu_h_m; +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m4_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m4_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m4_g32_bf16_type kernel_qwen_mtplx_moe_glu_h_m; +typedef decltype(kernel_qwen_mtplx_moe_glu_h_m) kernel_qwen_mtplx_moe_glu_h_m_m4_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_glu_h_m_m4_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_glu_h_m_m4_g64_bf16_type kernel_qwen_mtplx_moe_glu_h_m; + +// Source: mtplx/kernels/moe_glu_decode.py::_SRC_B_M +// File SHA256: ed8b307cd8acd2b111237a57f6adc711d455fac1feb7800df72821c4061b8912 +// Body SHA256: fd09231330f1b53b21b7dc2245c652b339834b60ea866afc700784658d1ed08f +template +kernel void kernel_qwen_mtplx_moe_down_y_m( + device const T* h [[buffer(0)]], + device const uint32_t* dw [[buffer(1)]], + device const T* ds [[buffer(2)]], + device const T* db [[buffer(3)]], + device const uint32_t* experts [[buffer(4)]], + device const float* rw [[buffer(5)]], + device T* y [[buffer(6)]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]]) { + constexpr int GS = GS_DN; // quant group size (32/64 forges) + + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + const uint gid = threadgroup_position_in_grid.x * 32 + sg; + const int dmodel = dmodel_c; + const int n_inter = n_inter_c; + const int topk = topk_c; + const int m_rows = m_rows_c; + if (gid >= (uint)(m_rows * dmodel)) return; + const int m = gid / dmodel; + const uint d = gid % dmodel; + + const int ngroups = n_inter / GS; + float acc = 0.0f; + for (int e_slot = 0; e_slot < topk; ++e_slot) { + const uint e = experts[m * topk + e_slot]; + const device uint32_t* wrow = dw + ((size_t)e * dmodel + d) * (n_inter / 8); + const device T* srow = ds + ((size_t)e * dmodel + d) * ngroups; + const device T* brow = db + ((size_t)e * dmodel + d) * ngroups; + const device T* he = h + ((size_t)m * topk + e_slot) * n_inter; + float dot = 0.0f; + for (int k = (int)lane; k < n_inter; k += 32) { + const uint32_t word = wrow[k / 8]; + const float q = (float)((word >> (4 * (k % 8))) & 0xF); + const int g = k / GS; + dot = metal::fma((float)srow[g] * q + (float)brow[g], (float)he[k], dot); + } + dot = simd_sum(dot); + acc += (float)rw[m * topk + e_slot] * (float)((T)dot); + } + if (lane == 0) { + y[(size_t)m * dmodel + d] = (T)acc; + } +} +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m2_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m2_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m2_g32_bf16_type kernel_qwen_mtplx_moe_down_y_m; +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m2_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m2_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m2_g64_bf16_type kernel_qwen_mtplx_moe_down_y_m; +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m3_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m3_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m3_g32_bf16_type kernel_qwen_mtplx_moe_down_y_m; +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m3_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m3_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m3_g64_bf16_type kernel_qwen_mtplx_moe_down_y_m; +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m4_g32_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m4_g32_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m4_g32_bf16_type kernel_qwen_mtplx_moe_down_y_m; +typedef decltype(kernel_qwen_mtplx_moe_down_y_m) kernel_qwen_mtplx_moe_down_y_m_m4_g64_bf16_type; +template [[host_name("kernel_qwen_mtplx_moe_down_y_m_m4_g64_bf16")]] +kernel kernel_qwen_mtplx_moe_down_y_m_m4_g64_bf16_type kernel_qwen_mtplx_moe_down_y_m; + +// mlx-lm 0.31.3 dependency kernel: Copyright 2023 Apple Inc. +// SPDX-License-Identifier: MIT; see MLX-LM-LICENSE.txt. + +// Source: mlx_lm/models/gated_delta.py::_make_gated_delta_kernel +// File SHA256: 79c8376a51c694b03e54d2f996ced6ea6c8c42868b8571529f97334db165a3e1 +// Body SHA256: 4f2c168c5c59a5f1086db6792b650c5e6dc6915d08174804d8aed8c16e8482a9 +template +kernel void kernel_qwen_mtplx_gated_delta( + device const InT* q [[buffer(0)]], + device const InT* k [[buffer(1)]], + device const InT* v [[buffer(2)]], + device const float* g [[buffer(3)]], + device const InT* beta [[buffer(4)]], + device const StT* state_in [[buffer(5)]], + constant const int32_t& T [[buffer(6)]], + device InT* y [[buffer(7)]], + device StT* state_out [[buffer(8)]], + uint thread_index_in_simdgroup [[thread_index_in_simdgroup]], + uint3 thread_position_in_grid [[thread_position_in_grid]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]]) { + auto n = thread_position_in_grid.z; + auto b_idx = n / Hv; + auto hv_idx = n % Hv; + auto hk_idx = hv_idx / (Hv / Hk); + constexpr int n_per_t = Dk / 32; + + // q, k: [B, T, Hk, Dk] + auto q_ = q + b_idx * T * Hk * Dk + hk_idx * Dk; + auto k_ = k + b_idx * T * Hk * Dk + hk_idx * Dk; + + // v, y: [B, T, Hv, Dv] + auto v_ = v + b_idx * T * Hv * Dv + hv_idx * Dv; + y += b_idx * T * Hv * Dv + hv_idx * Dv; + + auto dk_idx = thread_position_in_threadgroup.x; + auto dv_idx = thread_position_in_grid.y; + + // state_in, state_out: [B, Hv, Dv, Dk] + auto i_state = state_in + (n * Dv + dv_idx) * Dk; + auto o_state = state_out + (n * Dv + dv_idx) * Dk; + + float state[n_per_t]; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = static_cast(i_state[s_idx]); + } + + // g: [B, T, Hv] + auto g_ = g + b_idx * T * Hv; + auto beta_ = beta + b_idx * T * Hv; + + for (int t = 0; t < T; ++t) { + if (true) { + float kv_mem = 0.0f; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = state[i] * g_[hv_idx]; + kv_mem += state[i] * k_[s_idx]; + } + kv_mem = simd_sum(kv_mem); + + auto delta = (v_[dv_idx] - kv_mem) * beta_[hv_idx]; + + float out = 0.0f; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = state[i] + k_[s_idx] * delta; + out += state[i] * q_[s_idx]; + } + out = simd_sum(out); + if (thread_index_in_simdgroup == 0) { + y[dv_idx] = static_cast(out); + } + } else { + y[dv_idx] = static_cast(0); + } + // Increment data pointers to next time step + q_ += Hk * Dk; + k_ += Hk * Dk; + v_ += Hv * Dv; + y += Hv * Dv; + g_ += Hv; + beta_ += Hv; + } + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + o_state[s_idx] = static_cast(state[i]); + } + } +typedef decltype(kernel_qwen_mtplx_gated_delta) kernel_qwen_mtplx_gated_delta_bf16_type; +template [[host_name("kernel_qwen_mtplx_gated_delta_bf16")]] +kernel kernel_qwen_mtplx_gated_delta_bf16_type kernel_qwen_mtplx_gated_delta; + +// Source: mlx_lm/models/gated_delta.py::_make_gated_delta_kernel_masked +// File SHA256: 79c8376a51c694b03e54d2f996ced6ea6c8c42868b8571529f97334db165a3e1 +// Body SHA256: e7b6c63d60e9bc2b71f3a705c76d4375562a376af9730b1c8ef74d1836eb69f4 +template +kernel void kernel_qwen_mtplx_gated_delta_masked( + device const InT* q [[buffer(0)]], + device const InT* k [[buffer(1)]], + device const InT* v [[buffer(2)]], + device const float* g [[buffer(3)]], + device const InT* beta [[buffer(4)]], + device const StT* state_in [[buffer(5)]], + constant const int32_t& T [[buffer(6)]], + device const bool* mask [[buffer(7)]], + device InT* y [[buffer(8)]], + device StT* state_out [[buffer(9)]], + uint thread_index_in_simdgroup [[thread_index_in_simdgroup]], + uint3 thread_position_in_grid [[thread_position_in_grid]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]]) { + auto n = thread_position_in_grid.z; + auto b_idx = n / Hv; + auto hv_idx = n % Hv; + auto hk_idx = hv_idx / (Hv / Hk); + constexpr int n_per_t = Dk / 32; + + // q, k: [B, T, Hk, Dk] + auto q_ = q + b_idx * T * Hk * Dk + hk_idx * Dk; + auto k_ = k + b_idx * T * Hk * Dk + hk_idx * Dk; + + // v, y: [B, T, Hv, Dv] + auto v_ = v + b_idx * T * Hv * Dv + hv_idx * Dv; + y += b_idx * T * Hv * Dv + hv_idx * Dv; + + auto dk_idx = thread_position_in_threadgroup.x; + auto dv_idx = thread_position_in_grid.y; + + // state_in, state_out: [B, Hv, Dv, Dk] + auto i_state = state_in + (n * Dv + dv_idx) * Dk; + auto o_state = state_out + (n * Dv + dv_idx) * Dk; + + float state[n_per_t]; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = static_cast(i_state[s_idx]); + } + + // g: [B, T, Hv] + auto g_ = g + b_idx * T * Hv; + auto beta_ = beta + b_idx * T * Hv; + + for (int t = 0; t < T; ++t) { + if (mask[b_idx * T + t]) { + float kv_mem = 0.0f; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = state[i] * g_[hv_idx]; + kv_mem += state[i] * k_[s_idx]; + } + kv_mem = simd_sum(kv_mem); + + auto delta = (v_[dv_idx] - kv_mem) * beta_[hv_idx]; + + float out = 0.0f; + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + state[i] = state[i] + k_[s_idx] * delta; + out += state[i] * q_[s_idx]; + } + out = simd_sum(out); + if (thread_index_in_simdgroup == 0) { + y[dv_idx] = static_cast(out); + } + } else { + y[dv_idx] = static_cast(0); + } + // Increment data pointers to next time step + q_ += Hk * Dk; + k_ += Hk * Dk; + v_ += Hv * Dv; + y += Hv * Dv; + g_ += Hv; + beta_ += Hv; + } + for (int i = 0; i < n_per_t; ++i) { + auto s_idx = n_per_t * dk_idx + i; + o_state[s_idx] = static_cast(state[i]); + } + } +typedef decltype(kernel_qwen_mtplx_gated_delta_masked) kernel_qwen_mtplx_gated_delta_masked_bf16_type; +template [[host_name("kernel_qwen_mtplx_gated_delta_masked_bf16")]] +kernel kernel_qwen_mtplx_gated_delta_masked_bf16_type kernel_qwen_mtplx_gated_delta_masked; + +// MTPLX runtime JIT shaders: Copyright Apple Inc. SPDX-License-Identifier: MIT +// See MLX-LM-LICENSE.txt; only includes are resolved and instantiations supplied. +// Runtime unit: indexing.h; file SHA256: e820b8ee2b5132a97122780c12433ebb5100d8078d31e211d0429400a11415bb +// Runtime unit SHA256: 6b177621bd445d19f9b45bfa1f0930e23cf0fe952aa5477cb03789253bea2bf0 +// BEGIN RUNTIME UNIT +// Copyright © 2023-2024 Apple Inc. + + + +template +struct Indices { + const array buffers; + const constant int* shapes; + const constant int64_t* strides; + const constant bool* row_contiguous; + const int ndim; +}; + +template +METAL_FUNC size_t offset_neg_idx(IdxT idx, int size) { + if (is_unsigned_v) { + return idx; + } else { + return (idx < 0) ? idx + size : idx; + } +} +// END RUNTIME UNIT +// Runtime unit: gather_front.h; file SHA256: 64aacebf6576dfcd389383564fa1214bc87f2a091dd33cc64c598c5367ecab96 +// Runtime unit SHA256: 8fefc704f2a7a374684dd7e1793056aab16f0ab75aaa141f965669f2ad857257 +// BEGIN RUNTIME UNIT +// Copyright © 2025 Apple Inc. + + + +template +[[kernel]] void gather_front( + const device T* src, + const device IdxT* indices, + device T* out, + const constant int64_t& stride, + const constant int& size, + uint2 index [[thread_position_in_grid]], + uint2 grid_dim [[threads_per_grid]]) { + auto idx = offset_neg_idx(indices[index.y], size); + LocT src_idx = static_cast(stride) * idx; + LocT out_idx = static_cast(stride) * index.y; + + int s_idx = N * index.x; + for (int i = 0; i < N && s_idx < stride; ++i, ++s_idx) { + out[out_idx + s_idx] = src[src_idx + s_idx]; + } +} +// END RUNTIME UNIT +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi64_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi64_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi64_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi64_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi64_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi64_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi64_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi64_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_idxi64_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_idxi64_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_idxi64_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_idxi64_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi32_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_bf16_idxi32_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi32_int_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f16_idxi32_int64_t_2")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_idxi32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_u32_idxi32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_idxi32_int_1")]] +[[kernel]] decltype(gather_front) gather_front; +template [[host_name("kernel_qwen_mtplx_gather_front_f32_idxi32_int64_t_1")]] +[[kernel]] decltype(gather_front) gather_front; + +// Actual runtime-generated SiLU, captured by tools/mtplx-jit-reference.py. +// Copyright Apple Inc. SPDX-License-Identifier: MIT. Only host aliases change. +// Runtime unit: bf16.h; file SHA256: abd87446a310b77ac530ef52a324feae5cb285d03ec9613e3a88ebb71410fdcb +// Runtime unit SHA256: 16104811a899f47193dbafe95ea825d839423d3fe0c0bf9897015aaabf4cf44c +// BEGIN RUNTIME UNIT +// Copyright © 2023 Apple Inc. + + + +using namespace metal; + +typedef bfloat bfloat16_t; +inline uint16_t bfloat16_to_uint16(const bfloat16_t x) { + return as_type(x); +} + +inline bfloat16_t uint16_to_bfloat16(const uint16_t x) { + return as_type(x); +} +// END RUNTIME UNIT +// Runtime unit: bf16_math.h; file SHA256: 1f374f8380f756eb89acf6a847741cb8fecbe642945e159fb6208d804cc06496 +// Runtime unit SHA256: 5ac7275c794d3c7c66a8dda727587b0299788436e6f6a49cf1b5f599608da106 +// BEGIN RUNTIME UNIT +// Copyright © 2023 Apple Inc. + + +/////////////////////////////////////////////////////////////////////////////// +// Metal math for bfloat16 +/////////////////////////////////////////////////////////////////////////////// + +/* + +Following the Metal Shading Language Specification (Metal 3.1) + +"bfloat is an extended itypeing point type that only allows implicit conversion + to a type of greater itypeing point rank. While bfloat can be implicitly + converted to itype, it cannot be implicitly converted to half, and neither + itype nor half can be implicitly converted to bfloat." + +Further, as far as I can tell, the stdlib math/simd functions are not defined +for bfloat and calling with an argument of type bfloat will result in that +argument getting implicitly converted to itype which then returns an output +that is (likely) a itype which cannot be implicitly converted into a bfloat + +This leads to situations where +bfloat a = 5.0bf; +bfloat b = metal::abs(a); // this will throw an error since abs return itype +bfloat c = static_cast(metal::abs(a)); // this is fine + +For the moment, I will be adding overloaded instantiations of the math +functions to accordingly automatically handle the casting + +*/ + +#define instantiate_metal_math_funcs(itype, otype, ctype, mfast) \ + \ + METAL_FUNC otype abs(itype x) { \ + return static_cast(__metal_fabs(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype acos(itype x) { \ + return static_cast(__metal_acos(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype acosh(itype x) { \ + return static_cast(__metal_acosh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype asin(itype x) { \ + return static_cast(__metal_asin(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype asinh(itype x) { \ + return static_cast(__metal_asinh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype atan(itype y_over_x) { \ + return static_cast( \ + __metal_atan(static_cast(y_over_x), mfast)); \ + } \ + METAL_FUNC otype atan2(itype y, itype x) { \ + return static_cast( \ + __metal_atan2(static_cast(y), static_cast(x), mfast)); \ + } \ + METAL_FUNC otype atanh(itype x) { \ + return static_cast(__metal_atanh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype ceil(itype x) { \ + return static_cast(__metal_ceil(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cos(itype x) { \ + return static_cast(__metal_cos(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cosh(itype x) { \ + return static_cast(__metal_cosh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype cospi(itype x) { \ + return static_cast(__metal_cospi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype divide(itype x, itype y) { \ + return static_cast( \ + __metal_divide(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype exp(itype x) { \ + return static_cast(__metal_exp(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype exp10(itype x) { \ + return static_cast(__metal_exp10(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype exp2(itype x) { \ + return static_cast(__metal_exp2(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fabs(itype x) { \ + return static_cast(__metal_fabs(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fdim(itype x, itype y) { \ + ctype t = static_cast(x - y); \ + return static_cast(select(t, ctype(0), t < ctype(0) || x == y)); \ + } \ + METAL_FUNC otype floor(itype x) { \ + return static_cast(__metal_floor(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype fma(itype x, itype y, itype z) { \ + return static_cast(__metal_fma( \ + static_cast(x), static_cast(y), static_cast(z))); \ + } \ + METAL_FUNC otype fmax(itype x, itype y) { \ + return static_cast( \ + __metal_fmax(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fmax3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmax3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmedian3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmedian3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmin(itype x, itype y) { \ + return static_cast( \ + __metal_fmin(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fmin3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmin3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype fmod(itype x, itype y) { \ + return static_cast( \ + __metal_fmod(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype fract(itype x) { \ + return static_cast(__metal_fract(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype frexp(itype x, thread int& exp) { \ + return static_cast(__metal_frexp(static_cast(x), &exp)); \ + } \ + METAL_FUNC otype ldexp(itype x, int k) { \ + return static_cast(__metal_ldexp(static_cast(x), k, mfast)); \ + } \ + METAL_FUNC otype log(itype x) { \ + return static_cast(__metal_log(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype log10(itype x) { \ + return static_cast(__metal_log10(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype log2(itype x) { \ + return static_cast(__metal_log2(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype max(itype x, itype y) { \ + return static_cast( \ + __metal_fmax(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype max3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmax3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype median3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmedian3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype min(itype x, itype y) { \ + return static_cast( \ + __metal_fmin(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype min3(itype x, itype y, itype z) { \ + return static_cast(__metal_fmin3( \ + static_cast(x), \ + static_cast(y), \ + static_cast(z), \ + mfast)); \ + } \ + METAL_FUNC otype nextafter(itype x, itype y) { \ + return static_cast( \ + __metal_nextafter(static_cast(x), static_cast(y))); \ + } \ + METAL_FUNC otype pow(itype x, itype y) { \ + return static_cast( \ + __metal_pow(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype powr(itype x, itype y) { \ + return static_cast( \ + __metal_powr(static_cast(x), static_cast(y), mfast)); \ + } \ + METAL_FUNC otype rint(itype x) { \ + return static_cast(__metal_rint(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype round(itype x) { \ + return static_cast(__metal_round(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype rsqrt(itype x) { \ + return static_cast(__metal_rsqrt(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sin(itype x) { \ + return static_cast(__metal_sin(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sinh(itype x) { \ + return static_cast(__metal_sinh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sinpi(itype x) { \ + return static_cast(__metal_sinpi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype sqrt(itype x) { \ + return static_cast(__metal_sqrt(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tan(itype x) { \ + return static_cast(__metal_tan(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tanh(itype x) { \ + return static_cast(__metal_tanh(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype tanpi(itype x) { \ + return static_cast(__metal_tanpi(static_cast(x), mfast)); \ + } \ + METAL_FUNC otype trunc(itype x) { \ + return static_cast(__metal_trunc(static_cast(x), mfast)); \ + } + +namespace metal { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_MAYBE_FAST_MATH__); + +namespace fast { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_FAST_MATH__); + +} // namespace fast + +namespace precise { + +instantiate_metal_math_funcs( + bfloat16_t, + bfloat16_t, + float, + __METAL_PRECISE_MATH__); + +} // namespace precise + +} // namespace metal + +/////////////////////////////////////////////////////////////////////////////// +// Metal simd for bfloat16 +/////////////////////////////////////////////////////////////////////////////// + +#define instantiate_metal_simd_comm_funcs( \ + itype, otype, ctype, itype_to_ctype, ctype_to_otype) \ + \ + METAL_FUNC otype simd_broadcast(itype data, ushort broadcast_lane_id) { \ + return ctype_to_otype( \ + __metal_simd_broadcast(itype_to_ctype(data), broadcast_lane_id)); \ + } \ + \ + METAL_FUNC otype simd_shuffle(itype data, ushort simd_lane_id) { \ + return ctype_to_otype( \ + __metal_simd_shuffle(itype_to_ctype(data), simd_lane_id)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_down( \ + itype data, itype filling_data, ushort delta, ushort modulo) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \ + itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_down( \ + itype data, itype filling_data, ushort delta) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_down( \ + itype_to_ctype(data), \ + itype_to_ctype(filling_data), \ + delta, \ + __metal_get_simdgroup_size(ushort()))); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_up( \ + itype data, itype filling_data, ushort delta, ushort modulo) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \ + itype_to_ctype(data), itype_to_ctype(filling_data), delta, modulo)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_and_fill_up( \ + itype data, itype filling_data, ushort delta) { \ + return ctype_to_otype(__metal_simd_shuffle_and_fill_up( \ + itype_to_ctype(data), \ + itype_to_ctype(filling_data), \ + delta, \ + __metal_get_simdgroup_size(ushort()))); \ + } \ + \ + METAL_FUNC otype simd_shuffle_down(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_down(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_rotate_down(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_rotate_down(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_rotate_up(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_rotate_up(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_up(itype data, ushort delta) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_up(itype_to_ctype(data), delta)); \ + } \ + \ + METAL_FUNC otype simd_shuffle_xor(itype data, ushort mask) { \ + return ctype_to_otype( \ + __metal_simd_shuffle_xor(itype_to_ctype(data), mask)); \ + } + +#define instantiate_metal_simd_reduction_funcs(itype, otype, ctype) \ + \ + METAL_FUNC otype simd_max(itype data) { \ + return static_cast(__metal_simd_max(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_min(itype data) { \ + return static_cast(__metal_simd_min(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_exclusive_product(itype data) { \ + return static_cast( \ + __metal_simd_prefix_exclusive_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_exclusive_sum(itype data) { \ + return static_cast( \ + __metal_simd_prefix_exclusive_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_inclusive_product(itype data) { \ + return static_cast( \ + __metal_simd_prefix_inclusive_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_prefix_inclusive_sum(itype data) { \ + return static_cast( \ + __metal_simd_prefix_inclusive_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_product(itype data) { \ + return static_cast(__metal_simd_product(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_sum(itype data) { \ + return static_cast(__metal_simd_sum(static_cast(data))); \ + } \ + \ + METAL_FUNC otype simd_xor(itype data) { \ + return static_cast(__metal_simd_xor(static_cast(data))); \ + } + +namespace metal { + +instantiate_metal_simd_comm_funcs( + bfloat16_t, + bfloat16_t, + uint16_t, + bfloat16_to_uint16, + uint16_to_bfloat16); +instantiate_metal_simd_reduction_funcs(bfloat16_t, bfloat16_t, float); + +} // namespace metal +// END RUNTIME UNIT +// Runtime unit: utils.h; file SHA256: 5e1568e9edde9d05dbf86f68fa0d6c6240f2c32b973c7c6a76166b9c0d91543d +// Runtime unit SHA256: 4d161c065a8f4eb7ae4088d48e7e9fe07f19b1492eebd78585bfb67727b52961 +// BEGIN RUNTIME UNIT +template +METAL_FUNC IdxT elem_to_loc_1(uint elem, constant const int64_t& stride) { + return elem * IdxT(stride); +} + +template +METAL_FUNC IdxT elem_to_loc_2(uint2 elem, constant const int64_t strides[2]) { + return elem.x * IdxT(strides[1]) + elem.y * IdxT(strides[0]); +} + +template +METAL_FUNC IdxT elem_to_loc_3(uint3 elem, constant const int64_t strides[3]) { + return elem.x * IdxT(strides[2]) + elem.y * IdxT(strides[1]) + + elem.z * IdxT(strides[0]); +} + +template +inline U cast_to(T val) { + return static_cast(val); +} + +// END RUNTIME UNIT +// Runtime unit: unary_ops.h; file SHA256: 0a5492b65ae39ecb6d8b04e64ea5007e0a4ff60d8d9428559bfbfd03387ece2a +// Runtime unit SHA256: 21d84493d7e2ee35a0ee7de563fc67c4773f7a46b09eded543c5a4db429906cd +// BEGIN RUNTIME UNIT +struct Sigmoid { + template + T operator()(T x) thread { + auto y = 1 / (1 + metal::exp(metal::abs(x))); + return (x < 0) ? y : 1 - y; + } +}; + +// END RUNTIME UNIT +// Runtime unit: binary_ops.h; file SHA256: 2dd13c2496f5d6f0856e4ca99db2ceb5c6d7dc0c344b9ba8e41ef3b7d7ed8a97 +// Runtime unit SHA256: 8db3e4fac1958175bcf399aac30c935de5150c68cd3b864b1d55896bbc4bef9a +// BEGIN RUNTIME UNIT +struct Multiply { + template + T operator()(T x, T y) thread { + return x * y; + } +}; + +// END RUNTIME UNIT +// Runtime unit: captured-silu-jit; file SHA256: ed0ccd2cbbbcdacbb3e1c1fe8eb7f6b4d104a00197c97a43c93904fc0124d0af +// Runtime unit SHA256: 6f57e91b38fbad364609a3faa5f2aca2e90bfb015e67921d045ed826601f9d21 +// BEGIN RUNTIME UNIT +[[host_name("kernel_qwen_mtplx_silu_bf16_contiguous")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous( + device const bfloat16_t* A [[buffer(0)]], + device bfloat16_t* B [[buffer(1)]], + constant const uint& size [[buffer(2)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = N_ * pos.x; + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_contiguous_n")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_n( + device const bfloat16_t* A [[buffer(0)]], + device bfloat16_t* B [[buffer(1)]], + constant const uint& size [[buffer(2)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + uint index = N_ * pos.x; + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_contiguous_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_large( + device const bfloat16_t* A [[buffer(0)]], + device bfloat16_t* B [[buffer(1)]], + constant const int64_t& size [[buffer(2)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y)); + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_1")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_1(pos.x, in_strides[0]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_1_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_2")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_2_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_3")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_3(pos, in_strides + 0); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_3_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_3(pos, in_strides + 0); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_4")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[3]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[3]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_4_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[3]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[3]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_5")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[4]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[4]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_5_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[4]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[4]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_6")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[5]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[5]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_6_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[5]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[5]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_7")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[6]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[6]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_7_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[6]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[6]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_dynamic")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + constant const int& ndim [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[ndim - 1]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[0 * ndim + ndim - 1]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_silu_bf16_strided_dynamic_large")]] +[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic_large( + device const bfloat16_t* A [[buffer(0)]], + constant const int64_t* in_strides [[buffer(1)]], + device bfloat16_t* B [[buffer(2)]], + constant const int* output_shape [[buffer(3)]], + constant const int& ndim [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[ndim - 1]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_C = Sigmoid()(tmp_A); + bfloat16_t tmp_D = cast_to(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_C); + bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E); + B[index] = tmp_B; + index_A += in_strides[0 * ndim + ndim - 1]; + index++; + } +} +// END RUNTIME UNIT + +// Runtime GatherAxis shader: Copyright Apple Inc. SPDX-License-Identifier: MIT +// Runtime unit: utils.h; file SHA256: 5e1568e9edde9d05dbf86f68fa0d6c6240f2c32b973c7c6a76166b9c0d91543d +// Runtime unit SHA256: b37b61719692317574e960fd7586b5051e6a8c60749705f5bef18f9fc156090a +// BEGIN RUNTIME UNIT +template +METAL_FUNC IdxT elem_to_loc( + IdxT elem, + constant const int* shape, + constant const int64_t* strides, + int ndim) { + IdxT loc = 0; + for (int i = ndim - 1; i >= 0 && elem > 0; --i) { + loc += (elem % shape[i]) * IdxT(strides[i]); + elem /= shape[i]; + } + return loc; +} + +// END RUNTIME UNIT +// Runtime unit: indexing/gather_axis.h; file SHA256: e1a745391ff4990f3f1ad75c5687c3b102dcdc4833d8fbbac38e10f54af29af4 +// Runtime unit SHA256: 5d5723cce37465e7b10b6c4df615214e4c67317a6c810e7dcf9ec319036cbd25 +// BEGIN RUNTIME UNIT +// Copyright © 2025 Apple Inc. + + +template +[[kernel]] void gather_axis( + const device T* src [[buffer(0)]], + const device IdxT* indices [[buffer(1)]], + device T* out [[buffer(2)]], + const constant int* shape [[buffer(3)]], + const constant int64_t* src_strides [[buffer(4)]], + const constant int64_t* idx_strides [[buffer(5)]], + const constant size_t& ndim [[buffer(6)]], + const constant int& axis [[buffer(7)]], + const constant int& axis_size [[buffer(8)]], + const constant size_t& src_ax_stride [[buffer(9)]], + const constant size_t& idx_ax_stride [[buffer(10)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + LocT elem_idx = index.z * static_cast(grid_dim.x); + LocT out_idx = elem_idx * grid_dim.y + index.x; + + LocT idx_loc = index.y * static_cast(idx_ax_stride); + if (IdxC) { + idx_loc += out_idx; + } else { + idx_loc += elem_to_loc(elem_idx + index.x, shape, idx_strides, ndim); + } + + auto idx_val = indices[idx_loc]; + if (is_signed_v) { + idx_val = (idx_val < 0) ? idx_val + axis_size : idx_val; + } + + LocT src_idx = idx_val * static_cast(src_ax_stride); + if (SrcC) { + src_idx += elem_idx * axis_size + index.x; + } else { + src_idx += elem_to_loc(elem_idx + index.x, shape, src_strides, ndim); + } + + out_idx += index.y * static_cast(grid_dim.x); + out[out_idx] = src[src_idx]; +} +// END RUNTIME UNIT +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bf16_idxi32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f16_idxi32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_f32_idxi32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_u32_idxi32_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_bool_idxi64_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int64_t_00")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int64_t_01")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int64_t_10")]] +[[kernel]] decltype(gather_axis) gather_axis; +template [[host_name("kernel_qwen_mtplx_gather_axis_i64_idxi64_int64_t_11")]] +[[kernel]] decltype(gather_axis) gather_axis; +// Runtime unit: gather.h; file SHA256: 3b2f5b21cd2e71427c9641368a457840f5cb131e202095cd1352f983ce7541ce +// Runtime unit SHA256: a883c916496d227fb6bc2c9bf1586e56a4331d097f63d3e42faa69786d4e2992 +// BEGIN RUNTIME UNIT +// Copyright © 2024 Apple Inc. + + + +template +METAL_FUNC void gather_impl( + const device T* src [[buffer(0)]], + device T* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const thread Indices& indices, + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + LocT src_idx = 0; + for (int i = 0; i < NIDX; ++i) { + LocT idx_loc; + if (IDX_NDIM == 0) { + idx_loc = 0; + } else if (IDX_NDIM == 1) { + idx_loc = index.x * static_cast(indices.strides[indices.ndim * i]); + } else { + idx_loc = index.x * static_cast(indices.strides[indices.ndim * i]); + idx_loc += indices.row_contiguous[i] + ? index.y + : elem_to_loc( + index.y, + &indices.shapes[indices.ndim * i + 1], + &indices.strides[indices.ndim * i + 1], + indices.ndim - 1); + } + auto ax = axes[i]; + auto idx_val = offset_neg_idx(indices.buffers[i][idx_loc], src_shape[ax]); + src_idx += static_cast(idx_val) * static_cast(src_strides[ax]); + } + + auto src_offset = + elem_to_loc(index.z, slice_sizes, src_strides, src_ndim); + + LocT out_idx = index.z; + if (IDX_NDIM == 1) { + out_idx += static_cast(grid_dim.z) * index.x; + } else if (IDX_NDIM >= 2) { + out_idx += grid_dim.z * (index.x * static_cast(grid_dim.y) + index.y); + } + out[out_idx] = src[src_offset + src_idx]; +} +// END RUNTIME UNIT +// Runtime unit: gather JIT wrappers; file SHA256: 1b38dbdf3120eca3e5266ffd6d69691591c9432c0b5acece4c5ab2de7a9e802f +// Runtime unit SHA256: 8afe2e20ea04b1e2f3504bc579d99e8766382ad22775179a03ff30393bb837c9 +// BEGIN RUNTIME UNIT + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_0_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_0_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_1_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_1_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_2_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_2_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_3_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_3_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_4_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi64_1_4_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_0_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_0_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_1_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_1_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_2_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_2_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_3_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_3_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_4_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi64_1_4_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_0_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_0_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_1_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_1_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_2_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_2_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_3_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_3_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_4_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi64_1_4_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_0_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_0_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_1_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_1_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_2_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_2_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_3_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_3_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_4_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi64_1_4_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int64_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_0_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_0_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_1_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_1_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_2_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_2_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_3_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_3_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_4_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxi32_1_4_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_0_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_0_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_1_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_1_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_2_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_2_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_3_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_3_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_4_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxi32_1_4_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_0_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_0_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_1_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_1_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_2_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_2_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_3_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_3_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_4_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxi32_1_4_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_0_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_0_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_1_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_1_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_2_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_2_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_3_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_3_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_4_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxi32_1_4_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device int32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_0_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_0_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_1_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_1_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_2_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_2_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_3_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_3_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_4_int( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_bf16_idxu32_1_4_int64_t( + const device bfloat* src [[buffer(0)]], + device bfloat* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_0_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_0_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_1_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_1_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_2_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_2_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_3_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_3_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_4_int( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f16_idxu32_1_4_int64_t( + const device half* src [[buffer(0)]], + device half* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_0_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_0_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_1_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_1_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_2_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_2_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_3_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_3_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_4_int( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_u32_idxu32_1_4_int64_t( + const device uint32_t* src [[buffer(0)]], + device uint32_t* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_0_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_0_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_1_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_1_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_2_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_2_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_3_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_3_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_4_int( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} + +[[kernel]] void kernel_qwen_mtplx_gather_f32_idxu32_1_4_int64_t( + const device float* src [[buffer(0)]], + device float* out [[buffer(1)]], + const constant int* src_shape [[buffer(2)]], + const constant int64_t* src_strides [[buffer(3)]], + const constant size_t& src_ndim [[buffer(4)]], + const constant int* slice_sizes [[buffer(5)]], + const constant int* axes [[buffer(6)]], + const constant int* idx_shapes [[buffer(7)]], + const constant int64_t* idx_strides [[buffer(8)]], + const constant bool* idx_contigs [[buffer(9)]], + const constant int& idx_ndim [[buffer(10)]], + const device uint32_t *idx0 [[buffer(20)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Indices idxs{ + { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return gather_impl( + src, + out, + src_shape, + src_strides, + src_ndim, + slice_sizes, + axes, + idxs, + index, + grid_dim); +} +// END RUNTIME UNIT + +// Runtime ScatterAxis: Copyright Apple Inc. SPDX-License-Identifier: MIT +#include +namespace mtplx_eager_scatter { +// Runtime unit: complex.h; file SHA256: 16e8a815b2cbdb6070e0824e64fe33fccb6e918f1b84ea5c792bd89d33e57bf1 +// Runtime unit SHA256: 0393eb41ea618f7b09343672f598d8c4c3e4b98eb8536466fb53c8d286fbf1f7 +// BEGIN RUNTIME UNIT +// Copyright © 2023 Apple Inc. + + + + +using namespace metal; + +template +struct complex_t; + +template +static constexpr constant bool is_complex_v = false; + +template +static constexpr constant bool is_complex_v> = true; + +// Metal accepts explicit bfloat casts that is_convertible_v reports as false. +template +static constexpr constant bool is_lane_convertible_v = + is_convertible_v || + (is_same_v && is_convertible_v) || + (is_same_v && is_convertible_v); + +template +struct complex_t { + using value_type = T; + + T real; + T imag; + + // Constructors + constexpr complex_t(T real, T imag) thread : real(real), imag(imag) {}; + constexpr complex_t() thread : real(0), imag(0) {}; + constexpr complex_t() threadgroup : real(0), imag(0) {}; + + // Conversions from scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) thread : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) threadgroup : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) device : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) constant : real(static_cast(x)), + imag(static_cast(0)) {} + + // Conversions between complex types + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) thread : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) threadgroup + : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) device : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) constant : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + // Conversions to and from two-lane vectors (the FFT lane representation) + constexpr complex_t(vec v) thread : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) threadgroup : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) device : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) constant : real(v.x), imag(v.y) {}; + + constexpr operator vec() const thread { + return vec(real, imag); + } + + constexpr operator vec() const threadgroup { + return vec(real, imag); + } + + constexpr operator vec() const device { + return vec(real, imag); + } + + constexpr operator vec() const constant { + return vec(real, imag); + } + + // Conversions to scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const thread { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const threadgroup { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const device { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const constant { + return static_cast(real); + } +}; + +using complex32_t = complex_t; +using complex64_t = complex_t; + +static_assert(sizeof(complex32_t) == 2 * sizeof(half)); +static_assert(sizeof(complex64_t) == 2 * sizeof(float)); +static_assert(sizeof(complex_t) == 2 * sizeof(bfloat16_t)); + +template +constexpr complex_t operator-(complex_t x) { + return {-x.real, -x.imag}; +} + +template +constexpr bool operator>=(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag >= b.imag); +} + +template +constexpr bool operator>(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag > b.imag); +} + +template +constexpr bool operator<=(complex_t a, complex_t b) { + return operator>=(b, a); +} + +template +constexpr bool operator<(complex_t a, complex_t b) { + return operator>(b, a); +} + +template +constexpr bool operator==(complex_t a, complex_t b) { + return a.real == b.real && a.imag == b.imag; +} + +template +constexpr complex_t operator+(complex_t a, complex_t b) { + return {a.real + b.real, a.imag + b.imag}; +} + +template +constexpr thread complex_t& operator+=( + thread complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr threadgroup complex_t& operator+=( + threadgroup complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr device complex_t& operator+=( + device complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(U a, complex_t b) { + return {static_cast(a) + b.real, b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(complex_t a, U b) { + return {a.real + static_cast(b), a.imag}; +} + +template +constexpr complex_t operator-(complex_t a, complex_t b) { + return {a.real - b.real, a.imag - b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(U a, complex_t b) { + return {static_cast(a) - b.real, -b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(complex_t a, U b) { + return {a.real - static_cast(b), a.imag}; +} + +template +constexpr complex_t operator*(complex_t a, complex_t b) { + return {a.real * b.real - a.imag * b.imag, a.real * b.imag + a.imag * b.real}; +} + +template +constexpr complex_t operator/(complex_t a, complex_t b) { + auto denom = b.real * b.real + b.imag * b.imag; + auto x = a.real * b.real + a.imag * b.imag; + auto y = a.imag * b.real - a.real * b.imag; + return {x / denom, y / denom}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator/(U a, complex_t b) { + auto scalar = static_cast(a); + auto denom = b.real * b.real + b.imag * b.imag; + auto x = scalar * b.real; + auto y = -scalar * b.imag; + return {x / denom, y / denom}; +} + +template +constexpr complex_t operator%(complex_t a, complex_t b) { + auto real = a.real - (b.real * static_cast(a.real / b.real)); + auto imag = a.imag - (b.imag * static_cast(a.imag / b.imag)); + if (real != 0 && (real < 0 != b.real < 0)) { + real += b.real; + } + if (imag != 0 && (imag < 0 != b.imag < 0)) { + imag += b.imag; + } + return {real, imag}; +} + +static_assert( + (complex_t{1.0h, 2.0h} * complex_t{3.0h, 4.0h}).real == -5.0h); +static_assert( + (complex_t{bfloat16_t(1.0f), bfloat16_t(2.0f)} * + complex_t{bfloat16_t(3.0f), bfloat16_t(4.0f)}) + .real == bfloat16_t(-5.0f)); +// END RUNTIME UNIT +// Runtime unit: atomic.h; file SHA256: 4c35ea2798a2335502865247aee878149fc9ada0d7e84c05d771baef0c7fcc60 +// Runtime unit SHA256: 7c800c32a72badbf76980e746956577d168dd396e002f6cc2eaa83e90b913457 +// BEGIN RUNTIME UNIT +// Copyright © 2023 Apple Inc. + + + +using namespace metal; + +/////////////////////////////////////////////////////////////////////////////// +// Atomic utils +/////////////////////////////////////////////////////////////////////////////// + +#pragma METAL internals : enable +template +constexpr constant bool is_metal_atomic = _disjunction< + is_same, + is_same, + is_same, + is_same>::value; + +#pragma METAL internals : disable + +template +struct mlx_atomic { + atomic val; +}; + +template +struct mlx_atomic>> { + atomic val; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Native metal atomics +/////////////////////////////////////////////////////////////////////////////// + +template , bool> = true> +METAL_FUNC T +mlx_atomic_load_explicit(device mlx_atomic* object, size_t offset) { + return atomic_load_explicit(&(object[offset].val), memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void +mlx_atomic_store_explicit(device mlx_atomic* object, T val, size_t offset) { + atomic_store_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_and_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + atomic_fetch_and_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_or_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + atomic_fetch_or_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_min_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + atomic_fetch_min_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_max_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + atomic_fetch_max_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_add_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + atomic_fetch_add_explicit(&(object[offset].val), val, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_mul_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + T expected = mlx_atomic_load_explicit(object, offset); + while (!mlx_atomic_compare_exchange_weak_explicit( + object, &expected, val * expected, offset)) { + // Workaround: Metal's atomic_compare_exchange_weak_explicit does + // not perform bitwise comparison as required by the C++ atomics spec. + // The compiler lowers the success check to `fcmp fast ueq` under + // no-nans-fp-math, which evaluates to false when either operand is NaN - + // even when the bit patterns are identical. With NaN in memory the CAS + // can never succeed, so the loop spins. Bail out instead: memory is + // already NaN and that is the correct reduction result regardless of + // this thread's update. + if constexpr (metal::is_floating_point_v) { + if (isnan(expected)) { + break; + } + } + } +} + +template , bool> = true> +METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit( + device mlx_atomic* object, + thread T* expected, + T val, + size_t offset) { + return atomic_compare_exchange_weak_explicit( + &(object[offset].val), + expected, + val, + memory_order_relaxed, + memory_order_relaxed); +} + +// Specialization for float since it does not atomic_fetch_min_explicit +template <> +METAL_FUNC void mlx_atomic_fetch_min_explicit( + device mlx_atomic* object, + float val, + size_t offset) { + float expected = mlx_atomic_load_explicit(object, offset); + while (val < expected) { + if (mlx_atomic_compare_exchange_weak_explicit( + object, &expected, val, offset)) { + return; + } + } +} + +// Specialization for float since it does not atomic_fetch_max_explicit +template <> +METAL_FUNC void mlx_atomic_fetch_max_explicit( + device mlx_atomic* object, + float val, + size_t offset) { + float expected = mlx_atomic_load_explicit(object, offset); + while (val > expected) { + if (mlx_atomic_compare_exchange_weak_explicit( + object, &expected, val, offset)) { + return; + } + } +} + +/////////////////////////////////////////////////////////////////////////////// +// Custom atomics +/////////////////////////////////////////////////////////////////////////////// + +namespace { + +template +constexpr constant uint packing_size = sizeof(uint) / sizeof(T); + +template +union uint_or_packed { + T val[packing_size]; + uint bits; +}; + +template +struct mlx_atomic_update_helper { + uint operator()(uint_or_packed init, T update, size_t elem_offset) thread { + Op op; + init.val[elem_offset] = op(update, init.val[elem_offset]); + return init.bits; + } +}; + +template +METAL_FUNC void mlx_atomic_update_and_store( + device mlx_atomic* object, + T update, + size_t offset) { + size_t pack_offset = offset / packing_size; + size_t elem_offset = offset % packing_size; + + mlx_atomic_update_helper helper; + uint_or_packed expected; + expected.bits = + atomic_load_explicit(&(object[pack_offset].val), memory_order_relaxed); + + while (Op::condition(update, expected.val[elem_offset]) && + !mlx_atomic_compare_exchange_weak_explicit( + object, + &(expected.bits), + helper(expected, update, elem_offset), + pack_offset)) { + } +} + +template +struct __None { + static bool condition(T a, T b) { +#pragma unused(a) +#pragma unused(b) + return true; + } + + T operator()(T a, T b) thread { +#pragma unused(b) + return a; + } +}; + +template +struct __Add { + static bool condition(T a, T b) { +#pragma unused(a) +#pragma unused(b) + return true; + } + + T operator()(T a, T b) thread { + return a + b; + } +}; + +template +struct __Mul { + static bool condition(T a, T b) { +#pragma unused(a) + return b != 0; + } + + T operator()(T a, T b) thread { + return a * b; + } +}; + +template +struct __Max { + static bool condition(T a, T b) { + return a > b; + } + + T operator()(T a, T b) thread { + return max(a, b); + } +}; + +template +struct __Min { + static bool condition(T a, T b) { + return a < b; + } + + T operator()(T a, T b) thread { + return min(a, b); + } +}; + +} // namespace + +template , bool> = true> +METAL_FUNC T +mlx_atomic_load_explicit(device mlx_atomic* object, size_t offset) { + size_t pack_offset = offset / sizeof(T); + size_t elem_offset = offset % sizeof(T); + uint_or_packed packed_val; + packed_val.bits = + atomic_load_explicit(&(object[pack_offset].val), memory_order_relaxed); + return packed_val.val[elem_offset]; +} + +template , bool> = true> +METAL_FUNC void +mlx_atomic_store_explicit(device mlx_atomic* object, T val, size_t offset) { + mlx_atomic_update_and_store>(object, val, offset); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_and_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + size_t pack_offset = offset / packing_size; + size_t elem_offset = offset % packing_size; + uint_or_packed identity; + identity.bits = __UINT32_MAX__; + identity.val[elem_offset] = val; + + atomic_fetch_and_explicit( + &(object[pack_offset].val), identity.bits, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_or_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + size_t pack_offset = offset / packing_size; + size_t elem_offset = offset % packing_size; + uint_or_packed identity; + identity.bits = 0; + identity.val[elem_offset] = val; + + atomic_fetch_or_explicit( + &(object[pack_offset].val), identity.bits, memory_order_relaxed); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_min_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + mlx_atomic_update_and_store>(object, val, offset); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_max_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + mlx_atomic_update_and_store>(object, val, offset); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_add_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + mlx_atomic_update_and_store>(object, val, offset); +} + +template , bool> = true> +METAL_FUNC void mlx_atomic_fetch_mul_explicit( + device mlx_atomic* object, + T val, + size_t offset) { + mlx_atomic_update_and_store>(object, val, offset); +} + +template , bool> = true> +METAL_FUNC bool mlx_atomic_compare_exchange_weak_explicit( + device mlx_atomic* object, + thread uint* expected, + uint val, + size_t offset) { + return atomic_compare_exchange_weak_explicit( + &(object[offset].val), + expected, + val, + memory_order_relaxed, + memory_order_relaxed); +} +// END RUNTIME UNIT +// Runtime unit: reduction/ops.h; file SHA256: 78d06730fc9564a73944e7f1fe3897d25c8789b28a939bf418e1968db311da41 +// Runtime unit SHA256: e73aa8c073780f3d0fa97f431c350d48fcdfb13d60b02910b3d342d38ecf96b7 +// BEGIN RUNTIME UNIT +#define DEFINE_SIMD_REDUCE() \ + template = true> \ + T simd_reduce(T val) thread { \ + return simd_reduce_impl(val); \ + } \ + \ + template = true> \ + T simd_reduce(T val) thread { \ + for (short i = simd_size / 2; i > 0; i /= 2) { \ + val = operator()(val, simd_shuffle_down(val, i)); \ + } \ + return val; \ + } + +static constant constexpr const uint8_t simd_size = 32; + +union bool4_or_uint { + bool4 b; + unsigned int i; +}; + +struct None { + template + void atomic_update(device mlx_atomic* out, T val, size_t offset = 0) + thread { + mlx_atomic_store_explicit(out, val, offset); + } +}; + +template +struct And { + DEFINE_SIMD_REDUCE() + + bool simd_reduce_impl(bool val) thread { + return simd_all(val); + } + + static constexpr constant bool init = true; + + void atomic_update( + device mlx_atomic* out, + bool val, + int elem_idx, + size_t offset = 0) thread { + if (!val) { + bool4_or_uint update; + update.b = {true, true, true, true}; + update.b[elem_idx] = false; + mlx_atomic_fetch_and_explicit(out, update.i, offset); + } + } + + void atomic_update(device mlx_atomic* out, bool val, size_t offset = 0) + thread { + if (!val) { + mlx_atomic_store_explicit(out, val, offset); + } + } + + // Non atomic update + void update(device bool* out, bool val) thread { + *out &= val; + } + + // Operator + bool operator()(bool a, bool b) thread { + return a && b; + } +}; + +template +struct Or { + DEFINE_SIMD_REDUCE() + + bool simd_reduce_impl(bool val) thread { + return simd_any(val); + } + + static constexpr constant bool init = false; + + void atomic_update( + device mlx_atomic* out, + bool val, + int elem_idx, + size_t offset = 0) thread { + if (val) { + bool4_or_uint update; + update.b = {false, false, false, false}; + update.b[elem_idx] = true; + mlx_atomic_fetch_or_explicit(out, update.i, offset); + } + } + + void atomic_update(device mlx_atomic* out, bool val, size_t offset = 0) + thread { + if (val) { + mlx_atomic_store_explicit(out, val, offset); + } + } + + // Non atomic update + void update(device bool* out, bool val) thread { + *out |= val; + } + + // Operator + bool operator()(bool a, bool b) thread { + return a || b; + } +}; + +template +struct Sum { + DEFINE_SIMD_REDUCE() + + template + T simd_reduce_impl(T val) thread { + return simd_sum(val); + } + + static constexpr constant U init = U(0); + + template + void atomic_update(device mlx_atomic* out, T val, size_t offset = 0) + thread { + mlx_atomic_fetch_add_explicit(out, val, offset); + } + + void atomic_update( + device mlx_atomic* out, + complex64_t val, + size_t offset = 0) thread { + auto out_lanes = reinterpret_cast*>(out); + mlx_atomic_fetch_add_explicit(out_lanes, val.real, 2 * offset); + mlx_atomic_fetch_add_explicit(out_lanes, val.imag, 2 * offset + 1); + } + + // Operator + U operator()(U a, U b) thread { + return a + b; + } +}; + +// END RUNTIME UNIT +// Runtime unit: indexing/indexing.h; file SHA256: e820b8ee2b5132a97122780c12433ebb5100d8078d31e211d0429400a11415bb +// Runtime unit SHA256: 6b177621bd445d19f9b45bfa1f0930e23cf0fe952aa5477cb03789253bea2bf0 +// BEGIN RUNTIME UNIT +// Copyright © 2023-2024 Apple Inc. + + + +template +struct Indices { + const array buffers; + const constant int* shapes; + const constant int64_t* strides; + const constant bool* row_contiguous; + const int ndim; +}; + +template +METAL_FUNC size_t offset_neg_idx(IdxT idx, int size) { + if (is_unsigned_v) { + return idx; + } else { + return (idx < 0) ? idx + size : idx; + } +} +// END RUNTIME UNIT +// Runtime unit: indexing/scatter.h; file SHA256: fa799c286378c59fbb3aeb973e74bf471861e3356ce2817968fe5d6872c3d9ad +// Runtime unit SHA256: c2ee76965834378eb9bf72db83fcca20e9b37c6c5c60a81de424e2325a02f7c3 +// BEGIN RUNTIME UNIT +// Copyright © 2024 Apple Inc. + + + +template < + typename T, + typename IdxT, + typename Op, + int NIDX, + bool UPD_ROW_CONTIG, + int NWORK, + typename LocT> +METAL_FUNC void scatter_impl( + const device T* updates, + device mlx_atomic* out, + const constant int* upd_shape, + const constant int64_t* upd_strides, + const constant size_t& upd_ndim, + const constant size_t& upd_size, + const constant int* out_shape, + const constant int64_t* out_strides, + const constant size_t& out_ndim, + const constant int* axes, + const constant size_t& idx_size, + const thread Indices& indices, + uint2 gid [[thread_position_in_grid]]) { + Op op; + + auto ind_idx = gid.y * NWORK; + LocT out_offset = 0; + if (upd_size > 1) { + out_offset = elem_to_loc( + gid.x, upd_shape + indices.ndim, out_strides, out_ndim); + } + + for (int j = 0; j < NWORK && ind_idx < idx_size; ++j, ind_idx++) { + LocT out_idx = out_offset; + for (int i = 0; i < NIDX; ++i) { + auto idx_loc = indices.row_contiguous[i] + ? ind_idx + : elem_to_loc( + ind_idx, + &indices.shapes[indices.ndim * i], + &indices.strides[indices.ndim * i], + indices.ndim); + auto ax = axes[i]; + auto idx_val = offset_neg_idx(indices.buffers[i][idx_loc], out_shape[ax]); + out_idx += + static_cast(idx_val) * static_cast(out_strides[ax]); + } + auto upd_idx = ind_idx * static_cast(upd_size) + gid.x; + if constexpr (!UPD_ROW_CONTIG) { + upd_idx = elem_to_loc(upd_idx, upd_shape, upd_strides, upd_ndim); + } + op.atomic_update(out, updates[upd_idx], out_idx); + } +} + +template < + typename T, + typename IdxT, + typename Op, + bool OUT_ROW_CONTIG, + bool UPD_ROW_CONTIG, + bool UPD_SCALAR, + int NWORK, + int NDIM> +[[kernel]] void slice_update_op_impl( + const device T* updates [[buffer(0)]], + device T* out [[buffer(1)]], + const constant int* update_shape [[buffer(2)]], + const constant int64_t* update_strides [[buffer(3)]], + const constant int& update_ndim [[buffer(4)]], + const constant int64_t& update_size [[buffer(5)]], + const constant int64_t* output_strides [[buffer(6)]], + const constant int64_t& output_offset [[buffer(7)]], + uint3 gid [[thread_position_in_grid]], + uint3 gsize [[threads_per_grid]]) { + Op op; + + IdxT idx = + (IdxT(gid.z) * IdxT(gsize.y) + IdxT(gid.y)) * IdxT(gsize.x) * NWORK + + IdxT(gid.x) * NWORK; + IdxT out_idx; + IdxT update_idx; + + if constexpr (OUT_ROW_CONTIG) { + out_idx = idx; + } else if constexpr (NDIM == 1) { + out_idx = NWORK * gid.x * output_strides[0]; + } else if constexpr (NDIM == 2) { + out_idx = gid.y * output_strides[0] + NWORK * gid.x * output_strides[1]; + } else if constexpr (NDIM == 3) { + out_idx = gid.z * output_strides[0] + gid.y * output_strides[1] + + NWORK * gid.x * output_strides[2]; + } else { + out_idx = elem_to_loc(idx, update_shape, output_strides, update_ndim); + } + + if constexpr (UPD_SCALAR) { + update_idx = 0; + } else if constexpr (UPD_ROW_CONTIG) { + update_idx = idx; + } else if constexpr (NDIM == 1) { + update_idx = NWORK * gid.x * update_strides[0]; + } else if constexpr (NDIM == 2) { + update_idx = gid.y * update_strides[0] + NWORK * gid.x * update_strides[1]; + } else if constexpr (NDIM == 3) { + update_idx = gid.z * update_strides[0] + gid.y * update_strides[1] + + NWORK * gid.x * update_strides[2]; + } else { + update_idx = + elem_to_loc(idx, update_shape, update_strides, update_ndim); + } + + out += output_offset; + + if constexpr (OUT_ROW_CONTIG && (UPD_ROW_CONTIG || UPD_SCALAR)) { + for (int j = 0; j < NWORK; j++) { + out[out_idx] = op(out[out_idx], updates[update_idx]); + out_idx++; + if constexpr (!UPD_SCALAR) { + update_idx++; + } + } + } else { + auto out_stride = output_strides[update_ndim - 1]; + auto update_stride = update_strides[update_ndim - 1]; + for (int j = 0; j < NWORK; j++) { + out[out_idx] = op(out[out_idx], updates[update_idx]); + out_idx += out_stride; + if constexpr (!UPD_SCALAR) { + update_idx += update_stride; + } + } + } +} +// END RUNTIME UNIT +// Runtime unit: indexing/scatter_axis.h; file SHA256: 43eabd0216101f8e32f5cdd19ce40b7f954564be27fad98a5e0fe345e7b94ce5 +// Runtime unit SHA256: 67c5db62df1160220db9342cebdb1a9b0ce96ca2e2d7c25af0a4ba4954c6419e +// BEGIN RUNTIME UNIT +// Copyright © 2025 Apple Inc. + + +template < + typename T, + typename IdxT, + typename LocT, + typename Op, + bool UpdC, + bool IdxC> +[[kernel]] void scatter_axis( + const device T* upd [[buffer(0)]], + const device IdxT* indices [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant int64_t* idx_strides [[buffer(5)]], + const constant size_t& ndim [[buffer(6)]], + const constant int& axis [[buffer(7)]], + const constant int& out_axis_size [[buffer(8)]], + const constant size_t& upd_ax_stride [[buffer(9)]], + const constant size_t& idx_ax_stride [[buffer(10)]], + uint3 index [[thread_position_in_grid]], + uint3 grid_dim [[threads_per_grid]]) { + Op op; + + LocT elem_idx = index.z * static_cast(grid_dim.x); + + LocT idx_loc = index.y * static_cast(idx_ax_stride); + if (IdxC) { + idx_loc += elem_idx * grid_dim.y + index.x; + } else { + idx_loc += elem_to_loc(elem_idx + index.x, shape, idx_strides, ndim); + } + + auto idx_val = indices[idx_loc]; + if (is_signed_v) { + idx_val = (idx_val < 0) ? idx_val + out_axis_size : idx_val; + } + + LocT upd_idx = index.y * static_cast(upd_ax_stride); + if (UpdC) { + upd_idx += elem_idx * grid_dim.y + index.x; + } else { + upd_idx += elem_to_loc(elem_idx + index.x, shape, upd_strides, ndim); + } + + LocT out_idx = elem_idx * static_cast(out_axis_size) + + idx_val * grid_dim.x + index.x; + op.atomic_update(out, upd[upd_idx], out_idx); +} +// END RUNTIME UNIT +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_00")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_01")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_10")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_11")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int64_t_00")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int64_t_01")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int64_t_10")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +template [[host_name("kernel_qwen_mtplx_scatter_axis_bool_idxi64_int64_t_11")]] +[[kernel]] decltype(scatter_axis) scatter_axis; +// Runtime unit: scatter JIT wrappers; file SHA256: 1b38dbdf3120eca3e5266ffd6d69691591c9432c0b5acece4c5ab2de7a9e802f +// Runtime unit SHA256: 1206fc4eda346eccb7778882e03cfbde8608f2195d32a660dc14a49077a637ad +// BEGIN RUNTIME UNIT + +[[host_name("kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_false_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_false_nwork1_int( + const device bfloat* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_false_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_false_nwork1_int64_t( + const device bfloat* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_true_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_true_nwork1_int( + const device bfloat* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_true_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_bf16_idxi64_sum_1_updc_true_nwork1_int64_t( + const device bfloat* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_false_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_false_nwork1_int( + const device half* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_false_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_false_nwork1_int64_t( + const device half* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_true_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_true_nwork1_int( + const device half* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_true_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_f16_idxi64_sum_1_updc_true_nwork1_int64_t( + const device half* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_false_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_false_nwork1_int( + const device float* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_false_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_false_nwork1_int64_t( + const device float* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, false, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_true_nwork1_int")]] [[kernel]] void kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_true_nwork1_int( + const device float* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} + +[[host_name("kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_true_nwork1_int64_t")]] [[kernel]] void kernel_qwen_mtplx_scatter_f32_idxi64_sum_1_updc_true_nwork1_int64_t( + const device float* updates [[buffer(1)]], + device mlx_atomic* out [[buffer(2)]], + const constant int* upd_shape [[buffer(3)]], + const constant int64_t* upd_strides [[buffer(4)]], + const constant size_t& upd_ndim [[buffer(5)]], + const constant size_t& upd_size [[buffer(6)]], + const constant int* out_shape [[buffer(7)]], + const constant int64_t* out_strides [[buffer(8)]], + const constant size_t& out_ndim [[buffer(9)]], + const constant int* axes [[buffer(10)]], + const constant int* idx_shapes [[buffer(11)]], + const constant int64_t* idx_strides [[buffer(12)]], + const constant bool* idx_contigs [[buffer(13)]], + const constant int& idx_ndim [[buffer(14)]], + const constant size_t& idx_size [[buffer(15)]], + const device int64_t *idx0 [[buffer(20)]], + uint2 gid [[thread_position_in_grid]]) { + Indices idxs{ { idx0 }, idx_shapes, idx_strides, idx_contigs, idx_ndim}; + + return scatter_impl, 1, true, 1, int64_t>( + updates, + out, + upd_shape, + upd_strides, + upd_ndim, + upd_size, + out_shape, + out_strides, + out_ndim, + axes, + idx_size, + idxs, + gid); +} +// END RUNTIME UNIT +} // namespace mtplx_eager_scatter + +// Actual runtime-generated SwiGLU: Copyright Apple Inc.; SPDX-License-Identifier: MIT +// Runtime unit: captured-swiglu-jit; file SHA256: 8cb2a51a7d9f0cb91a8a7669ef844c3964dc469ec9e4436a719e47f025b8e781 +// Runtime unit SHA256: 58a220047d41020fd7f714c16ab50fcb3955523aa5a036857ff718abdd84b7dc +// BEGIN RUNTIME UNIT +[[host_name("kernel_qwen_mtplx_swiglu_bf16_contiguous")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device bfloat16_t* C [[buffer(2)]], + constant const uint& size [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = N_ * pos.x; + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_contiguous_n")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_n( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device bfloat16_t* C [[buffer(2)]], + constant const uint& size [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + uint index = N_ * pos.x; + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_contiguous_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device bfloat16_t* C [[buffer(2)]], + constant const int64_t& size [[buffer(3)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y)); + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_1")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_1(pos.x, in_strides[0]); + uint index_B = elem_to_loc_1(pos.x, in_strides[1]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_1_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]); + int64_t index_B = elem_to_loc_1(pos.x, in_strides[1]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_2")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + uint index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_2_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + int64_t index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_3")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + uint index_A = elem_to_loc_3(pos, in_strides + 0); + uint index_B = elem_to_loc_3(pos, in_strides + 3); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_3_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = elem_to_loc_3(pos, in_strides + 0); + int64_t index_B = elem_to_loc_3(pos, in_strides + 3); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_4")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[3]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]); + uint index_B = N_ * pos.x * uint(in_strides[7]) + pos.y * uint(in_strides[6]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[4 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[3]; + index_B += in_strides[7]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_4_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[3]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[7]) + pos.y * int64_t(in_strides[6]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[4 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[3]; + index_B += in_strides[7]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_5")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[4]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]); + uint index_B = N_ * pos.x * uint(in_strides[9]) + pos.y * uint(in_strides[8]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[5 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[4]; + index_B += in_strides[9]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_5_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[4]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[9]) + pos.y * int64_t(in_strides[8]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[5 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[4]; + index_B += in_strides[9]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_6")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[5]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]); + uint index_B = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[6 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[5]; + index_B += in_strides[11]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_6_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[5]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[6 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[5]; + index_B += in_strides[11]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_7")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[6]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]); + uint index_B = N_ * pos.x * uint(in_strides[13]) + pos.y * uint(in_strides[12]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[7 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[6]; + index_B += in_strides[13]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_7_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[6]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[13]) + pos.y * int64_t(in_strides[12]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[7 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[6]; + index_B += in_strides[13]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_dynamic")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + constant const int& ndim [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[ndim - 1]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]); + uint index_B = N_ * pos.x * uint(in_strides[ndim * 1 + ndim - 1]) + pos.y * uint(in_strides[ndim * 1 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 * ndim + d]); + index_B += l * uint(in_strides[1 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[0 * ndim + ndim - 1]; + index_B += in_strides[1 * ndim + ndim - 1]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_swiglu_bf16_strided_dynamic_large")]] +[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + constant const int64_t* in_strides [[buffer(2)]], + device bfloat16_t* C [[buffer(3)]], + constant const int* output_shape [[buffer(4)]], + constant const int& ndim [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[ndim - 1]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[ndim * 1 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 1 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 * ndim + d]); + index_B += l * int64_t(in_strides[1 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_D = Sigmoid()(tmp_A); + bfloat16_t tmp_E = cast_to(tmp_A); + bfloat16_t tmp_F = cast_to(tmp_D); + bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F); + bfloat16_t tmp_H = cast_to(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I); + C[index] = tmp_C; + index_A += in_strides[0 * ndim + ndim - 1]; + index_B += in_strides[1 * ndim + ndim - 1]; + index++; + } +} +// END RUNTIME UNIT + +// Original compute_g JIT dependencies; Apple MIT except cexpf.h (Apache-2.0). +// Runtime unit: complex.h; file SHA256: 16e8a815b2cbdb6070e0824e64fe33fccb6e918f1b84ea5c792bd89d33e57bf1 +// Runtime unit SHA256: 0393eb41ea618f7b09343672f598d8c4c3e4b98eb8536466fb53c8d286fbf1f7 +// BEGIN RUNTIME UNIT +// Copyright © 2023 Apple Inc. + + + + +using namespace metal; + +template +struct complex_t; + +template +static constexpr constant bool is_complex_v = false; + +template +static constexpr constant bool is_complex_v> = true; + +// Metal accepts explicit bfloat casts that is_convertible_v reports as false. +template +static constexpr constant bool is_lane_convertible_v = + is_convertible_v || + (is_same_v && is_convertible_v) || + (is_same_v && is_convertible_v); + +template +struct complex_t { + using value_type = T; + + T real; + T imag; + + // Constructors + constexpr complex_t(T real, T imag) thread : real(real), imag(imag) {}; + constexpr complex_t() thread : real(0), imag(0) {}; + constexpr complex_t() threadgroup : real(0), imag(0) {}; + + // Conversions from scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) thread : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) threadgroup : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) device : real(static_cast(x)), + imag(static_cast(0)) {} + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr complex_t(U x) constant : real(static_cast(x)), + imag(static_cast(0)) {} + + // Conversions between complex types + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) thread : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) threadgroup + : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) device : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + template < + typename U, + typename = typename enable_if< + !is_same_v && is_lane_convertible_v>::type> + constexpr complex_t(complex_t x) constant : real(static_cast(x.real)), + imag(static_cast(x.imag)) {} + + // Conversions to and from two-lane vectors (the FFT lane representation) + constexpr complex_t(vec v) thread : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) threadgroup : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) device : real(v.x), imag(v.y) {}; + constexpr complex_t(vec v) constant : real(v.x), imag(v.y) {}; + + constexpr operator vec() const thread { + return vec(real, imag); + } + + constexpr operator vec() const threadgroup { + return vec(real, imag); + } + + constexpr operator vec() const device { + return vec(real, imag); + } + + constexpr operator vec() const constant { + return vec(real, imag); + } + + // Conversions to scalar types + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const thread { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const threadgroup { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const device { + return static_cast(real); + } + + template < + typename U, + typename = typename enable_if< + !is_complex_v && is_lane_convertible_v>::type> + constexpr operator U() const constant { + return static_cast(real); + } +}; + +using complex32_t = complex_t; +using complex64_t = complex_t; + +static_assert(sizeof(complex32_t) == 2 * sizeof(half)); +static_assert(sizeof(complex64_t) == 2 * sizeof(float)); +static_assert(sizeof(complex_t) == 2 * sizeof(bfloat16_t)); + +template +constexpr complex_t operator-(complex_t x) { + return {-x.real, -x.imag}; +} + +template +constexpr bool operator>=(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag >= b.imag); +} + +template +constexpr bool operator>(complex_t a, complex_t b) { + return (a.real > b.real) || (a.real == b.real && a.imag > b.imag); +} + +template +constexpr bool operator<=(complex_t a, complex_t b) { + return operator>=(b, a); +} + +template +constexpr bool operator<(complex_t a, complex_t b) { + return operator>(b, a); +} + +template +constexpr bool operator==(complex_t a, complex_t b) { + return a.real == b.real && a.imag == b.imag; +} + +template +constexpr complex_t operator+(complex_t a, complex_t b) { + return {a.real + b.real, a.imag + b.imag}; +} + +template +constexpr thread complex_t& operator+=( + thread complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr threadgroup complex_t& operator+=( + threadgroup complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template +constexpr device complex_t& operator+=( + device complex_t& a, + complex_t b) { + a.real += b.real; + a.imag += b.imag; + return a; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(U a, complex_t b) { + return {static_cast(a) + b.real, b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator+(complex_t a, U b) { + return {a.real + static_cast(b), a.imag}; +} + +template +constexpr complex_t operator-(complex_t a, complex_t b) { + return {a.real - b.real, a.imag - b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(U a, complex_t b) { + return {static_cast(a) - b.real, -b.imag}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator-(complex_t a, U b) { + return {a.real - static_cast(b), a.imag}; +} + +template +constexpr complex_t operator*(complex_t a, complex_t b) { + return {a.real * b.real - a.imag * b.imag, a.real * b.imag + a.imag * b.real}; +} + +template +constexpr complex_t operator/(complex_t a, complex_t b) { + auto denom = b.real * b.real + b.imag * b.imag; + auto x = a.real * b.real + a.imag * b.imag; + auto y = a.imag * b.real - a.real * b.imag; + return {x / denom, y / denom}; +} + +template < + typename T, + typename U, + enable_if_t && is_lane_convertible_v, bool> = true> +constexpr complex_t operator/(U a, complex_t b) { + auto scalar = static_cast(a); + auto denom = b.real * b.real + b.imag * b.imag; + auto x = scalar * b.real; + auto y = -scalar * b.imag; + return {x / denom, y / denom}; +} + +template +constexpr complex_t operator%(complex_t a, complex_t b) { + auto real = a.real - (b.real * static_cast(a.real / b.real)); + auto imag = a.imag - (b.imag * static_cast(a.imag / b.imag)); + if (real != 0 && (real < 0 != b.real < 0)) { + real += b.real; + } + if (imag != 0 && (imag < 0 != b.imag < 0)) { + imag += b.imag; + } + return {real, imag}; +} + +static_assert( + (complex_t{1.0h, 2.0h} * complex_t{3.0h, 4.0h}).real == -5.0h); +static_assert( + (complex_t{bfloat16_t(1.0f), bfloat16_t(2.0f)} * + complex_t{bfloat16_t(3.0f), bfloat16_t(4.0f)}) + .real == bfloat16_t(-5.0f)); +// END RUNTIME UNIT +// Runtime unit: cexpf.h; file SHA256: 88b6e15a52a5800d98d9bc6da840ca5cf70bf572fda136409580c1f17b1e0aab +// Runtime unit SHA256: 772a0d51398a8a5cc0d8776e32e3b4a7e80323e58e80dd81da426c03c3bb2ad4 +// BEGIN RUNTIME UNIT +// Copyright © 2025 Apple Inc. +// Copyright © 2008-2013 NVIDIA Corporation +// Copyright © 2013 Filipe RNC Maia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Forked from +// https://github.com/NVIDIA/cccl/blob/main/thrust/thrust/detail/complex/cexpf.h + +// TODO: We should use thrust::exp but the thrust header in old CUDA versions +// can not be used in JIT. + + + +using ieee_float_shape_type = union { + float value; + uint32_t word; +}; + +inline void get_float_word(thread uint32_t& i, float d) { + ieee_float_shape_type gf_u; + gf_u.value = (d); + (i) = gf_u.word; +} + +inline void get_float_word(thread int32_t& i, float d) { + ieee_float_shape_type gf_u; + gf_u.value = (d); + (i) = gf_u.word; +} + +inline void set_float_word(thread float& d, uint32_t i) { + ieee_float_shape_type sf_u; + sf_u.word = (i); + (d) = sf_u.value; +} + +inline float frexp_expf(float x, thread int* expt) { + const uint32_t k = 235; + const float kln2 = 162.88958740F; + + float exp_x; + uint32_t hx; + + exp_x = metal::exp(x - kln2); + get_float_word(hx, exp_x); + *expt = (hx >> 23) - (0x7f + 127) + k; + set_float_word(exp_x, (hx & 0x7fffff) | ((0x7f + 127) << 23)); + return exp_x; +} + +inline complex64_t ldexp_cexpf(complex64_t z, int expt) { + float x, y, exp_x, scale1, scale2; + int ex_expt, half_expt; + + x = z.real; + y = z.imag; + exp_x = frexp_expf(x, &ex_expt); + expt += ex_expt; + + half_expt = expt / 2; + set_float_word(scale1, (0x7f + half_expt) << 23); + half_expt = expt - half_expt; + set_float_word(scale2, (0x7f + half_expt) << 23); + + return complex64_t{ + metal::cos(y) * exp_x * scale1 * scale2, + metal::sin(y) * exp_x * scale1 * scale2}; +} + +inline complex64_t cexpf(const thread complex64_t& z) { + float x, y, exp_x; + uint32_t hx, hy; + + const uint32_t exp_ovfl = 0x42b17218, cexp_ovfl = 0x43400074; + + x = z.real; + y = z.imag; + + get_float_word(hy, y); + hy &= 0x7fffffff; + + /* cexp(x + I 0) = exp(x) + I 0 */ + if (hy == 0) { + return complex64_t{metal::exp(x), y}; + } + get_float_word(hx, x); + /* cexp(0 + I y) = cos(y) + I sin(y) */ + if ((hx & 0x7fffffff) == 0) { + return complex64_t{metal::cos(y), metal::sin(y)}; + } + if (hy >= 0x7f800000) { + if ((hx & 0x7fffffff) != 0x7f800000) { + /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */ + return complex64_t{y - y, y - y}; + } else if (hx & 0x80000000) { + /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */ + return complex64_t{0.0, 0.0}; + } else { + /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */ + return complex64_t{x, y - y}; + } + } + + if (hx >= exp_ovfl && hx <= cexp_ovfl) { + /* + * x is between 88.7 and 192, so we must scale to avoid + * overflow in expf(x). + */ + return ldexp_cexpf(z, 0); + } else { + /* + * Cases covered here: + * - x < exp_ovfl and exp(x) won't overflow (common case) + * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0 + * - x = +-Inf (generated by exp()) + * - x = NaN (spurious inexact exception from y) + */ + exp_x = metal::exp(x); + return complex64_t{exp_x * metal::cos(y), exp_x * metal::sin(y)}; + } +} +// END RUNTIME UNIT +// Runtime unit: utils.h; file SHA256: 5e1568e9edde9d05dbf86f68fa0d6c6240f2c32b973c7c6a76166b9c0d91543d +// Runtime unit SHA256: f2f4265df9688cd7ade514d56e7692eff22844a8ae768d0e861813c9590f3eda +// BEGIN RUNTIME UNIT +template +struct Limits { + static const constant U max = metal::numeric_limits::max(); + static const constant U min = metal::numeric_limits::min(); + static const constant U finite_max = metal::numeric_limits::max(); + static const constant U finite_min = metal::numeric_limits::min(); +}; + +#define instantiate_default_limit(type) \ + template <> \ + struct Limits { \ + static constexpr constant type max = metal::numeric_limits::max(); \ + static constexpr constant type min = metal::numeric_limits::min(); \ + static constexpr constant type finite_max = \ + metal::numeric_limits::max(); \ + static constexpr constant type finite_min = \ + metal::numeric_limits::min(); \ + }; + +instantiate_default_limit(uint8_t); +instantiate_default_limit(uint16_t); +instantiate_default_limit(uint32_t); +instantiate_default_limit(uint64_t); +instantiate_default_limit(int8_t); +instantiate_default_limit(int16_t); +instantiate_default_limit(int32_t); +instantiate_default_limit(int64_t); + +#define instantiate_float_limit(type) \ + template <> \ + struct Limits { \ + static constexpr constant type max = \ + metal::numeric_limits::infinity(); \ + static constexpr constant type min = \ + -metal::numeric_limits::infinity(); \ + static constexpr constant type finite_max = \ + metal::numeric_limits::max(); \ + static constexpr constant type finite_min = \ + -metal::numeric_limits::max(); \ + }; + +instantiate_float_limit(half); +instantiate_float_limit(float); +instantiate_float_limit(bfloat16_t); + +template <> +struct Limits { + static constexpr constant bool max = true; + static constexpr constant bool min = false; +}; + +template +struct Limits> { + inline static constexpr constant complex_t max = complex_t( + metal::numeric_limits::infinity(), + metal::numeric_limits::infinity()); + inline static constexpr constant complex_t min = complex_t( + -metal::numeric_limits::infinity(), + -metal::numeric_limits::infinity()); +}; + +inline float log1p(float x) { + float xp1 = 1.0f + x; + if (xp1 == Limits::max) { + return Limits::max; + } + if (xp1 == 1.0f) { + return x; + } + + return x * (metal::log(xp1) / (xp1 - 1.0f)); +} + +inline bfloat16_t log1p(bfloat16_t x) { + float xp1 = 1.0f + static_cast(x); + if (xp1 == Limits::max) { + return Limits::max; + } + if (xp1 == 1.0f) { + return x; + } + + return bfloat16_t(x * (metal::log(xp1) / (xp1 - 1.0f))); +} + +inline complex64_t log1p(complex64_t in) { + float x = in.real; + float y = in.imag; + float zabs = metal::precise::sqrt(x * x + y * y); + float theta = metal::atan2(y, x + 1); + if (zabs < 0.5f) { + float r = x * (2 + x) + y * y; + if (r == 0) { // handle underflow + return {x, theta}; + } + return {0.5f * log1p(r), theta}; + } else { + auto z0 = metal::sqrt((x + 1) * (x + 1) + y * y); + return {metal::log(z0), theta}; + } +} + +// END RUNTIME UNIT +// Runtime unit: unary_ops.h; file SHA256: 0a5492b65ae39ecb6d8b04e64ea5007e0a4ff60d8d9428559bfbfd03387ece2a +// Runtime unit SHA256: 167c0343e9f1257ae104ea8edfe17878e0721e1ab2b1d142ec6eeb5d010344ca +// BEGIN RUNTIME UNIT +struct Exp { + template + T operator()(T x) thread { + return metal::precise::exp(x); + }; + complex64_t operator()(complex64_t x) thread { + return cexpf(x); + } +}; + +struct Negative { + template + T operator()(T x) thread { + return -x; + }; +}; + +// END RUNTIME UNIT +// Runtime unit: binary_ops.h; file SHA256: 2dd13c2496f5d6f0856e4ca99db2ceb5c6d7dc0c344b9ba8e41ef3b7d7ed8a97 +// Runtime unit SHA256: bfbc13f52cc73ee117f99d3167d8ac53c33a61ecef1ab811f6cc32266d44cfd4 +// BEGIN RUNTIME UNIT +struct Add { + template + T operator()(T x, T y) thread { + return x + y; + } +}; + +struct LogAddExp { + template + T operator()(T x, T y) thread { + if (metal::isnan(x) || metal::isnan(y)) { + return metal::numeric_limits::quiet_NaN(); + } + constexpr T inf = metal::numeric_limits::infinity(); + T maxval = metal::max(x, y); + T minval = metal::min(x, y); + return (minval == -inf || maxval == inf) + ? maxval + : (maxval + log1p(metal::exp(minval - maxval))); + }; + + complex64_t operator()(complex64_t x, complex64_t y) thread { + if (metal::isnan(x.real) || metal::isnan(x.imag) || metal::isnan(y.real) || + metal::isnan(y.imag)) { + return metal::numeric_limits::quiet_NaN(); + } + constexpr float inf = metal::numeric_limits::infinity(); + complex64_t maxval = x > y ? x : y; + complex64_t minval = x < y ? x : y; + if (minval.real == -inf || maxval.real == inf) + return maxval; + float m = metal::exp(minval.real - maxval.real); + complex64_t dexp{ + m * metal::cos(minval.imag - maxval.imag), + m * metal::sin(minval.imag - maxval.imag), + }; + return maxval + log1p(dexp); + } +}; + +// END RUNTIME UNIT +// Runtime unit: captured-compute_g-jit; file SHA256: 701e2f54b7cb8bf97616f83256657e6c5e8cc8b46f4b65c559ccc030ab111dbf +// Runtime unit SHA256: 670ec574f1274bea8709b585f5b1383aa3f511d72472465f559c5c0c482bbf1f +// BEGIN RUNTIME UNIT +[[host_name("kernel_qwen_mtplx_compute_g_bf16_contiguous")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + device float* D [[buffer(3)]], + constant const uint& size [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = N_ * pos.x; + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_C = C[index]; + auto tmp_E = static_cast(0); + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_contiguous_n")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_n( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + device float* D [[buffer(3)]], + constant const uint& size [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + uint index = N_ * pos.x; + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_C = C[index]; + auto tmp_E = static_cast(0); + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_contiguous_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + device float* D [[buffer(3)]], + constant const int64_t& size [[buffer(4)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y)); + for (int i = 0; i < N_ && index < size; ++i) { + bfloat16_t tmp_A = A[index]; + bfloat16_t tmp_B = B[index]; + bfloat16_t tmp_C = C[index]; + auto tmp_E = static_cast(0); + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_1")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = elem_to_loc_1(pos.x, in_strides[0]); + uint index_B = elem_to_loc_1(pos.x, in_strides[1]); + uint index_C = elem_to_loc_1(pos.x, in_strides[2]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_1_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]); + int64_t index_B = elem_to_loc_1(pos.x, in_strides[1]); + int64_t index_C = elem_to_loc_1(pos.x, in_strides[2]); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_2")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + uint index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2); + uint index_C = elem_to_loc_2({pos.x, pos.y}, in_strides + 4); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_2_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0); + int64_t index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2); + int64_t index_C = elem_to_loc_2({pos.x, pos.y}, in_strides + 4); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_3")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = elem_to_loc_3(pos, in_strides + 0); + uint index_B = elem_to_loc_3(pos, in_strides + 3); + uint index_C = elem_to_loc_3(pos, in_strides + 6); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_3_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 1; + int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = elem_to_loc_3(pos, in_strides + 0); + int64_t index_B = elem_to_loc_3(pos, in_strides + 3); + int64_t index_C = elem_to_loc_3(pos, in_strides + 6); + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_4")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[3]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]); + uint index_B = N_ * pos.x * uint(in_strides[7]) + pos.y * uint(in_strides[6]); + uint index_C = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[4 + d]); + index_C += l * uint(in_strides[8 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[3]; + index_B += in_strides[7]; + index_C += in_strides[11]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_4_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[3]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[7]) + pos.y * int64_t(in_strides[6]); + int64_t index_C = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]); + uint zpos = pos.z; + for (int d = 1; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[4 + d]); + index_C += l * int64_t(in_strides[8 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[3]; + index_B += in_strides[7]; + index_C += in_strides[11]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_5")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[4]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]); + uint index_B = N_ * pos.x * uint(in_strides[9]) + pos.y * uint(in_strides[8]); + uint index_C = N_ * pos.x * uint(in_strides[14]) + pos.y * uint(in_strides[13]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[5 + d]); + index_C += l * uint(in_strides[10 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[4]; + index_B += in_strides[9]; + index_C += in_strides[14]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_5_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[4]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[9]) + pos.y * int64_t(in_strides[8]); + int64_t index_C = N_ * pos.x * int64_t(in_strides[14]) + pos.y * int64_t(in_strides[13]); + uint zpos = pos.z; + for (int d = 2; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[5 + d]); + index_C += l * int64_t(in_strides[10 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[4]; + index_B += in_strides[9]; + index_C += in_strides[14]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_6")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[5]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]); + uint index_B = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]); + uint index_C = N_ * pos.x * uint(in_strides[17]) + pos.y * uint(in_strides[16]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[6 + d]); + index_C += l * uint(in_strides[12 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[5]; + index_B += in_strides[11]; + index_C += in_strides[17]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_6_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[5]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]); + int64_t index_C = N_ * pos.x * int64_t(in_strides[17]) + pos.y * int64_t(in_strides[16]); + uint zpos = pos.z; + for (int d = 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[6 + d]); + index_C += l * int64_t(in_strides[12 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[5]; + index_B += in_strides[11]; + index_C += in_strides[17]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_7")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[6]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]); + uint index_B = N_ * pos.x * uint(in_strides[13]) + pos.y * uint(in_strides[12]); + uint index_C = N_ * pos.x * uint(in_strides[20]) + pos.y * uint(in_strides[19]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 + d]); + index_B += l * uint(in_strides[7 + d]); + index_C += l * uint(in_strides[14 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[6]; + index_B += in_strides[13]; + index_C += in_strides[20]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_7_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[6]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[13]) + pos.y * int64_t(in_strides[12]); + int64_t index_C = N_ * pos.x * int64_t(in_strides[20]) + pos.y * int64_t(in_strides[19]); + uint zpos = pos.z; + for (int d = 4; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 + d]); + index_B += l * int64_t(in_strides[7 + d]); + index_C += l * int64_t(in_strides[14 + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[6]; + index_B += in_strides[13]; + index_C += in_strides[20]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_dynamic")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + constant const int& ndim [[buffer(6)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 2; + int xshape = output_shape[ndim - 1]; + uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z); + auto tmp_E = static_cast(0); + uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]); + uint index_B = N_ * pos.x * uint(in_strides[ndim * 1 + ndim - 1]) + pos.y * uint(in_strides[ndim * 1 + ndim - 2]); + uint index_C = N_ * pos.x * uint(in_strides[ndim * 2 + ndim - 1]) + pos.y * uint(in_strides[ndim * 2 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * uint(in_strides[0 * ndim + d]); + index_B += l * uint(in_strides[1 * ndim + d]); + index_C += l * uint(in_strides[2 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[0 * ndim + ndim - 1]; + index_B += in_strides[1 * ndim + ndim - 1]; + index_C += in_strides[2 * ndim + ndim - 1]; + index++; + } +} +[[host_name("kernel_qwen_mtplx_compute_g_bf16_strided_dynamic_large")]] +[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic_large( + device const bfloat16_t* A [[buffer(0)]], + device const bfloat16_t* B [[buffer(1)]], + device const bfloat16_t* C [[buffer(2)]], + constant const int64_t* in_strides [[buffer(3)]], + device float* D [[buffer(4)]], + constant const int* output_shape [[buffer(5)]], + constant const int& ndim [[buffer(6)]], + uint3 pos [[thread_position_in_grid]], + uint3 grid [[threads_per_grid]]) { + constexpr int N_ = 4; + int xshape = output_shape[ndim - 1]; + int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z); + auto tmp_E = static_cast(0); + int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]); + int64_t index_B = N_ * pos.x * int64_t(in_strides[ndim * 1 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 1 + ndim - 2]); + int64_t index_C = N_ * pos.x * int64_t(in_strides[ndim * 2 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 2 + ndim - 2]); + uint zpos = pos.z; + for (int d = ndim - 3; d >= 0; --d) { + uint l = zpos % output_shape[d]; + index_A += l * int64_t(in_strides[0 * ndim + d]); + index_B += l * int64_t(in_strides[1 * ndim + d]); + index_C += l * int64_t(in_strides[2 * ndim + d]); + zpos /= output_shape[d]; + } + for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) { + bfloat16_t tmp_A = A[index_A]; + bfloat16_t tmp_B = B[index_B]; + bfloat16_t tmp_C = C[index_C]; + float tmp_F = cast_to(tmp_A); + float tmp_G = Exp()(tmp_F); + float tmp_H = Negative()(tmp_G); + bfloat16_t tmp_I = cast_to(tmp_B); + bfloat16_t tmp_J = cast_to(tmp_C); + bfloat16_t tmp_K = Add()(tmp_I, tmp_J); + bfloat16_t tmp_L = cast_to(tmp_K); + bfloat16_t tmp_M = cast_to(tmp_E); + bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M); + float tmp_O = cast_to(tmp_N); + float tmp_P = cast_to(tmp_H); + float tmp_Q = cast_to(tmp_O); + float tmp_R = Multiply()(tmp_P, tmp_Q); + float tmp_D = Exp()(tmp_R); + D[index] = tmp_D; + index_A += in_strides[0 * ndim + ndim - 1]; + index_B += in_strides[1 * ndim + ndim - 1]; + index_C += in_strides[2 * ndim + ndim - 1]; + index++; + } +} +// END RUNTIME UNIT + +namespace mtplx_qsa_prepare_q { + + using namespace metal; + constant constexpr uint HEADS = 4; + constant constexpr uint HEAD_DIM = 128; + constant constexpr uint ROTARY_DIM = 64; + constant constexpr uint HALF_ROTARY = 32; + constant constexpr float RMS_EPS = 1e-06f; + constant constexpr float ROPE_ATTENTION_SCALE = 1.0f; + +// Source: mtplx/kernels/qsa_indexer_prepare.py::_prepare_queries_kernel +// File SHA256: a77f6ca5ae805e729519c4629ae88b455a6dbf473a457a6e1c8219174eb59091 +// Body SHA256: 67329208d2a7906094e742871793de678d2272f669fd928d929943979be8b741 +template +kernel void kernel_qwen_mtplx_qsa_prepare_q( + device const T* raw_q [[buffer(0)]], + constant const int64_t* raw_q_strides [[buffer(1)]], + device const T* norm_weight [[buffer(2)]], + constant const int64_t* norm_weight_strides [[buffer(3)]], + device const float* inv_freq [[buffer(4)]], + constant const int64_t* inv_freq_strides [[buffer(5)]], + device const int* pos_start [[buffer(6)]], + device T* prepared_q [[buffer(7)]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]], + uint thread_index_in_simdgroup [[thread_index_in_simdgroup]]) { + const uint row_head = threadgroup_position_in_grid.x; + const uint lane = thread_index_in_simdgroup; + const uint row = row_head / HEADS; + const uint head = row_head - row * HEADS; + const size_t src_base = + (size_t)row * raw_q_strides[1] + + (size_t)head * raw_q_strides[2]; + const size_t out_base = + ((size_t)row * HEADS + head) * HEAD_DIM; + + // MLX rms_single_row uses 32 lanes and four contiguous values per + // lane for every axis up through 128. Reproduce that reduction and + // its cast-before-weight ordering exactly. + float square_sum = 0.0f; + const uint lane_base = lane * 4u; + for (uint i = 0; i < 4u; ++i) { + const uint dim = lane_base + i; + if (dim < HEAD_DIM) { + const float value = float(raw_q[ + src_base + (size_t)dim * raw_q_strides[3]]); + square_sum += value * value; + } + } + square_sum = simd_sum(square_sum); + const float inverse_rms = metal::precise::rsqrt( + square_sum / float(HEAD_DIM) + RMS_EPS); + const float position = float(pos_start[0] + int(row)); + + // Non-interleaved/rotate-half partial RoPE, matching + // _rope_cos_sin + _apply_partial_rope. mx.cos/mx.sin use the Metal + // precise variants (unlike mx.fast.rope, which intentionally uses + // fast trig), so this kernel does too. + for (uint pair = lane; pair < HALF_ROTARY; pair += 32u) { + const size_t first_at = + src_base + (size_t)pair * raw_q_strides[3]; + const size_t second_at = src_base + + (size_t)(pair + HALF_ROTARY) * raw_q_strides[3]; + const T first_norm = norm_weight[ + (size_t)pair * norm_weight_strides[0]] * + static_cast(float(raw_q[first_at]) * inverse_rms); + const T second_norm = norm_weight[ + (size_t)(pair + HALF_ROTARY) * norm_weight_strides[0]] * + static_cast(float(raw_q[second_at]) * inverse_rms); + const float theta = position * float(inv_freq[ + (size_t)pair * inv_freq_strides[0]]); + const float cosine = + metal::precise::cos(theta) * ROPE_ATTENTION_SCALE; + const float sine = + metal::precise::sin(theta) * ROPE_ATTENTION_SCALE; + const float first = float(first_norm); + const float second = float(second_norm); + // Keep the products as distinct fp32 operations. The stock + // _apply_partial_rope graph rounds both multiplies before its + // add/subtract; allowing Metal to contract this expression into + // an FMA changes a handful of bf16 cutoff values at large + // positions (and can therefore perturb an exact top-k set). + const float first_cosine = first * cosine; + const float second_sine = second * sine; + const float second_cosine = second * cosine; + const float first_sine = first * sine; + prepared_q[out_base + pair] = + static_cast(first_cosine - second_sine); + prepared_q[out_base + pair + HALF_ROTARY] = + static_cast(second_cosine + first_sine); + } + + for (uint dim = ROTARY_DIM + lane; dim < HEAD_DIM; dim += 32u) { + const T normalized = norm_weight[ + (size_t)dim * norm_weight_strides[0]] * + static_cast(float(raw_q[ + src_base + (size_t)dim * raw_q_strides[3]]) * inverse_rms); + prepared_q[out_base + dim] = normalized; + } + } +typedef decltype(kernel_qwen_mtplx_qsa_prepare_q) kernel_qwen_mtplx_qsa_prepare_q_bf16_type; +template [[host_name("kernel_qwen_mtplx_qsa_prepare_q_bf16")]] +kernel kernel_qwen_mtplx_qsa_prepare_q_bf16_type kernel_qwen_mtplx_qsa_prepare_q; +} // namespace mtplx_qsa_prepare_q + +namespace mtplx_qsa_pool_k { + + using namespace metal; + constant constexpr uint HEAD_DIM = 128; + constant constexpr uint ROTARY_DIM = 64; + constant constexpr uint HALF_ROTARY = 32; + constant constexpr uint RATIO = 4; + constant constexpr float RMS_EPS = 1e-06f; + constant constexpr float ROPE_ATTENTION_SCALE = 1.0f; + +// Source: mtplx/kernels/qsa_indexer_prepare.py::_pool_keys_kernel +// File SHA256: a77f6ca5ae805e729519c4629ae88b455a6dbf473a457a6e1c8219174eb59091 +// Body SHA256: 269cdfebf5e4fb08470e1f4b40c0f7568e9001b3ccb003e7162f2ba477e0c8cd +template +kernel void kernel_qwen_mtplx_qsa_pool_k( + device const T* raw_keys [[buffer(0)]], + constant const int64_t* raw_keys_strides [[buffer(1)]], + device const T* norm_weight [[buffer(2)]], + constant const int64_t* norm_weight_strides [[buffer(3)]], + device const float* inv_freq [[buffer(4)]], + constant const int64_t* inv_freq_strides [[buffer(5)]], + device const int* block_start [[buffer(6)]], + device T* pooled [[buffer(7)]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]], + uint thread_index_in_simdgroup [[thread_index_in_simdgroup]]) { + const uint block = threadgroup_position_in_grid.x; + const uint lane = thread_index_in_simdgroup; + const uint lane_base = lane * 4u; + threadgroup float rounded_means[HEAD_DIM]; + + // The stock path reduces raw keys in float32, divides by the block + // width, then casts back to the raw-key dtype before RMSNorm. + float square_sum = 0.0f; + for (uint i = 0; i < 4u; ++i) { + const uint dim = lane_base + i; + if (dim < HEAD_DIM) { + float sum = 0.0f; + for (uint within = 0; within < RATIO; ++within) { + const uint token = block * RATIO + within; + sum += float(raw_keys[ + (size_t)token * raw_keys_strides[1] + + (size_t)dim * raw_keys_strides[2]]); + } + const T rounded = static_cast(sum / float(RATIO)); + const float mean_value = float(rounded); + rounded_means[dim] = mean_value; + square_sum += mean_value * mean_value; + } + } + square_sum = simd_sum(square_sum); + const float inverse_rms = metal::precise::rsqrt( + square_sum / float(HEAD_DIM) + RMS_EPS); + threadgroup_barrier(mem_flags::mem_threadgroup); + + const size_t out_base = (size_t)block * HEAD_DIM; + const float position = float( + (block_start[0] + int(block)) * int(RATIO)); + for (uint pair = lane; pair < HALF_ROTARY; pair += 32u) { + const T first_norm = norm_weight[ + (size_t)pair * norm_weight_strides[0]] * + static_cast(rounded_means[pair] * inverse_rms); + const T second_norm = norm_weight[ + (size_t)(pair + HALF_ROTARY) * norm_weight_strides[0]] * + static_cast( + rounded_means[pair + HALF_ROTARY] * inverse_rms); + const float theta = position * float(inv_freq[ + (size_t)pair * inv_freq_strides[0]]); + const float cosine = + metal::precise::cos(theta) * ROPE_ATTENTION_SCALE; + const float sine = + metal::precise::sin(theta) * ROPE_ATTENTION_SCALE; + const float first = float(first_norm); + const float second = float(second_norm); + const float first_cosine = first * cosine; + const float second_sine = second * sine; + const float second_cosine = second * cosine; + const float first_sine = first * sine; + pooled[out_base + pair] = + static_cast(first_cosine - second_sine); + pooled[out_base + pair + HALF_ROTARY] = + static_cast(second_cosine + first_sine); + } + for (uint dim = ROTARY_DIM + lane; dim < HEAD_DIM; dim += 32u) { + pooled[out_base + dim] = norm_weight[ + (size_t)dim * norm_weight_strides[0]] * + static_cast(rounded_means[dim] * inverse_rms); + } + } +typedef decltype(kernel_qwen_mtplx_qsa_pool_k) kernel_qwen_mtplx_qsa_pool_k_bf16_type; +template [[host_name("kernel_qwen_mtplx_qsa_pool_k_bf16")]] +kernel kernel_qwen_mtplx_qsa_pool_k_bf16_type kernel_qwen_mtplx_qsa_pool_k; +} // namespace mtplx_qsa_pool_k +#include + +namespace mtplx_qsa_flash_skip { + +using namespace metal; + +// Source: mtplx/kernels/qsa_flash_skip.py::_SRC +// File SHA256: 27d49eb93f0de82013fdc0b271e77076b19d1972450e1bbc44cdd92984669103 +// Body SHA256: eca43ef00a564482937984a1c9f8d05d0f7a432a1ed19a6cbbb5b4475f7b246a +template +kernel void kernel_qwen_mtplx_qsa_flash_skip( + device const T* q [[buffer(0)]], + device const T* k [[buffer(1)]], + device const T* v [[buffer(2)]], + device const int* blocks [[buffer(3)]], + device const int* params [[buffer(4)]], + device const float* scale [[buffer(5)]], + device T* out [[buffer(6)]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]], + uint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]]) { + constexpr int HD = 256; + constexpr int BLK = 4; // indexer compress ratio + + const uint hq = threadgroup_position_in_grid.x; + const uint tid = thread_position_in_threadgroup.x; + const uint sg = tid / 32; + const uint lane = tid % 32; + + const int t_total = params[0]; // valid kv length T + const int tail_start = params[1]; // first tail token + const int nsel = params[2]; // selected block count + const int cap = params[3]; // kv allocation stride (dim2) + + threadgroup float q_s[HD]; + if (tid < (uint)HD) q_s[tid] = (float)q[hq * HD + tid] * scale[0]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + const uint hkv = hq / GQA; + device const T* kh = k + (size_t)hkv * (size_t)cap * HD; + device const T* vh = v + (size_t)hkv * (size_t)cap * HD; + + float m = -3.0e38f; + float l = 0.0f; + float o[8] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; + const uint dbase = lane * 8; + + // selected complete blocks, striped across the 8 simdgroups + for (int bi = (int)sg; bi < nsel; bi += 8) { + const int t0 = blocks[bi] * BLK; + for (int j = 0; j < BLK; ++j) { + const size_t t = (size_t)(t0 + j); + float part = 0.0f; + device const T* kr = kh + t * HD + dbase; + for (int d = 0; d < 8; ++d) part += q_s[dbase + d] * (float)kr[d]; + const float s = simd_sum(part); + const float mn = metal::max(m, s); + const float c = metal::exp(m - mn); + const float p = metal::exp(s - mn); + l = l * c + p; + device const T* vr = vh + t * HD + dbase; + for (int d = 0; d < 8; ++d) o[d] = o[d] * c + p * (float)vr[d]; + m = mn; + } + } + // visible tail keys, same striping + for (int t = tail_start + (int)sg; t < t_total; t += 8) { + float part = 0.0f; + device const T* kr = kh + (size_t)t * HD + dbase; + for (int d = 0; d < 8; ++d) part += q_s[dbase + d] * (float)kr[d]; + const float s = simd_sum(part); + const float mn = metal::max(m, s); + const float c = metal::exp(m - mn); + const float p = metal::exp(s - mn); + l = l * c + p; + device const T* vr = vh + (size_t)t * HD + dbase; + for (int d = 0; d < 8; ++d) o[d] = o[d] * c + p * (float)vr[d]; + m = mn; + } + + // two-level merge across the 8 simdgroups + threadgroup float m_tg[8]; + threadgroup float l_tg[8]; + threadgroup float o_tg[8 * HD]; + if (lane == 0) { m_tg[sg] = m; l_tg[sg] = l; } + for (int d = 0; d < 8; ++d) o_tg[sg * HD + dbase + d] = o[d]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + // each of the 256 threads owns one output dim + float M = m_tg[0]; + for (int s2 = 1; s2 < 8; ++s2) M = metal::max(M, m_tg[s2]); + float L = 0.0f; + float acc = 0.0f; + for (int s2 = 0; s2 < 8; ++s2) { + const float w = metal::exp(m_tg[s2] - M); + L += l_tg[s2] * w; + acc += o_tg[s2 * HD + tid] * w; + } + out[hq * HD + tid] = (T)(acc / L); +} +typedef decltype(kernel_qwen_mtplx_qsa_flash_skip) kernel_qwen_mtplx_qsa_flash_skip_g1_bf16_type; +template [[host_name("kernel_qwen_mtplx_qsa_flash_skip_g1_bf16")]] +kernel kernel_qwen_mtplx_qsa_flash_skip_g1_bf16_type kernel_qwen_mtplx_qsa_flash_skip; +typedef decltype(kernel_qwen_mtplx_qsa_flash_skip) kernel_qwen_mtplx_qsa_flash_skip_g1_f16_type; +template [[host_name("kernel_qwen_mtplx_qsa_flash_skip_g1_f16")]] +kernel kernel_qwen_mtplx_qsa_flash_skip_g1_f16_type kernel_qwen_mtplx_qsa_flash_skip; +typedef decltype(kernel_qwen_mtplx_qsa_flash_skip) kernel_qwen_mtplx_qsa_flash_skip_g12_bf16_type; +template [[host_name("kernel_qwen_mtplx_qsa_flash_skip_g12_bf16")]] +kernel kernel_qwen_mtplx_qsa_flash_skip_g12_bf16_type kernel_qwen_mtplx_qsa_flash_skip; +typedef decltype(kernel_qwen_mtplx_qsa_flash_skip) kernel_qwen_mtplx_qsa_flash_skip_g12_f16_type; +template [[host_name("kernel_qwen_mtplx_qsa_flash_skip_g12_f16")]] +kernel kernel_qwen_mtplx_qsa_flash_skip_g12_f16_type kernel_qwen_mtplx_qsa_flash_skip; +} // namespace mtplx_qsa_flash_skip +#include + +namespace mtplx_qsa_prefill_flash { + +using namespace metal; + +constant constexpr short QSA_ELEMS_PER_FRAG = 8; +constant constexpr short QSA_ELEM_COLS = 4; +constant constexpr short QSA_ELEM_ROWS_JUMP = 8; + +// NAX fragment lane -> (column, row) mapping used by sdpa_nax_tile.py and the +// proven M5/G17G MetalPerformancePrimitives 16x32x16 descriptor. +inline short2 qsa_nax_coord(ushort lane) { + short quad = short(lane >> 2); + short row = ((quad & 4) | ((short(lane) >> 1) & 3)); + short col = ((quad & 2) | (short(lane) & 1)) * 4; + return short2{col, row}; +} + +// Source: mtplx/kernels/qsa_prefill_flash.py::_SOURCE +// File SHA256: 5ca852ea441810a47b374a1c94a49a636055dab31f7f11c4ce0118f7f70b388d +// Body SHA256: 26ac0e2c2cb8c45a4eb20b18ff7542ddae9c5db8a6940dce7c04c25126a5306e +template +kernel void kernel_qwen_mtplx_qsa_prefill_flash( + device const T* q [[buffer(0)]], + constant const int64_t* q_strides [[buffer(1)]], + device const T* k [[buffer(2)]], + constant const int64_t* k_strides [[buffer(3)]], + device const T* v [[buffer(4)]], + constant const int64_t* v_strides [[buffer(5)]], + device const int* block_ids [[buffer(6)]], + constant const int64_t* block_ids_strides [[buffer(7)]], + device const bool* block_valid [[buffer(8)]], + constant const int64_t* block_valid_strides [[buffer(9)]], + device const int* params [[buffer(10)]], + device const float* scale [[buffer(11)]], + device T* out [[buffer(12)]], + uint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]], + uint thread_index_in_simdgroup [[thread_index_in_simdgroup]]) { + constexpr int HEAD_DIM = 256; + constexpr int KV_HEADS = 2; + constexpr int GQA = 12; + constexpr int BLOCK_TOKENS = 4; + constexpr int TOP_K_BLOCKS = 512; + constexpr int M_ROWS = 16; + constexpr int TILE_BLOCKS = 8; + constexpr int TOKENS_PER_TILE = TILE_BLOCKS * BLOCK_TOKENS; + constexpr int MAX_SELECTED_TILES = TOP_K_BLOCKS / TILE_BLOCKS; + constexpr int D_FRAGS = HEAD_DIM / 16; + constexpr int OUT_GROUPS = HEAD_DIM / 32; + + // MLX Steel's wide-load idiom: a byte aggregate aligned only to one T. + // Unlike vec, this remains defined for unit-stride views whose base + // begins at an odd fp16/bf16 element offset. + struct alignas(sizeof(T)) QSAReadVector8 { + uchar bytes[sizeof(T) * 8]; + }; + + const ushort lane = ushort(thread_index_in_simdgroup); + const int work = int(threadgroup_position_in_grid.x); + const int row = work / KV_HEADS; + const int kv_head = work - row * KV_HEADS; + const int pos_start = int(params[0]); + const int total_tokens = int(params[1]); + const int query_pos = pos_start + row; + const int complete_blocks = (query_pos + 1) / BLOCK_TOKENS; + const int tail_start = complete_blocks * BLOCK_TOKENS; + const int tail_count = query_pos + 1 - tail_start; + // Find the highest selection slot that can actually contribute. The + // production selector emits a chronological valid prefix, but deriving + // this from the slots themselves preserves the public kernel's existing + // semantics for arbitrary validity holes as well. Encoding slot+1 lets + // zero mean "no selected tile" in the simd-wide max reduction. + uint local_active_slots = 0u; + for (uint block_slot = uint(lane); + block_slot < uint(TOP_K_BLOCKS); + block_slot += 32u) { + const size_t id_at = size_t(row) * block_ids_strides[0] + + size_t(block_slot) * block_ids_strides[1]; + const size_t valid_at = size_t(row) * block_valid_strides[0] + + size_t(block_slot) * block_valid_strides[1]; + const int block_id = int(block_ids[id_at]); + if (bool(block_valid[valid_at]) && + block_id >= 0 && block_id < complete_blocks) { + local_active_slots = metal::max(local_active_slots, block_slot + 1u); + } + } + const uint active_blocks = simd_max(local_active_slots); + const int active_selected_tiles = + (int(active_blocks) + TILE_BLOCKS - 1) / TILE_BLOCKS; + const int active_tiles = active_selected_tiles + (tail_count > 0 ? 1 : 0); + const short2 sc = qsa_nax_coord(lane); + + constexpr auto desc = mpp::tensor_ops::matmul2d_descriptor( + 16, 32, 16, false, true, true, + mpp::tensor_ops::matmul2d_descriptor::mode::multiply_accumulate); + mpp::tensor_ops::matmul2d mm; + auto ct_a = mm.get_left_input_cooperative_tensor(); + auto ct_b = mm.get_right_input_cooperative_tensor(); + auto ct_c = + mm.get_destination_cooperative_tensor(); + + // Exactly 32 * 256 * sizeof(T) == 16 KiB. The allocation first holds K + // row-major and is then overwritten with V-transpose for the PV multiply. + threadgroup T tg_tile[TOKENS_PER_TILE * HEAD_DIM]; + + // Each lane carries two padded M rows. Four lanes share a logical row; + // xor(1),xor(8) reduce the four score fragments for that row. + float row_max[2] = {-1.0e38f, -1.0e38f}; + float row_sum[2] = {0.0f, 0.0f}; + float out_frag[OUT_GROUPS][2][QSA_ELEMS_PER_FRAG]; + for (int group = 0; group < OUT_GROUPS; ++group) { + for (short row_part = 0; row_part < 2; ++row_part) { + for (short elem = 0; elem < QSA_ELEMS_PER_FRAG; ++elem) { + out_frag[group][row_part][elem] = 0.0f; + } + } + } + + for (int tile_index = 0; tile_index < active_tiles; ++tile_index) { + const bool tail_tile = + tail_count > 0 && tile_index == active_selected_tiles; + const int block_base = tile_index * TILE_BLOCKS; + + // Gather K into tg_tile[token,dim]. Metadata is deliberately recomputed + // by the one simdgroup so the kernel owns only one 16 KiB TG allocation. + for (int token_slot = 0; token_slot < TOKENS_PER_TILE; ++token_slot) { + int token = 0; + bool token_valid = false; + if (tail_tile) { + token = tail_start + token_slot; + token_valid = token_slot < tail_count && token < total_tokens; + } else { + const int local_block = token_slot / BLOCK_TOKENS; + const int within = token_slot - local_block * BLOCK_TOKENS; + const int block_slot = block_base + local_block; + const size_t id_at = size_t(row) * block_ids_strides[0] + + size_t(block_slot) * block_ids_strides[1]; + const size_t valid_at = size_t(row) * block_valid_strides[0] + + size_t(block_slot) * block_valid_strides[1]; + const int block_id = int(block_ids[id_at]); + token_valid = bool(block_valid[valid_at]) && + block_id >= 0 && block_id < complete_blocks; + token = token_valid ? block_id * BLOCK_TOKENS + within : 0; + } + if (k_strides[3] == 1) { + // Each lane exposes one compiler-visible 16-byte copy. Across + // the simdgroup the full 256-wide cache row is contiguous. + const int dim0 = int(lane) * 8; + const int destination = token_slot * HEAD_DIM + dim0; + if (token_valid) { + const size_t k_at = size_t(kv_head) * k_strides[1] + + size_t(token) * k_strides[2] + size_t(dim0); + *reinterpret_cast( + &tg_tile[destination]) = + *reinterpret_cast(&k[k_at]); + } else { + for (short elem = 0; elem < 8; ++elem) { + tg_tile[destination + int(elem)] = T(0); + } + } + } else { + // Fail-correct for unusual cache views whose feature axis is + // not contiguous; the production backing takes the wide-copy lane. + for (int dim = int(lane); dim < HEAD_DIM; dim += 32) { + const size_t k_at = size_t(kv_head) * k_strides[1] + + size_t(token) * k_strides[2] + + size_t(dim) * k_strides[3]; + tg_tile[token_slot * HEAD_DIM + dim] = + token_valid ? k[k_at] : T(0); + } + } + } + simdgroup_barrier(mem_flags::mem_threadgroup); + + // QK: padded [16,256] x gathered [32,256]^T -> [16,32]. + for (short elem = 0; elem < 2 * QSA_ELEMS_PER_FRAG; ++elem) { + ct_c[elem] = 0.0f; + } + for (int frag = 0; frag < D_FRAGS; ++frag) { + for (short row_part = 0; row_part < 2; ++row_part) { + const int m_row = int(sc.y) + int(row_part) * QSA_ELEM_ROWS_JUMP; + if (m_row < GQA) { + const int q_head = kv_head * GQA + m_row; + const size_t q_base = size_t(q_head) * q_strides[1] + + size_t(row) * q_strides[2] + + size_t(frag * 16 + int(sc.x)) * q_strides[3]; + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + ct_a[row_part * QSA_ELEM_COLS + col] = + q[q_base + size_t(col) * q_strides[3]]; + } + } else { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + ct_a[row_part * QSA_ELEM_COLS + col] = T(0); + } + } + } + for (short n_half = 0; n_half < 2; ++n_half) { + for (short row_half = 0; row_half < 2; ++row_half) { + const int token_slot = int(n_half) * 16 + int(sc.y) + + int(row_half) * QSA_ELEM_ROWS_JUMP; + const int tile_base = token_slot * HEAD_DIM + + frag * 16 + int(sc.x); + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + ct_b[n_half * QSA_ELEMS_PER_FRAG + + row_half * QSA_ELEM_COLS + col] = + tg_tile[tile_base + int(col)]; + } + } + } + mm.run(ct_a, ct_b, ct_c); + } + + // Mask, scale, and exponentiate the score fragment in registers. + float probabilities[2][QSA_ELEMS_PER_FRAG]; + float correction[2]; + for (short row_part = 0; row_part < 2; ++row_part) { + const int m_row = int(sc.y) + int(row_part) * QSA_ELEM_ROWS_JUMP; + const bool live_row = m_row < GQA; + float tile_max = -1.0e38f; + for (short n_half = 0; n_half < 2; ++n_half) { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + const int token_slot = int(n_half) * 16 + int(sc.x) + int(col); + bool token_valid = false; + if (tail_tile) { + const int token = tail_start + token_slot; + token_valid = token_slot < tail_count && token < total_tokens; + } else { + const int local_block = token_slot / BLOCK_TOKENS; + const int block_slot = block_base + local_block; + const size_t id_at = size_t(row) * block_ids_strides[0] + + size_t(block_slot) * block_ids_strides[1]; + const size_t valid_at = size_t(row) * block_valid_strides[0] + + size_t(block_slot) * block_valid_strides[1]; + const int block_id = int(block_ids[id_at]); + token_valid = bool(block_valid[valid_at]) && + block_id >= 0 && block_id < complete_blocks; + } + const short at = row_part * QSA_ELEM_COLS + col; + const float score = live_row && token_valid + ? ct_c[n_half * QSA_ELEMS_PER_FRAG + at] * scale[0] + : -1.0e38f; + probabilities[n_half][at] = score; + tile_max = metal::max(tile_max, score); + } + } + tile_max = metal::max(tile_max, simd_shuffle_xor(tile_max, ushort(1))); + tile_max = metal::max(tile_max, simd_shuffle_xor(tile_max, ushort(8))); + const float new_max = metal::max(row_max[row_part], tile_max); + correction[row_part] = metal::exp(row_max[row_part] - new_max); + float tile_sum = 0.0f; + for (short n_half = 0; n_half < 2; ++n_half) { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + const short at = row_part * QSA_ELEM_COLS + col; + const float score = probabilities[n_half][at]; + const float probability = score > -1.0e37f + ? metal::exp(score - new_max) + : 0.0f; + probabilities[n_half][at] = probability; + tile_sum += probability; + } + } + tile_sum += simd_shuffle_xor(tile_sum, ushort(1)); + tile_sum += simd_shuffle_xor(tile_sum, ushort(8)); + row_max[row_part] = new_max; + row_sum[row_part] = row_sum[row_part] * correction[row_part] + tile_sum; + } + + for (short row_part = 0; row_part < 2; ++row_part) { + const float factor = correction[row_part]; + for (int group = 0; group < OUT_GROUPS; ++group) { + for (short dim_half = 0; dim_half < 2; ++dim_half) { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + out_frag[group][dim_half] + [row_part * QSA_ELEM_COLS + col] *= factor; + } + } + } + } + + // QK is finished: overwrite the same 16 KiB with V^T[dim,token]. + simdgroup_barrier(mem_flags::mem_threadgroup); + for (int token_slot = 0; token_slot < TOKENS_PER_TILE; ++token_slot) { + int token = 0; + bool token_valid = false; + if (tail_tile) { + token = tail_start + token_slot; + token_valid = token_slot < tail_count && token < total_tokens; + } else { + const int local_block = token_slot / BLOCK_TOKENS; + const int within = token_slot - local_block * BLOCK_TOKENS; + const int block_slot = block_base + local_block; + const size_t id_at = size_t(row) * block_ids_strides[0] + + size_t(block_slot) * block_ids_strides[1]; + const size_t valid_at = size_t(row) * block_valid_strides[0] + + size_t(block_slot) * block_valid_strides[1]; + const int block_id = int(block_ids[id_at]); + token_valid = bool(block_valid[valid_at]) && + block_id >= 0 && block_id < complete_blocks; + token = token_valid ? block_id * BLOCK_TOKENS + within : 0; + } + if (v_strides[3] == 1) { + const int dim0 = int(lane) * 8; + thread T v_lane[8]; + if (token_valid) { + const size_t v_at = size_t(kv_head) * v_strides[1] + + size_t(token) * v_strides[2] + size_t(dim0); + *reinterpret_cast(&v_lane[0]) = + *reinterpret_cast(&v[v_at]); + } else { + for (short elem = 0; elem < 8; ++elem) { + v_lane[elem] = T(0); + } + } + for (short elem = 0; elem < 8; ++elem) { + tg_tile[(dim0 + int(elem)) * TOKENS_PER_TILE + token_slot] = + v_lane[elem]; + } + } else { + for (int dim = int(lane); dim < HEAD_DIM; dim += 32) { + const size_t v_at = size_t(kv_head) * v_strides[1] + + size_t(token) * v_strides[2] + + size_t(dim) * v_strides[3]; + tg_tile[dim * TOKENS_PER_TILE + token_slot] = + token_valid ? v[v_at] : T(0); + } + } + } + simdgroup_barrier(mem_flags::mem_threadgroup); + + // PV: [16,32] x [256,32]^T -> [16,256]. MPP consumes probabilities + // in T, while accumulation and all persistent online state remain fp32. + for (int group = 0; group < OUT_GROUPS; ++group) { + for (short elem = 0; elem < QSA_ELEMS_PER_FRAG; ++elem) { + ct_c[elem] = out_frag[group][0][elem]; + ct_c[QSA_ELEMS_PER_FRAG + elem] = out_frag[group][1][elem]; + } + for (short token_half = 0; token_half < 2; ++token_half) { + for (short row_part = 0; row_part < 2; ++row_part) { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + ct_a[row_part * QSA_ELEM_COLS + col] = T( + probabilities[token_half][row_part * QSA_ELEM_COLS + col]); + } + } + for (short dim_half = 0; dim_half < 2; ++dim_half) { + for (short row_half = 0; row_half < 2; ++row_half) { + const int dim = group * 32 + int(dim_half) * 16 + + int(sc.y) + int(row_half) * QSA_ELEM_ROWS_JUMP; + const int tile_base = dim * TOKENS_PER_TILE + + int(token_half) * 16 + int(sc.x); + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + ct_b[dim_half * QSA_ELEMS_PER_FRAG + + row_half * QSA_ELEM_COLS + col] = + tg_tile[tile_base + int(col)]; + } + } + } + mm.run(ct_a, ct_b, ct_c); + } + for (short elem = 0; elem < QSA_ELEMS_PER_FRAG; ++elem) { + out_frag[group][0][elem] = ct_c[elem]; + out_frag[group][1][elem] = ct_c[QSA_ELEMS_PER_FRAG + elem]; + } + } + simdgroup_barrier(mem_flags::mem_threadgroup); + } + + // Normalize and store the twelve live rows into contiguous [1,24,S,256]. + for (short row_part = 0; row_part < 2; ++row_part) { + const int m_row = int(sc.y) + int(row_part) * QSA_ELEM_ROWS_JUMP; + if (m_row >= GQA) continue; + const int q_head = kv_head * GQA + m_row; + const float inv_sum = row_sum[row_part] > 0.0f ? 1.0f / row_sum[row_part] : 0.0f; + const size_t out_base = + (size_t(q_head) * size_t(params[2]) + size_t(row)) * HEAD_DIM; + for (int group = 0; group < OUT_GROUPS; ++group) { + for (short dim_half = 0; dim_half < 2; ++dim_half) { + for (short col = 0; col < QSA_ELEM_COLS; ++col) { + const int dim = group * 32 + int(dim_half) * 16 + + int(sc.x) + int(col); + out[out_base + size_t(dim)] = T( + out_frag[group][dim_half][row_part * QSA_ELEM_COLS + col] * + inv_sum); + } + } + } + } +} +typedef decltype(kernel_qwen_mtplx_qsa_prefill_flash) kernel_qwen_mtplx_qsa_prefill_flash_bf16_type; +template [[host_name("kernel_qwen_mtplx_qsa_prefill_flash_bf16")]] +kernel kernel_qwen_mtplx_qsa_prefill_flash_bf16_type kernel_qwen_mtplx_qsa_prefill_flash; +typedef decltype(kernel_qwen_mtplx_qsa_prefill_flash) kernel_qwen_mtplx_qsa_prefill_flash_f16_type; +template [[host_name("kernel_qwen_mtplx_qsa_prefill_flash_f16")]] +kernel kernel_qwen_mtplx_qsa_prefill_flash_f16_type kernel_qwen_mtplx_qsa_prefill_flash; +} // namespace mtplx_qsa_prefill_flash diff --git a/metal/qwen38.metal b/metal/qwen38.metal index 2bab705..2d82a1b 100644 --- a/metal/qwen38.metal +++ b/metal/qwen38.metal @@ -340,8 +340,8 @@ kernel void kernel_qwen_affine_qmv_fast( // MLX affine_qmv_wide for the verifier's S=2..4 matrices. M5-class GPUs // route these shapes here instead of running one independent QMV per row. -template -static inline void qwen_affine_qmv_wide_impl( +template +static inline void qwen_affine_qmv_wide_rows_impl( constant qwen_kernel_args &args, device float *out, device const float *x, @@ -361,12 +361,11 @@ static inline void qwen_affine_qmv_wide_impl( simd_group * outputs_per_simdgroup + simd_row; const uint in_dim = args.u[0]; const uint out_dim = args.u[1]; - const uint rows = args.u[4]; const uint row = min(output_row, out_dim - 1u); const uint groups_per_row = in_dim / group_size; const ulong packed_row = (ulong)row * in_dim * bits / 8u; const ulong parameter_row = (ulong)row * groups_per_row; - float result[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + float result[rows] = {0.0f}; for (uint quant_group = k_lane; quant_group < groups_per_row; quant_group += k_lanes) { @@ -374,11 +373,13 @@ static inline void qwen_affine_qmv_wide_impl( scales, args.u[14], parameter_row + quant_group)); const float bias = qwen_bf16(qwen_weight_u16( biases, args.u[15], parameter_row + quant_group)); + #pragma unroll for (uint chunk = 0u; chunk < group_size / sub; chunk++) { const uint column = quant_group * group_size + chunk * sub; const ulong weight_byte = (ulong)args.u[13] + packed_row + (ulong)column * bits / 8u; float weights[sub]; + #pragma unroll for (uint index = 0u; index < sub; index++) { uint quantized; if constexpr (bits == 4) { @@ -389,8 +390,10 @@ static inline void qwen_affine_qmv_wide_impl( } weights[index] = scale * (float)quantized + bias; } + #pragma unroll for (uint vector = 0u; vector < rows; vector++) { float sum = 0.0f; + #pragma unroll for (uint index = 0u; index < sub; index++) { sum += x[(ulong)vector * in_dim + column + index] * weights[index]; } @@ -411,6 +414,35 @@ static inline void qwen_affine_qmv_wide_impl( } } +// MTPLX specializes vecs_per_tg: keeping the accumulator indices constant +// avoids a runtime-indexed register array in the verifier's inner loop. +template +static inline void qwen_affine_qmv_wide_impl( + constant qwen_kernel_args &args, + device float *out, + device const float *x, + device const uchar *packed, + device const uchar *scales, + device const uchar *biases, + uint group, + uint simd_group, + uint lane) { + switch (args.u[4]) { + case 2: + qwen_affine_qmv_wide_rows_impl( + args, out, x, packed, scales, biases, group, simd_group, lane); + break; + case 3: + qwen_affine_qmv_wide_rows_impl( + args, out, x, packed, scales, biases, group, simd_group, lane); + break; + case 4: + qwen_affine_qmv_wide_rows_impl( + args, out, x, packed, scales, biases, group, simd_group, lane); + break; + } +} + template kernel void kernel_qwen_affine_qmv_batch_fast( constant qwen_kernel_args &args [[buffer(0)]], @@ -583,23 +615,111 @@ kernel qwen_affine_pair_qmv_wide_b8g64 kernel_qwen_affine_pair_qmv_wide<8, 64>; #ifdef DS4_METAL_HAS_TENSOR using namespace mpp::tensor_ops; -template -kernel void kernel_qwen_affine_qmm_mpp( +kernel void kernel_qwen_route_map( + constant qwen_kernel_args &args [[buffer(0)]], + device uint *counts [[buffer(1)]], + device const uint *selected [[buffer(2)]], + device uint *route_map [[buffer(3)]], + device uchar *work [[buffer(4)]], + threadgroup ushort *staged [[threadgroup(0)]], + uint expert [[thread_index_in_threadgroup]], + uint threads [[threads_per_threadgroup]]) { + uint count = 0u; + device uint *expert_map = route_map + (ulong)expert * args.u[4]; + for (uint first_row = 0u; first_row < args.u[4]; first_row += threads) { + const uint row = first_row + expert; + if (row < args.u[4]) { + for (uint slot = 0u; slot < args.u[8]; slot++) { + staged[expert * args.u[8] + slot] = + (ushort)selected[(ulong)row * args.u[8] + slot]; + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + const uint valid = min(threads, args.u[4] - first_row); + for (uint local_row = 0u; local_row < valid; local_row++) { + for (uint slot = 0u; slot < args.u[8]; slot++) { + if (staged[local_row * args.u[8] + slot] == expert) { + expert_map[count++] = (first_row + local_row) * args.u[8] + slot; + break; + } + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + counts[expert] = count; + threadgroup_barrier(mem_flags::mem_device); + uint route_base = 0u; + for (uint other = 0u; other < expert; other++) route_base += counts[other]; + device uint *route_offsets = (device uint *)(work + 8); + device uint *inverse = route_offsets + 512; + route_offsets[expert] = route_base; + for (uint index = 0u; index < count; index++) { + inverse[expert_map[index]] = route_base + index; + } + staged[expert] = (ushort)((count + 63u) / 64u); + threadgroup_barrier(mem_flags::mem_threadgroup); + + uint work_base = 0u; + for (uint other = 0u; other < expert; other++) { + work_base += staged[other]; + } + device uint *work_count = (device uint *)work; + const ulong items_offset = + (8ul + 512ul * 4ul + (ulong)args.u[4] * args.u[8] * 4ul + 7ul) & ~7ul; + device uint2 *work_items = (device uint2 *)(work + items_offset); + for (uint tile = 0u; tile < staged[expert]; tile++) { + work_items[work_base + tile] = uint2(expert, tile * 64u); + } + if (expert + 1u == threads) { + work_count[0] = work_base + staged[expert]; + } +} + +kernel void kernel_qwen_route_gather_rows( + constant qwen_kernel_args &args [[buffer(0)]], + device bfloat *out [[buffer(1)]], + device const float *x [[buffer(2)]], + device const uchar *work [[buffer(3)]], + uint2 gid [[thread_position_in_grid]]) { + const uint column = gid.x; + const uint route = gid.y; + if (column >= args.u[0] || route >= args.u[4] * args.u[8]) return; + device const uint *inverse = (device const uint *)(work + 8) + 512; + const uint sorted = inverse[route]; + out[(ulong)sorted * args.u[0] + column] = + (bfloat)x[(ulong)(route / args.u[8]) * args.u[0] + column]; +} + +template +kernel void kernel_qwen_affine_gather_qmm_mpp( constant qwen_kernel_args &args [[buffer(0)]], device float *out [[buffer(1)]], device const float *x [[buffer(2)]], + device const uint *route_map [[buffer(3)]], + device const uchar *work [[buffer(4)]], device const uchar *packed [[buffer(5)]], device const uchar *scales [[buffer(6)]], device const uchar *biases [[buffer(7)]], + device const uint *counts [[buffer(8)]], uint2 group [[threadgroup_position_in_grid]], uint tid [[thread_index_in_threadgroup]]) { + constexpr uint tile_m = 64u; constexpr uint tile_n = 64u; constexpr uint tile_k = 64u; constexpr uint threads = 128u; + device const uint *work_count = (device const uint *)work; + if (group.y >= work_count[0]) return; + const ulong items_offset = + (8ul + 512ul * 4ul + (ulong)args.u[4] * args.u[8] * 4ul + 7ul) & ~7ul; + device const uint2 *work_items = (device const uint2 *)(work + items_offset); + const uint2 item = work_items[group.y]; + const uint expert = item.x; + const uint first_m = item.y; + if (first_m >= counts[expert]) return; + const uint first_n = group.x * tile_n; + device const uint *expert_map = route_map + (ulong)expert * args.u[4]; threadgroup bfloat xs[tile_m * tile_k]; threadgroup bfloat ws[tile_n * tile_k]; - const uint first_m = group.y * tile_m; - const uint first_n = group.x * tile_n; constexpr auto descriptor = matmul2d_descriptor( tile_m, tile_n, tile_k, false, true, false, matmul2d_descriptor::mode::multiply_accumulate); @@ -609,28 +729,29 @@ kernel void kernel_qwen_affine_qmm_mpp( tensor, tensor_inline>, float>(); #pragma clang loop unroll(full) - for (uint i = 0u; i < accum.get_capacity(); i++) { - accum[i] = 0.0f; - } + for (uint i = 0u; i < accum.get_capacity(); i++) accum[i] = 0.0f; for (uint first_k = 0u; first_k < args.u[0]; first_k += tile_k) { for (uint index = tid; index < tile_m * tile_k; index += threads) { const uint row = index / tile_k; const uint column = index % tile_k; - const uint input_m = first_m + row; - xs[index] = input_m < args.u[4] - ? (bfloat)x[(ulong)input_m * args.u[0] + first_k + column] + const bool valid = first_m + row < counts[expert]; + const uint route = valid ? expert_map[first_m + row] : 0u; + const uint input_row = args.u[5] != 0u ? route : route / args.u[8]; + xs[index] = valid + ? (bfloat)x[(ulong)input_row * args.u[0] + first_k + column] : bfloat(0.0f); } for (uint index = tid; index < tile_n * tile_k; index += threads) { const uint row = index / tile_k; const uint column = index % tile_k; const uint weight_n = first_n + row; + const ulong table_row = (ulong)expert * args.u[1] + weight_n; ws[index] = weight_n < args.u[1] ? (bfloat)qwen_quant_weight( packed, scales, biases, args.u[13], args.u[14], args.u[15], - weight_n, first_k + column, + table_row, first_k + column, args.u[0], bits, group_size) : bfloat(0.0f); } @@ -648,15 +769,267 @@ kernel void kernel_qwen_affine_qmm_mpp( const auto index = accum.get_multidimensional_index(i); const uint output_n = first_n + index[0]; const uint output_m = first_m + index[1]; - if (output_n < args.u[1] && output_m < args.u[4]) { - const float value = accum[i]; - out[(ulong)output_m * args.u[1] + output_n] = args.u[11] != 0u - ? qwen_round_bf16(value) - : value; + if (output_n < args.u[1] && output_m < counts[expert]) { + const uint route = expert_map[output_m]; + out[(ulong)route * args.u[1] + output_n] = + qwen_round_bf16(accum[i]); } } } +template +kernel void kernel_qwen_affine_sorted_qmm_mpp( + constant qwen_kernel_args &args [[buffer(0)]], + device float *out [[buffer(1)]], + device bfloat *x [[buffer(2)]], + device const uint *route_map [[buffer(3)]], + device const uchar *work [[buffer(4)]], + device const uchar *packed [[buffer(5)]], + device const uchar *scales [[buffer(6)]], + device const uchar *biases [[buffer(7)]], + device const uint *counts [[buffer(8)]], + uint2 group [[threadgroup_position_in_grid]], + uint tid [[thread_index_in_threadgroup]]) { + constexpr uint tile_m = 64u; + constexpr uint tile_n = 64u; + constexpr uint tile_k = 32u; + constexpr uint threads = 128u; + device const uint *work_count = (device const uint *)work; + if (group.y >= work_count[0]) return; + const ulong items_offset = + (8ul + 512ul * 4ul + (ulong)args.u[4] * args.u[8] * 4ul + 7ul) & ~7ul; + device const uint2 *work_items = (device const uint2 *)(work + items_offset); + const uint2 item = work_items[group.y]; + const uint expert = item.x; + const uint local_m = item.y; + if (local_m >= counts[expert]) return; + device const uint *route_offsets = (device const uint *)(work + 8); + const uint first_m = route_offsets[expert] + local_m; + const uint first_n = group.x * tile_n; + threadgroup bfloat ws[2u * tile_n * tile_k]; + auto weights0 = tensor, tensor_inline>( + ws, dextents(tile_k, tile_n)); + auto weights1 = tensor, tensor_inline>( + ws + tile_n * tile_k, dextents(tile_k, tile_n)); + auto activations = tensor, tensor_inline>( + x, dextents(args.u[0], args.u[6]), + array({1, (int)args.u[0]})); + constexpr auto descriptor = matmul2d_descriptor( + tile_m, tile_n, tile_k, false, true, true, + matmul2d_descriptor::mode::multiply_accumulate); + matmul2d> multiply; + auto accum = multiply.template get_destination_cooperative_tensor< + decltype(activations), decltype(weights0), float>(); +#pragma clang loop unroll(full) + for (uint i = 0u; i < accum.get_capacity(); i++) accum[i] = 0.0f; + + auto stage_weights = [&](uint first_k, threadgroup bfloat *target) { + constexpr uint per_word = 32u / bits; + constexpr uint words_per_row = tile_k / per_word; + for (uint index = tid; index < tile_n * words_per_row; index += threads) { + const uint row = index / words_per_row; + const uint column = (index % words_per_row) * per_word; + const uint weight_n = first_n + row; + const ulong table_row = (ulong)expert * args.u[1] + weight_n; + uint word = 0u; + float scale = 0.0f, bias = 0.0f; + if (weight_n < args.u[1]) { + word = qwen_weight_u32(packed, args.u[13], + table_row * (args.u[0] / per_word) + (first_k + column) / per_word); + const ulong quant_group = table_row * (args.u[0] / group_size) + + (first_k + column) / group_size; + scale = qwen_bf16(qwen_weight_u16(scales, args.u[14], quant_group)); + bias = qwen_bf16(qwen_weight_u16(biases, args.u[15], quant_group)); + } +#pragma clang loop unroll(full) + for (uint element = 0u; element < per_word; element++) { + const uint quant = (word >> (element * bits)) & ((1u << bits) - 1u); + target[row * tile_k + column + element] = + (bfloat)fma((float)quant, scale, bias); + } + } + }; + stage_weights(0u, ws); + threadgroup_barrier(mem_flags::mem_threadgroup); + uint selected_weights = 0u; + for (uint first_k = 0u; first_k < args.u[0]; first_k += tile_k) { + auto weight_tile = selected_weights ? weights1 : weights0; + auto activation_tile = activations.slice(first_k, first_m); + multiply.run(activation_tile, weight_tile, accum); + const uint next_k = first_k + tile_k; + if (next_k < args.u[0]) { + selected_weights ^= 1u; + stage_weights(next_k, selected_weights ? ws + tile_n * tile_k : ws); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + +#pragma clang loop unroll(full) + for (uint i = 0u; i < accum.get_capacity(); i++) { + const auto index = accum.get_multidimensional_index(i); + const uint output_n = first_n + index[0]; + const uint local_output_m = local_m + index[1]; + if (output_n < args.u[1] && local_output_m < counts[expert]) { + out[(ulong)(first_m + index[1]) * args.u[1] + output_n] = + qwen_round_bf16(accum[i]); + } + } + (void)route_map; +} + +typedef decltype(kernel_qwen_affine_sorted_qmm_mpp<4, 32>) qwen_affine_sorted_qmm_mpp_b4g32; +typedef decltype(kernel_qwen_affine_sorted_qmm_mpp<4, 64>) qwen_affine_sorted_qmm_mpp_b4g64; +typedef decltype(kernel_qwen_affine_sorted_qmm_mpp<8, 64>) qwen_affine_sorted_qmm_mpp_b8g64; +template [[host_name("kernel_qwen_affine_sorted_qmm_mpp_b4g32")]] +kernel qwen_affine_sorted_qmm_mpp_b4g32 kernel_qwen_affine_sorted_qmm_mpp<4, 32>; +template [[host_name("kernel_qwen_affine_sorted_qmm_mpp_b4g64")]] +kernel qwen_affine_sorted_qmm_mpp_b4g64 kernel_qwen_affine_sorted_qmm_mpp<4, 64>; +template [[host_name("kernel_qwen_affine_sorted_qmm_mpp_b8g64")]] +kernel qwen_affine_sorted_qmm_mpp_b8g64 kernel_qwen_affine_sorted_qmm_mpp<8, 64>; + +typedef decltype(kernel_qwen_affine_gather_qmm_mpp<4, 32>) qwen_affine_gather_qmm_mpp_b4g32; +typedef decltype(kernel_qwen_affine_gather_qmm_mpp<4, 64>) qwen_affine_gather_qmm_mpp_b4g64; +typedef decltype(kernel_qwen_affine_gather_qmm_mpp<8, 64>) qwen_affine_gather_qmm_mpp_b8g64; + +template [[host_name("kernel_qwen_affine_gather_qmm_mpp_b4g32")]] +kernel qwen_affine_gather_qmm_mpp_b4g32 kernel_qwen_affine_gather_qmm_mpp<4, 32>; +template [[host_name("kernel_qwen_affine_gather_qmm_mpp_b4g64")]] +kernel qwen_affine_gather_qmm_mpp_b4g64 kernel_qwen_affine_gather_qmm_mpp<4, 64>; +template [[host_name("kernel_qwen_affine_gather_qmm_mpp_b8g64")]] +kernel qwen_affine_gather_qmm_mpp_b8g64 kernel_qwen_affine_gather_qmm_mpp<8, 64>; + +template +kernel void kernel_qwen_affine_qmm_mpp( + constant qwen_kernel_args &args [[buffer(0)]], + device float *out [[buffer(1)]], + device float *x [[buffer(2)]], + device const uchar *packed [[buffer(5)]], + device const uchar *scales [[buffer(6)]], + device const uchar *biases [[buffer(7)]], + uint2 group [[threadgroup_position_in_grid]], + uint tid [[thread_index_in_threadgroup]]) { + constexpr uint tile_n = 64u; + constexpr uint tile_k = 32u; + constexpr uint threads = 128u; + threadgroup bfloat ws[2u * tile_n * tile_k]; + const uint m_tiles = (args.u[4] + tile_m - 1u) / tile_m; + const uint partition = group.y / m_tiles; + const uint first_m = (group.y % m_tiles) * tile_m; + const uint first_n = group.x * tile_n; + const uint partition_k = args.u[0] / max(args.u[8], 1u); + const uint start_k = partition * partition_k; + const uint end_k = start_k + partition_k; + out += partition * args.u[4] * args.u[1]; + auto weights0 = tensor, tensor_inline>( + ws, dextents(tile_k, tile_n)); + auto weights1 = tensor, tensor_inline>( + ws + tile_n * tile_k, dextents(tile_k, tile_n)); + auto activations = tensor, tensor_inline>( + x, dextents(args.u[0], args.u[4]), + array({1, (int)args.u[0]})); + constexpr auto descriptor = matmul2d_descriptor( + tile_m, tile_n, tile_k, false, true, true, + matmul2d_descriptor::mode::multiply_accumulate); + matmul2d> multiply; + auto accum = multiply.template get_destination_cooperative_tensor< + decltype(activations), decltype(weights0), + float>(); +#pragma clang loop unroll(full) + for (uint i = 0u; i < accum.get_capacity(); i++) { + accum[i] = 0.0f; + } + + auto stage_weights = [&](uint first_k, threadgroup bfloat *target) { + // Decode a packed word once, reusing its scale/bias across its values, + // as in the sorted QMM loader and MTPLX's quantized matrix loader. + constexpr uint per_word = 32u / bits; + constexpr uint words_per_row = tile_k / per_word; + for (uint index = tid; index < tile_n * words_per_row; index += threads) { + const uint row = index / words_per_row; + const uint column = (index % words_per_row) * per_word; + const uint weight_n = first_n + row; + uint word = 0u; + float scale = 0.0f, bias = 0.0f; + if (weight_n < args.u[1]) { + word = qwen_weight_u32(packed, args.u[13], + (ulong)weight_n * (args.u[0] / per_word) + (first_k + column) / per_word); + const ulong quant_group = (ulong)weight_n * (args.u[0] / group_size) + + (first_k + column) / group_size; + scale = qwen_bf16(qwen_weight_u16(scales, args.u[14], quant_group)); + bias = qwen_bf16(qwen_weight_u16(biases, args.u[15], quant_group)); + } +#pragma clang loop unroll(full) + for (uint element = 0u; element < per_word; element++) { + const uint quant = (word >> (element * bits)) & ((1u << bits) - 1u); + target[row * tile_k + column + element] = + (bfloat)fma((float)quant, scale, bias); + } + } + }; + + stage_weights(start_k, ws); + threadgroup_barrier(mem_flags::mem_threadgroup); + uint selected_weights = 0u; + for (uint first_k = start_k; first_k < end_k; first_k += tile_k) { + auto weight_tile = selected_weights ? weights1 : weights0; + auto activation_tile = activations.slice(first_k, first_m); + multiply.run(activation_tile, weight_tile, accum); + const uint next_k = first_k + tile_k; + if (next_k < end_k) { + selected_weights ^= 1u; + stage_weights( + next_k, + selected_weights ? ws + tile_n * tile_k : ws); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + auto output = tensor, tensor_inline>( + out, dextents(args.u[1], args.u[4]), + array({1, (int)args.u[1]})); + if (args.u[11] != 0u) { +#pragma clang loop unroll(full) + for (uint i = 0u; i < accum.get_capacity(); i++) { + accum[i] = qwen_round_bf16(accum[i]); + } + } + auto output_tile = output.slice(first_n, first_m); + accum.store(output_tile); +} + +// Match MTPLX's BF16 column-reduction order, including intermediate rounding. +// Each simdgroup handles one output; small reductions use eight strided lanes, +// larger reductions use the reference's 32-lane BF16 simd reduction. +kernel void kernel_qwen_affine_splitk_reduce( + constant qwen_kernel_args &args [[buffer(0)]], + device float *out [[buffer(1)]], + device const float *parts [[buffer(2)]], + uint group [[threadgroup_position_in_grid]], + uint simd_group [[simdgroup_index_in_threadgroup]], + uint lane [[thread_index_in_simdgroup]]) { + const uint index = group * 2u + simd_group; + const uint stride = args.u[4] * args.u[1]; + if (index >= stride) return; + const uint count = args.u[8]; + const uint lanes = count < 32u ? min(count, 8u) : 32u; + bfloat total = bfloat(0.0f); + for (uint p = lane; p < count; p += lanes) { + if (lane < lanes) total = bfloat(float(total) + parts[p * stride + index]); + } + if (count < 32u) { + bfloat sum = total; + for (uint p = 1u; p < lanes; p++) { + const float next = simd_shuffle(float(total), p); + sum = bfloat(float(sum) + float(next)); + } + if (lane == 0u) out[index] = float(sum); + } else { + // MTPLX's bfloat16_t overload reduces in float, then rounds once. + const bfloat sum = bfloat(simd_sum(float(total))); + if (lane == 0u) out[index] = float(sum); + } +} + typedef decltype(kernel_qwen_affine_qmm_mpp<4, 32, 32>) qwen_affine_qmm_mpp_b4g32_bm32; typedef decltype(kernel_qwen_affine_qmm_mpp<4, 64, 32>) qwen_affine_qmm_mpp_b4g64_bm32; typedef decltype(kernel_qwen_affine_qmm_mpp<8, 64, 32>) qwen_affine_qmm_mpp_b8g64_bm32; @@ -1209,6 +1582,33 @@ kernel void kernel_qwen_weighted_sum10( out[index] = value; } +kernel void kernel_qwen_weighted_sum10_sorted( + constant qwen_kernel_args &args [[buffer(0)]], + device float *out [[buffer(1)]], + device const float *experts [[buffer(2)]], + device const float *weights [[buffer(3)]], + device const uchar *work [[buffer(4)]], + uint index [[thread_position_in_grid]]) { + if (index >= args.u[0]) return; + const uint hidden = args.u[1]; + const uint row = index / hidden; + const uint column = index % hidden; + device const uint *inverse = (device const uint *)(work + 8) + 512; + const ulong routes_base = (ulong)row * args.u[8]; + float weighted[10]; + for (uint slot = 0; slot < 10u; slot++) { + const ulong route = routes_base + slot; + weighted[slot] = qwen_round_bf16( + experts[(ulong)inverse[route] * hidden + column] * weights[route]); + } + float value = qwen_round_bf16(weighted[0] + weighted[8]); + value = qwen_round_bf16(value + qwen_round_bf16(weighted[1] + weighted[9])); + for (uint slot = 2; slot < 8u; slot++) { + value = qwen_round_bf16(value + weighted[slot]); + } + out[index] = value; +} + kernel void kernel_qwen_affine_embedding( constant qwen_kernel_args &args [[buffer(0)]], device float *out [[buffer(1)]], @@ -1959,7 +2359,9 @@ kernel void kernel_qwen_gdn_conv_norm( : qwen_round_bf16(normalized); } -// MTPLX fused_gdn_conv_norm_rows, including its in-window convolution tail. +// MTPLX fused_gdn_conv_norm_rows at S<=6. Larger prefills preserve the +// Conv1d -> SiLU -> L2 BF16 boundaries and parallelize independent rows. +// In the parallel path state_out must not alias the input state. kernel void kernel_qwen_gdn_conv_norm_rows( constant qwen_kernel_args &args [[buffer(0)]], device float *q_out [[buffer(1)]], @@ -1972,12 +2374,12 @@ kernel void kernel_qwen_gdn_conv_norm_rows( uint tid [[thread_index_in_threadgroup]], uint lane [[thread_index_in_simdgroup]], uint simd_group [[simdgroup_index_in_threadgroup]], - uint group [[threadgroup_position_in_grid]]) { + uint2 group [[threadgroup_position_in_grid]]) { constexpr uint width = 10240u; constexpr uint key_width = 2048u; constexpr uint dim = 128u; constexpr float inverse_scale = 0.08838834764831845f; - const uint channel = group * 1024u + tid; + const uint channel = group.x * 1024u + tid; if (channel >= width) return; threadgroup float values[1024]; @@ -1988,7 +2390,10 @@ kernel void kernel_qwen_gdn_conv_norm_rows( const float w3 = qwen_bf16(qwen_weight_u16(weight, args.u[14], (ulong)channel * 4u + 3u)); const bool value_channel = channel >= 2u * key_width; - for (uint row = 0u; row < args.u[4]; row++) { + const bool prefill = args.u[4] > 6u; + const uint first_row = prefill ? group.y : 0u; + const uint end_row = prefill ? first_row + 1u : args.u[4]; + for (uint row = first_row; row < end_row; row++) { const float x0 = row < 3u ? qwen_bf16(state[(ulong)row * width + channel]) : qkv[(ulong)(row - 3u) * width + channel]; @@ -2000,7 +2405,10 @@ kernel void kernel_qwen_gdn_conv_norm_rows( : qkv[(ulong)(row - 1u) * width + channel]; const float x3 = qkv[(ulong)row * width + channel]; const float convolved = w0 * x0 + w1 * x1 + w2 * x2 + w3 * x3; - const float activated = convolved / (1.0f + exp(-convolved)); + const float rounded = qwen_round_bf16(convolved); + const float activated = prefill + ? qwen_round_bf16(rounded * qwen_silu_sigmoid_bf16(rounded)) + : convolved / (1.0f + exp(-convolved)); if (value_channel) { v_out[(ulong)row * (width - 2u * key_width) + channel - 2u * key_width] = qwen_round_bf16(activated); @@ -2013,10 +2421,12 @@ kernel void kernel_qwen_gdn_conv_norm_rows( const uint first = (simd_group / 4u) * 4u; sum = partial[first] + partial[first + 1u] + partial[first + 2u] + partial[first + 3u]; - const float normalized = values[tid] * rsqrt(sum + 1.0e-6f); + const float normalized = values[tid] * (prefill + ? precise::rsqrt(sum + 1.0e-6f) : rsqrt(sum + 1.0e-6f)); if (channel < key_width) { q_out[(ulong)row * key_width + channel] = - qwen_round_bf16(normalized * inverse_scale); + prefill ? qwen_round_bf16(qwen_round_bf16(normalized) * 0.08837890625f) + : qwen_round_bf16(normalized * inverse_scale); } else { k_out[(ulong)row * key_width + channel - key_width] = qwen_round_bf16(normalized); @@ -2024,6 +2434,7 @@ kernel void kernel_qwen_gdn_conv_norm_rows( threadgroup_barrier(mem_flags::mem_threadgroup); } + if (prefill && group.y != 0u) return; for (uint tail = 0u; tail < 3u; tail++) { const uint sequence = args.u[4] + tail; const float value = sequence < 3u @@ -2609,18 +3020,28 @@ kernel void kernel_qwen_gdn_norm_gate( } } -kernel void kernel_qwen_swiglu( +template +kernel void kernel_qwen_swiglu_typed( constant qwen_kernel_args &args [[buffer(0)]], - device float *out [[buffer(1)]], + device T *out [[buffer(1)]], device const float *gate [[buffer(2)]], device const float *up [[buffer(3)]], uint index [[thread_position_in_grid]]) { if (index >= args.u[0]) return; const float activated = qwen_round_bf16( gate[index] * qwen_silu_sigmoid_bf16(gate[index])); - out[index] = qwen_round_bf16(activated * up[index]); + out[index] = (T)qwen_round_bf16(activated * up[index]); } +template [[host_name("kernel_qwen_swiglu")]] +kernel void kernel_qwen_swiglu_typed( + constant qwen_kernel_args &, device float *, device const float *, + device const float *, uint); +template [[host_name("kernel_qwen_swiglu_bf16")]] +kernel void kernel_qwen_swiglu_typed( + constant qwen_kernel_args &, device bfloat *, device const float *, + device const float *, uint); + kernel void kernel_qwen_unpack_gdn_inputs( constant qwen_kernel_args &args [[buffer(0)]], device float *qkv [[buffer(1)]], @@ -3017,10 +3438,18 @@ kernel void kernel_qwen_qsa_scores( device float *scores [[buffer(1)]], device const float *query [[buffer(2)]], device const ushort *pooled [[buffer(3)]], - uint block [[thread_position_in_grid]]) { + uint2 group [[thread_position_in_grid]]) { + const uint block = group.x; + const uint row = group.y; const uint dim = args.u[0]; if (block >= args.u[2]) return; + const ulong score_index = (ulong)row * args.u[2] + block; + if (args.u[5] != 0u && block >= (args.u[3] + row) / args.u[5]) { + scores[score_index] = -INFINITY; + return; + } float score = 0.0f; + query += (ulong)row * args.u[1] * dim; for (uint head = 0; head < args.u[1]; head++) { float head_score = 0.0f; for (uint i = 0; i < dim; i++) { @@ -3030,14 +3459,14 @@ kernel void kernel_qwen_qsa_scores( } score += max(head_score, 0.0f); } - scores[block] = score * args.f[0]; + scores[score_index] = score * args.f[0]; } kernel void kernel_qwen_qsa_sort_blocks( constant qwen_kernel_args &args [[buffer(0)]], device int *selected [[buffer(1)]], - uint gid [[thread_position_in_grid]]) { - if (gid != 0u) return; + uint row [[thread_position_in_grid]]) { + selected += (ulong)row * args.u[0]; for (uint i = 1; i < args.u[0]; i++) { const int value = selected[i]; uint j = i; @@ -3049,15 +3478,45 @@ kernel void kernel_qwen_qsa_sort_blocks( } } +kernel void kernel_qwen_qsa_mask( + constant qwen_kernel_args &args [[buffer(0)]], + device uchar *mask [[buffer(1)]], + device const int *selected [[buffer(2)]], + uint row [[threadgroup_position_in_grid]], + uint lane [[thread_index_in_threadgroup]]) { + if (row >= args.u[4]) return; + const uint tokens = args.u[0]; + const uint visible = args.u[8] + row; + const uint tail_start = (visible / args.u[5]) * args.u[5]; + const ulong mask_base = (ulong)row * tokens; + for (uint token = lane; token < tokens; token += args.u[12]) { + mask[mask_base + token] = token >= tail_start && token < visible; + } + threadgroup_barrier(mem_flags::mem_device); + if (lane < args.u[6]) { + const int block = selected[(ulong)row * args.u[6] + lane]; + if (block >= 0) { + const uint token0 = (uint)block * args.u[5]; + if (token0 < tail_start) { + for (uint within = 0u; within < args.u[5]; within++) { + mask[mask_base + token0 + within] = true; + } + } + } + } +} + kernel void kernel_qwen_sparse_attention( constant qwen_kernel_args &args [[buffer(0)]], device float *out [[buffer(1)]], device const float *query [[buffer(2)]], device const ushort *cache [[buffer(3)]], device const int *selected [[buffer(4)]], - uint head [[threadgroup_position_in_grid]], - uint tid [[thread_position_in_threadgroup]], + uint2 group [[threadgroup_position_in_grid]], + uint tid [[thread_index_in_threadgroup]], uint lane [[thread_index_in_simdgroup]]) { + const uint head = group.x; + const uint row = group.y; const uint heads = args.u[0]; const uint kv_heads = args.u[1]; const uint dim = args.u[2]; @@ -3071,7 +3530,14 @@ kernel void kernel_qwen_sparse_attention( threadgroup float sum_exp_scores[simdgroups]; threadgroup float outputs[simdgroups * 256u]; const float attention_scale = precise::rsqrt((float)dim); - q[tid] = query[(ulong)head * dim + tid] * attention_scale; + const ulong query_base = ((ulong)row * heads + head) * dim; + const ulong output_base = query_base; + selected += (ulong)row * args.u[4]; + const uint tokens = args.u[8] != 0u ? args.u[8] + row : args.u[3]; + const uint tail_start = args.u[8] != 0u + ? (tokens / args.u[5]) * args.u[5] + : args.u[6]; + q[tid] = query[query_base + tid] * attention_scale; threadgroup_barrier(mem_flags::mem_threadgroup); float result[values_per_lane] = {0.0f}; @@ -3101,8 +3567,8 @@ kernel void kernel_qwen_sparse_attention( max_score = new_max; } } - for (uint token = args.u[6] + simd_group; - token < args.u[3]; + for (uint token = tail_start + simd_group; + token < tokens; token += simdgroups) { const ulong base = (ulong)token * kv_heads * dim * 2u + (ulong)kv_head * dim + column; @@ -3142,7 +3608,7 @@ kernel void kernel_qwen_sparse_attention( merged_sum += sum_exp_scores[group] * weight; merged_value += outputs[group * dim + tid] * weight; } - out[(ulong)head * dim + tid] = qwen_round_bf16(merged_value / merged_sum); + out[output_base + tid] = qwen_round_bf16(merged_value / merged_sum); } kernel void kernel_qwen_dense_attention_masked( @@ -3393,6 +3859,52 @@ kernel void kernel_qwen_attention_fallback_softmax( } } +kernel void kernel_qwen_attention_fallback_softmax_wide( + constant qwen_kernel_args &args [[buffer(0)]], + device ushort *out [[buffer(1)]], + device const ushort *input [[buffer(2)]], + uint group [[threadgroup_position_in_grid]], + uint lid [[thread_position_in_threadgroup]], + uint lane [[thread_index_in_simdgroup]], + uint simd_group [[simdgroup_index_in_threadgroup]]) { + threadgroup float local_max[32]; + threadgroup float local_normalizer[32]; + const uint tokens = args.u[3]; + const uint threads = args.u[12]; + const ulong base = (ulong)group * tokens; + float maximum = -FLT_MAX; + for (uint token = lid; token < tokens; token += threads) { + maximum = max(maximum, qwen_bf16(input[base + token])); + } + maximum = simd_max(maximum); + if (lane == 0u) local_max[simd_group] = maximum; + threadgroup_barrier(mem_flags::mem_threadgroup); + if (simd_group == 0u) { + maximum = simd_max(local_max[lane]); + if (lane == 0u) local_max[0] = maximum; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + maximum = local_max[0]; + + float normalizer = 0.0f; + for (uint token = lid; token < tokens; token += threads) { + normalizer += fast::exp(qwen_bf16(input[base + token]) - maximum); + } + normalizer = simd_sum(normalizer); + if (lane == 0u) local_normalizer[simd_group] = normalizer; + threadgroup_barrier(mem_flags::mem_threadgroup); + if (simd_group == 0u) { + normalizer = simd_sum(local_normalizer[lane]); + if (lane == 0u) local_normalizer[0] = normalizer; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + normalizer = 1.0f / local_normalizer[0]; + for (uint token = lid; token < tokens; token += threads) { + out[base + token] = qwen_to_bf16( + fast::exp(qwen_bf16(input[base + token]) - maximum) * normalizer); + } +} + kernel void kernel_qwen_attention_fallback_output( constant qwen_kernel_args &args [[buffer(0)]], device float *out [[buffer(1)]], @@ -3449,6 +3961,24 @@ kernel void kernel_qwen_prepare_dense_kv( values[target] = cache[source + width]; } +kernel void kernel_qwen_prepare_dense_kv_f16( + constant qwen_kernel_args &args [[buffer(0)]], + device half *keys [[buffer(1)]], + device const ushort *cache [[buffer(2)]], + device half *values [[buffer(3)]], + uint2 gid [[thread_position_in_grid]]) { + const uint width = args.u[0]; + const uint dim = args.u[1]; + const uint tokens = args.u[3]; + if (gid.x >= width || gid.y >= tokens) return; + const uint head = gid.x / dim; + const uint column = gid.x % dim; + const ulong source = (ulong)gid.y * width * 2u + gid.x; + const ulong target = ((ulong)head * tokens + gid.y) * dim + column; + keys[target] = (half)qwen_bf16(cache[source]); + values[target] = (half)qwen_bf16(cache[source + width]); +} + kernel void kernel_qwen_float_to_bf16( constant qwen_kernel_args &args [[buffer(0)]], device ushort *out [[buffer(1)]], diff --git a/native/metal/ds4_gpu.h b/native/metal/ds4_gpu.h index be309d1..d29834f 100644 --- a/native/metal/ds4_gpu.h +++ b/native/metal/ds4_gpu.h @@ -47,10 +47,36 @@ int ds4_gpu_metal4_tensor_api_enabled(void); ds4_gpu_tensor *ds4_gpu_tensor_alloc(uint64_t bytes); ds4_gpu_tensor *ds4_gpu_tensor_alloc_untracked(uint64_t bytes); +void *ds4_gpu_mtplx_heap_create(uint64_t bytes); +void ds4_gpu_mtplx_heap_free(void *heap); +ds4_gpu_tensor *ds4_gpu_mtplx_tensor_alloc(uint64_t bytes, void *heap); +ds4_gpu_tensor *ds4_gpu_mtplx_tensor_empty(void); +int ds4_gpu_tensor_has_heap(const ds4_gpu_tensor *tensor); +int ds4_gpu_mtplx_residency_supported(void); +void *ds4_gpu_mtplx_residency_create(void); +void ds4_gpu_mtplx_residency_free(void *set); +void ds4_gpu_mtplx_residency_allocation(void *set, void *allocation, int add); +void ds4_gpu_mtplx_residency_commit(void *set); +void ds4_gpu_mtplx_residency_attach(void *queue, void *const *sets, uint64_t count); +void *ds4_gpu_mtplx_command_queue(void); +void *ds4_gpu_mtplx_retain_command_queue(void); +void ds4_gpu_mtplx_queue_free(void *queue); +int ds4_gpu_mtplx_submission_hook(void *context, void (*before_commit)(void *, void *)); +void *ds4_gpu_mtplx_tensor_allocation(const ds4_gpu_tensor *tensor); +uint64_t ds4_gpu_mtplx_allocated_size(void *allocation); +uint64_t ds4_gpu_mtplx_residency_count(void *set); +int ds4_gpu_mtplx_residency_contains(void *set, void *allocation); ds4_gpu_tensor *ds4_gpu_tensor_alloc_managed(uint64_t bytes); ds4_gpu_tensor *ds4_gpu_tensor_view(const ds4_gpu_tensor *base, uint64_t offset, uint64_t bytes); void ds4_gpu_tensor_free(ds4_gpu_tensor *tensor); +/* Transfer context to a completion callback without committing or waiting. + * Releases immediately when there is no open or pending work. An empty open + * batch returns 0 without taking ownership; callers must retain the context. */ +int ds4_gpu_defer_until_completed(void *context, void (*release)(void *)); +uint64_t ds4_gpu_max_buffer_length(void); uint64_t ds4_gpu_tensor_bytes(const ds4_gpu_tensor *tensor); +/* Borrowed CPU pointer, valid while the caller owns the tensor. This does not + * retain storage beyond that ownership or synchronize pending GPU work. */ void *ds4_gpu_tensor_contents(ds4_gpu_tensor *tensor); int ds4_gpu_tensor_fill_f32(ds4_gpu_tensor *tensor, float value, uint64_t count); int ds4_gpu_tensor_write(ds4_gpu_tensor *tensor, uint64_t offset, const void *data, uint64_t bytes); @@ -80,6 +106,18 @@ int ds4_gpu_begin_commands(void); int ds4_gpu_flush_encoder(void); int ds4_gpu_flush_commands(void); int ds4_gpu_commands_active(void); +typedef struct { + double busy_seconds; + double max_busy_seconds; + uint64_t command_buffers; +} ds4_gpu_busy_stats; +void ds4_gpu_busy_stats_reset(void); +void ds4_gpu_busy_stats_get(ds4_gpu_busy_stats *stats); +typedef struct { + double scheduled_seconds; + double completed_seconds; +} ds4_gpu_canary_sample; +int ds4_gpu_canary_probe(ds4_gpu_canary_sample *sample); #ifdef __APPLE__ int ds4_gpu_parallel_ffn_finish(void); void ds4_gpu_parallel_ffn_abort(void); @@ -156,6 +194,66 @@ int ds4_gpu_qwen_dispatch( const ds4_gpu_qwen_kernel_args *args, uint32_t grid_x, uint32_t grid_y); +/* Ordered contiguous buffers: reference inputs first, then outputs. No dtype + * conversion, argument remapping, extra flush, or inferred thread geometry. */ +int ds4_gpu_qwen_dispatch_buffers( + const char *kernel, + const ds4_gpu_tensor *const *buffers, + uint32_t count, + const uint32_t grid[3], + const uint32_t threadgroup[3]); +/* Native Metal bindings only; Rust selects kernels, parameters and geometry. */ +typedef struct { + const ds4_gpu_tensor *tensor; + const void *bytes; + uint32_t size; + uint32_t index; + uint64_t offset; +} ds4_gpu_metal_binding; +typedef struct { + uint32_t index; + uint32_t value; + uint32_t kind; /* 0: Bool, 1: I32 bit pattern. */ +} ds4_gpu_metal_constant; +/* Optional Rust allocation owner: clear *resource_owner only when transferred + * to the command completion handler. On earlier failure the caller retains it. */ +int ds4_gpu_mtplx_dispatch( + const char *kernel, + const ds4_gpu_metal_binding *bindings, uint32_t count, + const ds4_gpu_metal_constant *constants, uint32_t constant_count, + const uint32_t groups[3], const uint32_t threads[3], uint32_t individual_threads, + void **resource_owner, void (*release_owner)(void *)); +/* Same dispatch, on a Rust-owned command buffer/concurrent encoder. Null + * handles select the existing dispatch path. No implicit end/commit/wait. */ +int ds4_gpu_mtplx_encode( + const char *kernel, + const ds4_gpu_metal_binding *bindings, uint32_t count, + const ds4_gpu_metal_constant *constants, uint32_t constant_count, + const uint32_t groups[3], const uint32_t threads[3], uint32_t individual_threads, + void **resource_owner, void (*release_owner)(void *), + void *command_buffer, void *encoder, uint32_t barrier); +void *ds4_gpu_mtplx_queue_create(void); +void *ds4_gpu_mtplx_command_create(void *queue); +void *ds4_gpu_mtplx_encoder_create(void *command); +void *ds4_gpu_mtplx_fence_create(void); +void ds4_gpu_mtplx_object_free(void *object); +void ds4_gpu_mtplx_encoder_barrier(void *encoder); +void ds4_gpu_mtplx_encoder_fence(void *encoder, void *fence, int update); +void ds4_gpu_mtplx_encoder_end(void *encoder); +void ds4_gpu_mtplx_command_completed(void *command, void *context, + void (*completed)(void *, const char *)); +void ds4_gpu_mtplx_command_commit(void *command); +void ds4_gpu_mtplx_command_wait(void *command); +uint32_t ds4_gpu_mtplx_arch_suffix(void); +void ds4_gpu_mtplx_nax_platform(uint32_t out[4]); +void *ds4_gpu_mtplx_event_create(void); +void ds4_gpu_mtplx_command_event(void *command, void *event, uint64_t value, int signal); +void ds4_gpu_mtplx_event_signal(void *event, uint64_t value); +void ds4_gpu_mtplx_event_wait(void *event, uint64_t value); +uint64_t ds4_gpu_mtplx_event_value(void *event); +/* With source == NULL, only query the existing pipeline cache. */ +int ds4_gpu_mtplx_compile(const char *kernel, const char *source); +uint32_t ds4_gpu_mtplx_kernel_max_threads(const char *kernel); int ds4_gpu_cache_model_range(const void *model_map, uint64_t model_size, uint64_t offset, uint64_t bytes, const char *label); int ds4_gpu_cache_q8_f16_range(const void *model_map, uint64_t model_size, uint64_t offset, uint64_t bytes, uint64_t in_dim, uint64_t out_dim, const char *label); int ds4_gpu_q8_cache_suppressed(void); @@ -229,6 +327,7 @@ static inline int ds4_gpu_device_is_m5_apple_silicon(void) { return 0; } void ds4_gpu_set_streaming_expert_cache_budget(uint32_t experts); void ds4_gpu_set_streaming_expert_cache_expert_bytes(uint64_t bytes); uint64_t ds4_gpu_recommended_working_set_size(void); +uint64_t ds4_gpu_current_allocated_size(void); uint32_t ds4_gpu_stream_expert_cache_configured_count(void); uint32_t ds4_gpu_stream_expert_cache_current_count(void); typedef struct ds4_gpu_stream_expert_cache_stats { @@ -1858,6 +1957,19 @@ int ds4_gpu_glm_attention_flash_tensor( uint32_t value_dim, bool cache_f16); +/* Qwen prefill attention over already staged head-major F16 K/V tensors. */ +int ds4_gpu_qwen_attention_flash_staged_tensor( + ds4_gpu_tensor *heads, + const ds4_gpu_tensor *q, + const ds4_gpu_tensor *key_cache, + const ds4_gpu_tensor *value_cache, + uint32_t pos0, + uint32_t n_tokens, + uint32_t cache_len, + uint32_t n_head, + uint32_t n_kv_head, + uint32_t head_dim); + /* Release decode fused KV finalizer: after the standalone RoPE kernel, this * performs DS4's FP8 non-RoPE KV round trip and writes the F16-rounded raw * attention cache row in one dispatch. */ diff --git a/native/metal/ds4_metal.m b/native/metal/ds4_metal.m index 40e325c..c8f9a9b 100644 --- a/native/metal/ds4_metal.m +++ b/native/metal/ds4_metal.m @@ -1,5 +1,6 @@ #import #import +#import #include #include @@ -51,6 +52,8 @@ static id g_device; static id g_queue; static id g_library; static id g_qwen_library; +static id g_mtplx_runtime_library; +static NSMutableDictionary> *g_mtplx_compiled_libraries; static id g_batch_cb; static id g_batch_enc; static BOOL g_batch_encoder_concurrent; @@ -970,6 +973,30 @@ static NSUInteger ds4_gpu_tensor_offset(const ds4_gpu_tensor *tensor) { } static id ds4_gpu_new_command_buffer(void); +/* Encoding-thread-only scoped Rust hook. Other queues and threads do not + * inherit it. It runs synchronously before submission, never on completion. */ +static _Thread_local void *g_mtplx_submission_context; +static _Thread_local void (*g_mtplx_before_commit)(void *, void *); + +int ds4_gpu_mtplx_submission_hook(void *context, void (*before_commit)(void *, void *)) { + if (before_commit) { + if (!context || g_mtplx_submission_context || g_batch_cb) return 0; + g_mtplx_submission_context = context; + g_mtplx_before_commit = before_commit; + } else { + if (!context || context != g_mtplx_submission_context) return 0; + g_mtplx_before_commit = NULL; + g_mtplx_submission_context = NULL; + } + return 1; +} + +static void ds4_gpu_commit_command_buffer(id cb) { + if (g_mtplx_before_commit && cb.commandQueue == g_queue) { + g_mtplx_before_commit(g_mtplx_submission_context, (__bridge void *)cb.commandQueue); + } + [cb commit]; +} static void ds4_gpu_stream_expert_cache_note_owned_created(void); static id ds4_gpu_command_buffer(int *owned) { @@ -983,17 +1010,130 @@ static id ds4_gpu_command_buffer(int *owned) { return cb; } +/* Opt-in counters on existing encoder boundaries. No new command buffers, + * encoder splits or waits. Ownership follows each CB, including async flushes. */ +enum { DS4_STAGE_PROFILE_CAP = 512 }; +typedef struct { + char first[96], last[96]; + uint32_t qwen_dispatches; +} DS4MetalStageLabel; + +@interface DS4MetalStageProfile : NSObject { +@public + id samples; + NSUInteger count; + NSUInteger dropped; + uint64_t sequence; + uint32_t qwen_rows; + MTLTimestamp cpu_start, gpu_start; + DS4MetalStageLabel labels[DS4_STAGE_PROFILE_CAP]; +} +@end +@implementation DS4MetalStageProfile +@end + +static char g_stage_profile_key; +static int ds4_gpu_stage_profile_enabled(void) { + static int enabled = -1; + if (enabled < 0) enabled = getenv("DS4_METAL_STAGE_PROFILE") != NULL; + return enabled; +} + +static id ds4_gpu_new_compute_encoder( + id cb, MTLDispatchType dispatch_type) { + if (ds4_gpu_stage_profile_enabled() && g_qwen_model_mode) { + DS4MetalStageProfile *profile = objc_getAssociatedObject(cb, &g_stage_profile_key); + if (!profile) { + static uint64_t sequence; + profile = [DS4MetalStageProfile new]; + profile->sequence = ++sequence; + if ([g_device supportsCounterSampling:MTLCounterSamplingPointAtStageBoundary]) { + for (id set in g_device.counterSets) { + if (![set.name isEqualToString:MTLCommonCounterSetTimestamp]) continue; + MTLCounterSampleBufferDescriptor *descriptor = [MTLCounterSampleBufferDescriptor new]; + descriptor.counterSet = set; + descriptor.storageMode = MTLStorageModeShared; + descriptor.sampleCount = DS4_STAGE_PROFILE_CAP * 2; + NSError *error = nil; + profile->samples = [g_device newCounterSampleBufferWithDescriptor:descriptor error:&error]; + if (!profile->samples) { + fprintf(stderr, "ds4: stage-counter allocation failed: %s\n", + error.localizedDescription.UTF8String ?: "unknown error"); + } + break; + } + } + [g_device sampleTimestamps:&profile->cpu_start gpuTimestamp:&profile->gpu_start]; + objc_setAssociatedObject(cb, &g_stage_profile_key, profile, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + } + if (profile->samples && profile->count < DS4_STAGE_PROFILE_CAP) { + MTLComputePassDescriptor *pass = [MTLComputePassDescriptor computePassDescriptor]; + pass.dispatchType = dispatch_type; + pass.sampleBufferAttachments[0].sampleBuffer = profile->samples; + pass.sampleBufferAttachments[0].startOfEncoderSampleIndex = profile->count * 2; + pass.sampleBufferAttachments[0].endOfEncoderSampleIndex = profile->count * 2 + 1; + id encoder = [cb computeCommandEncoderWithDescriptor:pass]; + if (encoder) { + profile->count++; + return encoder; + } + } + profile->dropped++; + } + return dispatch_type == MTLDispatchTypeConcurrent + ? [cb computeCommandEncoderWithDispatchType:dispatch_type] + : [cb computeCommandEncoder]; +} + +static void ds4_gpu_stage_profile_read(id cb) { + if (!ds4_gpu_stage_profile_enabled()) return; + DS4MetalStageProfile *profile = objc_getAssociatedObject(cb, &g_stage_profile_key); + if (!profile) return; + /* Only verifier-width batches in this diagnostic; the ordinary lifetime + * Canary still observes every phase. Empty/non-Qwen stages remain visible. */ + if (profile->qwen_rows == 4) { + MTLTimestamp cpu_end, gpu_end; + [g_device sampleTimestamps:&cpu_end gpuTimestamp:&gpu_end]; + /* sampleTimestamps CPU values are already nanoseconds, not raw Mach + * ticks. Calibrate exactly as Apple's counter-conversion contract. */ + const double ns_per_tick = gpu_end > profile->gpu_start && cpu_end > profile->cpu_start + ? (double)(cpu_end - profile->cpu_start) / (double)(gpu_end - profile->gpu_start) : 0.0; + NSData *data = [profile->samples resolveCounterRange:NSMakeRange(0, profile->count * 2)]; + const MTLCounterResultTimestamp *values = data.bytes; + const bool resolved = ns_per_tick > 0 && data && profile->count > 0 && + data.length == profile->count * 2 * sizeof(*values); + fprintf(stderr, "ds4: stage-counter cb=%llu rows=4 stages=%lu dropped=%lu resolved=%d ns_per_tick=%.9f cb_ms=%.6f\n", + (unsigned long long)profile->sequence, (unsigned long)profile->count, + (unsigned long)profile->dropped, resolved, ns_per_tick, + (cb.GPUEndTime - cb.GPUStartTime) * 1000.0); + if (resolved) { + for (NSUInteger i = 0; i < profile->count; i++) { + const uint64_t start = values[i * 2].timestamp; + const uint64_t end = values[i * 2 + 1].timestamp; + const bool valid = start != MTLCounterErrorValue && end != MTLCounterErrorValue && end >= start; + fprintf(stderr, "ds4: stage-counter cb=%llu stage=%lu valid=%d start=%llu end=%llu ms=%.6f qwen_dispatches=%u first=%s last=%s\n", + (unsigned long long)profile->sequence, (unsigned long)i, valid, + (unsigned long long)start, (unsigned long long)end, + valid ? (end - start) * ns_per_tick / 1e6 : -1.0, + profile->labels[i].qwen_dispatches, + profile->labels[i].first[0] ? profile->labels[i].first : "none", + profile->labels[i].last[0] ? profile->labels[i].last : "none"); + } + } + } + objc_setAssociatedObject(cb, &g_stage_profile_key, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + static id ds4_gpu_compute_encoder(id cb) { if (g_batch_cb && cb == g_batch_cb) { g_batch_has_work = YES; if (!g_batch_enc) { - g_batch_enc = g_batch_encoder_concurrent - ? [cb computeCommandEncoderWithDispatchType:MTLDispatchTypeConcurrent] - : [cb computeCommandEncoder]; + g_batch_enc = ds4_gpu_new_compute_encoder(cb, g_batch_encoder_concurrent + ? MTLDispatchTypeConcurrent : MTLDispatchTypeSerial); } return g_batch_enc; } - return [cb computeCommandEncoder]; + return ds4_gpu_new_compute_encoder(cb, MTLDispatchTypeSerial); } static void ds4_gpu_end_compute_encoder(id cb, id enc) { @@ -1009,7 +1149,100 @@ static void ds4_gpu_close_batch_encoder(void) { } static double g_gpu_busy_accum; +static double g_gpu_busy_max; static uint64_t g_gpu_busy_cbs; +static uint64_t g_gpu_busy_epoch; +static pthread_mutex_t g_gpu_busy_mutex = PTHREAD_MUTEX_INITIALIZER; + +void ds4_gpu_busy_stats_reset(void) { + pthread_mutex_lock(&g_gpu_busy_mutex); + ++g_gpu_busy_epoch; + g_gpu_busy_accum = 0.0; + g_gpu_busy_max = 0.0; + g_gpu_busy_cbs = 0; + pthread_mutex_unlock(&g_gpu_busy_mutex); +} + +void ds4_gpu_busy_stats_get(ds4_gpu_busy_stats *stats) { + if (!stats) return; + pthread_mutex_lock(&g_gpu_busy_mutex); + stats->busy_seconds = g_gpu_busy_accum; + stats->max_busy_seconds = g_gpu_busy_max; + stats->command_buffers = g_gpu_busy_cbs; + pthread_mutex_unlock(&g_gpu_busy_mutex); +} + +static uint64_t ds4_gpu_busy_stats_epoch(void) { + pthread_mutex_lock(&g_gpu_busy_mutex); + const uint64_t epoch = g_gpu_busy_epoch; + pthread_mutex_unlock(&g_gpu_busy_mutex); + return epoch; +} + +/* Observe completion without introducing a GPU wait or submission boundary. + * The epoch excludes late completions from the preceding measurement window. */ +static void ds4_gpu_busy_stats_record(id cb, uint64_t epoch) { + const double busy = cb.GPUEndTime - cb.GPUStartTime; + pthread_mutex_lock(&g_gpu_busy_mutex); + if (epoch != g_gpu_busy_epoch) { + pthread_mutex_unlock(&g_gpu_busy_mutex); + return; + } + if (busy > 0) { + g_gpu_busy_accum += busy; + if (busy > g_gpu_busy_max) g_gpu_busy_max = busy; + } + const uint64_t count = ++g_gpu_busy_cbs; + const double accumulated = g_gpu_busy_accum; + pthread_mutex_unlock(&g_gpu_busy_mutex); + if (getenv("DS4_METAL_GPU_BUSY_PROFILE") && count % 64u == 0u) { + fprintf(stderr, "ds4: gpu busy accum %.1f ms over %llu cbs\n", + accumulated * 1000.0, (unsigned long long)count); + } +} + +/* A separate queue used by the headless evaluator's supervisor process. The + * tiny blit measures whether another process can still schedule UI-sized GPU + * work while the model owns its own Metal queue. */ +static id g_canary_device; +static id g_canary_queue; +static id g_canary_buffer; + +static double ds4_monotonic_seconds(void) { + struct timespec time; + if (clock_gettime(CLOCK_MONOTONIC, &time) != 0) return 0.0; + return (double)time.tv_sec + (double)time.tv_nsec / 1000000000.0; +} + +int ds4_gpu_canary_probe(ds4_gpu_canary_sample *sample) { + if (!sample) return 0; + sample->scheduled_seconds = 0.0; + sample->completed_seconds = 0.0; + @autoreleasepool { + if (!g_canary_device) g_canary_device = MTLCreateSystemDefaultDevice(); + if (!g_canary_queue && g_canary_device) { + g_canary_queue = [g_canary_device newCommandQueue]; + } + if (!g_canary_buffer && g_canary_device) { + g_canary_buffer = [g_canary_device newBufferWithLength:4096 + options:MTLResourceStorageModeShared]; + } + if (!g_canary_queue || !g_canary_buffer) return 0; + + id cb = [g_canary_queue commandBuffer]; + id blit = [cb blitCommandEncoder]; + if (!cb || !blit) return 0; + [blit fillBuffer:g_canary_buffer range:NSMakeRange(0, 4096) value:0]; + [blit endEncoding]; + const double started = ds4_monotonic_seconds(); + ds4_gpu_commit_command_buffer(cb); + [cb waitUntilScheduled]; + sample->scheduled_seconds = ds4_monotonic_seconds() - started; + [cb waitUntilCompleted]; + sample->completed_seconds = ds4_monotonic_seconds() - started; + return cb.status == MTLCommandBufferStatusCompleted; + } +} /* A failed command buffer can leave a cross-threadgroup arrival counter at an * arbitrary partial value. Drop cached ownership instead of CPU-resetting @@ -1023,16 +1256,10 @@ static void ds4_gpu_invalidate_completion_counters(void) { } static int ds4_gpu_wait_command_buffer(id cb, const char *label) { + const uint64_t epoch = ds4_gpu_busy_stats_epoch(); [cb waitUntilCompleted]; - if (getenv("DS4_METAL_GPU_BUSY_PROFILE")) { - const double busy = cb.GPUEndTime - cb.GPUStartTime; - if (busy > 0) g_gpu_busy_accum += busy; - if ((++g_gpu_busy_cbs % 64u) == 0u) { - fprintf(stderr, "ds4: gpu busy accum %.1f ms over %llu cbs\n", - g_gpu_busy_accum * 1000.0, - (unsigned long long)g_gpu_busy_cbs); - } - } + ds4_gpu_stage_profile_read(cb); + ds4_gpu_busy_stats_record(cb, epoch); if (cb.status == MTLCommandBufferStatusError) { fprintf(stderr, "ds4: Metal %s failed: %s\n", label, [[cb.error localizedDescription] UTF8String]); @@ -1225,7 +1452,7 @@ static int ds4_gpu_wait_pending_command_buffers(const char *label) { static int ds4_gpu_finish_command_buffer(id cb, int owned, const char *label) { if (!owned) return 1; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); int ok = ds4_gpu_wait_pending_command_buffers(label); if (!ds4_gpu_wait_command_buffer(cb, label)) { ok = 0; @@ -2361,15 +2588,6 @@ static uint32_t ds4_gpu_glm_full_attention_max_cache_len(void) { return 7680u; } -static uint32_t ds4_gpu_glm_flash_attention_max_cache_len(void) { - /* - * Staged FlashAttention uses fixed-size threadgroup scratch and separate - * KV staging buffers, so it is not bound by the legacy full-attention - * kernel's one-score-per-token threadgroup-memory envelope. - */ - return 8192u; -} - static int ds4_gpu_mpp_available(void) { return g_metal4_tensor_api_enabled && !g_quality_mode; } @@ -2611,7 +2829,7 @@ static int ds4_gpu_warm_model_views(uint32_t first_view) { } ds4_gpu_end_compute_encoder(cb, enc); - [cb commit]; + ds4_gpu_commit_command_buffer(cb); [cb waitUntilCompleted]; if (cb.status == MTLCommandBufferStatusError) { @@ -4279,6 +4497,10 @@ uint64_t ds4_gpu_recommended_working_set_size(void) { return (uint64_t)[g_device recommendedMaxWorkingSetSize]; } +uint64_t ds4_gpu_current_allocated_size(void) { + return g_device ? (uint64_t)[g_device currentAllocatedSize] : 0; +} + static int ds4_gpu_model_map_log_enabled(void) { if (!g_ssd_streaming_mode) return 1; const char *trace = getenv("DS4_METAL_STREAMING_MAP_TRACE"); @@ -4445,7 +4667,20 @@ static NSString *ds4_gpu_qwen_source(void) { NSString *source = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; - if (source) return source; + if (source) { + const char *reference_path = getenv("DS4_METAL_MTPLX_QWEN_SOURCE"); + NSString *reference = reference_path && reference_path[0] + ? [NSString stringWithUTF8String:reference_path] + : @"metal/mtplx_qwen.metal"; + NSString *reference_source = [NSString stringWithContentsOfFile:reference + encoding:NSUTF8StringEncoding error:&error]; + if (!reference_source) { + fprintf(stderr, "ds4: failed to read MTPLX Metal source %s: %s\n", + reference.UTF8String, error.localizedDescription.UTF8String); + return nil; + } + return [source stringByAppendingFormat:@"\n%@", reference_source]; + } fprintf(stderr, "ds4: failed to read Metal source %s: %s\n", [path UTF8String], [[error localizedDescription] UTF8String]); return nil; @@ -8798,7 +9033,7 @@ int ds4_gpu_test_mxfp4_down_half_lut(uint16_t *legacy_bits, [enc dispatchThreadgroups:MTLSizeMake((count + 255u) / 256u, 1, 1) threadsPerThreadgroup:MTLSizeMake(256u, 1, 1)]; [enc endEncoding]; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); if (!ds4_gpu_wait_command_buffer(cb, "MXFP4 half-LUT raw-bit test")) { return 0; } @@ -8812,16 +9047,23 @@ void ds4_gpu_test_set_flags(uint32_t flags) { g_test_flags = flags; } -static ds4_gpu_tensor *ds4_gpu_tensor_alloc_with_options( +uint64_t ds4_gpu_max_buffer_length(void) { + if (!g_initialized && !ds4_gpu_init()) return 0; + return (uint64_t)[g_device maxBufferLength]; +} + +static ds4_gpu_tensor *ds4_gpu_tensor_alloc_with_heap( uint64_t bytes, - MTLResourceOptions options) { + MTLResourceOptions options, id heap) { if (!g_initialized && !ds4_gpu_init()) return NULL; if (bytes == 0 || bytes > (uint64_t)NSUIntegerMax) return NULL; @autoreleasepool { DS4MetalTensor *tensor = [DS4MetalTensor new]; - tensor.buffer = [g_device newBufferWithLength:(NSUInteger)bytes - options:options]; + tensor.buffer = heap ? [heap newBufferWithLength:(NSUInteger)bytes options:options] : nil; + if (!tensor.buffer) { + tensor.buffer = [g_device newBufferWithLength:(NSUInteger)bytes options:options]; + } if (!tensor.buffer) { return NULL; } @@ -8854,13 +9096,238 @@ static ds4_gpu_tensor *ds4_gpu_tensor_alloc_with_options( } ds4_gpu_tensor *ds4_gpu_tensor_alloc(uint64_t bytes) { - return ds4_gpu_tensor_alloc_with_options(bytes, MTLResourceStorageModeShared); + return ds4_gpu_tensor_alloc_with_heap(bytes, MTLResourceStorageModeShared, nil); } ds4_gpu_tensor *ds4_gpu_tensor_alloc_untracked(uint64_t bytes) { - return ds4_gpu_tensor_alloc_with_options( + return ds4_gpu_tensor_alloc_with_heap( bytes, - MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked); + MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked, nil); +} + +/* Canonical runtime empty Data: a descriptor, never a dummy Metal allocation. + * Use the existing non-owning descriptor ledger/free path. */ +ds4_gpu_tensor *ds4_gpu_mtplx_tensor_empty(void) { + @autoreleasepool { + DS4MetalTensor *tensor = [DS4MetalTensor new]; + pthread_mutex_lock(&g_tensor_mu); + const int tracked = ds4_gpu_tensor_track_view_locked((__bridge const void *)tensor); + pthread_mutex_unlock(&g_tensor_mu); + return tracked ? (__bridge_retained ds4_gpu_tensor *)tensor : NULL; + } +} + +void *ds4_gpu_mtplx_heap_create(uint64_t bytes) { + if (!g_initialized && !ds4_gpu_init()) return NULL; + if ([g_device.name isEqualToString:@"Apple Paravirtual device"] || + bytes == 0 || bytes > (uint64_t)NSUIntegerMax) return NULL; + @autoreleasepool { + MTLHeapDescriptor *descriptor = [MTLHeapDescriptor new]; + descriptor.resourceOptions = MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked; + descriptor.size = (NSUInteger)bytes; + id heap = [g_device newHeapWithDescriptor:descriptor]; + return (__bridge_retained void *)heap; + } +} + +void ds4_gpu_mtplx_heap_free(void *heap) { + @autoreleasepool { + id owned = (__bridge_transfer id)heap; + (void)owned; + } +} + +ds4_gpu_tensor *ds4_gpu_mtplx_tensor_alloc(uint64_t bytes, void *heap) { + return ds4_gpu_tensor_alloc_with_heap(bytes, + MTLResourceStorageModeShared | MTLResourceHazardTrackingModeUntracked, + (__bridge id)heap); +} + +int ds4_gpu_tensor_has_heap(const ds4_gpu_tensor *tensor) { + return tensor && ds4_gpu_tensor_const_obj(tensor).buffer.heap != nil; +} + +int ds4_gpu_mtplx_residency_supported(void) { + if (@available(macOS 15.0, *)) { + return g_device && [g_device supportsFamily:MTLGPUFamilyMetal3]; + } + return 0; +} + +void *ds4_gpu_mtplx_residency_create(void) { + if (@available(macOS 15.0, *)) { + @autoreleasepool { + MTLResidencySetDescriptor *descriptor = [MTLResidencySetDescriptor new]; + NSError *error = nil; + id set = [g_device newResidencySetWithDescriptor:descriptor error:&error]; + if (!set) { + fprintf(stderr, "ds4: MTPLX residency set creation failed: %s\n", + error ? error.localizedDescription.UTF8String : "no Metal device"); + return NULL; + } + [set requestResidency]; + return (__bridge_retained void *)set; + } + } + return NULL; +} + +void ds4_gpu_mtplx_residency_free(void *set) { + @autoreleasepool { + id owned = (__bridge_transfer id)set; + (void)owned; + } +} + +void ds4_gpu_mtplx_residency_allocation(void *set, void *allocation, int add) { + if (@available(macOS 15.0, *)) { + if (add) [(__bridge id)set addAllocation:(__bridge id)allocation]; + else [(__bridge id)set removeAllocation:(__bridge id)allocation]; + } +} + +void ds4_gpu_mtplx_residency_commit(void *set) { + if (@available(macOS 15.0, *)) [(__bridge id)set commit]; +} + +void ds4_gpu_mtplx_residency_attach(void *queue, void *const *sets, uint64_t count) { + if (!queue || !sets || count > 32) return; + if (@available(macOS 15.0, *)) { + __unsafe_unretained id borrowed[32]; + for (uint64_t i = 0; i < count; i++) borrowed[i] = (__bridge id)sets[i]; + [(__bridge id)queue addResidencySets:borrowed count:(NSUInteger)count]; + } +} + +void *ds4_gpu_mtplx_command_queue(void) { return (__bridge void *)g_queue; } + +void *ds4_gpu_mtplx_retain_command_queue(void) { return (__bridge_retained void *)g_queue; } + +void ds4_gpu_mtplx_queue_free(void *queue) { + @autoreleasepool { id owned = (__bridge_transfer id)queue; (void)owned; } +} + +void *ds4_gpu_mtplx_queue_create(void) { + @autoreleasepool { return (__bridge_retained void *)[g_device newCommandQueue]; } +} + +void *ds4_gpu_mtplx_command_create(void *queue) { + @autoreleasepool { + return (__bridge_retained void *)[(__bridge id)queue commandBufferWithUnretainedReferences]; + } +} + +void *ds4_gpu_mtplx_encoder_create(void *command) { + @autoreleasepool { + return (__bridge_retained void *)[(__bridge id)command computeCommandEncoderWithDispatchType:MTLDispatchTypeConcurrent]; + } +} + +void *ds4_gpu_mtplx_fence_create(void) { + @autoreleasepool { return (__bridge_retained void *)[g_device newFence]; } +} + +void ds4_gpu_mtplx_object_free(void *object) { + @autoreleasepool { id owned = (__bridge_transfer id)object; (void)owned; } +} + +void ds4_gpu_mtplx_encoder_barrier(void *encoder) { + [(__bridge id)encoder memoryBarrierWithScope:MTLBarrierScopeBuffers]; +} + +void ds4_gpu_mtplx_encoder_fence(void *encoder, void *fence, int update) { + id enc = (__bridge id)encoder; + if (update) [enc updateFence:(__bridge id)fence]; + else [enc waitForFence:(__bridge id)fence]; +} + +void ds4_gpu_mtplx_encoder_end(void *encoder) { + [(__bridge id)encoder endEncoding]; +} + +void ds4_gpu_mtplx_command_completed(void *command, void *context, + void (*completed)(void *, const char *)) { + [(__bridge id)command addCompletedHandler:^(id cb) { + const char *error = cb.status == MTLCommandBufferStatusError + ? (cb.error.localizedDescription.UTF8String ?: "unknown Metal command buffer error") : NULL; + completed(context, error); + }]; +} + +void ds4_gpu_mtplx_command_commit(void *command) { + id cb = (__bridge id)command; + const uint64_t epoch = ds4_gpu_busy_stats_epoch(); + [cb addCompletedHandler:^(id completed) { + ds4_gpu_busy_stats_record(completed, epoch); + }]; + ds4_gpu_commit_command_buffer(cb); +} + +void ds4_gpu_mtplx_command_wait(void *command) { + [(__bridge id)command waitUntilCompleted]; +} + +uint32_t ds4_gpu_mtplx_arch_suffix(void) { + NSString *name = g_device.architecture.name; + return name.length ? [name characterAtIndex:name.length - 1] : 0; +} + +void ds4_gpu_mtplx_nax_platform(uint32_t out[4]) { + NSOperatingSystemVersion v = NSProcessInfo.processInfo.operatingSystemVersion; + NSString *arch = g_device.architecture.name.lowercaseString; + out[0] = (uint32_t)v.majorVersion; + out[1] = (uint32_t)v.minorVersion; + out[2] = 0; + out[3] = arch.length ? [arch characterAtIndex:arch.length - 1] : 0; + if (arch.length >= 3) { + unichar a = [arch characterAtIndex:arch.length - 3]; + unichar b = [arch characterAtIndex:arch.length - 2]; + if (a >= '0' && a <= '9' && b >= '0' && b <= '9') + out[2] = 10 * (a - '0') + b - '0'; + } +} + +void *ds4_gpu_mtplx_event_create(void) { + @autoreleasepool { return (__bridge_retained void *)[g_device newSharedEvent]; } +} + +void ds4_gpu_mtplx_command_event(void *command, void *event, uint64_t value, int signal) { + id cb = (__bridge id)command; + if (signal) [cb encodeSignalEvent:(__bridge id)event value:value]; + else [cb encodeWaitForEvent:(__bridge id)event value:value]; +} + +void ds4_gpu_mtplx_event_signal(void *event, uint64_t value) { + [(__bridge id)event setSignaledValue:value]; +} + +void ds4_gpu_mtplx_event_wait(void *event, uint64_t value) { + [(__bridge id)event waitUntilSignaledValue:value timeoutMS:UINT64_MAX]; +} + +uint64_t ds4_gpu_mtplx_event_value(void *event) { + return [(__bridge id)event signaledValue]; +} + +void *ds4_gpu_mtplx_tensor_allocation(const ds4_gpu_tensor *tensor) { + return tensor ? (__bridge void *)ds4_gpu_tensor_const_obj(tensor).buffer : NULL; +} + +uint64_t ds4_gpu_mtplx_allocated_size(void *allocation) { + if (@available(macOS 15.0, *)) return [(__bridge id)allocation allocatedSize]; + return 0; +} + +uint64_t ds4_gpu_mtplx_residency_count(void *set) { + if (@available(macOS 15.0, *)) return [(__bridge id)set allocationCount]; + return 0; +} + +int ds4_gpu_mtplx_residency_contains(void *set, void *allocation) { + if (@available(macOS 15.0, *)) { + return [(__bridge id)set containsAllocation:(__bridge id)allocation]; + } + return 0; } ds4_gpu_tensor *ds4_gpu_tensor_alloc_managed(uint64_t bytes) { @@ -8936,10 +9403,40 @@ uint64_t ds4_gpu_tensor_bytes(const ds4_gpu_tensor *tensor) { return obj.bytes; } -void *ds4_gpu_tensor_contents(ds4_gpu_tensor *tensor) { +int ds4_gpu_defer_until_completed(void *context, void (*release)(void *)) { + if (!context || !release) return 0; + if (g_batch_cb && g_batch_has_work) { + [g_batch_cb addCompletedHandler:^(id completed) { + (void)completed; + release(context); + }]; + return 1; + } + /* Standalone dispatches finish synchronously. Do not attach handlers to + * an already committed buffer or commit an otherwise empty batch. */ + if (!g_batch_cb && [g_pending_cbs count] == 0) { + release(context); + return 1; + } + return 0; +} + +static void *ds4_gpu_tensor_cpu_data(const ds4_gpu_tensor *tensor) { if (!tensor) return NULL; - DS4MetalTensor *obj = ds4_gpu_tensor_obj(tensor); - return (uint8_t *)[obj.buffer contents] + obj.offset; + const DS4MetalTensor *obj = ds4_gpu_tensor_const_obj(tensor); + /* MTLBuffer.contents returns an interior pointer. Without precise lifetime, + * ARC inserts retainAutorelease(buffer), pinning every CPU-accessed tensor + * until a caller's pool drains (Rust worker threads have no such boundary). + * The explicitly retained tensor owns this storage throughout the caller's + * access; only the temporary bridge reference ends here. No pool or GPU wait + * is required. See Clang ARC "Interior pointers" / precise lifetime. */ + __attribute__((objc_precise_lifetime)) id buffer = obj.buffer; + if (!buffer) return NULL; + return (uint8_t *)[buffer contents] + obj.offset; +} + +void *ds4_gpu_tensor_contents(ds4_gpu_tensor *tensor) { + return ds4_gpu_tensor_cpu_data(tensor); } int ds4_gpu_tensor_fill_f32(ds4_gpu_tensor *tensor, float value, uint64_t count) { @@ -8955,7 +9452,7 @@ int ds4_gpu_tensor_write(ds4_gpu_tensor *tensor, uint64_t offset, const void *da DS4MetalTensor *obj = ds4_gpu_tensor_obj(tensor); if (offset > obj.bytes || bytes > obj.bytes - offset) return 0; if (bytes != 0) { - memcpy((uint8_t *)[obj.buffer contents] + obj.offset + offset, data, (size_t)bytes); + memcpy((uint8_t *)ds4_gpu_tensor_cpu_data(tensor) + offset, data, (size_t)bytes); } return 1; } @@ -8965,7 +9462,7 @@ int ds4_gpu_tensor_read(const ds4_gpu_tensor *tensor, uint64_t offset, void *dat const DS4MetalTensor *obj = ds4_gpu_tensor_const_obj(tensor); if (offset > obj.bytes || bytes > obj.bytes - offset) return 0; if (bytes != 0) { - memcpy(data, (const uint8_t *)[obj.buffer contents] + obj.offset + offset, (size_t)bytes); + memcpy(data, (const uint8_t *)ds4_gpu_tensor_cpu_data(tensor) + offset, (size_t)bytes); } return 1; } @@ -9135,7 +9632,7 @@ int ds4_gpu_flush_commands(void) { id cb = g_batch_cb; g_batch_cb = nil; g_batch_has_work = NO; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); [g_pending_cbs addObject:cb]; ds4_gpu_stream_expert_cache_note_batch_committed(); @@ -9509,7 +10006,7 @@ int ds4_gpu_commit_and_wait_selected_readback(uint64_t event_value, const char * id cb = g_batch_cb; g_batch_cb = nil; g_batch_has_work = NO; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); ds4_gpu_stream_expert_cache_note_batch_committed(); const char *what = label ? label : "selected-id overlap"; @@ -9738,7 +10235,7 @@ static void *ds4_gpu_tp_keepalive_thread(void *arg) { [enc dispatchThreadgroups:MTLSizeMake((NSUInteger)ka_tgs, 1, 1) threadsPerThreadgroup:MTLSizeMake(256, 1, 1)]; [enc endEncoding]; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); [cb waitUntilCompleted]; } } @@ -10159,7 +10656,7 @@ static int ds4_gpu_signal_batch_and_wait_event(const char *label) { const uint64_t value = ++g_selected_readback_event_value; [cb encodeSignalEvent:g_selected_readback_event value:value]; g_batch_has_work = YES; - [cb commit]; + ds4_gpu_commit_command_buffer(cb); ds4_gpu_stream_expert_cache_note_batch_committed(); const BOOL signaled = [g_selected_readback_event waitUntilSignaledValue:value timeoutMS:60000]; @@ -10284,7 +10781,7 @@ void ds4_gpu_cleanup(void) { ds4_gpu_parallel_ffn_reset_state(YES); if (g_batch_cb) { ds4_gpu_close_batch_encoder(); - [g_batch_cb commit]; + ds4_gpu_commit_command_buffer(g_batch_cb); [g_batch_cb waitUntilCompleted]; g_batch_cb = nil; if (g_stream_expert_cache_batch_seq > g_stream_expert_cache_done_seq) { @@ -10609,6 +11106,8 @@ void ds4_gpu_cleanup(void) { g_transient_buffers = nil; g_pending_cbs = nil; g_qwen_library = nil; + g_mtplx_runtime_library = nil; + g_mtplx_compiled_libraries = nil; g_library = nil; g_queue = nil; g_device = nil; @@ -11819,6 +12318,265 @@ static id ds4_gpu_wrap_model_exact_range_owned( DS4_GPU_EXACT_VIEW_OWNED); } +static void ds4_gpu_qwen_note_dispatch(id cb, + const char *kernel, uint32_t rows) { + if (!ds4_gpu_stage_profile_enabled()) return; + DS4MetalStageProfile *profile = objc_getAssociatedObject(cb, &g_stage_profile_key); + if (profile && rows) profile->qwen_rows = rows; + if (profile && profile->count && !profile->dropped) { + DS4MetalStageLabel *label = &profile->labels[profile->count - 1]; + if (!label->qwen_dispatches) snprintf(label->first, sizeof(label->first), "%s", kernel); + snprintf(label->last, sizeof(label->last), "%s", kernel); + label->qwen_dispatches++; + } +} + +int ds4_gpu_mtplx_compile(const char *kernel, const char *source) { + @autoreleasepool { + if (!g_device || !g_pipeline_cache || !kernel || !kernel[0]) return 0; + NSString *name = [NSString stringWithUTF8String:kernel]; + if (!name) return 0; + NSString *key = [@"mtplx.runtime:" stringByAppendingString:name]; + if ([g_pipeline_cache objectForKey:key] || [g_mtplx_compiled_libraries objectForKey:name]) return 1; + if (!source) return 0; + NSString *code = [NSString stringWithUTF8String:source]; + if (!code) return 0; + MTLCompileOptions *options = [MTLCompileOptions new]; + // MTPLX runtime 0.32.2 CustomKernel defaults: safe math, newest supported + // language from its device.cpp. Keep independent of the old Qwen flags. + if (@available(macOS 15.0, *)) options.mathMode = MTLMathModeSafe; + else { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + options.fastMathEnabled = NO; +#pragma clang diagnostic pop + } + if (@available(macOS 27.0, *)) options.languageVersion = (MTLLanguageVersion)((4 << 16) + 1); + else if (@available(macOS 26.0, *)) options.languageVersion = MTLLanguageVersion4_0; + else if (@available(macOS 15.0, *)) options.languageVersion = MTLLanguageVersion3_2; + else options.languageVersion = MTLLanguageVersion3_1; + NSError *error = nil; + id library = [g_device newLibraryWithSource:code options:options error:&error]; + if (!library || ![library.functionNames containsObject:name]) { + fprintf(stderr, "ds4: MTPLX custom library %s failed: %s\n", kernel, + error ? [[error localizedDescription] UTF8String] : "missing function"); + return 0; + } + // A Compiled library owns all contiguous/strided specializations. + // Keep it once and create each pipeline lazily, as Device::get_library + // and Device::get_kernel do in the pinned runtime. + if (!g_mtplx_compiled_libraries) g_mtplx_compiled_libraries = [NSMutableDictionary dictionary]; + for (NSString *entry in library.functionNames) { + [g_mtplx_compiled_libraries setObject:library forKey:entry]; + } + return 1; + } +} + +int ds4_gpu_mtplx_dispatch( + const char *kernel, + const ds4_gpu_metal_binding *bindings, uint32_t count, + const ds4_gpu_metal_constant *constants, uint32_t constant_count, + const uint32_t groups[3], const uint32_t threads[3], uint32_t individual_threads, + void **resource_owner, void (*release_owner)(void *)) { + return ds4_gpu_mtplx_encode(kernel, bindings, count, constants, constant_count, + groups, threads, individual_threads, resource_owner, release_owner, NULL, NULL, 0); +} + +static id ds4_gpu_mtplx_pipeline( + const char *kernel, const ds4_gpu_metal_constant *constants, uint32_t constant_count) { + if (!g_device || !g_pipeline_cache || !kernel || !kernel[0] || + (constant_count && !constants) || constant_count > 64) return nil; + NSMutableString *key = [NSMutableString stringWithFormat:@"mtplx.runtime:%s", kernel]; + for (uint32_t i = 0; i < constant_count; i++) { + if (constants[i].index > 65535 || constants[i].kind > 1 || + (constants[i].kind == 0 && constants[i].value > 1)) return nil; + for (uint32_t j = 0; j < i; j++) { + if (constants[j].index == constants[i].index) return nil; + } + [key appendFormat:@":%u:%u=%u", constants[i].index, constants[i].kind, constants[i].value]; + } + id pipeline = [g_pipeline_cache objectForKey:key]; + if (pipeline) return pipeline; + NSError *error = nil; + const int custom = strncmp(kernel, "kernel_qwen_mtplx_", strlen("kernel_qwen_mtplx_")) == 0; + if (!custom && !g_mtplx_runtime_library) { + const char *path = getenv("DS4_METAL_MTPLX_RUNTIME"); + if (!path || !path[0]) return nil; + NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:path]]; + g_mtplx_runtime_library = [g_device newLibraryWithURL:url error:&error]; + if (!g_mtplx_runtime_library) { + fprintf(stderr, "ds4: MTPLX runtime shaders failed to load: %s\n", + [[error localizedDescription] UTF8String]); + return nil; + } + } + NSString *name = [NSString stringWithUTF8String:kernel]; + if (!name) return nil; + id library = [g_mtplx_compiled_libraries objectForKey:name]; + if (!library) library = custom ? g_qwen_library : g_mtplx_runtime_library; + if (!library) return nil; + MTLFunctionConstantValues *values = nil; + if (constant_count) { + values = [MTLFunctionConstantValues new]; + for (uint32_t i = 0; i < constant_count; i++) { + if (constants[i].kind == 0) { + bool value = constants[i].value != 0; + [values setConstantValue:&value type:MTLDataTypeBool atIndex:constants[i].index]; + } else { + int32_t value; + memcpy(&value, &constants[i].value, sizeof(value)); + [values setConstantValue:&value type:MTLDataTypeInt atIndex:constants[i].index]; + } + } + } + id fn = constant_count + ? [library newFunctionWithName:name constantValues:values error:&error] + : [library newFunctionWithName:name]; + if (!fn) { + fprintf(stderr, "ds4: MTPLX runtime function %s missing or invalid: %s\n", + kernel, [[error localizedDescription] UTF8String]); + return nil; + } + pipeline = [g_device newComputePipelineStateWithFunction:fn error:&error]; + if (!pipeline) { + fprintf(stderr, "ds4: MTPLX runtime pipeline %s failed: %s\n", + kernel, [[error localizedDescription] UTF8String]); + return nil; + } + [g_pipeline_cache setObject:pipeline forKey:key]; + return pipeline; +} + +uint32_t ds4_gpu_mtplx_kernel_max_threads(const char *kernel) { + @autoreleasepool { + id pipeline = ds4_gpu_mtplx_pipeline(kernel, NULL, 0); + return pipeline ? (uint32_t)pipeline.maxTotalThreadsPerThreadgroup : 0; + } +} + +int ds4_gpu_mtplx_encode( + const char *kernel, + const ds4_gpu_metal_binding *bindings, uint32_t count, + const ds4_gpu_metal_constant *constants, uint32_t constant_count, + const uint32_t groups[3], const uint32_t threads[3], uint32_t individual_threads, + void **resource_owner, void (*release_owner)(void *), + void *command_buffer, void *encoder, uint32_t barrier) { + @autoreleasepool { + if ((command_buffer == NULL) != (encoder == NULL) || barrier > 1 || + (barrier && !encoder)) return 0; + if ((resource_owner == NULL) != (release_owner == NULL) || + (resource_owner && !*resource_owner)) return 0; + if (!g_device || !kernel || !bindings || !count || count > 31 || + (constant_count && !constants) || constant_count > 64 || !groups || !threads || individual_threads > 1) return 0; + uint64_t thread_count = 1; + for (uint32_t axis = 0; axis < 3; axis++) { + /* Reference dispatch permits an empty grid (e.g. input_coherent). */ + if (!threads[axis] || threads[axis] > 1024) return 0; + thread_count *= threads[axis]; + } + uint32_t used = 0; + for (uint32_t i = 0; i < count; i++) { + const ds4_gpu_metal_binding *binding = &bindings[i]; + if (binding->index >= 31 || (used & (1u << binding->index))) return 0; + used |= 1u << binding->index; + if (binding->tensor) { + const DS4MetalTensor *tensor = ds4_gpu_tensor_const_obj(binding->tensor); + if (binding->bytes || binding->size || + binding->offset > tensor.bytes || + tensor.offset > UINT64_MAX - binding->offset || + tensor.offset + binding->offset > (uint64_t)NSUIntegerMax || + (tensor.buffer && tensor.offset + binding->offset > tensor.buffer.length) || + (!tensor.buffer && (tensor.bytes || tensor.offset || binding->offset))) return 0; + /* The reference binds empty shape/stride vectors with length zero + * (e.g. rank-one GatherAxis). Preserve that call, not dummy data. */ + } else if ((!binding->bytes && binding->size) || binding->size > 4096 || binding->offset) return 0; + } + id pipeline = ds4_gpu_mtplx_pipeline(kernel, constants, constant_count); + if (!pipeline || thread_count > pipeline.maxTotalThreadsPerThreadgroup) return 0; + int owned = 0; + id cb = command_buffer + ? (__bridge id)command_buffer : ds4_gpu_command_buffer(&owned); + if (!cb) return 0; + id enc = encoder + ? (__bridge id)encoder : ds4_gpu_compute_encoder(cb); + if (!enc) return 0; + [enc setComputePipelineState:pipeline]; + NSMutableSet> *resources = resource_owner ? nil : [NSMutableSet new]; + for (uint32_t i = 0; i < count; i++) { + const ds4_gpu_metal_binding *binding = &bindings[i]; + if (binding->tensor) { + const DS4MetalTensor *tensor = ds4_gpu_tensor_const_obj(binding->tensor); + if (tensor.buffer) [resources addObject:tensor.buffer]; + [enc setBuffer:tensor.buffer offset:(NSUInteger)(tensor.offset + binding->offset) atIndex:binding->index]; + } else { + [enc setBytes:binding->bytes length:binding->size atIndex:binding->index]; + } + } + /* Like the reference GPU evaluator, keep bound storage alive independently + * of array/graph descriptors. This is required for unretained command + * buffers and for caller temporaries that disappear before batch commit. + * Clear the capture on completion even if the CB itself stays cached. */ + __block NSSet> *retained_resources = resources; + void *owner = resource_owner ? *resource_owner : NULL; + [cb addCompletedHandler:^(id completed) { + (void)completed; + if (retained_resources) retained_resources = nil; + if (release_owner) release_owner(owner); + }]; + if (resource_owner) *resource_owner = NULL; + ds4_gpu_qwen_note_dispatch(cb, kernel, 0); + if (barrier) [enc memoryBarrierWithScope:MTLBarrierScopeBuffers]; + if (individual_threads) { + [enc dispatchThreads:MTLSizeMake(groups[0], groups[1], groups[2]) + threadsPerThreadgroup:MTLSizeMake(threads[0], threads[1], threads[2])]; + } else { + [enc dispatchThreadgroups:MTLSizeMake(groups[0], groups[1], groups[2]) + threadsPerThreadgroup:MTLSizeMake(threads[0], threads[1], threads[2])]; + } + if (!encoder) ds4_gpu_end_compute_encoder(cb, enc); + return owned ? ds4_gpu_finish_command_buffer(cb, 1, kernel) : 1; + } +} + +int ds4_gpu_qwen_dispatch_buffers( + const char *kernel, + const ds4_gpu_tensor *const *buffers, + uint32_t count, + const uint32_t grid[3], + const uint32_t threadgroup[3]) { + if (!kernel || !buffers || !count || count > 31 || !grid || !threadgroup) return 0; + uint64_t threads = 1; + for (uint32_t axis = 0; axis < 3; axis++) { + if (!grid[axis] || !threadgroup[axis] || threadgroup[axis] > 1024) return 0; + threads *= threadgroup[axis]; + } + for (uint32_t i = 0; i < count; i++) { + if (!buffers[i]) return 0; + const DS4MetalTensor *tensor = ds4_gpu_tensor_const_obj(buffers[i]); + if (!tensor.buffer || tensor.offset % 4 != 0 || !tensor.bytes) return 0; + } + id pipeline = ds4_gpu_get_pipeline(kernel); + if (!pipeline || threads > pipeline.maxTotalThreadsPerThreadgroup) return 0; + int owned = 0; + id cb = ds4_gpu_command_buffer(&owned); + if (!cb) return 0; + id enc = ds4_gpu_compute_encoder(cb); + if (!enc) return 0; + [enc setComputePipelineState:pipeline]; + for (uint32_t i = 0; i < count; i++) { + const DS4MetalTensor *tensor = ds4_gpu_tensor_const_obj(buffers[i]); + [enc setBuffer:tensor.buffer offset:(NSUInteger)tensor.offset atIndex:i]; + } + ds4_gpu_qwen_note_dispatch(cb, kernel, 0); + [enc dispatchThreads:MTLSizeMake(grid[0], grid[1], grid[2]) + threadsPerThreadgroup:MTLSizeMake(MIN(grid[0], threadgroup[0]), + MIN(grid[1], threadgroup[1]), + MIN(grid[2], threadgroup[2]))]; + ds4_gpu_end_compute_encoder(cb, enc); + return owned ? ds4_gpu_finish_command_buffer(cb, 1, kernel) : 1; +} + int ds4_gpu_qwen_dispatch( const char *kernel, ds4_gpu_tensor *out, @@ -11845,6 +12603,8 @@ int ds4_gpu_qwen_dispatch( if (!enc) return 0; [enc setComputePipelineState:pipeline]; ds4_gpu_qwen_kernel_args bound_args = *args; + ds4_gpu_qwen_note_dispatch(cb, kernel, + strcmp(kernel, "kernel_qwen_affine_embedding_batch") == 0 ? args->u[4] : 0); const DS4MetalTensor *tensors[4] = { ds4_gpu_tensor_const_obj(out), @@ -11887,7 +12647,7 @@ int ds4_gpu_qwen_dispatch( } if (!weight) { ds4_gpu_end_compute_encoder(cb, enc); - if (owned) [cb commit]; + if (owned) ds4_gpu_commit_command_buffer(cb); return 0; } /* Metal resource offsets are four-byte aligned. Preserve an arbitrary @@ -11911,7 +12671,7 @@ int ds4_gpu_qwen_dispatch( if (requested_threads != 0) { if (requested_threads > max_threads || requested_threads % width != 0) { ds4_gpu_end_compute_encoder(cb, enc); - if (owned) [cb commit]; + if (owned) ds4_gpu_commit_command_buffer(cb); return 0; } [enc dispatchThreadgroups:MTLSizeMake(grid_x, grid_y, 1) @@ -33660,17 +34420,19 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( uint32_t cache_len, uint32_t cache_cap, uint32_t n_head, + uint32_t n_kv_head, uint32_t qk_dim, uint32_t value_dim, bool cache_f16, - int kv_pre_staged) { + int kv_layout) { if (!g_initialized && !ds4_gpu_init()) return 0; if (!heads || !q || !key_cache || !value_cache || n_tokens == 0 || cache_len == 0 || cache_cap == 0 || - n_head == 0 || qk_dim != 256u || value_dim != 256u || - cache_len > cache_cap || + n_head == 0 || n_kv_head == 0 || n_head % n_kv_head != 0 || + qk_dim != 256u || value_dim != 256u || + cache_len > cache_cap || cache_len > INT32_MAX || pos0 > cache_len || n_tokens > cache_len - pos0 || - cache_len > ds4_gpu_glm_flash_attention_max_cache_len()) { + n_tokens > INT32_MAX) { return 0; } @@ -33682,8 +34444,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( const uint64_t heads_bytes = (uint64_t)n_tokens * n_head * value_dim * sizeof(float); const uint64_t q_bytes = (uint64_t)n_tokens * n_head * qk_dim * sizeof(float); const uint64_t cache_elem_bytes = cache_f16 ? sizeof(uint16_t) : sizeof(float); - const uint64_t key_bytes = (uint64_t)cache_cap * n_head * qk_dim * cache_elem_bytes; - const uint64_t value_bytes = (uint64_t)cache_cap * n_head * value_dim * cache_elem_bytes; + const uint64_t key_bytes = (uint64_t)cache_cap * n_kv_head * qk_dim * cache_elem_bytes; + const uint64_t value_bytes = (uint64_t)cache_cap * n_kv_head * value_dim * cache_elem_bytes; if (!headsbuf || !qbuf || !keybuf || !valbuf || ds4_gpu_tensor_bytes(heads) < heads_bytes || ds4_gpu_tensor_bytes(q) < q_bytes || @@ -33692,8 +34454,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( fprintf(stderr, "ds4: Metal GLM FlashAttention received undersized buffers\n"); return 0; } - const uint64_t key_elems = (uint64_t)cache_len * n_head * qk_dim; - const uint64_t value_elems = (uint64_t)cache_len * n_head * value_dim; + const uint64_t key_elems = (uint64_t)cache_len * n_kv_head * qk_dim; + const uint64_t value_elems = (uint64_t)cache_len * n_kv_head * value_dim; if (key_elems > UINT32_MAX || value_elems > UINT32_MAX) { return 0; } @@ -33710,13 +34472,13 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( const NSUInteger mask_bytes = (NSUInteger)n_tokens * (NSUInteger)cache_len * sizeof(uint16_t); const NSUInteger key_f16_offset = 0; const NSUInteger key_f16_bytes = - (NSUInteger)cache_len * (NSUInteger)n_head * q_row_bytes_f16; + (NSUInteger)cache_len * (NSUInteger)n_kv_head * q_row_bytes_f16; const NSUInteger value_f16_offset = key_f16_bytes; const NSUInteger value_f16_bytes = - (NSUInteger)cache_len * (NSUInteger)n_head * v_row_bytes_f16; + (NSUInteger)cache_len * (NSUInteger)n_kv_head * v_row_bytes_f16; const NSUInteger kv_f16_bytes = key_f16_bytes + value_f16_bytes; const NSUInteger pad_bytes = has_kvpad - ? (NSUInteger)ncpsg * ((NSUInteger)n_head * (q_row_bytes_f16 + v_row_bytes_f16) + + ? (NSUInteger)ncpsg * ((NSUInteger)n_kv_head * (q_row_bytes_f16 + v_row_bytes_f16) + (NSUInteger)n_tokens * sizeof(uint16_t)) : 1u; const NSUInteger nblk0 = ((NSUInteger)cache_len + ncpsg - 1u) / ncpsg; @@ -33726,12 +34488,13 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( id mask_buffer = ds4_gpu_glm_prefill_mask_buffer(pos0, n_tokens, cache_len, mask_bytes); if (!mask_buffer) return 0; - if (kv_pre_staged) { + if (kv_layout == 1) { if (!g_flash_attn_kv_buffer || g_flash_attn_kv_bytes < kv_f16_bytes) { fprintf(stderr, "ds4: GLM staged FlashAttention KV scratch is missing\n"); return 0; } - } else if (!ds4_gpu_ensure_scratch_buffer(&g_flash_attn_kv_buffer, + } else if (kv_layout == 0 && + !ds4_gpu_ensure_scratch_buffer(&g_flash_attn_kv_buffer, &g_flash_attn_kv_bytes, kv_f16_bytes, "ds4_glm_flash_attn_kv_f16")) { @@ -33767,7 +34530,7 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( id cb = ds4_gpu_command_buffer(&owned); if (!cb) return 0; - if (!kv_pre_staged) { + if (kv_layout == 0) { const bool copied = cache_f16 ? (ds4_gpu_encode_cpy_f16_f16_3d(cb, keybuf, @@ -33776,8 +34539,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( key_f16_offset, qk_dim, cache_len, - n_head, - (uint64_t)n_head * q_row_bytes_f16, + n_kv_head, + (uint64_t)n_kv_head * q_row_bytes_f16, q_row_bytes_f16, q_row_bytes_f16, (uint64_t)cache_len * q_row_bytes_f16) && @@ -33788,8 +34551,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( value_f16_offset, value_dim, cache_len, - n_head, - (uint64_t)n_head * v_row_bytes_f16, + n_kv_head, + (uint64_t)n_kv_head * v_row_bytes_f16, v_row_bytes_f16, v_row_bytes_f16, (uint64_t)cache_len * v_row_bytes_f16)) : @@ -33800,8 +34563,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( key_f16_offset, qk_dim, cache_len, - n_head, - (uint64_t)n_head * q_row_bytes, + n_kv_head, + (uint64_t)n_kv_head * q_row_bytes, q_row_bytes, q_row_bytes_f16, (uint64_t)cache_len * q_row_bytes_f16) && @@ -33812,8 +34575,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( value_f16_offset, value_dim, cache_len, - n_head, - (uint64_t)n_head * v_row_bytes, + n_kv_head, + (uint64_t)n_kv_head * v_row_bytes, v_row_bytes, v_row_bytes_f16, (uint64_t)cache_len * v_row_bytes_f16)); @@ -33822,17 +34585,26 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( } } + id staged_keybuf = kv_layout == 2 ? keybuf : g_flash_attn_kv_buffer; + id staged_valuebuf = kv_layout == 2 ? valbuf : g_flash_attn_kv_buffer; + const NSUInteger staged_key_offset = kv_layout == 2 + ? ds4_gpu_tensor_offset(key_cache) + : key_f16_offset; + const NSUInteger staged_value_offset = kv_layout == 2 + ? ds4_gpu_tensor_offset(value_cache) + : value_f16_offset; + if (has_kvpad) { ds4_gpu_flash_attn_pad_args pad_args = { .ne11 = (int32_t)cache_len, - .ne_12_2 = (int32_t)n_head, + .ne_12_2 = (int32_t)n_kv_head, .ne_12_3 = 1, .nb11 = q_row_bytes_f16, .nb12 = (uint64_t)cache_len * q_row_bytes_f16, - .nb13 = (uint64_t)cache_len * (uint64_t)n_head * q_row_bytes_f16, + .nb13 = (uint64_t)cache_len * (uint64_t)n_kv_head * q_row_bytes_f16, .nb21 = v_row_bytes_f16, .nb22 = (uint64_t)cache_len * v_row_bytes_f16, - .nb23 = (uint64_t)cache_len * (uint64_t)n_head * v_row_bytes_f16, + .nb23 = (uint64_t)cache_len * (uint64_t)n_kv_head * v_row_bytes_f16, .ne31 = (int32_t)n_tokens, .ne32 = 1, .ne33 = 1, @@ -33844,11 +34616,11 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( id enc = ds4_gpu_compute_encoder(cb); [enc setComputePipelineState:pad_pipeline]; [enc setBytes:&pad_args length:sizeof(pad_args) atIndex:0]; - [enc setBuffer:g_flash_attn_kv_buffer offset:key_f16_offset atIndex:1]; - [enc setBuffer:g_flash_attn_kv_buffer offset:value_f16_offset atIndex:2]; + [enc setBuffer:staged_keybuf offset:staged_key_offset atIndex:1]; + [enc setBuffer:staged_valuebuf offset:staged_value_offset atIndex:2]; [enc setBuffer:mask_buffer offset:0 atIndex:3]; [enc setBuffer:g_flash_attn_pad_buffer offset:0 atIndex:4]; - [enc dispatchThreadgroups:MTLSizeMake(ncpsg, n_head, 1) + [enc dispatchThreadgroups:MTLSizeMake(ncpsg, n_kv_head, 1) threadsPerThreadgroup:MTLSizeMake(32, 1, 1)]; ds4_gpu_end_compute_encoder(cb, enc); } @@ -33881,16 +34653,16 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( .nb02 = q_row_bytes, .nb03 = (uint64_t)n_tokens * n_head * q_row_bytes, .ne11 = (int32_t)cache_len, - .ne_12_2 = (int32_t)n_head, + .ne_12_2 = (int32_t)n_kv_head, .ne_12_3 = 1, .ns10 = (int32_t)qk_dim, .nb11 = q_row_bytes_f16, .nb12 = (uint64_t)cache_len * q_row_bytes_f16, - .nb13 = (uint64_t)cache_len * (uint64_t)n_head * q_row_bytes_f16, + .nb13 = (uint64_t)cache_len * (uint64_t)n_kv_head * q_row_bytes_f16, .ns20 = (int32_t)value_dim, .nb21 = v_row_bytes_f16, .nb22 = (uint64_t)cache_len * v_row_bytes_f16, - .nb23 = (uint64_t)cache_len * (uint64_t)n_head * v_row_bytes_f16, + .nb23 = (uint64_t)cache_len * (uint64_t)n_kv_head * v_row_bytes_f16, .ne31 = (int32_t)n_tokens, .ne32 = 1, .ne33 = 1, @@ -33917,8 +34689,8 @@ static int ds4_gpu_glm_attention_flash_tensor_impl( [enc setComputePipelineState:attn_pipeline]; [enc setBytes:&args length:sizeof(args) atIndex:0]; [enc setBuffer:qbuf offset:ds4_gpu_tensor_offset(q) atIndex:1]; - [enc setBuffer:g_flash_attn_kv_buffer offset:key_f16_offset atIndex:2]; - [enc setBuffer:g_flash_attn_kv_buffer offset:value_f16_offset atIndex:3]; + [enc setBuffer:staged_keybuf offset:staged_key_offset atIndex:2]; + [enc setBuffer:staged_valuebuf offset:staged_value_offset atIndex:3]; [enc setBuffer:mask_buffer offset:0 atIndex:4]; [enc setBuffer:qbuf offset:ds4_gpu_tensor_offset(q) atIndex:5]; [enc setBuffer:g_flash_attn_pad_buffer offset:0 atIndex:6]; @@ -33957,6 +34729,7 @@ int ds4_gpu_glm_attention_flash_tensor( cache_len, cache_cap, n_head, + n_head, qk_dim, value_dim, cache_f16, @@ -33986,12 +34759,40 @@ int ds4_gpu_glm_attention_flash_staged_tensor( cache_len, cache_cap, n_head, + n_head, qk_dim, value_dim, cache_f16, 1); } +int ds4_gpu_qwen_attention_flash_staged_tensor( + ds4_gpu_tensor *heads, + const ds4_gpu_tensor *q, + const ds4_gpu_tensor *key_cache, + const ds4_gpu_tensor *value_cache, + uint32_t pos0, + uint32_t n_tokens, + uint32_t cache_len, + uint32_t n_head, + uint32_t n_kv_head, + uint32_t head_dim) { + return ds4_gpu_glm_attention_flash_tensor_impl(heads, + q, + key_cache, + value_cache, + pos0, + n_tokens, + cache_len, + cache_len, + n_head, + n_kv_head, + head_dim, + head_dim, + true, + 2); +} + int ds4_gpu_glm_attention_full_tensor( ds4_gpu_tensor *heads, const ds4_gpu_tensor *q, @@ -36921,7 +37722,7 @@ int ds4_gpu_glm_routed_moe_one_tensor( const int resident_owned = owned; if (owned) { resident_cb = cb; - [resident_cb commit]; + ds4_gpu_commit_command_buffer(resident_cb); cb = nil; } else { ok = ds4_gpu_flush_commands(); diff --git a/src/agent.rs b/src/agent.rs index 2898b03..94ac14a 100644 --- a/src/agent.rs +++ b/src/agent.rs @@ -3043,6 +3043,7 @@ fn run_ralph_generation( Ok(GenerationEvent::Finished(result)) => return result, Ok(GenerationEvent::Chunk { .. }) | Ok(GenerationEvent::Loading) + | Ok(GenerationEvent::Loaded { .. }) | Ok(GenerationEvent::Activity(_)) | Ok(GenerationEvent::Context { .. }) => {} Ok(GenerationEvent::Compacted(_)) | Ok(GenerationEvent::Measured(_)) => { diff --git a/src/app.rs b/src/app.rs index 89dcd92..aed98e9 100644 --- a/src/app.rs +++ b/src/app.rs @@ -6,6 +6,7 @@ mod preferences; mod projects; mod view; +pub(crate) use generation::headless_chat_system_prompt; pub(crate) use view::app_theme; use generation::ChatMessage; @@ -52,6 +53,10 @@ use std::time::{Duration, Instant}; const APP_ID: &str = "de.rfc1437.ds4server"; const METRICS_SAMPLE_INTERVAL: Duration = Duration::from_millis(200); +#[cfg(target_os = "macos")] +const RESPONSIVENESS_CANARY_INTERVAL: Duration = Duration::from_millis(100); +#[cfg(target_os = "macos")] +const RESPONSIVENESS_STALL_THRESHOLD: Duration = Duration::from_secs(2); /// Disc scans are cheap but not free; the explorer does not need 5 Hz. const CACHE_SCAN_INTERVAL: Duration = Duration::from_secs(2); const GIT_SCAN_INTERVAL: Duration = Duration::from_secs(2); @@ -144,6 +149,8 @@ pub(crate) struct App { metrics: Arc, pub(super) metrics_snapshot: MetricsSnapshot, pub(super) metrics_history: VecDeque, + #[cfg(target_os = "macos")] + pub(super) responsiveness_canary: ResponsivenessCanary, /// Disc usage of the KV cache directories, rescanned while Stats is open. pub(super) kv_cache_report: KvCacheReport, last_cache_scan: Instant, @@ -351,6 +358,23 @@ pub(super) struct MetricsPoint { pub(super) ssd_wait_ms_per_second: f32, } +#[cfg(target_os = "macos")] +#[derive(Debug, Default)] +pub(super) struct ResponsivenessCanary { + pub(super) enabled: bool, + pending: bool, + last_tick: Option, + pub(super) last_ui_lag_ms: u64, + pub(super) max_ui_lag_ms: u64, + pub(super) max_ui_phase: crate::metrics::RuntimePhase, + pub(super) last_gpu_scheduled_ms: f64, + pub(super) last_gpu_completed_ms: f64, + pub(super) max_gpu_completed_ms: f64, + pub(super) max_gpu_phase: crate::metrics::RuntimePhase, + pub(super) samples: u64, + pub(super) failures: u64, +} + #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub(crate) enum ChatExportFormat { Markdown, @@ -552,6 +576,12 @@ pub(crate) enum Message { DragSidebar(f32), EndSidebarDrag, MetricsTick, + #[cfg(target_os = "macos")] + ResponsivenessCanaryChanged(bool), + #[cfg(target_os = "macos")] + ResponsivenessCanaryTick, + #[cfg(target_os = "macos")] + ResponsivenessCanaryCompleted(crate::metrics::RuntimePhase, Result<(f64, f64), String>), DiscardCacheEntry(PathBuf), ClearTransientCache, } @@ -684,6 +714,8 @@ impl App { metrics, metrics_snapshot, metrics_history: VecDeque::with_capacity(120), + #[cfg(target_os = "macos")] + responsiveness_canary: ResponsivenessCanary::default(), kv_cache_report: KvCacheReport::default(), last_cache_scan: Instant::now() - CACHE_SCAN_INTERVAL, last_http_requests: 0, @@ -848,6 +880,8 @@ impl App { metrics, metrics_snapshot, metrics_history: VecDeque::with_capacity(120), + #[cfg(target_os = "macos")] + responsiveness_canary: ResponsivenessCanary::default(), kv_cache_report: KvCacheReport::default(), last_cache_scan: Instant::now() - CACHE_SCAN_INTERVAL, last_http_requests: 0, @@ -1309,6 +1343,63 @@ impl App { self.sync_native_menu(); } Message::MetricsTick => self.sample_metrics(), + #[cfg(target_os = "macos")] + Message::ResponsivenessCanaryChanged(enabled) => { + self.responsiveness_canary = ResponsivenessCanary { + enabled, + ..ResponsivenessCanary::default() + }; + } + #[cfg(target_os = "macos")] + Message::ResponsivenessCanaryTick => { + let now = Instant::now(); + if let Some(last_tick) = self.responsiveness_canary.last_tick { + let lag = now + .saturating_duration_since(last_tick) + .saturating_sub(RESPONSIVENESS_CANARY_INTERVAL); + let lag_ms = lag.as_millis().min(u128::from(u64::MAX)) as u64; + self.responsiveness_canary.last_ui_lag_ms = lag_ms; + if lag_ms > self.responsiveness_canary.max_ui_lag_ms { + self.responsiveness_canary.max_ui_lag_ms = lag_ms; + self.responsiveness_canary.max_ui_phase = self.metrics_snapshot.phase; + } + } + self.responsiveness_canary.last_tick = Some(now); + if self.responsiveness_canary.pending { + return Task::none(); + } + self.responsiveness_canary.pending = true; + let phase = self.metrics_snapshot.phase; + return Task::perform( + async { + crate::engine::gpu_canary_probe().map(|sample| { + ( + sample.scheduled_seconds * 1_000.0, + sample.completed_seconds * 1_000.0, + ) + }) + }, + move |result| Message::ResponsivenessCanaryCompleted(phase, result), + ); + } + #[cfg(target_os = "macos")] + Message::ResponsivenessCanaryCompleted(phase, result) => { + self.responsiveness_canary.pending = false; + if self.responsiveness_canary.enabled { + match result { + Ok((scheduled_ms, completed_ms)) => { + self.responsiveness_canary.samples += 1; + self.responsiveness_canary.last_gpu_scheduled_ms = scheduled_ms; + self.responsiveness_canary.last_gpu_completed_ms = completed_ms; + if completed_ms > self.responsiveness_canary.max_gpu_completed_ms { + self.responsiveness_canary.max_gpu_completed_ms = completed_ms; + self.responsiveness_canary.max_gpu_phase = phase; + } + } + Err(_) => self.responsiveness_canary.failures += 1, + } + } + } Message::ComposerAction(action) => self.composer.perform(action), Message::ChooseVisionImage => { if self.config.model != ModelChoice::Glm53Flash || self.generating { @@ -2189,6 +2280,13 @@ impl App { subscriptions .push(iced::time::every(METRICS_SAMPLE_INTERVAL).map(|_| Message::MetricsTick)); #[cfg(target_os = "macos")] + if self.responsiveness_canary.enabled { + subscriptions.push( + iced::time::every(RESPONSIVENESS_CANARY_INTERVAL) + .map(|_| Message::ResponsivenessCanaryTick), + ); + } + #[cfg(target_os = "macos")] subscriptions.push(iced::time::every(Duration::from_millis(50)).map(|_| { match crate::native_menu::next_event() { Some(crate::native_menu::NativeMenuEvent::Preferences) => Message::OpenPreferences, diff --git a/src/app/generation.rs b/src/app/generation.rs index cd66e0f..4bf7536 100644 --- a/src/app/generation.rs +++ b/src/app/generation.rs @@ -428,6 +428,9 @@ fn title_context(messages: impl IntoIterator) -> Vec impl App { fn agent_skills_prompt(&self) -> Option { + if self.config.plain_chat { + return None; + } let roots = self .extensions .enabled_skill_roots() @@ -439,16 +442,7 @@ impl App { } fn chat_system_prompt(&self, model: ModelChoice, prompt: &str) -> String { - let mut prompt = crate::agent::system_prompt(model, prompt, self.config.dev_brain.enabled); - if self.config.a2ui_enabled { - prompt.push_str("\n\n"); - prompt.push_str(crate::a2ui::SYSTEM_PROMPT); - } - if let Some(skills) = self.agent_skills_prompt() { - prompt.push_str("\n\n"); - prompt.push_str(&skills); - } - prompt + chat_system_prompt(&self.config, Some(&self.extensions), model, prompt) } fn workspace_instruction_messages( @@ -456,6 +450,9 @@ impl App { touched_paths: &[PathBuf], opening: bool, ) -> Vec { + if self.config.plain_chat { + return Vec::new(); + } let Some(root) = self .projects .iter() @@ -493,7 +490,7 @@ impl App { } fn dev_brain_skills_prompt(&self) -> Option { - self.config.dev_brain.enabled.then(|| { + (self.config.dev_brain.enabled && !self.config.plain_chat).then(|| { let projects = self .projects .iter() @@ -587,7 +584,7 @@ impl App { session_id: preview_session_id, prompt: prompt.clone(), }); - if self.extensions.has_hooks_for(&events) { + if !self.config.plain_chat && self.extensions.has_hooks_for(&events) { self.composer = text_editor::Content::new(); let session_id = match self.selected_session { Some(session_id) => session_id, @@ -669,7 +666,7 @@ impl App { .map(|image| (image.name.as_str(), image.marker.as_str())), ); #[cfg(target_os = "macos")] - let model_prompt = if self.config.a2ui_enabled { + let model_prompt = if self.config.a2ui_enabled && !self.config.plain_chat { format!( "{base_model_prompt}\n\nA2UI client metadata:\n{}", self.a2ui.client_metadata() @@ -680,7 +677,7 @@ impl App { #[cfg(target_os = "macos")] let mut injected_system = self.workspace_instruction_messages(&[], opening_turn); #[cfg(target_os = "macos")] - if opening_turn { + if opening_turn && !self.config.plain_chat { injected_system.extend(self.dev_brain_skills_prompt().map(SystemMessage::plain)); injected_system.push(SystemMessage::plain(crate::agent::datetime_context())); } @@ -829,7 +826,7 @@ impl App { self.activity = Some("Loading model…".into()); self.tokens_per_second = None; self.error = None; - if opening_turn { + if opening_turn && !self.config.plain_chat { // Queued behind the reply, so the answer is never delayed by it. self.request_first_title(session_id); } @@ -847,7 +844,7 @@ impl App { events: Vec, continuation: HookContinuation, ) { - if !self.extensions.has_hooks_for(&events) { + if self.config.plain_chat || !self.extensions.has_hooks_for(&events) { match continuation { HookContinuation::User { prompt, @@ -1047,10 +1044,14 @@ impl App { } fn system_prompt_reminder_due(&self) -> bool { - crate::agent::prompt_reminder_due(self.context_used, self.system_prompt_seen_at) + !self.config.plain_chat + && crate::agent::prompt_reminder_due(self.context_used, self.system_prompt_seen_at) } fn system_prompt_reminders(&self, model: ModelChoice) -> Vec { + if self.config.plain_chat { + return Vec::new(); + } let mut reminders = vec![crate::agent::system_prompt_reminder( model, self.config.dev_brain.enabled, @@ -1210,7 +1211,7 @@ impl App { #[cfg(target_os = "macos")] loop { match active.events.try_recv() { - Ok(GenerationEvent::Loading) => {} + Ok(GenerationEvent::Loading | GenerationEvent::Loaded { .. }) => {} Ok(GenerationEvent::Activity(activity)) => { if activity.starts_with("Rebuilding context:") { self.context_notice = Some(activity.to_owned()); @@ -1228,6 +1229,7 @@ impl App { { message.append(reasoning, &content); if !reasoning + && !self.config.plain_chat && self.tool_cards.is_empty() && crate::agent::has_tool_markup(&message.content) { @@ -1237,6 +1239,7 @@ impl App { transcript_changed = true; } if !reasoning + && !self.config.plain_chat && self.config.a2ui_enabled && let Some(message) = self.conversation.last_mut() { @@ -1290,6 +1293,13 @@ impl App { start_queued = !self.queued_inputs.is_empty() || self.manual_compaction_queued; } + Ok(_) if self.config.plain_chat => { + self.generating = false; + self.activity = None; + self.tool_cards.clear(); + start_queued = + !self.queued_inputs.is_empty() || self.manual_compaction_queued; + } Ok(_) => { let model = self.config.model; let protocol_recovery = if self @@ -1581,6 +1591,9 @@ impl App { #[cfg(target_os = "macos")] fn start_agent_tools(&mut self, calls: Vec) -> Result<(), String> { + if self.config.plain_chat { + return Err("Tools are disabled in plain chat.".into()); + } let session_id = self .selected_session .ok_or_else(|| "The active session is unavailable.".to_owned())?; @@ -1896,6 +1909,7 @@ impl App { .events .try_recv(); match event { + Ok(GenerationEvent::Loaded { .. }) => false, Ok(GenerationEvent::Loading) => { self.activity = Some("Loading model…".into()); false @@ -2098,6 +2112,7 @@ impl App { loop { match request.active.events.try_recv() { Ok(GenerationEvent::Loading) => self.activity = Some("Loading model…".into()), + Ok(GenerationEvent::Loaded { .. }) => {} Ok(GenerationEvent::Activity(activity)) => self.activity = Some(activity.into()), Ok(GenerationEvent::Context { used, @@ -2475,6 +2490,53 @@ impl App { } } +pub(crate) fn headless_chat_system_prompt( + config: &Config, + model: ModelChoice, + prompt: &str, +) -> Result { + let extensions = (!config.plain_chat) + .then(|| crate::extensions::ExtensionRegistry::load(&crate::app::extensions_path())) + .transpose()?; + Ok(chat_system_prompt( + config, + extensions.as_ref(), + model, + prompt, + )) +} + +fn chat_system_prompt( + config: &Config, + extensions: Option<&crate::extensions::ExtensionRegistry>, + model: ModelChoice, + prompt: &str, +) -> String { + if config.plain_chat { + return if prompt == crate::settings::DEFAULT_SYSTEM_PROMPT { + String::new() + } else { + prompt.to_owned() + }; + } + let mut prompt = crate::agent::system_prompt(model, prompt, config.dev_brain.enabled); + if config.a2ui_enabled { + prompt.push_str("\n\n"); + prompt.push_str(crate::a2ui::SYSTEM_PROMPT); + } + let roots = extensions + .and_then(|extensions| extensions.enabled_skill_roots().ok()) + .unwrap_or_default() + .into_iter() + .map(|(_, root)| root) + .collect::>(); + if let Some(skills) = crate::agent::agent_skills_prompt_with(&roots) { + prompt.push_str("\n\n"); + prompt.push_str(&skills); + } + prompt +} + fn vision_prompts(prompt: &str, image: Option<(&str, &str)>) -> (String, String) { image.map_or_else( || (prompt.to_owned(), prompt.to_owned()), @@ -2509,6 +2571,34 @@ pub(super) fn session_title(reply: &str) -> Option { #[cfg(test)] mod tests { + #[test] + fn plain_chat_uses_the_same_unmodified_prompt_in_ui_and_headless() { + let mut config = crate::config::Config { + plain_chat: true, + ..crate::config::Config::default() + }; + config.dev_brain.enabled = true; + for model in crate::model::MODEL_CHOICES { + for (input, expected) in [ + (crate::settings::DEFAULT_SYSTEM_PROMPT, ""), + ("", ""), + ( + "Answer directly.\nKeep this exact text. ", + "Answer directly.\nKeep this exact text. ", + ), + ] { + assert_eq!( + super::chat_system_prompt(&config, None, model, input), + expected + ); + assert_eq!( + super::headless_chat_system_prompt(&config, model, input).unwrap(), + expected + ); + } + } + } + use super::{ ChatMessage, TOOL_PROTOCOL_CORRECTION, TurnSummary, chat_turn, compacted_context_start, correction_already_sent, extension_context_visibility, has_chat_after_last_compaction, diff --git a/src/app/preferences.rs b/src/app/preferences.rs index 58b84e2..ec5e603 100644 --- a/src/app/preferences.rs +++ b/src/app/preferences.rs @@ -531,6 +531,7 @@ impl App { default_permission_mode: self.preference_draft.default_permission_mode, idle_timeout_minutes, a2ui_enabled: self.preference_draft.a2ui_enabled, + plain_chat: self.config.plain_chat, endpoint: EndpointConfig { port: i32::from(endpoint_port), enabled: self.preference_draft.endpoint_enabled, diff --git a/src/app/view/preferences.rs b/src/app/view/preferences.rs index 6dad994..937ae9d 100644 --- a/src/app/view/preferences.rs +++ b/src/app/view/preferences.rs @@ -75,11 +75,11 @@ impl App { text_input("Automatic", &self.preference_draft.directional_steering_ffn); let mut steering_attn = text_input("0", &self.preference_draft.directional_steering_attn); let mut dspark_confidence = text_input( - "0.8 (DeepSeek V4 Flash default)", + "0.6 (DS4 Metal default)", &self.preference_draft.dspark_confidence_threshold, ); + power = power.on_input(Message::PreferencePowerChanged); if !self.preference_draft.model.is_glm() { - power = power.on_input(Message::PreferencePowerChanged); prefill = prefill.on_input(Message::PreferencePrefillChunkChanged); } if self.preference_draft.model != ModelChoice::Glm52 { @@ -149,6 +149,9 @@ impl App { .spacing(10) .align_y(Alignment::Center), text("Enter a whole number from 1 to 1440.").size(12), + button(text("Qwen kernels · Powered by MTPLX").size(12)) + .style(button::text) + .on_press(Message::OpenLink("https://github.com/youssofal/mtplx".into())), hint( toggle(self.preference_draft.a2ui_enabled) .label("Enable interactive A2UI chat surfaces") @@ -566,7 +569,7 @@ impl App { "Reads every mapped weight page once at load, so the first reply is not interrupted by page faults from disk. Loading takes longer and memory pressure rises immediately.", ), text(if self.preference_draft.model.is_glm() { - "GLM uses full GPU power and selects prefill chunks automatically." + "GLM selects prefill chunks automatically." } else { "Blank numeric values preserve DS4's automatic engine behavior." }) @@ -627,7 +630,7 @@ impl App { dspark, preference_input_row( "DSpark confidence threshold", - "How sure the draft model must be, from 0 to 1, before its token is handed to the verifier. Lower forwards more guesses for more speed and more rejected work; blank uses the measured DeepSeek V4 Flash optimum of 0.8.", + "How sure the draft model must be, from 0 to 1, before its token is handed to the verifier. Blank follows DS4 Metal: 0.6 normally, 0.8 for exact sampling at non-zero temperature. An explicit value is kept unchanged.", dspark_confidence, ), hint( @@ -656,7 +659,7 @@ impl App { |engine| { let settings = engine.speculative; format!( - "Engine: integrated MTP {} • timing {} • DSpark {} • confidence {}{} • target-only {} • exact sampling {}", + "Engine: integrated MTP {} • timing {} • DSpark {} • base confidence {}{} • target-only {} • exact sampling {}", if settings.glm_mtp { "on" } else { "off" }, if settings.glm_mtp_timing { "on" } else { "off" }, if settings.dspark { "on" } else { "off" }, diff --git a/src/app/view/stats.rs b/src/app/view/stats.rs index 11fdfa3..23ca076 100644 --- a/src/app/view/stats.rs +++ b/src/app/view/stats.rs @@ -144,6 +144,72 @@ impl App { .into(), ); + #[cfg(target_os = "macos")] + let responsiveness = { + let canary = &self.responsiveness_canary; + let stalled = canary.max_ui_lag_ms + >= crate::app::RESPONSIVENESS_STALL_THRESHOLD.as_millis() as u64 + || canary.max_gpu_completed_ms + >= crate::app::RESPONSIVENESS_STALL_THRESHOLD.as_secs_f64() * 1_000.0; + stats_panel( + "UI RESPONSIVENESS CANARY", + column![ + row![ + column![ + text("Enable active probe").size(13), + text("Off by default · submits a tiny Metal command every 100 ms") + .size(11) + .color(muted_text()), + ] + .spacing(3), + Space::new().width(Length::Fill), + toggle(canary.enabled).on_toggle(Message::ResponsivenessCanaryChanged), + ] + .align_y(Alignment::Center), + metric_row( + "Status", + if !canary.enabled { + "Off" + } else if canary.samples == 0 && canary.failures == 0 { + "Waiting for first sample" + } else if stalled { + "Stall observed" + } else { + "Healthy" + }, + ), + metric_row( + "UI event-loop delay", + format!( + "last {} · max {} during {}", + format_milliseconds(canary.last_ui_lag_ms), + format_milliseconds(canary.max_ui_lag_ms), + canary.max_ui_phase.label(), + ), + ), + metric_row( + "GPU canary completion", + format!( + "last {:.2}ms · max {:.2}ms during {}", + canary.last_gpu_completed_ms, + canary.max_gpu_completed_ms, + canary.max_gpu_phase.label(), + ), + ), + metric_row( + "GPU canary scheduling", + format!("last {:.2}ms", canary.last_gpu_scheduled_ms), + ), + metric_row( + "Samples / failures", + format!("{} / {}", canary.samples, canary.failures), + ), + ] + .spacing(9) + .into(), + ) + }; + let throughput = stats_panel( "MODEL ACTIVITY · LAST 24 SECONDS", column![ @@ -333,6 +399,12 @@ impl App { "GENERATION", column![ metric_row("Last runtime", format_milliseconds(stats.last_runtime_ms)), + metric_row( + "Decode loop (without checkpoint)", + stats + .decode_duration_ns + .map_or_else(|| "—".to_owned(), |ns| format_milliseconds(ns / 1_000_000),), + ), metric_row( "Average runtime", format_milliseconds(stats.average_runtime_ms) @@ -600,31 +672,28 @@ impl App { .into(), ); - scrollable( - container( - column![ - heading, - headline, - current_session, - throughput, - ssd_activity, - kv_io, - requests, - disc, - row![model, runtime].spacing(10), - row![speculative, ssd].spacing(10), - row![cache, server].spacing(10), - text("Counters are published by the runtime with relaxed atomics and sampled by the UI every 200 ms.") - .size(11) - .color(muted_text()), - ] - .spacing(12), + let content = column![heading, headline, current_session]; + #[cfg(target_os = "macos")] + let content = content.push(responsiveness); + let content = content + .push(throughput) + .push(ssd_activity) + .push(kv_io) + .push(requests) + .push(disc) + .push(row![model, runtime].spacing(10)) + .push(row![speculative, ssd].spacing(10)) + .push(row![cache, server].spacing(10)) + .push( + text("Counters are published by the runtime with relaxed atomics and sampled by the UI every 200 ms.") + .size(11) + .color(muted_text()), ) - .padding(24) - .width(Length::Fill), - ) - .height(Length::Fill) - .into() + .spacing(12); + + scrollable(container(content).padding(24).width(Length::Fill)) + .height(Length::Fill) + .into() } /// Disc usage of both cache buckets. The bar splits the transient store by diff --git a/src/config.rs b/src/config.rs index 2f944dd..e3c00a4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -7,8 +7,8 @@ use std::path::Path; use crate::model::{MODEL_CHOICES, ModelChoice}; use crate::settings::{ - DEFAULT_SYSTEM_PROMPT, GenerationPreferences, ReasoningMode, RuntimePreferences, - SpeculativePreferences, SsdPreferences, + DEFAULT_SYSTEM_PROMPT, GenerationPreferences, QWEN_DEFAULT_PREFILL_CHUNK, ReasoningMode, + RuntimePreferences, SpeculativePreferences, SsdPreferences, }; #[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] @@ -43,6 +43,8 @@ pub struct Config { pub default_permission_mode: PermissionMode, pub idle_timeout_minutes: i32, pub a2ui_enabled: bool, + /// Text-only chat without agent prompts, hooks, tools or automatic follow-ups. + pub plain_chat: bool, pub dev_brain: DevBrainConfig, pub endpoint: EndpointConfig, pub system_prompt: String, @@ -61,6 +63,7 @@ impl Default for Config { default_permission_mode: PermissionMode::default(), idle_timeout_minutes: 10, a2ui_enabled: true, + plain_chat: false, dev_brain: DevBrainConfig::default(), endpoint: EndpointConfig::default(), system_prompt: DEFAULT_SYSTEM_PROMPT.into(), @@ -424,6 +427,9 @@ impl Config { pub(crate) fn runtime_for(&self, model: ModelChoice) -> RuntimePreferences { let mut runtime = self.runtime.clone(); + if model.is_qwen38() && runtime.execution.prefill_chunk.is_none() { + runtime.execution.prefill_chunk = Some(QWEN_DEFAULT_PREFILL_CHUNK); + } if let Some(profile) = self.model_profiles.get(&model) { runtime.speculative = profile.speculative.clone(); runtime.ssd = profile.ssd.clone(); @@ -616,6 +622,13 @@ mod tests { ReasoningMode::Medium ); assert_eq!(loaded.active_generation().context_tokens, 131_072); + assert_eq!( + loaded + .runtime_for(ModelChoice::Qwen38FlashNext) + .execution + .prefill_chunk, + Some(QWEN_DEFAULT_PREFILL_CHUNK) + ); assert!( loaded .runtime_for(ModelChoice::Qwen38FlashNext) @@ -678,6 +691,7 @@ mod tests { model: ModelChoice::Glm52, default_permission_mode: PermissionMode::Ai, a2ui_enabled: false, + plain_chat: true, git: GitConfig { diff_layout: GitDiffLayout::Split, diff_algorithm: GitDiffAlgorithm::Patience, @@ -711,7 +725,7 @@ mod tests { let text = fs::read_to_string(&path).unwrap(); assert_eq!( text, - "model: glm-5.2\ndefault_permission_mode: ai\na2ui_enabled: false\n\ + "model: glm-5.2\ndefault_permission_mode: ai\na2ui_enabled: false\nplain_chat: true\n\ generation_profiles:\n glm-5.2:\n none:\n context_tokens: 65536\n\ model_profiles:\n glm-5.2:\n reasoning_mode: none\n ssd:\n enabled: true\n cache: 64GB\n\ git:\n diff_layout: split\n diff_algorithm: patience\n context_lines: 5\n whitespace: ignore-end-of-line\n\ diff --git a/src/engine.rs b/src/engine.rs index acc0d8d..5b81cdf 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -90,7 +90,10 @@ pub(crate) use validation::{validate_model_artifact, validate_vision_artifact}; #[cfg(target_os = "macos")] pub(crate) use kvstore::sweep_unreachable as sweep_transient_cache; #[cfg(target_os = "macos")] -pub(crate) use metal::configure_sources as configure_metal_sources; +pub(crate) use metal::{ + configure_sources as configure_metal_sources, gpu_allocated_bytes, gpu_busy_stats, + gpu_canary_probe, reset_gpu_busy_stats, +}; const DENSE: &[u32] = &[BF16, Q8_0, Q4_K, Q4_0]; const ROUTED: &[u32] = &[Q8_0, IQ2_XXS, Q2_K, Q4_K, Q5_K, Q6_K, MXFP4]; @@ -316,7 +319,7 @@ impl From for LoadedModel { #[derive(Clone, Copy)] enum ModelRef<'a> { Gguf(&'a Model), - Qwen(&'a qwen::QwenModel), + Qwen(&'a qwen::QwenMetadata), } impl LoadedModel { @@ -415,6 +418,54 @@ impl ModelRef<'_> { } } +/// Shared text-prompt construction for scalar and whole-turn executors. A +/// checkpoint tag authenticates the supplied token frontier before appending. +fn render_text_prompt( + model: ModelRef<'_>, + cached: &[i32], + checkpoint_tag: [u8; 32], + messages: &[ChatTurn], + settings: &TurnSettings, +) -> Vec { + match messages.split_last() { + Some((latest, history)) + if latest.user + && checkpoint_tag + == conversation_tag( + &settings.system_prompt, + settings.reasoning_mode, + history, + ) => + { + let mut tokens = cached.to_vec(); + if let ModelRef::Qwen(model) = model + && history + .last() + .is_some_and(|turn| !turn.user && !turn.tool && !turn.system) + { + // Rendered history already ends in im_end + newline. A live + // decode frontier ends at im_end (MTPLX), or before it (the + // scalar executor). Complete only the missing delimiter; do + // not re-render/normalize the generated text and lose its KV. + let end = model.tokenizer.tokenize_rendered("<|im_end|>\n"); + if !tokens.ends_with(&end) { + if tokens.last() != Some(&model.tokenizer.eos()) { + tokens.push(model.tokenizer.eos()); + } + tokens.extend(model.tokenizer.tokenize_rendered("\n")); + } + } + tokens.extend(model.render_continuation( + &latest.content, + settings.reasoning_mode, + latest.skip_previous_eos, + )); + tokens + } + _ => model.render_conversation(&settings.system_prompt, messages, settings.reasoning_mode), + } +} + #[derive(Clone, Debug, Eq, PartialEq)] pub(crate) struct ModelSummary { pub(crate) model: ModelChoice, @@ -725,18 +776,21 @@ impl Generator { pub(crate) fn open(settings: &EngineSettings, metrics: Arc) -> Result { let simulated_memory = SimulatedMemory::acquire(settings.diagnostics.simulated_used_memory_bytes)?; - let model = LoadedModel::open(settings)?; - let executor = metal::Executor::open_configured( - model, - settings.context_tokens.max(1) as u32, - settings.execution.quality, - settings.execution.prefill_chunk, - settings.execution.power_percent, - settings.speculative, - settings.ssd, - settings.steering.clone(), - settings.diagnostics.expert_profile_path.as_deref(), - )?; + let executor = if settings.model.is_qwen38() { + metal::Executor::open_qwen(settings)? + } else { + metal::Executor::open_configured( + LoadedModel::open(settings)?, + settings.context_tokens.max(1) as u32, + settings.execution.quality, + settings.execution.prefill_chunk, + settings.execution.power_percent, + settings.speculative, + settings.ssd, + settings.steering.clone(), + settings.diagnostics.expert_profile_path.as_deref(), + )? + }; let generator = Self { executor, _simulated_memory: simulated_memory, @@ -799,6 +853,13 @@ impl Generator { completed.push(output.message.clone()); output.previous_checkpoint_bytes = std::fs::metadata(checkpoint).ok().map(|item| item.len()); + if matches!(self.executor, metal::Executor::QwenMtplx(_)) && !prompt_complete { + // The whole-turn owner retains only committed state. Do not stamp + // an old prefix as the partially emitted conversation or replace a + // valid file on cancellation/literal-stop. + output.checkpoint_bytes = output.previous_checkpoint_bytes.unwrap_or(0); + return Ok(output); + } self.save_checkpoint( checkpoint, if prompt_complete { @@ -1288,7 +1349,11 @@ impl Generator { progress: &mut impl FnMut(u32, u32, Option), ) -> Result { let suffix = &tokens[reused..]; - if has_vision || (reused == 0 && tokens.len() > 1) || suffix.len() >= 4 { + if matches!(self.executor, metal::Executor::QwenMtplx(_)) + || has_vision + || (reused == 0 && tokens.len() > 1) + || suffix.len() >= 4 + { let context = self.executor.context(); self.executor.prefill(suffix, |used| { progress(used, context, None); @@ -1421,6 +1486,12 @@ impl Generator { let has_vision = messages .iter() .any(|message| message.content.contains(VISION_DATA_START)); + if let metal::Executor::QwenMtplx(executor) = &mut self.executor { + if has_vision { + return Err("vision input requires GLM 5.3 Flash".into()); + } + return executor.generate(messages, settings, cancelled, &self.metrics, progress, emit); + } let (tokens, overlays) = if has_vision { self.render_multimodal_conversation( &settings.system_prompt, @@ -1428,30 +1499,13 @@ impl Generator { settings.reasoning_mode, )? } else { - let tokens = match messages.split_last() { - Some((latest, history)) - if latest.user - && self.executor.checkpoint_tag() - == conversation_tag( - &settings.system_prompt, - settings.reasoning_mode, - history, - ) => - { - let mut tokens = self.executor.tokens().to_vec(); - tokens.extend(self.executor.model().render_continuation( - &latest.content, - settings.reasoning_mode, - latest.skip_previous_eos, - )); - tokens - } - _ => self.executor.model().render_conversation( - &settings.system_prompt, - messages, - settings.reasoning_mode, - ), - }; + let tokens = render_text_prompt( + self.executor.model(), + self.executor.tokens(), + self.executor.checkpoint_tag(), + messages, + settings, + ); (tokens, Vec::new()) }; if tokens.is_empty() { @@ -1474,19 +1528,7 @@ impl Generator { } else { Rng::new(seed) }; - let mut reasoning = settings.reasoning_mode != ReasoningMode::Direct; - let mut generated = ChatTurn { - user: false, - tool: false, - system: false, - skip_previous_eos: false, - reasoning: reasoning.then(String::new), - reasoning_complete: !reasoning, - content: String::new(), - }; - let mut emitted_reasoning = 0; - let mut emitted_content = 0; - let mut pending_utf8 = Vec::new(); + let mut generated = GeneratedText::new(settings.reasoning_mode); let prompt_tokens = tokens.len(); let suffix = &tokens[reused..]; let completed = self.prefill_suffix(&tokens, reused, has_vision, cancelled, progress)?; @@ -1494,7 +1536,7 @@ impl Generator { if completed != suffix.len() { return Ok(( GenerationOutput { - message: generated, + message: generated.message, prompt_tokens: prompt_tokens as u32, cached_tokens: reused as u32, completion_tokens: 0, @@ -1507,6 +1549,8 @@ impl Generator { } progress(self.executor.position(), self.executor.context(), Some(0.0)); let generation_started = Instant::now(); + let decode_metrics = Arc::clone(&self.metrics); + let _decode_timer = decode_metrics.measure_decode(generation_started); let mut generated_tokens = 0_u32; let generation_limit = settings .max_generated_tokens @@ -1515,17 +1559,10 @@ impl Generator { as u32; while generated_tokens < generation_limit { if cancelled.load(Ordering::Relaxed) { - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - flush_generated( - &mut generated, - &mut emitted_reasoning, - &mut emitted_content, - &settings.stops, - emit, - ); + generated.finish(&settings.stops, emit); return Ok(( GenerationOutput { - message: generated, + message: generated.message, prompt_tokens: prompt_tokens as u32, cached_tokens: reused as u32, completion_tokens: generated_tokens, @@ -1567,17 +1604,10 @@ impl Generator { .model() .is_stop_token_for_reasoning(token, settings.reasoning_mode) { - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - flush_generated( - &mut generated, - &mut emitted_reasoning, - &mut emitted_content, - &settings.stops, - emit, - ); + generated.finish(&settings.stops, emit); return Ok(( GenerationOutput { - message: generated, + message: generated.message, prompt_tokens: prompt_tokens as u32, cached_tokens: reused as u32, completion_tokens: generated_tokens, @@ -1616,17 +1646,10 @@ impl Generator { .model() .is_stop_token_for_reasoning(token, settings.reasoning_mode) { - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - flush_generated( - &mut generated, - &mut emitted_reasoning, - &mut emitted_content, - &settings.stops, - emit, - ); + generated.finish(&settings.stops, emit); return Ok(( GenerationOutput { - message: generated, + message: generated.message, prompt_tokens: prompt_tokens as u32, cached_tokens: reused as u32, completion_tokens: generated_tokens, @@ -1637,81 +1660,31 @@ impl Generator { true, )); } - if self.executor.model().is_think_start_token(token) { - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - reasoning = true; - generated.reasoning.get_or_insert_default(); + let piece = if self.executor.model().is_think_start_token(token) { + Some(GeneratedToken::ThinkStart) } else if self.executor.model().is_think_end_token(token) { - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - if let Some(reasoning_text) = &mut generated.reasoning - && emit_safe_text( - reasoning_text, - &mut emitted_reasoning, - &settings.stops, - true, - true, - emit, - ) - { - return Ok(( - GenerationOutput { - message: generated, - prompt_tokens: prompt_tokens as u32, - cached_tokens: reused as u32, - completion_tokens: generated_tokens + 1, - finish_reason: "stop", - previous_checkpoint_bytes: None, - checkpoint_bytes: 0, - }, - false, - )); - } - reasoning = false; - generated.reasoning_complete = true; - emit(false, String::new()); - } else if let Some(bytes) = self.executor.model().token_bytes(token) { - append_generated_bytes( - &mut generated, - reasoning, - &mut pending_utf8, - &bytes, + Some(GeneratedToken::ThinkEnd) + } else { + self.executor + .model() + .token_bytes(token) + .map(GeneratedToken::Bytes) + }; + if let Some(piece) = piece + && generated.push(piece, &settings.stops, emit) + { + return Ok(( + GenerationOutput { + message: generated.message, + prompt_tokens: prompt_tokens as u32, + cached_tokens: reused as u32, + completion_tokens: generated_tokens + 1, + finish_reason: "stop", + previous_checkpoint_bytes: None, + checkpoint_bytes: 0, + }, false, - ); - let stopped = if reasoning { - let text = generated.reasoning.get_or_insert_default(); - emit_safe_text( - text, - &mut emitted_reasoning, - &settings.stops, - false, - true, - emit, - ) - } else { - generated.reasoning_complete = true; - emit_safe_text( - &mut generated.content, - &mut emitted_content, - &settings.stops, - false, - false, - emit, - ) - }; - if stopped { - return Ok(( - GenerationOutput { - message: generated, - prompt_tokens: prompt_tokens as u32, - cached_tokens: reused as u32, - completion_tokens: generated_tokens + 1, - finish_reason: "stop", - previous_checkpoint_bytes: None, - checkpoint_bytes: 0, - }, - false, - )); - } + )); } generated_tokens += 1; progress( @@ -1724,17 +1697,10 @@ impl Generator { ); } } - append_generated_bytes(&mut generated, reasoning, &mut pending_utf8, &[], true); - flush_generated( - &mut generated, - &mut emitted_reasoning, - &mut emitted_content, - &settings.stops, - emit, - ); + generated.finish(&settings.stops, emit); Ok(( GenerationOutput { - message: generated, + message: generated.message, prompt_tokens: prompt_tokens as u32, cached_tokens: reused as u32, completion_tokens: generated_tokens, @@ -1747,6 +1713,108 @@ impl Generator { } } +#[cfg(any(target_os = "macos", test))] +enum GeneratedToken { + ThinkStart, + ThinkEnd, + Bytes(Vec), +} + +/// Streaming text state shared by the scalar and whole-turn model drivers. +/// EOS, token accounting and cache validity remain with the generation owner. +#[cfg(any(target_os = "macos", test))] +struct GeneratedText { + message: ChatTurn, + reasoning: bool, + emitted_reasoning: usize, + emitted_content: usize, + pending_utf8: Vec, +} + +#[cfg(any(target_os = "macos", test))] +impl GeneratedText { + fn new(mode: ReasoningMode) -> Self { + let reasoning = mode != ReasoningMode::Direct; + Self { + message: ChatTurn { + user: false, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: reasoning.then(String::new), + reasoning_complete: !reasoning, + content: String::new(), + }, + reasoning, + emitted_reasoning: 0, + emitted_content: 0, + pending_utf8: Vec::new(), + } + } + + /// True means a configured text stop was consumed; do not emit later tokens. + fn push( + &mut self, + token: GeneratedToken, + stops: &[String], + emit: &mut impl FnMut(bool, String), + ) -> bool { + match token { + GeneratedToken::ThinkStart => { + self.append(&[], true); + self.reasoning = true; + self.message.reasoning.get_or_insert_default(); + } + GeneratedToken::ThinkEnd => { + self.append(&[], true); + if let Some(text) = &mut self.message.reasoning + && emit_safe_text(text, &mut self.emitted_reasoning, stops, true, true, emit) + { + return true; + } + self.reasoning = false; + self.message.reasoning_complete = true; + emit(false, String::new()); + } + GeneratedToken::Bytes(bytes) => { + self.append(&bytes, false); + let (text, emitted) = if self.reasoning { + ( + self.message.reasoning.get_or_insert_default(), + &mut self.emitted_reasoning, + ) + } else { + self.message.reasoning_complete = true; + (&mut self.message.content, &mut self.emitted_content) + }; + return emit_safe_text(text, emitted, stops, false, self.reasoning, emit); + } + } + false + } + + fn append(&mut self, bytes: &[u8], final_flush: bool) { + append_generated_bytes( + &mut self.message, + self.reasoning, + &mut self.pending_utf8, + bytes, + final_flush, + ); + } + + fn finish(&mut self, stops: &[String], emit: &mut impl FnMut(bool, String)) { + self.append(&[], true); + flush_generated( + &mut self.message, + &mut self.emitted_reasoning, + &mut self.emitted_content, + stops, + emit, + ); + } +} + #[cfg(any(target_os = "macos", test))] fn append_generated_bytes( generated: &mut ChatTurn, @@ -1789,7 +1857,7 @@ fn append_generated_bytes( } } -#[cfg(target_os = "macos")] +#[cfg(any(target_os = "macos", test))] fn flush_generated( generated: &mut ChatTurn, emitted_reasoning: &mut usize, @@ -2556,6 +2624,88 @@ mod sampling_tests { assert!(pending.is_empty()); } + #[test] + fn generated_text_preserves_thinking_utf8_and_split_stops() { + let mut generated = GeneratedText::new(ReasoningMode::Low); + let stops = ["STOP".into()]; + let mut chunks = Vec::new(); + let mut emit = |reasoning, text| chunks.push((reasoning, text)); + for bytes in [vec![0xf0, 0x9f], vec![0x98, 0x8a]] { + assert!(!generated.push(GeneratedToken::Bytes(bytes), &stops, &mut emit)); + } + assert!(!generated.push(GeneratedToken::ThinkEnd, &stops, &mut emit)); + assert!(!generated.push( + GeneratedToken::Bytes(b"answer ST".to_vec()), + &stops, + &mut emit + )); + assert!(generated.push( + GeneratedToken::Bytes(b"OP hidden".to_vec()), + &stops, + &mut emit + )); + assert_eq!(generated.message.reasoning.as_deref(), Some("😊")); + assert_eq!(generated.message.content, "answer "); + assert!(generated.message.reasoning_complete); + assert_eq!( + chunks, + [ + (true, "😊".into()), + (false, "".into()), + (false, "answer".into()), + (false, " ".into()) + ] + ); + let before = chunks.clone(); + generated.finish(&stops, &mut |reasoning, text| { + chunks.push((reasoning, text)) + }); + assert_eq!(chunks, before, "final drain must not repeat streamed text"); + } + + #[test] + fn generated_text_drains_incomplete_bytes_before_phase_changes_and_finish() { + let mut generated = GeneratedText::new(ReasoningMode::Direct); + let mut chunks = Vec::new(); + let mut emit = |reasoning, text| chunks.push((reasoning, text)); + for token in [ + GeneratedToken::Bytes(vec![b'x', 0xe2, 0x82]), + GeneratedToken::ThinkStart, + GeneratedToken::Bytes(b"thought".to_vec()), + GeneratedToken::ThinkEnd, + GeneratedToken::Bytes(vec![b'y', 0xf0, 0x9f]), + ] { + assert!(!generated.push(token, &[], &mut emit)); + } + generated.finish(&[], &mut emit); + assert_eq!(generated.message.content, "x�y�"); + assert_eq!(generated.message.reasoning.as_deref(), Some("thought")); + assert!(generated.message.reasoning_complete); + assert_eq!( + chunks, + [ + (false, "x".into()), + (true, "thought".into()), + (false, "".into()), + (false, "�y".into()), + (false, "�".into()) + ] + ); + + let mut generated = GeneratedText::new(ReasoningMode::Low); + let stops = ["�".into()]; + let mut chunks = Vec::new(); + let mut emit = |reasoning, text| chunks.push((reasoning, text)); + assert!(!generated.push(GeneratedToken::Bytes(vec![0xe2, 0x82]), &stops, &mut emit)); + assert!(generated.push(GeneratedToken::ThinkEnd, &stops, &mut emit)); + assert!( + !generated.message.reasoning_complete, + "stop precedes phase transition" + ); + assert_eq!(generated.message.reasoning.as_deref(), Some("")); + assert!(chunks.is_empty()); + } + #[test] fn checkpoint_tag_covers_the_canonical_chat_state() { let mut messages = vec![ChatTurn { diff --git a/src/engine/metal.rs b/src/engine/metal.rs index eec5623..71cadf6 100644 --- a/src/engine/metal.rs +++ b/src/engine/metal.rs @@ -4,6 +4,10 @@ mod gpu; mod hotlist; mod profile; mod qwen; +#[cfg(test)] +mod qwen_mtplx_tests; +// Whole-turn BF16 backend; never mix its state with legacy FP32 scratch. +mod qwen_mtplx; mod vision; pub(super) use vision::VisionEmbedding; @@ -42,6 +46,49 @@ const CHECKPOINT_VERSION: u32 = 2; const CHECKPOINT_IO_CHUNK: usize = 8 * 1024 * 1024; const DEFAULT_PREFILL_CHUNK: u32 = 4096; +#[derive(Clone, Copy, Debug, Default)] +pub(crate) struct GpuBusySnapshot { + pub(crate) busy_seconds: f64, + pub(crate) max_busy_seconds: f64, + pub(crate) command_buffers: u64, +} + +#[derive(Clone, Copy, Debug)] +pub(crate) struct GpuCanarySnapshot { + pub(crate) scheduled_seconds: f64, + pub(crate) completed_seconds: f64, +} + +pub(crate) fn reset_gpu_busy_stats() { + unsafe { ds4_gpu_busy_stats_reset() }; +} + +pub(crate) fn gpu_busy_stats() -> GpuBusySnapshot { + let mut stats = GpuBusyStats::default(); + unsafe { ds4_gpu_busy_stats_get(&mut stats) }; + GpuBusySnapshot { + busy_seconds: stats.busy_seconds, + max_busy_seconds: stats.max_busy_seconds, + command_buffers: stats.command_buffers, + } +} + +pub(crate) fn gpu_allocated_bytes() -> u64 { + unsafe { ds4_gpu_current_allocated_size() } +} + +pub(crate) fn gpu_canary_probe() -> Result { + let mut sample = GpuCanarySample::default(); + check( + unsafe { ds4_gpu_canary_probe(&mut sample) }, + "running Metal responsiveness canary", + )?; + Ok(GpuCanarySnapshot { + scheduled_seconds: sample.scheduled_seconds, + completed_seconds: sample.completed_seconds, + }) +} + unsafe extern "C" { fn getenv(name: *const c_char) -> *mut c_char; } @@ -52,7 +99,7 @@ fn environment_present(name: &CStr) -> bool { !unsafe { getenv(name.as_ptr()) }.is_null() } -const SOURCES: [(&str, &str); 23] = [ +const SOURCES: [(&str, &str); 25] = [ ("DS4_METAL_FLASH_ATTN_SOURCE", "flash_attn.metal"), ("DS4_METAL_DENSE_SOURCE", "dense.metal"), ("DS4_METAL_MOE_SOURCE", "moe.metal"), @@ -76,6 +123,8 @@ const SOURCES: [(&str, &str); 23] = [ ("DS4_METAL_GLM53_VISION_SOURCE", "glm53_vision.metal"), ("DS4_METAL_GLM53_KDA_SOURCE", "glm53_kda.metal"), ("DS4_METAL_QWEN38_SOURCE", "qwen38.metal"), + ("DS4_METAL_MTPLX_QWEN_SOURCE", "mtplx_qwen.metal"), + ("DS4_METAL_MTPLX_RUNTIME", "mtplx-runtime-0.32.2.metallib"), ]; // The Metal boundary uses this only to decide whether diagnostic logs get ANSI @@ -334,7 +383,6 @@ struct Dspark { capture_mask: u32, cache_start: u32, cache_len: u32, - confidence_threshold: f32, strict: bool, drafted: u64, accepted: u64, @@ -415,13 +463,6 @@ impl Dspark { capture_mask: 0, cache_start: 0, cache_len: 0, - confidence_threshold: if settings.dspark_exact_sampling - && !settings.dspark_confidence_threshold_set - { - settings.dspark_confidence_threshold.max(0.8) - } else { - settings.dspark_confidence_threshold - }, strict: settings.dspark_strict || quality, drafted: 0, accepted: 0, @@ -846,6 +887,7 @@ impl Dspark { token: i32, pos: u32, raw_cap: u32, + confidence_threshold: f32, ) -> Result, String> { if self.strict || !self.capture_complete() { return Ok(Vec::new()); @@ -951,7 +993,14 @@ impl Dspark { u64::from(self.config.block_size) * shape.hc * shape.embd * 4, "capturing DSpark stage output", )?; - self.eval_output_heads(commands, base, support, base_weights, token) + self.eval_output_heads( + commands, + base, + support, + base_weights, + token, + confidence_threshold, + ) } fn eval_stage( @@ -1456,6 +1505,7 @@ impl Dspark { support: &Gguf, base_weights: &Weights, first_token: i32, + confidence_threshold: f32, ) -> Result, String> { let shape = base.shape; let draft = self.config.block_size; @@ -1594,7 +1644,7 @@ impl Dspark { if row == 0 { self.last_confidence = Some(confidence_logit); } - if self.confidence_threshold > 0.0 && confidence_value < self.confidence_threshold { + if confidence_threshold > 0.0 && confidence_value < confidence_threshold { break; } let row_logits = &logits[row * shape.vocab as usize..(row + 1) * shape.vocab as usize]; @@ -3637,6 +3687,7 @@ impl DeepSeekExecutor { first_token, self.session.position.saturating_sub(1), self.session.raw_cap, + self.speculative.dspark_confidence_for_temperature(0.0), ); self.dspark = Some(dspark); let mut proposals = proposals?; @@ -3716,6 +3767,8 @@ impl DeepSeekExecutor { first_token, self.session.position.saturating_sub(1), self.session.raw_cap, + self.speculative + .dspark_confidence_for_temperature(temperature), ); self.dspark = Some(dspark); let mut proposals = proposals?; @@ -4377,15 +4430,22 @@ pub(super) enum Executor { DeepSeek(Box), Glm(Box), Qwen(Box), + QwenMtplx(Box), } pub(super) enum ResidentState { DeepSeek(Box), Glm(Box), Qwen(Box), + QwenMtplx(Box), } impl Executor { + pub(super) fn open_qwen(settings: &crate::settings::EngineSettings) -> Result { + qwen_mtplx::QwenExecutor::open(settings) + .map(Box::new) + .map(Self::QwenMtplx) + } #[allow(dead_code)] pub(super) fn open( model: Model, @@ -4460,6 +4520,7 @@ impl Executor { *model, context, quality, + power_percent, ssd, speculative, steering, @@ -4470,10 +4531,16 @@ impl Executor { } LoadedModel::Gguf(_) => unreachable!("Qwen never uses a GGUF model"), LoadedModel::Qwen(model) => { - { QwenExecutor::open_configured(*model, context, speculative) } - .map(Box::new) - .map(Self::Qwen) + QwenExecutor::open_configured( + *model, + context, + prefill_chunk, + power_percent, + speculative, + ) } + .map(Box::new) + .map(Self::Qwen), } } @@ -4503,8 +4570,11 @@ impl Executor { cancelled, ), Self::Glm(executor) => { - executor.eval(token)?; - Ok(vec![token]) + let _ = (temperature, top_p, min_p, top_k, rng); + executor.eval_speculative_greedy(token, max_tokens, cancelled) + } + Self::QwenMtplx(_) => { + Err("Qwen speculation belongs to its whole-turn controller".into()) } Self::Qwen(executor) => executor.eval_speculative_sampled( token, @@ -4523,14 +4593,14 @@ impl Executor { pub(super) fn take_pending_sampled_token(&mut self) -> Option { match self { Self::Qwen(executor) => executor.take_pending_sampled_token(), - Self::DeepSeek(_) | Self::Glm(_) => None, + Self::DeepSeek(_) | Self::Glm(_) | Self::QwenMtplx(_) => None, } } pub(super) fn finalize_pending_sampled_token(&mut self) -> Result<(), String> { match self { Self::Qwen(executor) => executor.finalize_pending_sampled_token(), - Self::DeepSeek(_) | Self::Glm(_) => Ok(()), + Self::DeepSeek(_) | Self::Glm(_) | Self::QwenMtplx(_) => Ok(()), } } @@ -4539,6 +4609,9 @@ impl Executor { Self::DeepSeek(executor) => executor.eval(token), Self::Glm(executor) => executor.eval(token), Self::Qwen(executor) => executor.eval(token), + Self::QwenMtplx(_) => { + Err("Qwen scalar eval must not bypass its whole-turn controller".into()) + } } } @@ -4548,7 +4621,9 @@ impl Executor { ) -> Result, String> { match self { Self::Glm(executor) => executor.encode_visions(encoded), - Self::DeepSeek(_) | Self::Qwen(_) => Err("vision input requires GLM 5.3 Flash".into()), + Self::DeepSeek(_) | Self::Qwen(_) | Self::QwenMtplx(_) => { + Err("vision input requires GLM 5.3 Flash".into()) + } } } @@ -4559,8 +4634,10 @@ impl Executor { match self { Self::Glm(executor) => executor.set_vision_overlays(overlays), Self::DeepSeek(_) if overlays.is_empty() => Ok(()), - Self::Qwen(_) if overlays.is_empty() => Ok(()), - Self::DeepSeek(_) | Self::Qwen(_) => Err("vision input requires GLM 5.3 Flash".into()), + Self::Qwen(_) | Self::QwenMtplx(_) if overlays.is_empty() => Ok(()), + Self::DeepSeek(_) | Self::Qwen(_) | Self::QwenMtplx(_) => { + Err("vision input requires GLM 5.3 Flash".into()) + } } } @@ -4579,6 +4656,9 @@ impl Executor { let _ = reasoning; executor.eval_speculative_greedy(token, max_tokens, cancelled) } + Self::QwenMtplx(_) => { + Err("Qwen speculation belongs to its whole-turn controller".into()) + } Self::Qwen(executor) => { executor.eval_speculative_greedy(token, max_tokens, reasoning, cancelled) } @@ -4594,6 +4674,7 @@ impl Executor { Self::DeepSeek(executor) => executor.prefill(tokens, progress), Self::Glm(executor) => executor.prefill(tokens, progress), Self::Qwen(executor) => executor.prefill(tokens, progress), + Self::QwenMtplx(executor) => executor.prefill(tokens, progress), } } @@ -4602,6 +4683,9 @@ impl Executor { Self::DeepSeek(executor) => executor.logits(), Self::Glm(executor) => executor.logits(), Self::Qwen(executor) => executor.logits(), + Self::QwenMtplx(_) => { + unreachable!("Qwen sampling belongs to its whole-turn controller") + } } } @@ -4610,6 +4694,7 @@ impl Executor { Self::DeepSeek(executor) => executor.execution_stats(), Self::Glm(executor) => executor.execution_stats(), Self::Qwen(executor) => executor.execution_stats(), + Self::QwenMtplx(executor) => executor.execution_stats(), } } @@ -4618,6 +4703,7 @@ impl Executor { Self::DeepSeek(executor) => ModelRef::Gguf(executor.model()), Self::Glm(executor) => ModelRef::Gguf(executor.model()), Self::Qwen(executor) => ModelRef::Qwen(executor.model()), + Self::QwenMtplx(executor) => ModelRef::Qwen(executor.model()), } } @@ -4626,6 +4712,7 @@ impl Executor { Self::DeepSeek(executor) => executor.context(), Self::Glm(executor) => executor.context(), Self::Qwen(executor) => executor.context(), + Self::QwenMtplx(executor) => executor.context(), } } @@ -4634,6 +4721,7 @@ impl Executor { Self::DeepSeek(executor) => executor.position(), Self::Glm(executor) => executor.position(), Self::Qwen(executor) => executor.position(), + Self::QwenMtplx(executor) => executor.position(), } } @@ -4642,6 +4730,7 @@ impl Executor { Self::DeepSeek(executor) => executor.reset(), Self::Glm(executor) => executor.reset(), Self::Qwen(executor) => executor.reset(), + Self::QwenMtplx(executor) => executor.reset(), } } @@ -4656,7 +4745,7 @@ impl Executor { Some(ResidentState::Glm(_)) => { return Err("resident session belongs to a different model family".into()); } - Some(ResidentState::Qwen(_)) => { + Some(ResidentState::Qwen(_) | ResidentState::QwenMtplx(_)) => { return Err("resident session belongs to a different model family".into()); } None => None, @@ -4670,7 +4759,7 @@ impl Executor { Some(ResidentState::DeepSeek(_)) => { return Err("resident session belongs to a different model family".into()); } - Some(ResidentState::Qwen(_)) => { + Some(ResidentState::Qwen(_) | ResidentState::QwenMtplx(_)) => { return Err("resident session belongs to a different model family".into()); } None => None, @@ -4681,7 +4770,11 @@ impl Executor { Self::Qwen(executor) => { let mut inner = match state.take() { Some(ResidentState::Qwen(state)) => Some(*state), - Some(ResidentState::DeepSeek(_) | ResidentState::Glm(_)) => { + Some( + ResidentState::DeepSeek(_) + | ResidentState::Glm(_) + | ResidentState::QwenMtplx(_), + ) => { return Err("resident session belongs to a different model family".into()); } None => None, @@ -4689,6 +4782,17 @@ impl Executor { executor.swap_resident_state(&mut inner)?; *state = inner.map(|state| ResidentState::Qwen(Box::new(state))); } + Self::QwenMtplx(executor) => { + let mut inner = match state.take() { + Some(ResidentState::QwenMtplx(state)) => Some(*state), + Some(_) => { + return Err("resident session belongs to a different model family".into()); + } + None => None, + }; + executor.swap_resident_state(&mut inner)?; + *state = inner.map(|state| ResidentState::QwenMtplx(Box::new(state))); + } } Ok(()) } @@ -4698,6 +4802,7 @@ impl Executor { Self::DeepSeek(executor) => executor.align_prompt(tokens), Self::Glm(executor) => executor.align_prompt(tokens), Self::Qwen(executor) => executor.align_prompt(tokens), + Self::QwenMtplx(executor) => executor.align_prompt(tokens), } } @@ -4706,6 +4811,7 @@ impl Executor { Self::DeepSeek(executor) => executor.tokens(), Self::Glm(executor) => executor.tokens(), Self::Qwen(executor) => executor.tokens(), + Self::QwenMtplx(executor) => executor.tokens(), } } @@ -4714,6 +4820,7 @@ impl Executor { Self::DeepSeek(executor) => executor.checkpoint_tag(), Self::Glm(executor) => executor.checkpoint_tag(), Self::Qwen(executor) => executor.checkpoint_tag(), + Self::QwenMtplx(executor) => executor.checkpoint_tag(), } } @@ -4722,6 +4829,7 @@ impl Executor { Self::DeepSeek(executor) => executor.note_checkpoint_tag(tag), Self::Glm(executor) => executor.note_checkpoint_tag(tag), Self::Qwen(executor) => executor.note_checkpoint_tag(tag), + Self::QwenMtplx(executor) => executor.note_checkpoint_tag(tag), } } } @@ -8380,8 +8488,14 @@ fn q8_rows( } fn throttle(average: &mut f64, elapsed: Duration, power_percent: u8) { + if let Some(delay) = throttle_delay(average, elapsed, power_percent) { + std::thread::sleep(delay); + } +} + +fn throttle_delay(average: &mut f64, elapsed: Duration, power_percent: u8) -> Option { if power_percent >= 100 { - return; + return None; } let sample = elapsed.as_secs_f64(); *average = if *average <= 0.0 || !average.is_finite() { @@ -8390,7 +8504,22 @@ fn throttle(average: &mut f64, elapsed: Duration, power_percent: u8) { *average * 0.875 + sample * 0.125 }; let sleep = *average * (100.0 - f64::from(power_percent)) / f64::from(power_percent); - std::thread::sleep(Duration::from_secs_f64(sleep)); + Some(Duration::from_secs_f64(sleep)) +} + +#[test] +fn power_throttle_keeps_ds4_ewma_and_full_power_bypass() { + let mut average = 0.0; + let first = throttle_delay(&mut average, Duration::from_millis(12), 75).unwrap(); + assert_eq!(first, Duration::from_millis(4)); + let next = throttle_delay(&mut average, Duration::from_millis(36), 75).unwrap(); + assert_eq!(next, Duration::from_millis(5)); + assert_eq!(average, 0.015); + assert_eq!( + throttle_delay(&mut average, Duration::from_secs(99), 100), + None + ); + assert_eq!(average, 0.015); } fn call(result: i32, operation: &str) -> Result<(), String> { @@ -8617,7 +8746,11 @@ mod tests { glm_mtp_timing: false, keep_vision_loaded: false, dspark, - dspark_confidence_threshold: confidence.unwrap_or(0.8), + dspark_confidence_threshold: confidence.unwrap_or_else(|| { + crate::settings::SpeculativePreferences::default() + .engine_settings() + .dspark_confidence_threshold + }), dspark_confidence_threshold_set: confidence.is_some(), dspark_strict: false, dspark_exact_sampling: false, diff --git a/src/engine/metal/checkpoint.rs b/src/engine/metal/checkpoint.rs index 605d809..2a13831 100644 --- a/src/engine/metal/checkpoint.rs +++ b/src/engine/metal/checkpoint.rs @@ -321,6 +321,7 @@ impl Executor { Self::DeepSeek(executor) => executor.save_checkpoint(path, tag, progress), Self::Glm(executor) => executor.save_checkpoint(path, tag, progress), Self::Qwen(executor) => executor.save_checkpoint(path, tag, progress), + Self::QwenMtplx(executor) => executor.save_checkpoint(path, tag, progress), } } @@ -333,6 +334,7 @@ impl Executor { Self::DeepSeek(executor) => executor.load_checkpoint(path, progress), Self::Glm(executor) => executor.load_checkpoint(path, progress), Self::Qwen(executor) => executor.load_checkpoint(path, progress), + Self::QwenMtplx(executor) => executor.load_checkpoint(path, progress), } } } diff --git a/src/engine/metal/glm.rs b/src/engine/metal/glm.rs index 5bdd6ee..f9c64f0 100644 --- a/src/engine/metal/glm.rs +++ b/src/engine/metal/glm.rs @@ -434,6 +434,8 @@ struct GlmMtp { pending: Option, parent: Option, min_pos: Option, + kda_backup: Option, + rollback: Option<(u32, i32)>, cycles: u64, drafted: u64, accepted: u64, @@ -488,13 +490,13 @@ impl GlmScratch { indexer_weights: Buffer::floats(shape.indexer_heads)?, indexer_scores: Buffer::floats(u64::from(context))?, indexer_selected: Buffer::bytes( - (shape.indexer_top_k - + if shape.model == ModelChoice::Glm53Flash { - 3 - } else { - 0 - }) - * 4, + // DS4's compact-KV GLM53 path also uses this buffer for the + // entire dense context, not just indexer_top_k + pool tail. + if shape.model == ModelChoice::Glm53Flash { + (shape.indexer_top_k + GLM53_INDEX_POOL - 1).max(u64::from(context)) + } else { + shape.indexer_top_k + } * 4, )?, indexer_pool_selected: Buffer::bytes(shape.indexer_top_k.max(4))?, qk_low: Buffer::floats(shape.heads * shape.kv_lora)?, @@ -632,11 +634,14 @@ pub(in crate::engine) struct GlmExecutor { weights: GlmWeights, scratch: GlmScratch, batch: Option, + verify_batch: Option, caches: Vec, logits: Vec, tokens: Vec, context: u32, quality: bool, + power_percent: u8, + decode_average: f64, ssd: EngineSsdSettings, profile: Option, steering: Option, @@ -677,6 +682,7 @@ impl GlmExecutor { model, context, quality, + 100, ssd, EngineSpeculativeSettings { glm_mtp: false, @@ -697,10 +703,12 @@ impl GlmExecutor { ) } + #[allow(clippy::too_many_arguments)] pub(super) fn open_profile( model: Model, context: u32, quality: bool, + power_percent: u8, ssd: EngineSsdSettings, speculative: EngineSpeculativeSettings, steering: EngineSteeringSettings, @@ -722,6 +730,22 @@ impl GlmExecutor { streaming.as_ref(), speculative.keep_vision_loaded, )?; + let admission = admission + .checked_add(if speculative.glm_mtp { + glm53_kda_state_bytes(model.shape) + } else { + 0 + }) + .ok_or("GLM MTP backup size overflow")?; + let admission = admission + .checked_add( + if speculative.glm_mtp && model.shape.model == ModelChoice::Glm53Flash { + glm_batch_scratch_bytes(model.shape, 2, context)? + } else { + 0 + }, + ) + .ok_or("GLM verifier workspace size overflow")?; let model_spans = streaming .as_ref() .map(|plan| glm_streaming_model_spans(&model, &weights, plan)) @@ -788,6 +812,8 @@ impl GlmExecutor { pending: None, parent: None, min_pos: None, + kda_backup: None, + rollback: None, cycles: 0, drafted: 0, accepted: 0, @@ -817,11 +843,18 @@ impl GlmExecutor { weights, scratch, batch, + verify_batch: None, caches, logits: vec![0.0; model.shape.vocab as usize], tokens: Vec::new(), context, quality, + power_percent: if power_percent == 0 { + 100 + } else { + power_percent + }, + decode_average: 0.0, ssd: effective_ssd, profile, steering, @@ -918,6 +951,7 @@ impl GlmExecutor { if shape.model == ModelChoice::Glm53Flash { return self.eval_glm53(token); } + let started = Instant::now(); let pos = u32::try_from(self.tokens.len()).map_err(|_| "GLM position overflow")?; if pos >= self.context { return Err(format!( @@ -974,9 +1008,7 @@ impl GlmExecutor { )?; } std::mem::swap(&mut self.scratch.current, &mut self.scratch.next); - if (layer_index + 1).is_multiple_of(DECODE_FLUSH_LAYERS) - && layer_index + 1 < self.weights.layers.len() - { + if layer_index + 1 == DECODE_FLUSH_LAYERS { call( unsafe { ds4_gpu_flush_commands() }, "flushing the GLM decode graph", @@ -1008,6 +1040,11 @@ impl GlmExecutor { if let Some(profile) = &self.profile { profile.write()?; } + throttle( + &mut self.decode_average, + started.elapsed(), + self.power_percent, + ); Ok(()) } @@ -1782,6 +1819,7 @@ impl GlmExecutor { } if let Some(mtp) = &mut self.mtp { mtp.cycles += 1; + mtp.rollback = None; } let started = Instant::now(); if self.model.shape.model == ModelChoice::Glm53Flash { @@ -1795,17 +1833,29 @@ impl GlmExecutor { && !cancelled.load(std::sync::atomic::Ordering::Relaxed) { let first = self.scratch.mtp_hc.view(0, self.model.shape.embd * 4)?; - let mut selected = 0; - self.eval_glm53_capture(token, Some(&first), Some(&mut selected))?; + self.copy_glm53_kda_state(true)?; + let selected = match self.verify_glm53_pair([token, draft]) { + Ok(selected) => selected, + Err(error) => { + self.copy_glm53_kda_state(false)?; + self.tokens.truncate(pos as usize); + return Err(error); + } + }; if let Some(mtp) = &mut self.mtp { mtp.verifier_passes += 1; + if mtp.timing { + eprintln!( + "ds4: GLM MTP verify2 at {pos}: {:.3} ms, draft {draft}, target {selected}", + started.elapsed().as_secs_f64() * 1000.0 + ); + } } if selected == draft { let second = self .scratch .mtp_hc .view(self.model.shape.embd * 4, self.model.shape.embd * 4)?; - self.eval_glm53_capture(draft, Some(&second), None)?; let _ = self.mtp_step(draft, pos, Some(&first), false)?; let next = argmax(&self.logits); let pending = self.mtp_step(next, pos + 1, Some(&second), true)?; @@ -1813,16 +1863,18 @@ impl GlmExecutor { mtp.pending = Some(pending); mtp.parent = Some(next); mtp.accepted += 1; + mtp.rollback = Some((pos, token)); } self.note_mtp_time(started); return Ok(vec![token, draft]); } - self.scratch.logits.read_f32(&mut self.logits)?; - let next = argmax(&self.logits); - let pending = self.mtp_step(next, pos, Some(&first), true)?; + self.copy_glm53_kda_state(false)?; + self.tokens.truncate(pos as usize); + self.eval_glm53(token)?; + let pending = self.mtp_step(selected, pos, None, true)?; if let Some(mtp) = &mut self.mtp { mtp.pending = Some(pending); - mtp.parent = Some(next); + mtp.parent = Some(selected); } self.note_mtp_time(started); return Ok(vec![token]); @@ -1860,6 +1912,121 @@ impl GlmExecutor { Ok(accepted) } + /// DS4 saves only recurrent KDA state. Attention rows beyond the restored + /// token frontier remain allocated and are overwritten/masked on replay. + fn copy_glm53_kda_state(&mut self, save: bool) -> Result<(), String> { + let mtp = self.mtp.as_mut().ok_or("GLM MTP is not configured")?; + let bytes = glm53_kda_state_bytes(self.model.shape); + if save && mtp.kda_backup.is_none() { + mtp.kda_backup = Some(Buffer::bytes(bytes)?); + } + let backup = mtp.kda_backup.as_ref().ok_or("GLM KDA backup is missing")?; + let commands = Commands::begin()?; + let mut offset = 0; + for cache in self.caches.iter().filter_map(|c| c.kda.as_ref()) { + let projection = GLM53_KDA_HEADS * GLM53_KDA_HEAD_DIM; + for (state, size) in [ + (&cache.conv, 3 * (GLM53_KDA_CONV - 1) * projection * 4), + (&cache.recurrent, projection * GLM53_KDA_HEAD_DIM * 4), + ] { + if save { + backup.copy_from(offset, state, 0, size, "saving GLM KDA state")?; + } else { + state.copy_from(0, backup, offset, size, "restoring GLM KDA state")?; + } + offset += size; + } + } + commands.finish()?; + if offset != bytes { + return Err("GLM KDA backup size differs from cache state".into()); + } + Ok(()) + } + + /// Shared two-row target forward, followed by row0's shared output head. + /// Keep row1 logits on the host and both collapsed hidden rows on the GPU. + fn verify_glm53_pair(&mut self, tokens: [i32; 2]) -> Result { + // HC expansion derives its row count from buffer size. Reusing the + // 2048-row prefill allocation would launch 2048 rows for every pair. + let mut batch = match self.verify_batch.take() { + Some(batch) => batch, + None => GlmBatchScratch::allocate(&self.model, 2, self.context)?, + }; + let started = Instant::now(); + let result = (|| { + self.eval_glm53_batch_inner(&tokens, &mut |_| true, true, &mut batch)?; + let shape = self.model.shape; + let first = self.scratch.mtp_hc.view(0, shape.embd * 4)?; + let second = self.scratch.mtp_hc.view(shape.embd * 4, shape.embd * 4)?; + let raw_first = batch.hc_current.view(0, shape.hc * shape.embd * 4)?; + let commands = Commands::begin()?; + second.copy_from( + 0, + &self.scratch.hc_output, + 0, + shape.embd * 4, + "saving GLM verifier row1", + )?; + call( + unsafe { + ds4_gpu_hc_weighted_sum_tensor( + first.raw(), + raw_first.raw(), + self.scratch.hc_mean.raw(), + shape.embd as u32, + shape.hc as u32, + ) + }, + "collapsing GLM verifier row0", + )?; + self.encode_glm53_output(&first)?; + call( + unsafe { + ds4_gpu_argmax_tensor( + self.scratch.token.raw(), + self.scratch.logits.raw(), + shape.vocab as u32, + ) + }, + "selecting GLM verifier row0", + )?; + commands.finish()?; + let mut selected = [0]; + self.scratch.token.read_i32(&mut selected)?; + Ok(selected[0]) + })(); + self.verify_batch = Some(batch); + if result.is_ok() { + throttle( + &mut self.decode_average, + started.elapsed(), + self.power_percent, + ); + } + result + } + + fn rewind_glm53_mtp(&mut self, pos: usize) -> Result { + let Some((start, first)) = self.mtp.as_ref().and_then(|m| m.rollback) else { + return Ok(false); + }; + if self.position() != start + 2 || (pos != start as usize && pos != start as usize + 1) { + return Ok(false); + } + self.copy_glm53_kda_state(false)?; + self.tokens.truncate(start as usize); + if let Some(mtp) = &mut self.mtp { + mtp.rollback = None; + mtp.pending = None; + mtp.parent = None; + } + if pos == start as usize + 1 { + self.eval_glm53(first)?; + } + Ok(true) + } + fn note_mtp_time(&mut self, started: Instant) { if let Some(mtp) = &mut self.mtp { mtp.verifier_ns = mtp @@ -3106,6 +3273,9 @@ impl GlmExecutor { hidden: Option<&Buffer>, selected: Option<&mut i32>, ) -> Result<(), String> { + if let Some(mtp) = &mut self.mtp { + mtp.rollback = None; + } let pos = self.position(); if pos >= self.context { return Err(format!( @@ -3113,6 +3283,7 @@ impl GlmExecutor { self.context )); } + let started = Instant::now(); self.scratch.token.write_i32(&[token])?; let commands = Commands::begin()?; self.encode_glm53_token(token, pos, self.scratch.token.raw())?; @@ -3146,6 +3317,11 @@ impl GlmExecutor { self.scratch.logits.read_f32(&mut self.logits)?; } self.tokens.push(token); + throttle( + &mut self.decode_average, + started.elapsed(), + self.power_percent, + ); Ok(()) } @@ -3291,9 +3467,7 @@ impl GlmExecutor { "expanding GLM 5.3 FFN hyperconnections", )?; std::mem::swap(&mut self.scratch.hc_current, &mut self.scratch.hc_next); - if (ordinal + 1).is_multiple_of(DECODE_FLUSH_LAYERS) - && ordinal + 1 < self.weights.layers.len() - { + if ordinal + 1 == DECODE_FLUSH_LAYERS { call( unsafe { ds4_gpu_flush_commands() }, "flushing GLM 5.3 decode", @@ -4586,10 +4760,30 @@ impl GlmExecutor { let shape = self.model.shape; let map = self.model.main.map_ptr().cast(); let size = self.model.main.len(); - let dense_limit = glm53_dense_limit(self.context, self.ssd.enabled); + let mut dense_limit = glm53_dense_limit(self.context, self.ssd.enabled); + // DS4 routes the entire verification pair through indexed attention + // when it no longer fits the full-attention span. Normal prefill + // already splits at this boundary before entering the batch function. if pos < dense_limit && pos + rows > dense_limit { - return Err("GLM 5.3 prefill crossed the dense-attention boundary".into()); + dense_limit = 0; } + // Both HC split/sum and expansion derive their row count from the + // output view, not a rows argument. Match DS4's token-sized views even + // when a short prefill reuses the full 2048-row workspace. + let plain_bytes = u64::from(rows) * shape.embd * 4; + let hc_bytes = plain_bytes * shape.hc; + let mut hc_views = if unsafe { ds4_gpu_tensor_bytes(batch.current.raw()) } == plain_bytes { + // The two-row verifier workspace is already exact; no views needed. + None + } else { + Some([ + batch.current.view(0, plain_bytes)?, + batch.after_attn.view(0, plain_bytes)?, + batch.hc_current.view(0, hc_bytes)?, + batch.hc_next.view(0, hc_bytes)?, + batch.hc_after_attn.view(0, hc_bytes)?, + ]) + }; batch.tokens.write_i32(tokens)?; let mut commands = Commands::begin()?; if self.weights.embedding.kind == BF16 { @@ -4680,13 +4874,18 @@ impl GlmExecutor { let hc = layer .hc .ok_or("GLM 5.3 layer has no hyperconnection weights")?; + let current = hc_views.as_ref().map_or(&batch.current, |v| &v[0]); + let after_attn = hc_views.as_ref().map_or(&batch.after_attn, |v| &v[1]); + let hc_current = hc_views.as_ref().map_or(&batch.hc_current, |v| &v[2]); + let hc_next = hc_views.as_ref().map_or(&batch.hc_next, |v| &v[3]); + let hc_after_attn = hc_views.as_ref().map_or(&batch.hc_after_attn, |v| &v[4]); glm53_hc_pre( - &batch.current, + current, &batch.attn_norm, &batch.hc_flat, &batch.hc_mix, &batch.hc_split, - &batch.hc_current, + hc_current, hc.attn_fn, hc.attn_scale, hc.attn_base, @@ -4721,9 +4920,9 @@ impl GlmExecutor { call( unsafe { ds4_gpu_hc_expand_split_tensor( - batch.hc_after_attn.raw(), + hc_after_attn.raw(), batch.attn_out.raw(), - batch.hc_current.raw(), + hc_current.raw(), batch.hc_split.raw(), shape.embd as u32, shape.hc as u32, @@ -4732,12 +4931,12 @@ impl GlmExecutor { "expanding batched GLM 5.3 attention hyperconnections", )?; glm53_hc_pre( - &batch.after_attn, + after_attn, &batch.ffn_norm, &batch.hc_flat, &batch.hc_mix, &batch.hc_split, - &batch.hc_after_attn, + hc_after_attn, hc.ffn_fn, hc.ffn_scale, hc.ffn_base, @@ -4754,9 +4953,9 @@ impl GlmExecutor { call( unsafe { ds4_gpu_hc_expand_split_tensor( - batch.hc_next.raw(), + hc_next.raw(), batch.next.raw(), - batch.hc_after_attn.raw(), + hc_after_attn.raw(), batch.hc_split.raw(), shape.embd as u32, shape.hc as u32, @@ -4787,6 +4986,9 @@ impl GlmExecutor { )?; } std::mem::swap(&mut batch.hc_current, &mut batch.hc_next); + if let Some(views) = &mut hc_views { + views.swap(2, 3); + } let done = u32::try_from( u64::from(rows) * (index as u64 + 1) / self.weights.layers.len() as u64, ) @@ -4829,10 +5031,16 @@ impl GlmExecutor { } fn read_glm53_output(&self, hidden: &Buffer, logits: &mut [f32]) -> Result<(), String> { + let commands = Commands::begin()?; + self.encode_glm53_output(hidden)?; + commands.finish()?; + self.scratch.logits.read_f32(logits) + } + + fn encode_glm53_output(&self, hidden: &Buffer) -> Result<(), String> { let shape = self.model.shape; let map = self.model.main.map_ptr().cast(); let size = self.model.main.len(); - let commands = Commands::begin()?; norm( &self.scratch.output_norm, hidden, @@ -4850,9 +5058,7 @@ impl GlmExecutor { &self.scratch.output_norm, map, size, - )?; - commands.finish()?; - self.scratch.logits.read_f32(logits) + ) } pub(super) fn logits(&self) -> &[f32] { @@ -4936,6 +5142,7 @@ impl GlmExecutor { mtp.pending = None; mtp.parent = None; mtp.min_pos = None; + mtp.rollback = None; } Ok(()) } @@ -4956,6 +5163,8 @@ impl GlmExecutor { pending: None, parent: None, min_pos: None, + kda_backup: None, + rollback: None, cycles: 0, drafted: 0, accepted: 0, @@ -4989,6 +5198,19 @@ impl GlmExecutor { std::mem::swap(&mut self.logits, &mut incoming.logits); std::mem::swap(&mut self.tokens, &mut incoming.tokens); std::mem::swap(&mut self.checkpoint_tag, &mut incoming.checkpoint_tag); + // These totals belong to the engine, not the resident chat. Swap them + // first so the complete MTP-state swap below leaves the totals active. + if let (Some(active), Some(next)) = (&mut self.mtp, &mut incoming.mtp) { + for (active, next) in [ + (&mut active.cycles, &mut next.cycles), + (&mut active.drafted, &mut next.drafted), + (&mut active.accepted, &mut next.accepted), + (&mut active.verifier_passes, &mut next.verifier_passes), + (&mut active.verifier_ns, &mut next.verifier_ns), + ] { + std::mem::swap(active, next); + } + } std::mem::swap(&mut self.mtp, &mut incoming.mtp); *state = Some(incoming); Ok(()) @@ -4996,6 +5218,15 @@ impl GlmExecutor { pub(super) fn align_prompt(&mut self, tokens: &[i32]) -> Result { if let Some(rewind) = live_prefix_rewind_target(&self.tokens, tokens) { + if self.rewind_glm53_mtp(rewind)? { + return Ok(rewind); + } + // A recurrent cache cannot be shortened by truncating token IDs. + // Outside the saved two-row frontier, replay from a clean state. + if self.model.shape.model == ModelChoice::Glm53Flash { + self.reset()?; + return Ok(0); + } self.tokens.truncate(rewind); if let Some(mtp) = &mut self.mtp { mtp.pending = None; @@ -6338,6 +6569,7 @@ mod tests { model, context, false, + 100, EngineSsdSettings { enabled: false, cold: false, @@ -6462,6 +6694,7 @@ mod tests { model, 4_096, true, + 100, EngineSsdSettings { enabled: false, cold: false, @@ -6824,6 +7057,7 @@ mod tests { model, 128, false, + 100, EngineSsdSettings { enabled: true, cold: false, @@ -6873,4 +7107,265 @@ mod tests { assert_eq!(baseline, mtp); assert!(drafted > 0); } + + #[test] + #[ignore = "installed GLM 5.3 and Metal; run under test-supervisor"] + fn glm53_two_row_verifier_restores_recurrent_state() { + use crate::settings::EngineSpeculativeSettings; + use std::sync::atomic::AtomicBool; + super::configure_sources().unwrap(); + let path = crate::model::engine_artifacts( + ModelChoice::Glm53Flash, + false, + &crate::app::models_path(), + ) + .model; + assert!(path.is_file(), "installed GLM 5.3 model is required"); + let model = Model::open_main(&path, ModelChoice::Glm53Flash).unwrap(); + let prompt = + model.tokenize("Write a Python function that returns the square of an integer."); + let context = std::env::var("DS4SERVER_GLM53_CONTEXT") + .ok() + .map_or(128, |s| s.parse::().unwrap()); + let frontier = std::env::var("DS4SERVER_GLM53_FRONTIER") + .ok() + .map_or(prompt.len(), |s| s.parse::().unwrap()); + assert!(frontier > 0 && frontier + 2 <= context as usize); + let prompt = prompt + .iter() + .copied() + .cycle() + .take(frontier) + .collect::>(); + let mut executor = GlmExecutor::open_profile( + model, + context, + false, + 100, + EngineSsdSettings { + enabled: false, + cold: false, + cache_experts: 0, + cache_bytes: 0, + full_layers: 0, + full_layers_set: false, + preload_experts: 0, + }, + EngineSpeculativeSettings { + glm_mtp: true, + glm_mtp_timing: true, + keep_vision_loaded: false, + dspark: false, + dspark_confidence_threshold: 0.6, + dspark_confidence_threshold_set: false, + dspark_strict: false, + dspark_exact_sampling: false, + }, + EngineSteeringSettings { + file: None, + ffn_scale: 0.0, + attention_scale: 0.0, + }, + None, + ) + .unwrap(); + let prepare = |executor: &mut GlmExecutor| { + executor.reset().unwrap(); + executor + .prefill(&prompt, |pos| { + eprintln!("verify2 prefill {pos}"); + true + }) + .unwrap(); + }; + let recurrent = |executor: &GlmExecutor| { + executor + .caches + .iter() + .filter_map(|c| c.kda.as_ref()) + .flat_map(|c| { + let projection = super::GLM53_KDA_HEADS * super::GLM53_KDA_HEAD_DIM; + [ + (&c.conv, 3 * (super::GLM53_KDA_CONV - 1) * projection), + (&c.recurrent, projection * super::GLM53_KDA_HEAD_DIM), + ] + }) + .map(|(buffer, n)| { + let mut values = vec![0.0; n as usize]; + buffer.read_f32(&mut values).unwrap(); + values.into_iter().map(f32::to_bits).collect::>() + }) + .collect::>() + }; + // A partial prefill must not dispatch HC expansion over workspace capacity. + // DS4 passes token-sized output views; unused rows must stay untouched. + let capacity = context.min(super::INDEXED_PREFILL_CHUNK) as usize; + let hc_width = (executor.model.shape.hc * executor.model.shape.embd) as usize; + let mut guards = Vec::new(); + if prompt.len() < capacity { + let batch = executor.batch.as_ref().unwrap(); + let width = executor.model.shape.embd as usize; + for (name, buffer, width) in [ + ("HC current", &batch.hc_current, hc_width), + ("HC next", &batch.hc_next, hc_width), + ("HC attention", &batch.hc_after_attn, hc_width), + ("collapsed current", &batch.current, width), + ("collapsed attention", &batch.after_attn, width), + ] { + let guard = buffer + .view(((capacity - 1) * width * 4) as u64, (width * 4) as u64) + .unwrap(); + guard.write_f32(&vec![12345.0; width]).unwrap(); + guards.push((name, guard, width)); + } + } + prepare(&mut executor); + for (name, guard, width) in guards { + let mut actual = vec![0.0; width]; + guard.read_f32(&mut actual).unwrap(); + assert!( + actual.iter().all(|&v| v == 12345.0), + "prefill overwrote unused {name} row" + ); + eprintln!("partial prefill HC workspace guards passed"); + } + let before = recurrent(&executor); + let first = argmax(executor.logits()); + executor.eval(first).unwrap(); + let after_first = recurrent(&executor); + let logits_first = executor.logits.clone(); + let second = argmax(&logits_first); + executor.eval(second).unwrap(); + let next = argmax(executor.logits()); + let not_cancelled = AtomicBool::new(false); + + for keep in [0, 1] { + prepare(&mut executor); + let start = executor.position(); + let mtp = executor.mtp.as_mut().unwrap(); + mtp.pending = Some(second); + mtp.parent = Some(first); + let cycle = executor + .eval_speculative_greedy(first, 2, ¬_cancelled) + .unwrap(); + assert_eq!( + cycle, + [first, second], + "forced matching draft must use both verifier rows" + ); + assert_eq!(argmax(executor.logits()), next); + assert!(executor.logits().iter().all(|v| v.is_finite())); + assert_eq!( + executor.mtp.as_ref().unwrap().rollback, + Some((start, first)) + ); + assert!(executor.rewind_glm53_mtp(start as usize + keep).unwrap()); + assert_eq!(executor.position(), start + keep as u32); + assert!( + recurrent(&executor) == *if keep == 0 { &before } else { &after_first }, + "KDA rewind differs from scalar state (keep={keep})" + ); + if keep == 1 { + assert!( + executor.logits == logits_first, + "rewind replay logits differ" + ); + } + assert!(executor.mtp.as_ref().unwrap().pending.is_none()); + eprintln!("verify2 accepted and rewind keep={keep} passed"); + } + + prepare(&mut executor); + let mtp = executor.mtp.as_mut().unwrap(); + mtp.pending = Some((second + 1) % executor.model.shape.vocab as i32); + mtp.parent = Some(first); + assert_eq!( + executor + .eval_speculative_greedy(first, 2, ¬_cancelled) + .unwrap(), + [first] + ); + assert!( + recurrent(&executor) == after_first, + "rejection replay KDA state differs" + ); + assert!( + executor.logits == logits_first, + "rejection replay logits differ" + ); + assert!(executor.mtp.as_ref().unwrap().rollback.is_none()); + eprintln!("verify2 rejected and scalar replay state passed"); + + for (cap, cancelled) in [(1, false), (2, true)] { + prepare(&mut executor); + let mtp = executor.mtp.as_mut().unwrap(); + mtp.pending = Some(second); + mtp.parent = Some(first); + assert_eq!( + executor + .eval_speculative_greedy(first, cap, &AtomicBool::new(cancelled)) + .unwrap(), + [first] + ); + assert!( + recurrent(&executor) == after_first, + "scalar boundary KDA state differs" + ); + assert!( + executor.logits == logits_first, + "scalar boundary logits differ" + ); + assert!(executor.mtp.as_ref().unwrap().rollback.is_none()); + eprintln!("verify2 scalar boundary cap={cap} cancelled={cancelled} passed"); + } + // UI and model-eval subtract engine-lifetime counters across a separate + // warmup session. Switching chats must move caches, never those totals. + let counters = |executor: &GlmExecutor| { + let mtp = executor.mtp.as_ref().unwrap(); + [ + mtp.cycles, + mtp.drafted, + mtp.accepted, + mtp.verifier_passes, + mtp.verifier_ns, + ] + }; + let original_tokens = executor.tokens.clone(); + let original_state = recurrent(&executor); + let before_switch = counters(&executor); + assert!(before_switch.iter().all(|&n| n > 0)); + let mut resident = None; + executor.swap_resident_state(&mut resident).unwrap(); + assert!(executor.tokens.is_empty()); + assert_eq!( + counters(&executor), + before_switch, + "new chat reset engine counters" + ); + prepare(&mut executor); + let token = argmax(executor.logits()); + executor + .eval_speculative_greedy(token, 1, ¬_cancelled) + .unwrap(); + let after_new_chat = counters(&executor); + assert!( + after_new_chat + .iter() + .zip(before_switch) + .all(|(&after, before)| after >= before) + ); + assert_eq!(after_new_chat[0], before_switch[0] + 1); + executor.swap_resident_state(&mut resident).unwrap(); + assert_eq!( + counters(&executor), + after_new_chat, + "restored chat reset engine counters" + ); + assert_eq!(executor.tokens, original_tokens); + assert!( + recurrent(&executor) == original_state, + "counter fix changed resident cache state" + ); + eprintln!("engine-lifetime counters across new and restored chats passed"); + } } diff --git a/src/engine/metal/gpu.rs b/src/engine/metal/gpu.rs index 79acd1d..03781db 100644 --- a/src/engine/metal/gpu.rs +++ b/src/engine/metal/gpu.rs @@ -5,6 +5,24 @@ pub(super) struct GpuTensor { _private: [u8; 0], } +#[derive(Clone, Copy)] +#[repr(C)] +pub(super) struct MetalBinding { + pub(super) tensor: *const GpuTensor, + pub(super) bytes: *const c_void, + pub(super) size: u32, + pub(super) index: u32, + pub(super) offset: u64, +} + +#[repr(C)] +pub(super) struct MetalConstant { + pub(super) index: u32, + pub(super) value: u32, + /// 0: Bool, 1: signed I32 bit pattern. Matches the bridge ABI. + pub(super) kind: u32, +} + #[derive(Clone, Copy)] #[repr(C)] pub(super) struct QwenWeightView { @@ -22,6 +40,13 @@ pub(super) struct QwenKernelArgs { pub(super) f: [f32; 8], } +#[derive(Clone, Copy, Default)] +#[repr(C)] +pub(super) struct GpuCanarySample { + pub(super) scheduled_seconds: f64, + pub(super) completed_seconds: f64, +} + #[derive(Clone, Copy, Default)] #[repr(C)] pub(super) struct Glm53VisionLayerWeights { @@ -88,6 +113,14 @@ pub(super) struct StreamExpertCacheStats { pub(super) pread_ms: f64, } +#[derive(Clone, Copy, Default)] +#[repr(C)] +pub(super) struct GpuBusyStats { + pub(super) busy_seconds: f64, + pub(super) max_busy_seconds: f64, + pub(super) command_buffers: u64, +} + unsafe extern "C" { pub(super) fn ds4_gpu_init() -> i32; pub(super) fn ds4_gpu_cleanup(); @@ -112,6 +145,117 @@ unsafe extern "C" { grid_x: u32, grid_y: u32, ) -> i32; + #[cfg(test)] + pub(super) fn ds4_gpu_qwen_dispatch_buffers( + kernel: *const c_char, + buffers: *const *const GpuTensor, + count: u32, + grid: *const u32, + threadgroup: *const u32, + ) -> i32; + pub(super) fn ds4_gpu_mtplx_compile(kernel: *const c_char, source: *const c_char) -> i32; + pub(super) fn ds4_gpu_mtplx_kernel_max_threads(kernel: *const c_char) -> u32; + pub(super) fn ds4_gpu_mtplx_encode( + kernel: *const c_char, + bindings: *const MetalBinding, + count: u32, + constants: *const MetalConstant, + constant_count: u32, + groups: *const u32, + threads: *const u32, + individual_threads: u32, + resource_owner: *mut *mut c_void, + release_owner: Option, + command_buffer: *mut c_void, + encoder: *mut c_void, + barrier: u32, + ) -> i32; + pub(super) fn ds4_gpu_mtplx_queue_create() -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_command_create(queue: *mut c_void) -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_encoder_create(command: *mut c_void) -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_fence_create() -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_object_free(object: *mut c_void); + pub(super) fn ds4_gpu_mtplx_encoder_barrier(encoder: *mut c_void); + pub(super) fn ds4_gpu_mtplx_encoder_fence( + encoder: *mut c_void, + fence: *mut c_void, + update: i32, + ); + pub(super) fn ds4_gpu_mtplx_encoder_end(encoder: *mut c_void); + pub(super) fn ds4_gpu_mtplx_command_completed( + command: *mut c_void, + context: *mut c_void, + completed: unsafe extern "C" fn(*mut c_void, *const c_char), + ); + pub(super) fn ds4_gpu_mtplx_command_commit(command: *mut c_void); + pub(super) fn ds4_gpu_mtplx_command_wait(command: *mut c_void); + pub(super) fn ds4_gpu_mtplx_arch_suffix() -> u32; + pub(super) fn ds4_gpu_mtplx_nax_platform(out: *mut u32); + pub(super) fn ds4_gpu_mtplx_event_create() -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_command_event( + command: *mut c_void, + event: *mut c_void, + value: u64, + signal: i32, + ); + pub(super) fn ds4_gpu_mtplx_event_signal(event: *mut c_void, value: u64); + pub(super) fn ds4_gpu_mtplx_event_wait(event: *mut c_void, value: u64); + pub(super) fn ds4_gpu_mtplx_event_value(event: *mut c_void) -> u64; + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_dispatch( + kernel: *const c_char, + bindings: *const MetalBinding, + count: u32, + constants: *const MetalConstant, + constant_count: u32, + groups: *const u32, + threads: *const u32, + individual_threads: u32, + resource_owner: *mut *mut c_void, + release_owner: Option, + ) -> i32; + pub(super) fn ds4_gpu_tensor_bytes(tensor: *const GpuTensor) -> u64; + pub(super) fn ds4_gpu_max_buffer_length() -> u64; + pub(super) fn ds4_gpu_mtplx_heap_create(bytes: u64) -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_heap_free(heap: *mut c_void); + pub(super) fn ds4_gpu_mtplx_tensor_alloc(bytes: u64, heap: *mut c_void) -> *mut GpuTensor; + pub(super) fn ds4_gpu_mtplx_tensor_empty() -> *mut GpuTensor; + pub(super) fn ds4_gpu_tensor_has_heap(tensor: *const GpuTensor) -> i32; + pub(super) fn ds4_gpu_tensor_contents(tensor: *mut GpuTensor) -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_residency_supported() -> i32; + pub(super) fn ds4_gpu_mtplx_residency_create() -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_residency_free(set: *mut c_void); + pub(super) fn ds4_gpu_mtplx_residency_allocation( + set: *mut c_void, + allocation: *mut c_void, + add: i32, + ); + pub(super) fn ds4_gpu_mtplx_residency_commit(set: *mut c_void); + pub(super) fn ds4_gpu_mtplx_residency_attach( + queue: *mut c_void, + sets: *const *mut c_void, + count: u64, + ); + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_command_queue() -> *mut c_void; + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_retain_command_queue() -> *mut c_void; + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_queue_free(queue: *mut c_void); + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_submission_hook( + context: *mut c_void, + before_commit: Option, + ) -> i32; + pub(super) fn ds4_gpu_mtplx_tensor_allocation(tensor: *const GpuTensor) -> *mut c_void; + pub(super) fn ds4_gpu_mtplx_allocated_size(allocation: *mut c_void) -> u64; + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_residency_count(set: *mut c_void) -> u64; + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_mtplx_residency_contains( + set: *mut c_void, + allocation: *mut c_void, + ) -> i32; pub(super) fn ds4_gpu_set_transient_model_map_range( model_map: *const c_void, model_size: u64, @@ -141,6 +285,7 @@ unsafe extern "C" { pub(super) fn ds4_gpu_set_streaming_expert_cache_budget(experts: u32); pub(super) fn ds4_gpu_set_streaming_expert_cache_expert_bytes(bytes: u64); pub(super) fn ds4_gpu_recommended_working_set_size() -> u64; + pub(super) fn ds4_gpu_current_allocated_size() -> u64; pub(super) fn ds4_gpu_stream_expert_cache_get_stats(stats: *mut StreamExpertCacheStats); pub(super) fn ds4_gpu_stream_expert_cache_seed_experts( table: *const StreamExpertTable, @@ -175,6 +320,9 @@ unsafe extern "C" { ) -> i32; pub(super) fn ds4_gpu_flush_commands() -> i32; pub(super) fn ds4_gpu_flush_encoder() -> i32; + pub(super) fn ds4_gpu_busy_stats_reset(); + pub(super) fn ds4_gpu_busy_stats_get(stats: *mut GpuBusyStats); + pub(super) fn ds4_gpu_canary_probe(sample: *mut GpuCanarySample) -> i32; pub(super) fn ds4_gpu_argmax_tensor( out: *mut GpuTensor, logits: *const GpuTensor, @@ -210,6 +358,11 @@ unsafe extern "C" { bytes: u64, ) -> *mut GpuTensor; pub(super) fn ds4_gpu_tensor_free(tensor: *mut GpuTensor); + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn ds4_gpu_defer_until_completed( + context: *mut c_void, + release: unsafe extern "C" fn(*mut c_void), + ) -> i32; pub(super) fn ds4_gpu_tensor_fill_f32(tensor: *mut GpuTensor, value: f32, count: u64) -> i32; pub(super) fn ds4_gpu_tensor_read( tensor: *const GpuTensor, @@ -803,6 +956,18 @@ unsafe extern "C" { kv_lora: u32, q_nope: u32, ) -> i32; + pub(super) fn ds4_gpu_qwen_attention_flash_staged_tensor( + out: *mut GpuTensor, + q: *const GpuTensor, + keys: *const GpuTensor, + values: *const GpuTensor, + position: u32, + rows: u32, + cache_len: u32, + heads: u32, + kv_heads: u32, + head_dim: u32, + ) -> i32; pub(super) fn ds4_gpu_glm_attention_indexed_batch_lora_valid_tensor( out: *mut GpuTensor, q: *const GpuTensor, @@ -1948,6 +2113,9 @@ impl Context { pub(super) fn open_qwen(admission_bytes: u64) -> Result { check(unsafe { ds4_gpu_init() }, "Metal initialization")?; + eprintln!( + "ds4: Qwen reference kernels: Powered by MTPLX — https://github.com/youssofal/mtplx" + ); unsafe { ds4_gpu_set_glm_model(false); ds4_gpu_set_qwen_model(true); @@ -1999,6 +2167,23 @@ impl Commands { "flushing Metal commands", ) } + + /// A synchronous reference eval boundary, not an asynchronous flush. + /// Leave the guard inactive if completion or restarting the batch fails. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn eval_boundary(&mut self) -> Result<(), String> { + self.0 = false; + check( + unsafe { ds4_gpu_end_commands() }, + "completing Metal eval boundary", + )?; + check( + unsafe { ds4_gpu_begin_commands() }, + "resuming Metal commands after eval", + )?; + self.0 = true; + Ok(()) + } } pub(super) struct ParallelFfn(bool); @@ -2065,32 +2250,209 @@ impl Drop for Commands { } } -pub(super) struct Buffer(NonNull); +// The canonical port distinguishes array/view identity from shared Data. Keep +// the same ownership in production and reference tests. +struct BufferData { + allocation: std::sync::Arc, +} + +struct BufferAllocation { + root: NonNull, + allocator: Option>, +} + +// SAFETY: Allocation holds never expose access to the allocation. Only Buffer (still +// !Send/!Sync) does that. The last reference may release the native root on a +// Metal completion thread; native release and its allocation ledger are locked. +unsafe impl Send for BufferAllocation {} +unsafe impl Sync for BufferAllocation {} + +impl Drop for BufferAllocation { + fn drop(&mut self) { + if let Some(allocator) = &self.allocator { + // This is the final physical owner, including all GPU callbacks. + unsafe { allocator.recycle(self.root) }; + } else { + unsafe { ds4_gpu_tensor_free(self.root.as_ptr()) }; + } + } +} + +#[derive(Clone)] +pub(super) struct BufferDataHold(std::sync::Arc); + +/// Physical GPU ownership must not count as a Data alias for donation. +#[derive(Clone)] +pub(super) struct BufferAllocationHold(std::sync::Arc); + +impl BufferAllocationHold { + pub(super) fn identity(&self) -> usize { + std::sync::Arc::as_ptr(&self.0) as usize + } +} + +struct BufferIdentity { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + id: u64, + data: BufferDataHold, +} + +impl BufferIdentity { + fn new(data: BufferDataHold) -> Self { + static NEXT_ID: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(1); + Self { + id: NEXT_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed), + data, + } + } +} + +pub(super) struct Buffer(NonNull, BufferIdentity); impl Buffer { + fn from_raw(raw: NonNull) -> Self { + Self( + raw, + BufferIdentity::new(BufferDataHold(std::sync::Arc::new(BufferData { + allocation: std::sync::Arc::new(BufferAllocation { + root: raw, + allocator: None, + }), + }))), + ) + } + + /// SAFETY: transfer an exclusively owned native root already counted as + /// active by this allocator. No other wrapper may independently free it. + pub(super) unsafe fn from_pooled( + root: NonNull, + allocator: std::sync::Arc, + ) -> Self { + Self( + root, + BufferIdentity::new(BufferDataHold(std::sync::Arc::new(BufferData { + allocation: std::sync::Arc::new(BufferAllocation { + root, + allocator: Some(allocator), + }), + }))), + ) + } + + /// Canonical graph parameter identity must not confuse a reused native + /// address with the old array. Used by the whole-turn graph port. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn identity(&self) -> u64 { + self.1.id + } + + pub(super) fn unique_data(&self) -> bool { + self.data_owners() == 1 + } + + pub(super) fn data_owners(&self) -> usize { + std::sync::Arc::strong_count(&self.1.data.0) + } + + /// Only compare while a descriptor/hold owns this Data; unlike identity(), + /// this address is shared by views and is not a persistent parameter key. + pub(super) fn data_identity(&self) -> usize { + std::sync::Arc::as_ptr(&self.1.data.0) as usize + } + + pub(super) fn allocation_bytes(&self) -> u64 { + // Donation uses the root allocation, not a slice's smaller byte span. + unsafe { ds4_gpu_tensor_bytes(self.1.data.0.allocation.root.as_ptr()) } + } + + /// GPU evaluators retain Data, not array descriptors or view wrappers. + pub(super) fn hold_data(&self) -> BufferDataHold { + BufferDataHold(self.1.data.0.clone()) + } + + pub(super) fn hold_allocation(&self) -> BufferAllocationHold { + BufferAllocationHold(self.1.data.0.allocation.clone()) + } + pub(super) fn floats(count: u64) -> Result { Self::bytes(count * 4) } pub(super) fn bytes(bytes: u64) -> Result { NonNull::new(unsafe { ds4_gpu_tensor_alloc(bytes) }) - .map(Self) + .map(Self::from_raw) .ok_or_else(|| format!("Metal could not allocate {bytes} bytes")) } pub(super) fn untracked(bytes: u64) -> Result { NonNull::new(unsafe { ds4_gpu_tensor_alloc_untracked(bytes) }) - .map(Self) + .map(Self::from_raw) .ok_or_else(|| format!("Metal could not allocate {bytes} untracked bytes")) } + // Backend selection must be explicit: enabling the canonical graph must + // not change DS4/GLM allocation or let test builds use a different policy. + pub(super) fn mtplx_bytes(bytes: u64) -> Result { + Self::canonical_bytes(bytes, false) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn mtplx_floats(count: u64) -> Result { + Self::mtplx_bytes( + count + .checked_mul(4) + .ok_or("Metal float buffer size overflow")?, + ) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn mtplx_untracked(bytes: u64) -> Result { + Self::canonical_bytes(bytes, true) + } + + fn canonical_bytes(bytes: u64, untracked: bool) -> Result { + if bytes == 0 { + return NonNull::new(unsafe { ds4_gpu_mtplx_tensor_empty() }) + .map(Self::from_raw) + .ok_or_else(|| "Metal could not create an empty tensor descriptor".into()); + } + if let Some(allocator) = super::qwen_mtplx::active_allocator() { + return allocator + .allocate(usize::try_from(bytes).map_err(|e| e.to_string())?)? + .ok_or_else(|| "Metal allocator returned no storage for a nonempty tensor".into()); + } + static PAGE: std::sync::OnceLock = std::sync::OnceLock::new(); + let page = *PAGE.get_or_init(|| { + usize::try_from(unsafe { libc::sysconf(libc::_SC_PAGESIZE) }).unwrap_or(0) + }); + let size = super::qwen_mtplx::allocator::allocation_size( + usize::try_from(bytes).map_err(|e| e.to_string())?, + page, + unsafe { ds4_gpu_max_buffer_length() } as usize, + )? as u64; + let root = NonNull::new(unsafe { + if untracked { + ds4_gpu_tensor_alloc_untracked(size) + } else { + ds4_gpu_tensor_alloc(size) + } + }) + .map(Self::from_raw) + .ok_or_else(|| format!("Metal could not allocate {size} bytes"))?; + if size == bytes { + Ok(root) + } else { + root.view(0, bytes) + } + } + pub(super) fn view(&self, offset: u64, bytes: u64) -> Result { // SAFETY: `ds4_gpu_tensor_view` in native/metal/ds4_metal.m bounds-checks // the view, ARC-retains base_obj.buffer, and marks the view non-owning, so // it may outlive and be freed independently of this wrapper. // Recheck those guarantees whenever the vendored Metal file is re-synced. NonNull::new(unsafe { ds4_gpu_tensor_view(self.raw(), offset, bytes) }) - .map(Self) + .map(|raw| Self(raw, BufferIdentity::new(self.hold_data()))) .ok_or_else(|| "Metal could not create a tensor view".to_owned()) } @@ -2214,6 +2576,281 @@ impl Buffer { impl Drop for Buffer { fn drop(&mut self) { + if self.0 == self.1.data.0.allocation.root { + // The root belongs to Data and survives all array/view descriptors. + return; + } unsafe { ds4_gpu_tensor_free(self.raw()) }; } } + +#[cfg(test)] +mod qwen_mtplx_allocation_tests { + use super::*; + use std::sync::Arc; + + #[test] + #[ignore = "requires Apple Metal; allocation only, no GPU dispatch or model"] + fn backend_allocation_policy_is_explicit_inside_and_outside_qwen_scope() { + use super::super::qwen_mtplx::{Scope, active_allocator, allocator::allocation_size}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let page = unsafe { libc::sysconf(libc::_SC_PAGESIZE) } as usize; + for scoped in [false, true] { + let scope = scoped.then(|| Scope::new().unwrap()); + let allocator = active_allocator(); + let before = allocator.as_ref().map(|a| a.stats()); + for allocate in [Buffer::bytes, Buffer::untracked] { + // Exactly the production DS4 contract, even with a Qwen + // allocator active on this thread: no rounding or pool use. + assert!(allocate(0).is_err()); + for bytes in [1, 17, 257, page as u64 + 1] { + let buffer = allocate(bytes).unwrap(); + assert_eq!(buffer.allocation_bytes(), bytes); + assert_eq!(unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }, bytes); + buffer.write(bytes - 1, &[73]).unwrap(); + assert!(buffer.write(bytes, &[0]).is_err()); + assert_eq!(allocator.as_ref().map(|a| a.stats()), before); + } + } + assert_eq!(allocator.as_ref().map(|a| a.stats()), before); + for allocate in [Buffer::mtplx_bytes, Buffer::mtplx_untracked] { + let buffer = allocate(257).unwrap(); + assert_eq!( + buffer.allocation_bytes() as usize, + allocation_size(257, page, usize::MAX).unwrap() + ); + assert_eq!(unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }, 257); + if let Some(allocator) = &allocator { + assert!(allocator.stats().active > before.unwrap().active); + } + } + if let Some(allocator) = &allocator { + assert_eq!(allocator.stats().active, before.unwrap().active); + } + drop(scope); + } + } + + #[test] + #[ignore = "requires Apple Metal; CPU buffer access only, no GPU dispatch or model"] + fn mtplx_tensor_cpu_access_releases_native_storage() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let mut leaks = Vec::new(); + for access in [ + "none", + "write", + "read", + "contents", + "view", + "allocation", + "heap", + ] { + let before = unsafe { ds4_gpu_current_allocated_size() }; + for _ in 0..8 { + let buffer = Buffer::bytes(1024 * 1024).unwrap(); + match access { + "write" => buffer.write(0, &[1, 2, 3, 4]).unwrap(), + "read" => buffer.read(0, &mut [0; 4]).unwrap(), + "contents" => { + assert!(!unsafe { ds4_gpu_tensor_contents(buffer.raw()) }.is_null()) + } + "view" => drop(buffer.view(0, 4).unwrap()), + "allocation" => { + assert!(!unsafe { ds4_gpu_mtplx_tensor_allocation(buffer.raw()) }.is_null()) + } + "heap" => assert_eq!(unsafe { ds4_gpu_tensor_has_heap(buffer.raw()) }, 0), + "none" => (), + _ => unreachable!(), + } + drop(buffer); + } + let retained = unsafe { ds4_gpu_current_allocated_size() }.saturating_sub(before); + eprintln!("CPU tensor access {access}: retained {retained} bytes"); + if retained > 64 * 1024 { + leaks.push((access, retained)); + } + } + assert!( + leaks.is_empty(), + "CPU bridge retains released Metal buffers: {leaks:?}" + ); + } + + #[test] + #[ignore = "requires Apple Metal context; empty descriptors, no GPU allocation"] + fn empty_storage_preserves_data_identity_views_and_zero_allocator_usage() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for scoped in [false, true] { + let scope = scoped.then(|| super::super::qwen_mtplx::Scope::new().unwrap()); + let allocator = super::super::qwen_mtplx::active_allocator(); + let before = allocator.as_ref().map(|a| a.stats()); + let empty = Buffer::mtplx_bytes(0).unwrap(); + let other = Buffer::mtplx_untracked(0).unwrap(); + assert_ne!(empty.identity(), other.identity()); + assert_ne!(empty.data_identity(), other.data_identity()); + assert_eq!(empty.allocation_bytes(), 0); + assert!(unsafe { ds4_gpu_mtplx_tensor_allocation(empty.raw()) }.is_null()); + assert!(unsafe { ds4_gpu_tensor_contents(empty.raw()) }.is_null()); + let view = empty.view(0, 0).unwrap(); + assert_ne!(empty.identity(), view.identity()); + assert_eq!(empty.data_identity(), view.data_identity()); + assert_eq!(empty.data_owners(), 2); + assert!(empty.view(0, 1).is_err()); + assert!(empty.view(1, 0).is_err()); + empty.read(0, &mut []).unwrap(); + empty.write(0, &[]).unwrap(); + assert!(empty.read(0, &mut [0]).is_err()); + assert!(empty.write(0, &[0]).is_err()); + assert!(empty.read(1, &mut []).is_err()); + let data = Arc::downgrade(&empty.1.data.0); + let allocation = Arc::downgrade(&empty.1.data.0.allocation); + let hold = empty.hold_allocation(); + drop(empty); + assert!(view.unique_data()); + view.read(0, &mut []).unwrap(); + drop(view); + assert!(data.upgrade().is_none()); + assert_eq!(allocation.strong_count(), 1); + drop(hold); + assert!(allocation.upgrade().is_none()); + drop(other); + assert_eq!(allocator.as_ref().map(|a| a.stats()), before); + if let Some(allocator) = &allocator { + assert!(allocator.allocate(0).unwrap().is_none()); + } + drop(scope); + } + } + + #[test] + #[ignore = "requires Apple Metal, no model weights"] + fn dispatch_retains_allocation_without_changing_data_donation() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let input = Buffer::bytes(32).unwrap(); + let expected = [0x80, 0x3f].repeat(8); + input.write(8, &expected).unwrap(); + let view = input.view(8, 16).unwrap(); + let output = Buffer::bytes(16).unwrap(); + let allocation = Arc::downgrade(&input.1.data.0.allocation); + let data = Arc::downgrade(&input.1.data.0); + let commands = Commands::begin().unwrap(); + let copy = |a: &Buffer, b: &Buffer| { + super::super::qwen_mtplx::qsa_dynamic_copy_rows( + [a, b], + [8, 8], + [1, 8], + [None, None], + [8; 2], + ) + .unwrap() + }; + assert!(copy(&view, &output).is_empty()); + assert_eq!(Arc::strong_count(&output.1.data.0.allocation), 2); + assert!( + output.unique_data(), + "physical GPU ownership is not a Data alias" + ); + drop(view); + drop(input); + assert!(data.upgrade().is_none(), "input descriptors can detach"); + assert_eq!( + allocation.strong_count(), + 1, + "uncommitted GPU work still owns storage" + ); + assert!(copy(&output, &output).is_empty()); + assert_eq!( + Arc::strong_count(&output.1.data.0.allocation), + 3, + "one allocation hold per dispatch, even with duplicate bindings" + ); + commands.finish().unwrap(); + assert!(allocation.upgrade().is_none()); + assert_eq!(Arc::strong_count(&output.1.data.0.allocation), 1); + let mut actual = vec![0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + + // Standalone dispatch finishes synchronously and leaves no GPU hold. + assert!(copy(&output, &output).is_empty()); + assert_eq!(Arc::strong_count(&output.1.data.0.allocation), 1); + output.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + + // Pre-submission errors must not take or release the caller's owner. + unsafe extern "C" fn release(context: *mut c_void) { + drop(unsafe { Box::from_raw(context.cast::()) }); + } + let mut owner = Box::into_raw(Box::new(output.hold_allocation())).cast::(); + let original = owner; + let binding = MetalBinding { + tensor: output.raw(), + bytes: std::ptr::null(), + size: 0, + index: 0, + offset: 0, + }; + let invalid = MetalConstant { + index: 200, + value: 2, + kind: 0, + }; + assert_eq!( + unsafe { + ds4_gpu_mtplx_dispatch( + c"invalid".as_ptr(), + &binding, + 1, + &invalid, + 1, + [1, 1, 1].as_ptr(), + [32, 1, 1].as_ptr(), + 0, + &mut owner, + Some(release), + ) + }, + 0 + ); + assert_eq!(owner, original); + let zero = 0_u32; + for offset in [unsafe { ds4_gpu_tensor_bytes(output.raw()) } + 1, u64::MAX] { + let bindings = [ + MetalBinding { offset, ..binding }, + MetalBinding { + tensor: std::ptr::null(), + bytes: std::ptr::from_ref(&zero).cast(), + size: 4, + index: 1, + offset: 0, + }, + ]; + assert_eq!( + unsafe { + ds4_gpu_mtplx_dispatch( + c"input_coherent".as_ptr(), + bindings.as_ptr(), + 2, + std::ptr::null(), + 0, + [0, 1, 1].as_ptr(), + [1, 1, 1].as_ptr(), + 0, + &mut owner, + Some(release), + ) + }, + 0, + "out-of-bounds byte offset must be rejected before submission" + ); + assert_eq!(owner, original, "invalid offset must not consume the owner"); + } + assert_eq!(Arc::strong_count(&output.1.data.0.allocation), 2); + unsafe { release(owner) }; + assert_eq!(Arc::strong_count(&output.1.data.0.allocation), 1); + } +} diff --git a/src/engine/metal/qwen.rs b/src/engine/metal/qwen.rs index c713aae..17b279d 100644 --- a/src/engine/metal/qwen.rs +++ b/src/engine/metal/qwen.rs @@ -1,6 +1,7 @@ use super::checkpoint::{read_buffer, read_u32, write_buffer, write_u32}; use super::*; use crate::engine::qwen::{QwenModel, QwenTensor}; +use crate::settings::QWEN_DEFAULT_PREFILL_CHUNK; use rustc_hash::FxHashMap as HashMap; use std::ffi::CStr; @@ -39,7 +40,9 @@ const EXPERTS_USED: usize = 10; const EXPERT_WIDTH: u32 = 640; const VOCAB: u32 = 248_320; const SAMPLING_TOP_K: u32 = 32; -const DENSE_BUDGET: u32 = 2_048; +const DECODE_DENSE_BUDGET: u32 = 2_048; +const PREFILL_DENSE_BUDGET: u32 = 32_768; +const QSA_VERIFY_DENSE_LIMIT: u32 = 16_384; const PLE_HEADS: usize = 16; const PLE_HEAD_DIM: u32 = 160; const PLE_HISTORY: usize = 2; @@ -49,7 +52,34 @@ const PLE_ROW_BYTES: usize = 100; const CHECKPOINT_MAGIC: &[u8; 8] = b"DS4QWN01"; const CHECKPOINT_VERSION: u32 = 5; const CHECKPOINT_CHUNK: usize = 8 * 1024 * 1024; -const PREFILL_CHUNK: usize = 2_048; +const QMM_SPLIT_TARGET_TILES: u32 = 512; +const QMM_SPLIT_ELEMENTS: u64 = QMM_SPLIT_TARGET_TILES as u64 * 32 * 32; + +fn affine_qmm_splits(in_dim: u32, out_dim: u32, rows: u32, group: u32) -> u32 { + let alignment = group.max(32); + let tiles = u64::from(out_dim.div_ceil(32)) * u64::from(rows.div_ceil(32)); + let mut splits = ((u64::from(QMM_SPLIT_TARGET_TILES) / tiles.max(1)) as u32) + .min(in_dim / alignment) + .max(1); + while splits > 1 && !in_dim.is_multiple_of(splits * alignment) { + splits -= 1; + } + splits +} + +const fn dense_attention_budget(rows: u32) -> u32 { + if rows == 1 { + DECODE_DENSE_BUDGET + } else if rows > VERIFY_ROWS as u32 { + PREFILL_DENSE_BUDGET + } else { + DECODE_DENSE_BUDGET + } +} + +const fn packed_dense_qsa(rows: u32, tokens: u32) -> bool { + rows <= VERIFY_ROWS as u32 && tokens < QSA_VERIFY_DENSE_LIMIT +} type TokenDistribution = Vec<(usize, f64)>; type TokenDistributions = Vec; @@ -105,8 +135,12 @@ struct Scratch { gdn_k: Buffer, gdn_out: Buffer, router: Buffer, + qmm_partials: Buffer, route_ids: Buffer, route_weights: Buffer, + route_counts: Buffer, + route_map: Buffer, + route_work: Buffer, gate: Buffer, up: Buffer, mid: Buffer, @@ -133,7 +167,6 @@ struct Scratch { dense_query: Buffer, dense_keys: Buffer, dense_values: Buffer, - attention_scores: Buffer, ple_packed: Buffer, ple_scales: Buffer, ple_biases: Buffer, @@ -153,6 +186,9 @@ impl Scratch { let qsa_blocks = qsa_block_capacity(context)?; let capacity = capacity.max(VERIFY_ROWS as u32); let row_count = u64::from(capacity); + let route_rows = row_count * EXPERTS_USED as u64; + let route_work_items = route_rows.div_ceil(64) + u64::from(EXPERTS); + let route_work_bytes = (8 + u64::from(EXPERTS) * 4 + route_rows * 4 + 7) & !7; let rows = |width: u32| u64::from(width) * row_count; let gdn_fused = Buffer::floats(rows(GDN_FUSED_INPUT))?; let gdn_fused_qkv = gdn_fused.view(0, u64::from(GDN_QKV) * 4)?; @@ -194,8 +230,12 @@ impl Scratch { gdn_k: Buffer::floats(rows(GDN_HEADS_K * HEAD_DIM))?, gdn_out: Buffer::bytes(rows(GDN_VALUE) * 4 + u64::from(GDN_QKV) * 3 * 2)?, router: Buffer::floats(rows(EXPERTS))?, + qmm_partials: Buffer::floats(QMM_SPLIT_ELEMENTS)?, route_ids: Buffer::bytes(row_count * EXPERTS_USED as u64 * 4)?, route_weights: Buffer::floats(row_count * EXPERTS_USED as u64)?, + route_counts: Buffer::bytes(u64::from(EXPERTS) * 4)?, + route_map: Buffer::bytes(u64::from(EXPERTS) * row_count * 4)?, + route_work: Buffer::bytes(route_work_bytes + route_work_items * 8)?, gate: Buffer::floats(row_count * EXPERTS_USED as u64 * u64::from(EXPERT_WIDTH))?, up: Buffer::floats(row_count * EXPERTS_USED as u64 * u64::from(EXPERT_WIDTH))?, mid: Buffer::floats(row_count * EXPERTS_USED as u64 * u64::from(EXPERT_WIDTH))?, @@ -218,12 +258,13 @@ impl Scratch { qsa_q: Buffer::floats(rows(QSA_HEADS * QSA_DIM))?, qsa_scores: Buffer::floats(u64::from(qsa_blocks) * row_count)?, qsa_selected: Buffer::bytes(u64::from(QSA_TOP_K) * row_count * 4)?, - causal_mask: Buffer::bytes(u64::from(DENSE_BUDGET) * row_count)?, + causal_mask: Buffer::bytes(u64::from(PREFILL_DENSE_BUDGET) * row_count)?, dense_query: Buffer::bytes(rows(ATTN_WIDTH) * 2)?, - dense_keys: Buffer::bytes(u64::from(DENSE_BUDGET) * u64::from(ATTN_KV_WIDTH) * 2)?, - dense_values: Buffer::bytes(u64::from(DENSE_BUDGET) * u64::from(ATTN_KV_WIDTH) * 2)?, - attention_scores: Buffer::bytes( - u64::from(DENSE_BUDGET) * u64::from(ATTN_HEADS) * row_count * 2, + dense_keys: Buffer::bytes( + u64::from(PREFILL_DENSE_BUDGET) * u64::from(ATTN_KV_WIDTH) * 2, + )?, + dense_values: Buffer::bytes( + u64::from(PREFILL_DENSE_BUDGET) * u64::from(ATTN_KV_WIDTH) * 2, )?, ple_packed: Buffer::bytes(row_count * PLE_HEADS as u64 * 80)?, ple_scales: Buffer::bytes(row_count * PLE_HEADS as u64 * 10)?, @@ -320,6 +361,10 @@ pub(in crate::engine) struct QwenExecutor { tokens: Vec, position: u32, context: u32, + prefill_chunk: usize, + power_percent: u8, + prefill_layer_average: Vec, + decode_average: f64, checkpoint_tag: [u8; 32], mtp: Option, pending_sampled: Option, @@ -351,6 +396,8 @@ impl QwenExecutor { Self::open_configured_with_hyper( model, context, + 0, + 100, EngineSpeculativeSettings::default(), true, true, @@ -360,11 +407,15 @@ impl QwenExecutor { pub(super) fn open_configured( model: QwenModel, context: u32, + prefill_chunk: u32, + power_percent: u8, speculative: EngineSpeculativeSettings, ) -> Result { Self::open_configured_with_hyper( model, context, + prefill_chunk, + power_percent, speculative, qwen_feature_enabled("DS4SERVER_QWEN38_FUSED_HYPER"), true, @@ -374,6 +425,8 @@ impl QwenExecutor { fn open_configured_with_hyper( mut model: QwenModel, context: u32, + prefill_chunk: u32, + power_percent: u8, speculative: EngineSpeculativeSettings, fused_hyper: bool, materialize: bool, @@ -422,6 +475,18 @@ impl QwenExecutor { tokens: Vec::new(), position: 0, context, + prefill_chunk: if prefill_chunk == 0 { + QWEN_DEFAULT_PREFILL_CHUNK as usize + } else { + prefill_chunk as usize + }, + power_percent: if power_percent == 0 { + 100 + } else { + power_percent + }, + prefill_layer_average: vec![0.0; LAYERS], + decode_average: 0.0, checkpoint_tag: [0; 32], mtp, pending_sampled: None, @@ -651,6 +716,7 @@ impl QwenExecutor { self.context )); } + let started = Instant::now(); let commands = Commands::begin()?; self.begin_token(token)?; for layer in 0..LAYERS { @@ -664,6 +730,11 @@ impl QwenExecutor { self.scratch.logits.read_f32(&mut self.logits)?; self.tokens.push(token); self.position += 1; + throttle( + &mut self.decode_average, + started.elapsed(), + self.power_percent, + ); Ok(()) } @@ -764,6 +835,11 @@ impl QwenExecutor { } self.tokens.extend_from_slice(tokens); self.position += rows; + throttle( + &mut self.decode_average, + total_started.elapsed(), + self.power_percent, + ); Ok((logits, probabilities)) } @@ -802,9 +878,11 @@ impl QwenExecutor { )); } let rows = tokens.len() as u32; - let commands = Commands::begin()?; + let profile = std::env::var_os("DS4SERVER_QWEN38_PREFILL_PROFILE").is_some(); + let mut commands = Commands::begin()?; self.begin_tokens(tokens)?; for layer in 0..LAYERS { + let started = Instant::now(); let prefix = format!("language_model.model.layers.{layer}"); if layer == 1 { self.ple_batch(tokens)?; @@ -818,6 +896,23 @@ impl QwenExecutor { } self.hyper_write_rows(rows)?; self.encode_moe_rows(&prefix, rows)?; + if self.power_percent < 100 || profile { + commands.finish()?; + if profile { + eprintln!( + "DS4SERVER_QWEN38_PREFILL layer={layer} rows={rows} ms={:.3}", + started.elapsed().as_secs_f64() * 1_000.0 + ); + } + if self.power_percent < 100 { + throttle( + &mut self.prefill_layer_average[layer], + started.elapsed(), + self.power_percent, + ); + } + commands = Commands::begin()?; + } } self.mix_output_rows("language_model.model.hyper_connection_mixer", rows)?; let final_block = self.scratch.block.view( @@ -1613,23 +1708,15 @@ impl QwenExecutor { 1, )?; } - let mut conv_norm = args(); - conv_norm.u[4] = rows; - conv_norm.u[12] = 1024; - self.dispatch_with_d( - c"kernel_qwen_gdn_conv_norm_rows", + encode_gdn_conv_norm_rows( + qkv_out, q_out, - Some(qkv_out), - Some(k_out), - Some(&self.scratch.gdn_out), - Some(conv_out), - &[ - buffer_weight_view(conv, u64::from(GDN_QKV) * 3 * 2), - self.view(self.weight(&format!("{prefix}.linear_attn.conv1d.weight"))?), - ], - &conv_norm, - GDN_QKV / 1024, - 1, + k_out, + &self.scratch.gdn_out, + conv, + conv_out, + self.view(self.weight(&format!("{prefix}.linear_attn.conv1d.weight"))?), + rows, )?; let mut controls = args(); controls.u[0] = GDN_VALUE; @@ -1667,22 +1754,14 @@ impl QwenExecutor { target.copy_from(0, source, 0, u64::from(rows * width) * 4, message)?; } } - let mut delta = controls; - delta.u[12] = 64; - self.dispatch_with_d( - c"kernel_qwen_gdn_delta_rows", + encode_gdn_delta_rows( &self.scratch.gdn_out, - Some(q_out), - Some(k_out), - Some(&self.scratch.controls), - Some(recurrent_out), - &[buffer_weight_view( - recurrent, - u64::from(GDN_HEADS_V) * HEAD_DIM as u64 * HEAD_DIM as u64 * 4, - )], - &delta, - HEAD_DIM / 16, - GDN_HEADS_V, + q_out, + k_out, + &self.scratch.controls, + recurrent, + recurrent_out, + rows, )?; let mut norm = controls; norm.u[12] = 32; @@ -2191,7 +2270,7 @@ impl QwenExecutor { ATTN_KV_WIDTH, rows, )?; - if position + rows <= DENSE_BUDGET { + if position + rows <= dense_attention_budget(rows) { let mut dense = args(); dense.u[0] = ATTN_HEADS; dense.u[1] = ATTN_KV_HEADS; @@ -2201,41 +2280,37 @@ impl QwenExecutor { dense.u[5] = position; dense.u[12] = 1024; if rows * (ATTN_HEADS / ATTN_KV_HEADS) > 32 { - dense.u[12] = 32; + let mut prepare = args(); + prepare.u[0] = ATTN_KV_WIDTH; + prepare.u[1] = ATTN_DIM; + prepare.u[3] = position + rows; self.dispatch( - c"kernel_qwen_attention_fallback_scores", - &self.scratch.attention_scores, - Some(&self.scratch.attention), + c"kernel_qwen_prepare_dense_kv_f16", + &self.scratch.dense_keys, Some(kv), + Some(&self.scratch.dense_values), None, &[], - &dense, - ATTN_HEADS, - rows, + &prepare, + ATTN_KV_WIDTH, + position + rows, )?; - dense.u[12] = (position + rows).div_ceil(4).div_ceil(32) * 32; - self.dispatch( - c"kernel_qwen_attention_fallback_softmax", - &self.scratch.attention_scores, - Some(&self.scratch.attention_scores), - None, - None, - &[], - &dense, - ATTN_HEADS * rows, - 1, - )?; - dense.u[12] = 32; - self.dispatch( - c"kernel_qwen_attention_fallback_output", - &self.scratch.q, - Some(&self.scratch.attention_scores), - Some(kv), - None, - &[], - &dense, - ATTN_HEADS, - rows, + call( + unsafe { + ds4_gpu_qwen_attention_flash_staged_tensor( + self.scratch.q.raw(), + self.scratch.attention.raw(), + self.scratch.dense_keys.raw(), + self.scratch.dense_values.raw(), + position, + rows, + position + rows, + ATTN_HEADS, + ATTN_KV_HEADS, + ATTN_DIM, + ) + }, + "running Qwen prefill FlashAttention", )?; return self.finish_attention_rows(prefix, rows); } @@ -2295,30 +2370,109 @@ impl QwenExecutor { rows, )?; } else { - let qsa_blocks = qsa_block_capacity(self.context)?; - for row in 0..rows { - let f32_view = |buffer: &Buffer, width: u32| { - buffer.view(u64::from(row) * u64::from(width) * 4, u64::from(width) * 4) - }; - let attention = f32_view(&self.scratch.attention, ATTN_WIDTH)?; - let q = f32_view(&self.scratch.q, ATTN_WIDTH)?; - let qsa_query = f32_view(&self.scratch.qsa_qk, QSA_HEADS * QSA_DIM)?; - let scores = f32_view(&self.scratch.qsa_scores, qsa_blocks)?; - let selected = self.scratch.qsa_selected.view( - u64::from(row) * u64::from(QSA_TOP_K) * 4, - u64::from(QSA_TOP_K) * 4, + let complete_blocks = (position + rows) / QSA_RATIO; + let mut score = args(); + score.u[0] = QSA_DIM; + score.u[1] = QSA_HEADS; + score.u[2] = complete_blocks; + score.u[3] = position + 1; + score.u[5] = QSA_RATIO; + score.f[0] = (QSA_DIM as f32).sqrt().recip(); + self.dispatch( + c"kernel_qwen_qsa_scores", + &self.scratch.qsa_scores, + Some(&self.scratch.qsa_qk), + Some(qsa_pooled), + None, + &[], + &score, + complete_blocks, + rows, + )?; + call( + unsafe { + ds4_gpu_indexer_topk_tensor( + self.scratch.qsa_selected.raw(), + self.scratch.qsa_scores.raw(), + complete_blocks, + rows, + QSA_TOP_K, + ) + }, + "selecting batched Qwen QSA blocks", + )?; + if packed_dense_qsa(rows, position + rows) { + let mut mask = args(); + mask.u[0] = position + rows; + mask.u[4] = rows; + mask.u[5] = QSA_RATIO; + mask.u[6] = QSA_TOP_K; + mask.u[8] = position + 1; + mask.u[12] = 512; + self.dispatch( + c"kernel_qwen_qsa_mask", + &self.scratch.causal_mask, + Some(&self.scratch.qsa_selected), + None, + None, + &[], + &mask, + rows, + 1, )?; - self.attend_row( - kv, - qsa_pooled, - position + row, - &attention, - &q, - &qsa_query, - &scores, - &selected, + let mut dense = args(); + dense.u[0] = ATTN_HEADS; + dense.u[1] = ATTN_KV_HEADS; + dense.u[2] = ATTN_DIM; + dense.u[3] = position + rows; + dense.u[4] = rows; + dense.u[12] = 1024; + self.dispatch( + c"kernel_qwen_dense_attention_masked", + &self.scratch.q, + Some(&self.scratch.attention), + Some(kv), + Some(&self.scratch.causal_mask), + &[], + &dense, + ATTN_HEADS, + rows, )?; + return self.finish_attention_rows(prefix, rows); } + let mut order = args(); + order.u[0] = QSA_TOP_K; + self.dispatch( + c"kernel_qwen_qsa_sort_blocks", + &self.scratch.qsa_selected, + None, + None, + None, + &[], + &order, + rows, + 1, + )?; + let mut sparse = args(); + sparse.u[0] = ATTN_HEADS; + sparse.u[1] = ATTN_KV_HEADS; + sparse.u[2] = ATTN_DIM; + sparse.u[3] = position + rows; + sparse.u[4] = QSA_TOP_K; + sparse.u[5] = QSA_RATIO; + sparse.u[8] = position + 1; + sparse.u[12] = 256; + self.dispatch( + c"kernel_qwen_sparse_attention", + &self.scratch.q, + Some(&self.scratch.attention), + Some(kv), + Some(&self.scratch.qsa_selected), + &[], + &sparse, + ATTN_HEADS, + rows, + )?; } self.finish_attention_rows(prefix, rows) } @@ -2427,7 +2581,7 @@ impl QwenExecutor { values.u[3] = tokens; values.u[4] = 1; values.u[5] = position; - if tokens <= DENSE_BUDGET { + if tokens <= DECODE_DENSE_BUDGET { values.u[12] = 1024; return self.dispatch( c"kernel_qwen_dense_attention", @@ -2471,6 +2625,39 @@ impl QwenExecutor { }, "selecting Qwen QSA blocks", )?; + if packed_dense_qsa(1, tokens) { + let mut mask = args(); + mask.u[0] = tokens; + mask.u[4] = 1; + mask.u[5] = QSA_RATIO; + mask.u[6] = QSA_TOP_K; + mask.u[8] = position + 1; + mask.u[12] = 512; + self.dispatch( + c"kernel_qwen_qsa_mask", + &self.scratch.causal_mask, + Some(qsa_selected), + None, + None, + &[], + &mask, + 1, + 1, + )?; + values.u[4] = 1; + values.u[12] = 1024; + return self.dispatch( + c"kernel_qwen_dense_attention_masked", + output, + Some(query), + Some(kv), + Some(&self.scratch.causal_mask), + &[], + &values, + ATTN_HEADS, + 1, + ); + } let mut order = args(); order.u[0] = QSA_TOP_K; self.dispatch( @@ -2549,6 +2736,14 @@ impl QwenExecutor { } fn routed_experts_rows(&self, prefix: &str, rows: u32) -> Result<(), String> { + if rows > VERIFY_ROWS as u32 { + self.prepare_routed_expert_map(rows)?; + return self.routed_experts_sorted_rows(prefix, rows); + } + self.routed_experts_grouped_rows(prefix, rows) + } + + fn routed_experts_grouped_rows(&self, prefix: &str, rows: u32) -> Result<(), String> { let gate = self.affine_table( &format!("{prefix}.mlp.switch_mlp.gate_proj"), HIDDEN, @@ -2628,6 +2823,94 @@ impl QwenExecutor { ) } + fn routed_experts_sorted_rows(&self, prefix: &str, rows: u32) -> Result<(), String> { + let mut gather = args(); + gather.u[0] = HIDDEN; + gather.u[4] = rows; + gather.u[6] = self.scratch.rows * EXPERTS_USED as u32; + gather.u[8] = EXPERTS_USED as u32; + self.dispatch( + c"kernel_qwen_route_gather_rows", + &self.scratch.expert, + Some(&self.scratch.block), + Some(&self.scratch.route_work), + None, + &[], + &gather, + HIDDEN, + rows * EXPERTS_USED as u32, + )?; + + let gate = self.affine_table( + &format!("{prefix}.mlp.switch_mlp.gate_proj"), + HIDDEN, + EXPERT_WIDTH, + )?; + let up = self.affine_table( + &format!("{prefix}.mlp.switch_mlp.up_proj"), + HIDDEN, + EXPERT_WIDTH, + )?; + self.affine_sorted_qmm_into( + &gate, + &self.scratch.expert, + &self.scratch.gate, + HIDDEN, + EXPERT_WIDTH, + rows, + )?; + self.affine_sorted_qmm_into( + &up, + &self.scratch.expert, + &self.scratch.up, + HIDDEN, + EXPERT_WIDTH, + rows, + )?; + let mut swiglu = args(); + swiglu.u[0] = EXPERT_WIDTH * EXPERTS_USED as u32 * rows; + self.dispatch( + c"kernel_qwen_swiglu_bf16", + &self.scratch.mid, + Some(&self.scratch.gate), + Some(&self.scratch.up), + None, + &[], + &swiglu, + EXPERT_WIDTH * EXPERTS_USED as u32 * rows, + 1, + )?; + let down = self.affine_table( + &format!("{prefix}.mlp.switch_mlp.down_proj"), + EXPERT_WIDTH, + HIDDEN, + )?; + self.affine_sorted_qmm_into( + &down, + &self.scratch.mid, + &self.scratch.expert, + EXPERT_WIDTH, + HIDDEN, + rows, + )?; + let mut sum = args(); + sum.u[0] = HIDDEN * rows; + sum.u[1] = HIDDEN; + sum.u[4] = rows; + sum.u[8] = EXPERTS_USED as u32; + self.dispatch( + c"kernel_qwen_weighted_sum10_sorted", + &self.scratch.moe, + Some(&self.scratch.expert), + Some(&self.scratch.route_weights), + Some(&self.scratch.route_work), + &[], + &sum, + HIDDEN * rows, + 1, + ) + } + #[cfg(test)] fn shared_expert(&self, prefix: &str) -> Result<(), String> { self.shared_expert_rows(prefix, 1) @@ -3175,9 +3458,25 @@ impl QwenExecutor { values.u[10] = 0; values.u[11] = u32::from(bf16_output); values.u[12] = 128; - return self.dispatch( + let splits = if bf16_output { + affine_qmm_splits(in_dim, out_dim, rows, weight.group) + } else { + 1 + }; + let partial_elements = u64::from(splits) * u64::from(rows) * u64::from(out_dim); + if splits > 1 && (splits > 256 || partial_elements > QMM_SPLIT_ELEMENTS) { + return Err( + "Qwen affine split-K exceeds the supported reduction/scratch bound".into(), + ); + } + values.u[8] = splits; + self.dispatch( self.affine_qmm_kernel(weight, rows)?, - output, + if splits > 1 { + &self.scratch.qmm_partials + } else { + output + }, Some(input), None, None, @@ -3188,8 +3487,23 @@ impl QwenExecutor { ], &values, out_dim.div_ceil(64), - rows.div_ceil(if rows <= 32 { 32 } else { 64 }), - ); + rows.div_ceil(if rows <= 32 { 32 } else { 64 }) * splits, + )?; + if splits > 1 { + values.u[12] = 64; + self.dispatch( + c"kernel_qwen_affine_splitk_reduce", + output, + Some(&self.scratch.qmm_partials), + None, + None, + &[], + &values, + (rows * out_dim).div_ceil(2), + 1, + )?; + } + return Ok(()); } let mut values = args(); values.u[0] = in_dim; @@ -3227,6 +3541,17 @@ impl QwenExecutor { rows: u32, per_expert_input: bool, ) -> Result<(), String> { + if rows > VERIFY_ROWS as u32 { + return self.affine_gather_qmm_into( + weight, + input, + output, + in_dim, + out_dim, + rows, + per_expert_input, + ); + } let mut values = args(); values.u[0] = in_dim; values.u[1] = out_dim; @@ -3271,6 +3596,26 @@ impl QwenExecutor { if gate.bits != up.bits || gate.group != up.group { return Err("Qwen gate/up projections use different quantization layouts".into()); } + if gather && rows > VERIFY_ROWS as u32 { + self.affine_gather_qmm_into( + gate, + input, + gate_output, + in_dim, + out_dim, + rows, + per_expert_input, + )?; + return self.affine_gather_qmm_into( + up, + input, + up_output, + in_dim, + out_dim, + rows, + per_expert_input, + ); + } let mut values = args(); values.u[0] = in_dim; values.u[1] = out_dim; @@ -3312,6 +3657,132 @@ impl QwenExecutor { ) } + fn prepare_routed_expert_map(&self, rows: u32) -> Result<(), String> { + let mut values = args(); + values.u[4] = rows; + values.u[8] = EXPERTS_USED as u32; + values.u[10] = EXPERTS * EXPERTS_USED as u32 * 2; + values.u[12] = EXPERTS; + self.dispatch( + c"kernel_qwen_route_map", + &self.scratch.route_counts, + Some(&self.scratch.route_ids), + Some(&self.scratch.route_map), + Some(&self.scratch.route_work), + &[], + &values, + 1, + 1, + ) + } + + #[allow(clippy::too_many_arguments)] + fn affine_gather_qmm_into( + &self, + weight: &Affine<'_>, + input: &Buffer, + output: &Buffer, + in_dim: u32, + out_dim: u32, + rows: u32, + per_expert_input: bool, + ) -> Result<(), String> { + if unsafe { ds4_gpu_metal4_tensor_api_enabled() } == 0 { + return Err("Qwen grouped prefill MoE requires the Metal 4 tensor API".into()); + } + let kernel = match (weight.bits, weight.group) { + (4, 32) => c"kernel_qwen_affine_gather_qmm_mpp_b4g32", + (4, 64) => c"kernel_qwen_affine_gather_qmm_mpp_b4g64", + (8, 64) => c"kernel_qwen_affine_gather_qmm_mpp_b8g64", + _ => { + return Err(format!( + "Qwen grouped affine QMM does not support {}-bit group-{} weights", + weight.bits, weight.group + )); + } + }; + let mut values = args(); + values.u[0] = in_dim; + values.u[1] = out_dim; + values.u[4] = rows; + values.u[5] = u32::from(per_expert_input); + values.u[8] = EXPERTS_USED as u32; + values.u[10] = 64 * 64 * 4; + values.u[11] = 1; + values.u[12] = 128; + let max_work_items = rows + .saturating_mul(EXPERTS_USED as u32) + .div_ceil(64) + .saturating_add(EXPERTS); + self.dispatch_with_d( + kernel, + output, + Some(input), + Some(&self.scratch.route_map), + Some(&self.scratch.route_work), + Some(&self.scratch.route_counts), + &[ + self.view(weight.packed), + self.view(weight.scales), + self.view(weight.biases), + ], + &values, + out_dim.div_ceil(64), + max_work_items, + ) + } + + #[allow(clippy::too_many_arguments)] + fn affine_sorted_qmm_into( + &self, + weight: &Affine<'_>, + input: &Buffer, + output: &Buffer, + in_dim: u32, + out_dim: u32, + rows: u32, + ) -> Result<(), String> { + let kernel = match (weight.bits, weight.group) { + (4, 32) => c"kernel_qwen_affine_sorted_qmm_mpp_b4g32", + (4, 64) => c"kernel_qwen_affine_sorted_qmm_mpp_b4g64", + (8, 64) => c"kernel_qwen_affine_sorted_qmm_mpp_b8g64", + _ => { + return Err(format!( + "Qwen sorted affine QMM does not support {}-bit group-{} weights", + weight.bits, weight.group + )); + } + }; + let mut values = args(); + values.u[0] = in_dim; + values.u[1] = out_dim; + values.u[4] = rows; + values.u[6] = self.scratch.rows * EXPERTS_USED as u32; + values.u[8] = EXPERTS_USED as u32; + values.u[11] = 1; + values.u[12] = 128; + let max_work_items = rows + .saturating_mul(EXPERTS_USED as u32) + .div_ceil(64) + .saturating_add(EXPERTS); + self.dispatch_with_d( + kernel, + output, + Some(input), + Some(&self.scratch.route_map), + Some(&self.scratch.route_work), + Some(&self.scratch.route_counts), + &[ + self.view(weight.packed), + self.view(weight.scales), + self.view(weight.biases), + ], + &values, + out_dim.div_ceil(64), + max_work_items, + ) + } + fn bf16_mv( &self, weight: Weight<'_>, @@ -3600,6 +4071,37 @@ impl QwenExecutor { Ok(Some(distributions)) } + #[cfg(test)] + fn target_probabilities_row( + &self, + row: usize, + temperature: f32, + top_p: f32, + min_p: f32, + top_k: i32, + ) -> Result { + let logits = self + .scratch + .logits + .view(row as u64 * u64::from(VOCAB) * 4, u64::from(VOCAB) * 4)?; + let commands = Commands::begin()?; + let sparse = self.encode_sparse_probabilities(&logits, 1, temperature, top_k)?; + commands.finish()?; + if sparse + && let Some(mut rows) = self.read_sparse_probabilities(1, top_p, min_p, top_k)? + && let Some(probabilities) = rows.pop() + { + return Ok(probabilities); + } + Ok(qwen_sampling_probabilities( + &self.logits_row(row)?, + temperature, + top_p, + min_p, + top_k, + )) + } + fn mtp_history_batch(&mut self, tokens: &[i32], position: u32) -> Result<(), String> { let commands = Commands::begin()?; self.encode_mtp_history_batch(tokens, position)?; @@ -4213,25 +4715,14 @@ impl QwenExecutor { u64::from(rows * GDN_VALUE) * 4, "restoring captured Qwen verifier GDN value rows", )?; - let mut verify = args(); - verify.u[0] = GDN_VALUE; - verify.u[1] = GDN_VALUE + GDN_HEADS_V; - verify.u[4] = rows; - verify.u[12] = 64; - self.dispatch_with_d( - c"kernel_qwen_gdn_delta_rows", + encode_gdn_delta_rows( &self.scratch.gdn_out, - Some(&capture.q), - Some(&capture.k), - Some(&capture.controls), - Some(recurrent), - &[buffer_weight_view( - recurrent, - u64::from(GDN_HEADS_V) * HEAD_DIM as u64 * HEAD_DIM as u64 * 4, - )], - &verify, - HEAD_DIM / 16, - GDN_HEADS_V, + &capture.q, + &capture.k, + &capture.controls, + recurrent, + recurrent, + rows, )?; let mut commit = args(); commit.u[0] = GDN_QKV; @@ -4671,7 +5162,7 @@ impl QwenExecutor { let _ = self.mtp_step(tokens[0], self.position - 1, false, None)?; } let body = tokens.len() - 1; - let capacity = body.clamp(1, PREFILL_CHUNK) as u32; + let capacity = body.clamp(1, self.prefill_chunk) as u32; let batch_scratch = Scratch::new(self.context, capacity)?; let decode_scratch = std::mem::replace(&mut self.scratch, batch_scratch); let mut completed = 0; @@ -4680,7 +5171,7 @@ impl QwenExecutor { if !progress(completed as u32) { break; } - let rows = (body - completed).min(PREFILL_CHUNK); + let rows = (body - completed).min(self.prefill_chunk); self.eval_prefill_batch( &tokens[completed..completed + rows], has_mtp.then_some(&tokens[completed + 1..completed + rows + 1]), @@ -4835,7 +5326,7 @@ impl QwenExecutor { Ok(QwenResidentState { states: allocate_states(self.context)?, ple_state: allocate_ple_state()?, - hidden: Buffer::floats(HC_WIDTH.into())?, + hidden: Buffer::floats(VERIFY_ROWS * u64::from(HC_WIDTH))?, logits: vec![0.0; VOCAB as usize], tokens: Vec::new(), position: 0, @@ -5119,6 +5610,81 @@ impl QwenExecutor { } } +#[allow(clippy::too_many_arguments)] +fn encode_gdn_conv_norm_rows( + input: &Buffer, + q: &Buffer, + k: &Buffer, + v: &Buffer, + state: &Buffer, + state_out: &Buffer, + weight: QwenWeightView, + rows: u32, +) -> Result<(), String> { + let state_bytes = u64::from(GDN_QKV) * 3 * 2; + // Reuse the existing GDN scratch tail. Parallel rows must all see the old + // convolution state, even when the caller commits back into that state. + let staged = (rows > 6) + .then(|| v.view(u64::from(rows * GDN_VALUE) * 4, state_bytes)) + .transpose()?; + let mut params = args(); + params.u[4] = rows; + params.u[12] = 1024; + dispatch_qwen_with_d( + c"kernel_qwen_gdn_conv_norm_rows", + q, + Some(input), + Some(k), + Some(v), + Some(staged.as_ref().unwrap_or(state_out)), + &[buffer_weight_view(state, state_bytes), weight], + ¶ms, + GDN_QKV / 1024, + if rows > 6 { rows } else { 1 }, + )?; + if let Some(staged) = staged { + state_out.copy_from( + 0, + &staged, + 0, + state_bytes, + "committing Qwen prefill convolution state", + )?; + } + Ok(()) +} + +fn encode_gdn_delta_rows( + values: &Buffer, + q: &Buffer, + k: &Buffer, + controls: &Buffer, + state: &Buffer, + state_out: &Buffer, + rows: u32, +) -> Result<(), String> { + let mut params = args(); + params.u[0] = GDN_VALUE; + params.u[1] = GDN_VALUE + GDN_HEADS_V; + params.u[4] = rows; + params.u[12] = 64; + dispatch_qwen_with_d( + c"kernel_qwen_gdn_delta_rows", + values, + Some(q), + Some(k), + Some(controls), + Some(state_out), + &[buffer_weight_view( + state, + u64::from(GDN_HEADS_V * HEAD_DIM * HEAD_DIM) * 4, + )], + ¶ms, + HEAD_DIM / 16, + GDN_HEADS_V, + ) +} + fn allocate_states(context: u32) -> Result, String> { let token_capacity = context .checked_add(MTP_TOKEN_RESERVE) @@ -5710,6 +6276,250 @@ mod tests { } } + #[test] + fn dense_attention_crossover_is_phase_specific() { + assert_eq!(dense_attention_budget(1), DECODE_DENSE_BUDGET); + assert_eq!( + dense_attention_budget(VERIFY_ROWS as u32), + DECODE_DENSE_BUDGET + ); + assert_eq!( + dense_attention_budget(VERIFY_ROWS as u32 + 1), + PREFILL_DENSE_BUDGET + ); + assert!(packed_dense_qsa(VERIFY_ROWS as u32, 8_192)); + assert!(packed_dense_qsa(1, 8_192)); + assert!(!packed_dense_qsa(VERIFY_ROWS as u32 + 1, 8_192)); + assert!(!packed_dense_qsa( + VERIFY_ROWS as u32, + QSA_VERIFY_DENSE_LIMIT + )); + } + + #[test] + #[ignore = "requires Apple Metal"] + fn qwen_gdn_conv_norm_rows_matches_mtplx() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let root = PathBuf::from(std::env::var_os("DS4SERVER_GDN_REFERENCE").expect( + "generate fixtures with tools/qwen-gdn-reference.py and set DS4SERVER_GDN_REFERENCE", + )); + let read = |name: &str| { + fs::read(root.join(format!("{name}.f32"))) + .unwrap() + .chunks_exact(4) + .map(|bytes| f32::from_le_bytes(bytes.try_into().unwrap())) + .collect::>() + }; + let upload_bf16 = |values: &[f32]| { + let bytes = values + .iter() + .flat_map(|x| bf16(*x).to_le_bytes()) + .collect::>(); + let buffer = Buffer::bytes(bytes.len() as u64).unwrap(); + buffer.write(0, &bytes).unwrap(); + buffer + }; + let state = upload_bf16(&read("state")); + let weights = upload_bf16(&read("weight")); + let mut failures = Vec::new(); + for rows in [1_u32, 2, 3, 4, 5, 6, 7, 32, 2048] { + let input = Buffer::floats(u64::from(rows * GDN_QKV)).unwrap(); + input.write_f32(&read(&format!("{rows}-input"))).unwrap(); + let q = Buffer::floats(u64::from(rows * 2048)).unwrap(); + let k = Buffer::floats(u64::from(rows * 2048)).unwrap(); + let v = Buffer::bytes(u64::from(rows * GDN_VALUE) * 4 + u64::from(GDN_QKV) * 3 * 2) + .unwrap(); + let state_out = Buffer::bytes(u64::from(GDN_QKV) * 3 * 2).unwrap(); + let mut wall_ms = Vec::new(); + for run in 0..11 { + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + encode_gdn_conv_norm_rows( + &input, + &q, + &k, + &v, + &state, + &state_out, + buffer_weight_view(&weights, u64::from(GDN_QKV) * 4 * 2), + rows, + ) + .unwrap(); + commands.finish().unwrap(); + if run > 0 { + wall_ms.push(started.elapsed().as_secs_f64() * 1000.0); + } + } + // Production prefills commit into the input state. Exercise that + // alias as well; updating it inside a parallel kernel would race. + let commands = Commands::begin().unwrap(); + state_out + .copy_from( + 0, + &state, + 0, + u64::from(GDN_QKV) * 3 * 2, + "resetting test convolution state", + ) + .unwrap(); + encode_gdn_conv_norm_rows( + &input, + &q, + &k, + &v, + &state_out, + &state_out, + buffer_weight_view(&weights, u64::from(GDN_QKV) * 4 * 2), + rows, + ) + .unwrap(); + commands.finish().unwrap(); + for (name, buffer, width) in [("q", &q, 2048), ("k", &k, 2048), ("v", &v, GDN_VALUE)] { + let mut actual = vec![0.0; (rows * width) as usize]; + buffer.read_f32(&mut actual).unwrap(); + let expected = read(&format!("{rows}-{name}")); + assert_eq!(actual.len(), expected.len()); + let mismatches = actual.iter().zip(&expected).filter(|(a, b)| a != b).count(); + let max_error = actual + .iter() + .zip(&expected) + .map(|(a, b)| (a - b).abs()) + .fold(0.0_f32, f32::max); + eprintln!( + "GDN_REFERENCE rows={rows} tensor={name} mismatches={mismatches} max_abs={max_error}" + ); + if mismatches > 0 { + failures.push((rows, name, mismatches, max_error)); + } + } + let mut bytes = vec![0; GDN_QKV as usize * 3 * 2]; + state_out.read(0, &mut bytes).unwrap(); + let expected = read(&format!("{rows}-state")) + .iter() + .flat_map(|x| bf16(*x).to_le_bytes()) + .collect::>(); + assert_eq!(bytes, expected, "state rows={rows}"); + eprintln!("GDN_TIMING rows={rows} wall_ms={wall_ms:?}"); + } + assert!(failures.is_empty(), "GDN differs from MTPLX: {failures:?}"); + } + + #[test] + #[ignore = "requires Apple Metal"] + fn qwen_gdn_delta_rows_matches_mtplx() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let root = PathBuf::from( + std::env::var_os("DS4SERVER_GDN_REFERENCE") + .expect("generate tools/qwen-gdn-reference.py --delta fixtures first"), + ); + let read = |name: &str| { + let bytes = fs::read(root.join(format!("delta-{name}.f32"))).unwrap(); + assert_eq!(bytes.len() % 4, 0); + bytes + .chunks_exact(4) + .map(|bytes| f32::from_le_bytes(bytes.try_into().unwrap())) + .collect::>() + }; + let upload = |values: &[f32]| { + let buffer = Buffer::floats(values.len() as u64).unwrap(); + buffer.write_f32(values).unwrap(); + buffer + }; + let initial = read("initial"); + let state = upload(&initial); + let state_out = Buffer::floats(initial.len() as u64).unwrap(); + let mut failures = Vec::new(); + for rows in [1_u32, 2, 3, 4, 5, 6, 7, 32, 2048] { + let q = upload(&read(&format!("{rows}-q"))); + let k = upload(&read(&format!("{rows}-k"))); + let v = read(&format!("{rows}-v")); + let values = upload(&v); + let g = read(&format!("{rows}-g")); + let beta = read(&format!("{rows}-beta")); + let mut controls = vec![0.0; (rows * GDN_CONTROLS) as usize]; + for row in 0..rows as usize { + let offset = row * GDN_CONTROLS as usize + GDN_VALUE as usize; + let source = row * GDN_HEADS_V as usize; + controls[offset..offset + GDN_HEADS_V as usize] + .copy_from_slice(&beta[source..source + GDN_HEADS_V as usize]); + controls[offset + GDN_HEADS_V as usize..offset + 2 * GDN_HEADS_V as usize] + .copy_from_slice(&g[source..source + GDN_HEADS_V as usize]); + } + let controls = upload(&controls); + let mut wall_ms = Vec::new(); + for run in 0..11 { + values.write_f32(&v).unwrap(); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + encode_gdn_delta_rows(&values, &q, &k, &controls, &state, &state_out, rows) + .unwrap(); + commands.finish().unwrap(); + if run > 0 { + wall_ms.push(started.elapsed().as_secs_f64() * 1000.0); + } + } + let mut check = |stage: &str| { + for (name, buffer, count) in [ + ("out", &values, v.len()), + ("state", &state_out, initial.len()), + ] { + let mut actual = vec![0.0; count]; + buffer.read_f32(&mut actual).unwrap(); + let expected = read(&format!("{rows}-{name}")); + assert_eq!(actual.len(), expected.len()); + let mismatches = actual.iter().zip(&expected).filter(|(a, b)| a != b).count(); + let max_error = actual + .iter() + .zip(&expected) + .map(|(a, b)| (a - b).abs()) + .fold(0.0_f32, f32::max); + eprintln!( + "GDN_DELTA rows={rows} stage={stage} tensor={name} mismatches={mismatches} max_abs={max_error}" + ); + if mismatches > 0 { + failures.push((rows, name, mismatches, max_error)); + } + } + }; + check("whole"); + // Check continuation and production's in-place state commit too. + // Splitting the token sequence must preserve the same recurrence. + values.write_f32(&v).unwrap(); + state_out.write_f32(&initial).unwrap(); + let commands = Commands::begin().unwrap(); + let split = rows.div_ceil(2); + for (start, count) in [(0, split), (split, rows - split)] { + if count == 0 { + continue; + } + let view = |buffer: &Buffer, width: u32| { + buffer + .view(u64::from(start * width) * 4, u64::from(count * width) * 4) + .unwrap() + }; + encode_gdn_delta_rows( + &view(&values, GDN_VALUE), + &view(&q, 2048), + &view(&k, 2048), + &view(&controls, GDN_CONTROLS), + &state_out, + &state_out, + count, + ) + .unwrap(); + } + commands.finish().unwrap(); + check("split_in_place"); + eprintln!("GDN_DELTA_TIMING rows={rows} wall_ms={wall_ms:?}"); + } + assert!( + failures.is_empty(), + "GDN delta differs from MTPLX: {failures:?}" + ); + } + #[test] #[ignore = "requires Apple Metal"] fn qwen_metal_primitives_match_reference_vectors() { @@ -6197,7 +7007,7 @@ mod tests { let scores = Buffer::floats(max_blocks.into()).unwrap(); let selected = Buffer::bytes(u64::from(QSA_TOP_K) * 4).unwrap(); - for depth in [2_048, 16_384, 65_536, 131_072, 262_144] { + for depth in [2_048, 5_228, 16_384, 65_536, 131_072, 262_144] { let blocks = depth / QSA_RATIO; let started = Instant::now(); let mut score = args(); @@ -6247,6 +7057,242 @@ mod tests { ); } + let blocks = 5_228 / QSA_RATIO; + let iterations = 100; + query + .write_f32(&vec![1.0; (QSA_HEADS * QSA_DIM) as usize]) + .unwrap(); + pooled + .write( + 0, + &(0..u64::from(blocks * QSA_DIM)) + .flat_map(|index| bf16((index % 127) as f32 / 127.0).to_le_bytes()) + .collect::>(), + ) + .unwrap(); + let mut score = args(); + score.u[0] = QSA_DIM; + score.u[1] = QSA_HEADS; + score.u[2] = blocks; + score.f[0] = (QSA_DIM as f32).sqrt().recip(); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + dispatch_qwen( + c"kernel_qwen_qsa_scores", + &scores, + Some(&query), + Some(&pooled), + None, + &[], + &score, + blocks, + 1, + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen QSA scores depth 5228: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + call( + unsafe { + ds4_gpu_indexer_topk_tensor(selected.raw(), scores.raw(), blocks, 1, QSA_TOP_K) + }, + "benchmarking Qwen QSA top-k", + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen QSA top-k depth 5228: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + dispatch_qwen( + c"kernel_qwen_qsa_scores", + &scores, + Some(&query), + Some(&pooled), + None, + &[], + &score, + blocks, + 1, + ) + .unwrap(); + call( + unsafe { + ds4_gpu_indexer_topk_tensor(selected.raw(), scores.raw(), blocks, 1, QSA_TOP_K) + }, + "benchmarking Qwen QSA score-to-top-k", + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen QSA score-to-top-k depth 5228: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + + let depth = 5_229_u32; + let cache = Buffer::bytes(u64::from(depth) * ATTN_KV_WIDTH as u64 * 4).unwrap(); + cache + .write( + 0, + &(0..u64::from(depth) * ATTN_KV_WIDTH as u64 * 2) + .flat_map(|_| bf16(1.0).to_le_bytes()) + .collect::>(), + ) + .unwrap(); + selected + .write_i32(&(0..QSA_TOP_K as i32).collect::>()) + .unwrap(); + let main_query = Buffer::floats(ATTN_WIDTH.into()).unwrap(); + main_query + .write_f32(&vec![1.0; ATTN_WIDTH as usize]) + .unwrap(); + let output = Buffer::floats(ATTN_WIDTH.into()).unwrap(); + let mask = Buffer::bytes(depth.into()).unwrap(); + let mut mask_args = args(); + mask_args.u[0] = depth; + mask_args.u[4] = 1; + mask_args.u[5] = QSA_RATIO; + mask_args.u[6] = QSA_TOP_K; + mask_args.u[8] = depth; + mask_args.u[12] = 512; + dispatch_qwen( + c"kernel_qwen_qsa_mask", + &mask, + Some(&selected), + None, + None, + &[], + &mask_args, + 1, + 1, + ) + .unwrap(); + let mut dense = args(); + dense.u[0] = ATTN_HEADS; + dense.u[1] = ATTN_KV_HEADS; + dense.u[2] = ATTN_DIM; + dense.u[3] = depth; + dense.u[4] = 1; + dense.u[12] = 1024; + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + dispatch_qwen( + c"kernel_qwen_dense_attention_masked", + &output, + Some(&main_query), + Some(&cache), + Some(&mask), + &[], + &dense, + ATTN_HEADS, + 1, + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen masked dense attention depth {depth}: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + dispatch_qwen( + c"kernel_qwen_qsa_scores", + &scores, + Some(&query), + Some(&pooled), + None, + &[], + &score, + blocks, + 1, + ) + .unwrap(); + call( + unsafe { + ds4_gpu_indexer_topk_tensor(selected.raw(), scores.raw(), blocks, 1, QSA_TOP_K) + }, + "benchmarking the complete Qwen QSA pipeline", + ) + .unwrap(); + dispatch_qwen( + c"kernel_qwen_qsa_mask", + &mask, + Some(&selected), + None, + None, + &[], + &mask_args, + 1, + 1, + ) + .unwrap(); + dispatch_qwen( + c"kernel_qwen_dense_attention_masked", + &output, + Some(&main_query), + Some(&cache), + Some(&mask), + &[], + &dense, + ATTN_HEADS, + 1, + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen complete QSA pipeline depth {depth}: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + dispatch_qwen( + c"kernel_qwen_qsa_mask", + &mask, + Some(&selected), + None, + None, + &[], + &mask_args, + 1, + 1, + ) + .unwrap(); + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + for _ in 0..iterations { + dispatch_qwen( + c"kernel_qwen_dense_attention_masked", + &output, + Some(&main_query), + Some(&cache), + Some(&mask), + &[], + &dense, + ATTN_HEADS, + 1, + ) + .unwrap(); + } + commands.finish().unwrap(); + eprintln!( + "Qwen scattered masked attention depth {depth}: {:.3} ms/call", + started.elapsed().as_secs_f64() * 1_000.0 / f64::from(iterations), + ); + let depth = 262_143_u32; let tail_start = depth / QSA_RATIO * QSA_RATIO; selected @@ -6299,10 +7345,53 @@ mod tests { eprintln!( "Qwen sparse attention depth {depth}, {} visible tokens: {:.3} ms", QSA_TOP_K * QSA_RATIO + depth - tail_start, - started.elapsed().as_secs_f64() * 1_000.0 + started.elapsed().as_secs_f64() * 1_000.0, ); } + #[test] + #[ignore = "requires Apple Metal"] + fn qwen_qsa_dense_mask_accepts_unsorted_blocks() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let tokens = 5_229_u32; + let selected_ids = (0..QSA_TOP_K) + .map(|index| ((index * 2) % (tokens / QSA_RATIO)) as i32) + .collect::>(); + let selected = Buffer::bytes(u64::from(QSA_TOP_K) * 4).unwrap(); + selected.write_i32(&selected_ids).unwrap(); + let mask = Buffer::bytes(tokens.into()).unwrap(); + let mut values = args(); + values.u[0] = tokens; + values.u[4] = 1; + values.u[5] = QSA_RATIO; + values.u[6] = QSA_TOP_K; + values.u[8] = tokens; + values.u[12] = 512; + dispatch_qwen( + c"kernel_qwen_qsa_mask", + &mask, + Some(&selected), + None, + None, + &[], + &values, + 1, + 1, + ) + .unwrap(); + + let mut actual = vec![0_u8; tokens as usize]; + mask.read(0, &mut actual).unwrap(); + let mut expected = vec![0_u8; tokens as usize]; + for block in selected_ids { + let token = block as usize * QSA_RATIO as usize; + expected[token..token + QSA_RATIO as usize].fill(1); + } + expected[tokens as usize - 1] = 1; + assert_eq!(actual, expected); + } + #[test] #[ignore = "requires the pinned 105 GB Qwen artifact set and Apple Metal"] fn qwen_qsa_full_context_preallocation_succeeds() { @@ -6315,6 +7404,8 @@ mod tests { let executor = QwenExecutor::open_configured_with_hyper( model, 262_144, + 0, + 100, EngineSpeculativeSettings::default(), false, false, @@ -6331,9 +7422,9 @@ mod tests { let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") .map(PathBuf::from) .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); - let model = QwenModel::open(&root, DENSE_BUDGET + 1).unwrap(); - let mut executor = QwenExecutor::open(model, DENSE_BUDGET + 1).unwrap(); - executor.position = DENSE_BUDGET; + let model = QwenModel::open(&root, DECODE_DENSE_BUDGET + 1).unwrap(); + let mut executor = QwenExecutor::open(model, DECODE_DENSE_BUDGET + 1).unwrap(); + executor.position = DECODE_DENSE_BUDGET; executor .scratch .block @@ -6342,8 +7433,11 @@ mod tests { let LayerState::Attention { kv, qsa_pooled, .. } = &executor.states[3] else { unreachable!() }; - kv.write(0, &vec![0; (DENSE_BUDGET * ATTN_KV_WIDTH * 4) as usize]) - .unwrap(); + kv.write( + 0, + &vec![0; (DECODE_DENSE_BUDGET * ATTN_KV_WIDTH * 4) as usize], + ) + .unwrap(); qsa_pooled .write(0, &vec![0; (QSA_TOP_K * QSA_DIM * 2) as usize]) .unwrap(); @@ -6404,7 +7498,7 @@ mod tests { for (depth, expected_digest, expected_token) in oracles { executor.reset().unwrap(); let start = depth - 4; - let prefix_bytes = u64::from(start.min(DENSE_BUDGET)) * ATTN_KV_WIDTH as u64 * 4; + let prefix_bytes = u64::from(start.min(DECODE_DENSE_BUDGET)) * ATTN_KV_WIDTH as u64 * 4; let pooled_bytes = u64::from(start / QSA_RATIO) * QSA_DIM as u64 * 2; let zero_kv = vec![0; prefix_bytes as usize]; let zero_pooled = vec![0; pooled_bytes as usize]; @@ -6944,7 +8038,7 @@ mod tests { glm_mtp: true, ..EngineSpeculativeSettings::default() }; - let mut executor = QwenExecutor::open_configured(model, 8, settings).unwrap(); + let mut executor = QwenExecutor::open_configured(model, 8, 0, 100, settings).unwrap(); let save = |name: &str, buffer: &Buffer, width: usize| { let mut values = vec![0.0; width]; buffer.read_f32(&mut values).unwrap(); @@ -8642,6 +9736,400 @@ mod tests { ); } + #[test] + #[ignore = "requires pinned Qwen embeddings and Apple Metal; stage profiler opt-in"] + fn qwen_stage_counters_preserve_async_batches() { + configure_sources().unwrap(); + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") + .map(PathBuf::from) + .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); + let executor = QwenExecutor::open_configured_with_hyper( + QwenModel::open(&root, 4).unwrap(), + 4, + 0, + 100, + EngineSpeculativeSettings::default(), + false, + false, + ) + .unwrap(); + let count = u64::from(HC_WIDTH) * 4; + let copied = Buffer::floats(count).unwrap(); + unsafe { ds4_gpu_busy_stats_reset() }; + let mut commands = Commands::begin().unwrap(); + executor.begin_tokens(&[1, 2, 3, 4]).unwrap(); + copied + .copy_from(0, &executor.scratch.hc, 0, count * 4, "stage test copy") + .unwrap(); + let mut values = args(); + values.u[0] = HIDDEN; + executor + .dispatch( + c"kernel_qwen_repeat4", + &executor.scratch.hc, + Some(&executor.scratch.hidden), + None, + None, + &[], + &values, + HC_WIDTH * 4, + 1, + ) + .unwrap(); + commands.flush().unwrap(); + copied + .copy_from( + 0, + &executor.scratch.hc, + 0, + count * 4, + "stage test async copy", + ) + .unwrap(); + commands.finish().unwrap(); + let mut stats = GpuBusyStats::default(); + unsafe { ds4_gpu_busy_stats_get(&mut stats) }; + assert_eq!(stats.command_buffers, 2); + let mut hidden = vec![0.0; HIDDEN as usize * 4]; + let mut actual = vec![0.0; count as usize]; + executor.scratch.hidden.read_f32(&mut hidden).unwrap(); + copied.read_f32(&mut actual).unwrap(); + for (row, result) in actual.chunks_exact(HC_WIDTH as usize).enumerate() { + for repeated in result.chunks_exact(HIDDEN as usize) { + assert_eq!( + repeated, + &hidden[row * HIDDEN as usize..(row + 1) * HIDDEN as usize] + ); + assert!(repeated.iter().all(|x| x.is_finite())); + } + } + } + + #[test] + #[ignore = "requires the pinned Qwen metadata and Apple Metal; no model inference"] + fn qwen_lazy_target_probabilities_match_batched_sampling() { + configure_sources().unwrap(); + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") + .map(PathBuf::from) + .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); + let executor = QwenExecutor::open_configured_with_hyper( + QwenModel::open(&root, 4).unwrap(), + 4, + 0, + 100, + EngineSpeculativeSettings::default(), + false, + false, + ) + .unwrap(); + let mut state = 0x1234_5678_u32; + let mut logits = (0..VOCAB * VERIFY_ROWS as u32) + .map(|_| { + state = state.wrapping_mul(1_664_525).wrapping_add(1_013_904_223); + (state >> 8) as f32 / 1_048_576.0 - 8.0 + }) + .collect::>(); + // Broad mass in row 0; concentrated rows exercise actual nucleus and + // min-p truncation instead of always keeping the whole top-k support. + for row in 1..VERIFY_ROWS as usize { + for (token, value) in [(7, 24.0), (17, 23.0), (27, 22.0)] { + logits[row * VOCAB as usize + token] = value + row as f32; + } + } + executor.scratch.logits.write_f32(&logits).unwrap(); + for (temperature, top_p, min_p, top_k) in [ + (1.0, 0.95, 0.0, 20), + (0.5, 0.5, 0.2, 8), + (1.0, 1.0, 0.0, 32), + (0.0, 0.95, 0.0, 20), + (1.0, 0.95, 0.0, 33), + ] { + let commands = Commands::begin().unwrap(); + let sparse = executor + .encode_sparse_probabilities( + &executor.scratch.logits, + VERIFY_ROWS as u32, + temperature, + top_k, + ) + .unwrap(); + commands.finish().unwrap(); + let batched = if sparse { + executor + .read_sparse_probabilities(VERIFY_ROWS as u32, top_p, min_p, top_k) + .unwrap() + .unwrap() + } else { + logits + .chunks_exact(VOCAB as usize) + .map(|row| qwen_sampling_probabilities(row, temperature, top_p, min_p, top_k)) + .collect() + }; + for (row, expected) in batched.iter().enumerate() { + assert_eq!( + executor + .target_probabilities_row(row, temperature, top_p, min_p, top_k) + .unwrap(), + *expected, + "row={row} temperature={temperature} top_k={top_k}" + ); + } + // Rejection at each draft depth and full acceptance plus bonus: + // laziness must consume the same draws and preserve their ordering. + for reject_at in 0..=3 { + let mut eager_rng = Rng::new_qwen(12345); + let mut lazy_rng = Rng::new_qwen(12345); + let mut materialized = 0; + for (row, eager) in batched.iter().take(3).enumerate() { + let lazy = executor + .target_probabilities_row(row, temperature, top_p, min_p, top_k) + .unwrap(); + materialized += 1; + let (draft, proposal) = if row == reject_at { + let missing = (0..VOCAB as usize) + .find(|token| !eager.iter().any(|(id, _)| id == token)) + .unwrap(); + (missing as i32, vec![(missing, 1.0)]) + } else { + (eager[0].0 as i32, eager.clone()) + }; + let expected = exact_speculative_sample_from_probabilities( + eager, + &proposal, + draft, + &mut eager_rng, + ); + let actual = exact_speculative_sample_from_probabilities( + &lazy, + &proposal, + draft, + &mut lazy_rng, + ); + assert_eq!(actual, expected); + assert_eq!(actual.1, row != reject_at); + if !actual.1 { + break; + } + } + if reject_at == 3 { + let bonus = executor + .target_probabilities_row(3, temperature, top_p, min_p, top_k) + .unwrap(); + materialized += 1; + assert_eq!( + sample_probabilities_f64(&bonus, &mut lazy_rng), + sample_probabilities_f64(&batched[3], &mut eager_rng) + ); + } + assert_eq!(materialized, reject_at + 1); + assert_eq!(eager_rng.unit_f64(), lazy_rng.unit_f64()); + } + } + let mut preserved = vec![0.0; logits.len()]; + executor.scratch.logits.read_f32(&mut preserved).unwrap(); + assert_eq!(preserved, logits); + + // Diagnostic only: alternate eager/lazy order on identical resident + // logits, including dispatch, wait and readback. Not a model benchmark. + for needed in 1..=VERIFY_ROWS as usize { + let mut eager_times = Vec::new(); + let mut lazy_times = Vec::new(); + for trial in 0..33 { + for lazy in [trial % 2 == 0, trial % 2 != 0] { + let started = Instant::now(); + if lazy { + for row in 0..needed { + executor + .target_probabilities_row(row, 1.0, 0.95, 0.0, 20) + .unwrap(); + } + } else { + let commands = Commands::begin().unwrap(); + assert!( + executor + .encode_sparse_probabilities( + &executor.scratch.logits, + VERIFY_ROWS as u32, + 1.0, + 20, + ) + .unwrap() + ); + commands.finish().unwrap(); + executor + .read_sparse_probabilities(VERIFY_ROWS as u32, 0.95, 0.0, 20) + .unwrap() + .unwrap(); + } + let elapsed = started.elapsed().as_secs_f64() * 1_000.0; + if trial > 0 { + if lazy { + &mut lazy_times + } else { + &mut eager_times + } + .push(elapsed); + } + } + } + eager_times.sort_by(f64::total_cmp); + lazy_times.sort_by(f64::total_cmp); + eprintln!( + "QWEN_DISTRIBUTION_TIMING needed={needed} trials=32 eager_median_ms={:.6} lazy_median_ms={:.6}", + (eager_times[15] + eager_times[16]) / 2.0, + (lazy_times[15] + lazy_times[16]) / 2.0, + ); + } + } + + #[test] + fn affine_split_k_matches_reference_shapes_and_scratch_bound() { + for (out_dim, rows, expected) in [ + (GDN_QKV, 32, 1), + (GDN_QKV, 64, 1), + (EXPERTS, 32, 20), + (EXPERTS, 64, 10), + (EXPERTS, 2048, 1), + (GDN_HEADS_V, 32, 40), + (GDN_HEADS_V, 64, 40), + (GDN_HEADS_V, 2048, 4), + (1, 32, 40), + (1, 2048, 8), + ] { + for rows in [rows - 1, rows] { + let splits = affine_qmm_splits(HIDDEN, out_dim, rows, 64); + assert_eq!(splits, expected, "N={out_dim} M={rows}"); + assert!(HIDDEN.is_multiple_of(splits * 64)); + if splits > 1 { + assert!( + u64::from(splits) * u64::from(rows) * u64::from(out_dim) + <= QMM_SPLIT_ELEMENTS + ); + } + } + } + } + + #[test] + #[ignore = "requires the pinned Qwen artifact set and Apple Metal"] + fn qwen_fused_gdn_input_rows_match_separate_projections() { + configure_sources().unwrap(); + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") + .map(PathBuf::from) + .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); + let model = QwenModel::open(&root, 32).unwrap(); + let mut executor = QwenExecutor::open_configured_with_hyper( + model, + 32, + 2048, + 100, + EngineSpeculativeSettings::default(), + false, + false, + ) + .unwrap(); + let prefix = "language_model.model.layers.0"; + let projections = [ + ("in_proj_qkv", GDN_QKV), + ("in_proj_z", GDN_VALUE), + ("in_proj_b", GDN_HEADS_V), + ("in_proj_a", GDN_HEADS_V), + ]; + // Load only these four projections, not the full resident model. + for suffix in ["weight", "scales", "biases"] { + let mut packed = Vec::new(); + for (name, _) in projections { + let tensor = executor + .model + .tensor(&format!("{prefix}.linear_attn.{name}.{suffix}")) + .unwrap(); + let offset = packed.len(); + packed.resize(offset + (tensor.range.end - tensor.range.start) as usize, 0); + executor + .model + .read_tensor_at(tensor, 0, &mut packed[offset..]) + .unwrap(); + } + let buffer = Buffer::bytes(packed.len() as u64).unwrap(); + buffer.write(0, &packed).unwrap(); + executor.weights.insert( + format!("{prefix}.linear_attn.in_proj_fused.{suffix}"), + buffer, + ); + } + for rows in [4_u32, 5, 32, 65, 2048] { + executor.scratch.block = Buffer::floats(u64::from(rows * HIDDEN)).unwrap(); + executor.scratch.gdn_fused = Buffer::floats(u64::from(rows * GDN_FUSED_INPUT)).unwrap(); + executor.scratch.controls = Buffer::floats(u64::from(rows * GDN_CONTROLS)).unwrap(); + let qkv = Buffer::floats(u64::from(rows * GDN_QKV)).unwrap(); + let mut state = 0x1234_5678_u32; + let input = (0..rows * HIDDEN) + .map(|_| { + state = state.wrapping_mul(1_664_525).wrapping_add(1_013_904_223); + ((state >> 24) as i32 - 128) as f32 / 32.0 + }) + .collect::>(); + executor.scratch.block.write_f32(&input).unwrap(); + let commands = Commands::begin().unwrap(); + executor.gdn_fused_input_rows(prefix, rows, &qkv).unwrap(); + commands.finish().unwrap(); + let mut fused = vec![0.0; (rows * GDN_FUSED_INPUT) as usize]; + executor.scratch.gdn_fused.read_f32(&mut fused).unwrap(); + let mut offset = 0; + for (name, width) in projections { + let weight = executor + .affine(&format!("{prefix}.linear_attn.{name}"), HIDDEN, width, None) + .unwrap(); + let output = Buffer::floats(u64::from(rows * width)).unwrap(); + let commands = Commands::begin().unwrap(); + // Unsplitted reference accumulation: fusion changes N, so the + // independent projections must not select different split-K trees. + executor + .affine_batch_into( + &weight, + &executor.scratch.block, + &output, + HIDDEN, + width, + rows, + false, + ) + .unwrap(); + commands.finish().unwrap(); + let mut separate = vec![0.0; (rows * width) as usize]; + output.read_f32(&mut separate).unwrap(); + for row in 0..rows as usize { + for column in 0..width as usize { + assert_eq!( + fused[row * GDN_FUSED_INPUT as usize + offset + column], + f32::from_bits( + u32::from(bf16(separate[row * width as usize + column])) << 16 + ), + "{name} rows={rows} row={row} column={column}" + ); + } + } + offset += width as usize; + } + let mut actual_qkv = vec![0.0; (rows * GDN_QKV) as usize]; + let mut controls = vec![0.0; (rows * GDN_CONTROLS) as usize]; + qkv.read_f32(&mut actual_qkv).unwrap(); + executor.scratch.controls.read_f32(&mut controls).unwrap(); + for row in 0..rows as usize { + let start = row * GDN_FUSED_INPUT as usize; + assert_eq!( + &actual_qkv[row * GDN_QKV as usize..(row + 1) * GDN_QKV as usize], + &fused[start..start + GDN_QKV as usize] + ); + assert_eq!( + &controls[row * GDN_CONTROLS as usize..(row + 1) * GDN_CONTROLS as usize], + &fused[start + GDN_QKV as usize..start + GDN_FUSED_INPUT as usize] + ); + } + eprintln!("GDN fused input/unpack rows={rows}: exact match"); + } + } + #[test] #[ignore = "requires the pinned Qwen artifact set and Apple Metal"] fn qwen_affine_qmv_and_qmm_match_mlx_reference() { @@ -8653,6 +10141,8 @@ mod tests { let executor = QwenExecutor::open_configured_with_hyper( model, 32, + 0, + 100, EngineSpeculativeSettings::default(), false, false, @@ -8694,15 +10184,157 @@ mod tests { "8952fadfdb1ef4450fd23b0060d62ea9b118367733014985a94c2d815a2be203" ); - for (rows, expected) in [ + // Component diagnostics generated through MTPLX's Qwen projection + // modules by tools/qwen-qmm-reference.py, not a full-model oracle. + let router = "language_model.model.layers.0.mlp.gate"; + let control = "language_model.model.layers.0.linear_attn.in_proj_b"; + let shared_gate = "language_model.model.layers.0.mlp.shared_expert_gate"; + let mut mismatches = Vec::new(); + for (projection, out_dim, rows, expected) in [ ( + projection, + GDN_QKV, + 2, + "0c7b939af0828bfeaf3d4ca68f099ab4fb086ba8e85a541f6908181d459965a1", + ), + ( + projection, + GDN_QKV, + 3, + "e08f1156aada307117fb8ee2239f6b1a426ce3a4dd46708c97f7cfee459c977a", + ), + ( + projection, + GDN_QKV, + 4, + "3e7208003c3862f5c7885687570b63ad34ad12db64b000c00d006764f959b804", + ), + ( + router, + EXPERTS, + 2, + "fdb3b452855432df5f24f9b6a8edbaf617c3b2f8602c1268ebcf8bda7f2cd405", + ), + ( + router, + EXPERTS, + 3, + "0401c505701fbb89264ed700f2ea645403334a4fd8851531110ef1052f1d7634", + ), + ( + router, + EXPERTS, + 4, + "efc592819cff2ab804dc0b6a96ad4cfab2288c19b91d2f4d22a61c8043096b65", + ), + ( + control, + GDN_HEADS_V, + 2, + "98d78a9497397ce1d5530f187ed3bd1578421873442c142a5a416622b9462c62", + ), + ( + control, + GDN_HEADS_V, + 3, + "6663bc7695a8a25ec6c84ab1bccd18a722313eceaecd741f7c38d2ed0de59f67", + ), + ( + control, + GDN_HEADS_V, + 4, + "ff72d3959cf71e35a6819fb8988d1e2a02667b0f5d6aa988e1990daf916d2fdf", + ), + ( + shared_gate, + 1, + 2, + "21039f5cc6e4a9daf8fb42a1536cfecdbf34fa52664a7a5ee569accf67e27d84", + ), + ( + shared_gate, + 1, + 3, + "60d311720d130f368bc0bc1bc1ad639c34e9a81f799dab4b9559184f80859b43", + ), + ( + shared_gate, + 1, + 4, + "08666f58ac460ffb8321ad9b488b1d87fad378e9a9eb768350b6104256ecb198", + ), + ( + projection, + GDN_QKV, 32_u32, "1d6076d65844f0c918d40085fea3af9873e86bf818f03ea4f705ac0211134fdf", ), ( + projection, + GDN_QKV, 64_u32, "b595beefdc06cc3b8a8408770e0d2b9fad609a6f0701bb94a511afebe60963a8", ), + ( + projection, + GDN_QKV, + 2048, + "a379c62625a3a30e24c04d4769e4397046f08eb766f6cc5c97f31e952a6d74d0", + ), + ( + router, + EXPERTS, + 32, + "a90d762711f4d1790cb51da622a51f8b006b35765d135023802d9bc265335354", + ), + ( + router, + EXPERTS, + 64, + "ca0f5c0e66423e243ce42efcfd0fdc66239a175098b5f0ff348ae6a31c569dda", + ), + ( + router, + EXPERTS, + 2048, + "01df7fe984eba144d7b0d8bd9cb141523a064187c555c4e7e1540d5f848c7574", + ), + ( + control, + GDN_HEADS_V, + 32, + "ce617fb6b4f99d78657babf59f117fb20ffde6394a1061f7951738213d3f5d88", + ), + ( + control, + GDN_HEADS_V, + 64, + "2eb144aea6e13618f1185505c27262244a403ae631e43296955dffd94da9c8d1", + ), + ( + control, + GDN_HEADS_V, + 2048, + "53ddb40a6126337ef9b6953891c4d64a50fa62751c499bcb34b41f9875367bc3", + ), + ( + shared_gate, + 1, + 32, + "449e04b448011791f2fce0d66ccb456b47d279e0c6d2f3c649ae7c7202f675cc", + ), + ( + shared_gate, + 1, + 64, + "79070bd2b9599660473250728980bbff6771638bcd516e7caecdf674fb7f80f9", + ), + ( + shared_gate, + 1, + 2048, + "a172b606e52564e89c7f47ece757c4f29c8b55e966658dd5221cce1debeae328", + ), ] { let qmm_values = values .iter() @@ -8712,20 +10344,79 @@ mod tests { .collect::>(); let input = Buffer::floats(u64::from(rows) * u64::from(HIDDEN)).unwrap(); input.write_f32(&qmm_values).unwrap(); - let batch = Buffer::floats(u64::from(rows) * u64::from(GDN_QKV)).unwrap(); + let batch = Buffer::floats(u64::from(rows) * u64::from(out_dim)).unwrap(); { - let weight = executor.affine(projection, HIDDEN, GDN_QKV, None).unwrap(); + let weight = executor.affine(projection, HIDDEN, out_dim, None).unwrap(); let commands = Commands::begin().unwrap(); executor - .affine_batch_into(&weight, &input, &batch, HIDDEN, GDN_QKV, rows, true) + .affine_batch_into(&weight, &input, &batch, HIDDEN, out_dim, rows, true) .unwrap(); commands.finish().unwrap(); } - let mut actual = vec![0.0; rows as usize * GDN_QKV as usize]; + let mut actual = vec![0.0; rows as usize * out_dim as usize]; batch.read_f32(&mut actual).unwrap(); - assert_eq!(digest(&actual), expected); + let actual_digest = digest(&actual); + eprintln!("QMM {projection} rows={rows}: {actual_digest}"); + if actual_digest != expected { + mismatches.push(format!( + "{projection} rows={rows}: {actual_digest}, expected {expected}" + )); + } + + { + // Isolated operator timing, not serving throughput. One warmup + // then 32 samples, including dispatch and completion wait. + let weight = executor.affine(projection, HIDDEN, out_dim, None).unwrap(); + let mut times = Vec::new(); + let mut gpu_times = Vec::new(); + for trial in 0..33 { + unsafe { ds4_gpu_busy_stats_reset() }; + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + executor + .affine_batch_into(&weight, &input, &batch, HIDDEN, out_dim, rows, true) + .unwrap(); + commands.finish().unwrap(); + let elapsed = started.elapsed().as_secs_f64() * 1e6; + let mut stats = GpuBusyStats::default(); + unsafe { ds4_gpu_busy_stats_get(&mut stats) }; + assert!(stats.command_buffers > 0 && stats.busy_seconds > 0.0); + if trial > 0 { + times.push(elapsed); + gpu_times.push(stats.busy_seconds * 1e6); + } + } + times.sort_by(f64::total_cmp); + gpu_times.sort_by(f64::total_cmp); + eprintln!( + "AFFINE {projection} rows={rows} median_us={:.3} median_gpu_us={:.3}", + (times[15] + times[16]) / 2.0, + (gpu_times[15] + gpu_times[16]) / 2.0 + ); + } + if rows <= 4 { + continue; + } + + // A partial tile must preserve the caller's unused output rows. + batch + .fill(-12345.0, u64::from(rows) * u64::from(out_dim)) + .unwrap(); + let weight = executor.affine(projection, HIDDEN, out_dim, None).unwrap(); + let commands = Commands::begin().unwrap(); + executor + .affine_batch_into(&weight, &input, &batch, HIDDEN, out_dim, rows - 1, true) + .unwrap(); + commands.finish().unwrap(); + let mut partial = vec![0.0; actual.len()]; + batch.read_f32(&mut partial).unwrap(); + let written = (rows - 1) as usize * out_dim as usize; + assert_eq!(&partial[..written], &actual[..written]); + assert!(partial[written..].iter().all(|&value| value == -12345.0)); } + assert!(mismatches.is_empty(), "{}", mismatches.join("\n")); + let weight = executor .weight("language_model.model.layers.1.ple.key_proj.weight") .unwrap(); @@ -8761,6 +10452,86 @@ mod tests { } } + #[test] + #[ignore = "requires the pinned 105 GB Qwen artifact set and Apple Metal"] + fn qwen_sorted_routed_prefill_matches_grouped_output() { + configure_sources().unwrap(); + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") + .map(PathBuf::from) + .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); + let capacity = 2048; + let model = QwenModel::open(&root, capacity).unwrap(); + let mut executor = QwenExecutor::open_configured_with_hyper( + model, + capacity, + 0, + 100, + EngineSpeculativeSettings::default(), + false, + false, + ) + .unwrap(); + executor.scratch = Scratch::new(capacity, capacity).unwrap(); + for rows in [5, 6, 7, 32, 64, 65, 137, 2048] { + let inputs = (0..rows * HIDDEN) + .map(|index| { + let value = ((index.wrapping_mul(17) % 257) as f32 - 128.0) / 64.0; + f32::from_bits(u32::from(bf16(value)) << 16) + }) + .collect::>(); + let routes = (0..rows as usize) + .flat_map(|row| { + (0..EXPERTS_USED) + .map(move |slot| ((row / 100 * 13 + slot * 37) % EXPERTS as usize) as i32) + }) + .collect::>(); + let weights = (0..rows) + .flat_map(|_| (0..EXPERTS_USED).map(|slot| (slot + 1) as f32 / 55.0)) + .collect::>(); + executor.scratch.block.write_f32(&inputs).unwrap(); + executor.scratch.route_ids.write_i32(&routes).unwrap(); + executor.scratch.route_weights.write_f32(&weights).unwrap(); + + let commands = Commands::begin().unwrap(); + executor.prepare_routed_expert_map(rows).unwrap(); + executor + .routed_experts_grouped_rows("language_model.model.layers.0", rows) + .unwrap(); + commands.finish().unwrap(); + let mut grouped = vec![0.0; rows as usize * HIDDEN as usize]; + executor.scratch.moe.read_f32(&mut grouped).unwrap(); + + let commands = Commands::begin().unwrap(); + executor + .routed_experts_rows("language_model.model.layers.0", rows) + .unwrap(); + commands.finish().unwrap(); + let mut direct = vec![0.0; grouped.len()]; + executor.scratch.moe.read_f32(&mut direct).unwrap(); + + let mut dot = 0.0_f64; + let mut left = 0.0_f64; + let mut right = 0.0_f64; + let mut mean = 0.0_f64; + let mut maximum = 0.0_f64; + for (&expected, &actual) in grouped.iter().zip(&direct) { + dot += f64::from(expected) * f64::from(actual); + left += f64::from(expected).powi(2); + right += f64::from(actual).powi(2); + let error = f64::from((actual - expected).abs()); + mean += error; + maximum = maximum.max(error); + } + let cosine = dot / (left.sqrt() * right.sqrt()); + mean /= grouped.len() as f64; + eprintln!( + "DS4SERVER_QWEN38_SORTED_MOE rows={rows} cosine={cosine:.9} mae={mean:.9} max={maximum:.9}" + ); + assert!(cosine >= 0.995 && mean <= 0.001 && maximum <= 0.06); + assert_eq!(grouped, direct); + } + } + #[test] #[ignore = "requires the pinned 105 GB Qwen artifact set and Apple Metal"] fn qwen_layer_profile() { @@ -8768,9 +10539,25 @@ mod tests { let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") .map(PathBuf::from) .expect("set DS4SERVER_QWEN38_SOURCE to the pinned artifact directory"); - let model = QwenModel::open(&root, 4).unwrap(); - let mut executor = QwenExecutor::open(model, 4).unwrap(); + let depth = std::env::var("DS4SERVER_QWEN38_PROFILE_DEPTH") + .ok() + .and_then(|value| value.parse().ok()) + .unwrap_or(1_u32); + let context = std::env::var("DS4SERVER_QWEN38_PROFILE_CONTEXT") + .ok() + .and_then(|value| value.parse().ok()) + .unwrap_or(depth + 1); + let model = QwenModel::open(&root, context).unwrap(); + let mut executor = QwenExecutor::open(model, context).unwrap(); executor.eval(1).unwrap(); + executor.position = depth; + let whole_started = Instant::now(); + executor.eval_target(2).unwrap(); + eprintln!( + "DS4SERVER_QWEN38_WHOLE depth={depth} ms={:.3}", + whole_started.elapsed().as_secs_f64() * 1_000.0 + ); + executor.position = depth; let commands = Commands::begin().unwrap(); executor.begin_token(2).unwrap(); commands.finish().unwrap(); @@ -8786,8 +10573,8 @@ mod tests { ); } let started = Instant::now(); - if layer == 20 { - let prefix = "language_model.model.layers.20"; + if layer == 19 { + let prefix = "language_model.model.layers.19"; let stage_started = Instant::now(); let commands = Commands::begin().unwrap(); executor @@ -8800,7 +10587,9 @@ mod tests { ); let stage_started = Instant::now(); let commands = Commands::begin().unwrap(); - executor.gdn(prefix, layer).unwrap(); + executor + .attention(prefix, &executor.states[layer], executor.position) + .unwrap(); commands.finish().unwrap(); eprintln!( "DS4SERVER_QWEN38_STAGE layer={layer} stage=attention ms={:.3}", @@ -8955,7 +10744,7 @@ mod tests { glm_mtp: true, ..EngineSpeculativeSettings::default() }; - let mut executor = QwenExecutor::open_configured(model, 8, settings).unwrap(); + let mut executor = QwenExecutor::open_configured(model, 8, 0, 100, settings).unwrap(); executor.eval_target(1).unwrap(); executor.eval_target(2).unwrap(); let tokens = [2, 3, 4, 5]; @@ -9067,6 +10856,25 @@ mod tests { assert!(runs > 0); let mtp = std::env::var_os("DS4SERVER_QWEN38_MTP").is_some(); let model = QwenModel::open_configured(&root, context, mtp).unwrap(); + let mut content = std::env::var_os("DS4SERVER_QWEN38_PROMPT_FILE").map_or_else( + || { + Ok::<_, std::io::Error>( + "Write a concise Rust implementation of binary search and explain its invariants." + .to_owned(), + ) + }, + |path| { + std::fs::read_to_string(path).map(|input| { + format!( + "Give a concise summary of the following project README. Return the summary directly without asking questions.\n\n{input}" + ) + }) + }, + ) + .unwrap(); + if let Ok(repeat) = std::env::var("DS4SERVER_QWEN38_PROMPT_REPEAT") { + content = content.repeat(repeat.parse().unwrap()); + } let prompt = model.render_conversation( "", &[ChatTurn { @@ -9076,8 +10884,7 @@ mod tests { skip_previous_eos: false, reasoning: None, reasoning_complete: true, - content: "Write a concise Rust implementation of binary search and explain its invariants." - .into(), + content, }], ReasoningMode::Direct, ); @@ -9086,7 +10893,7 @@ mod tests { glm_mtp_timing: std::env::var_os("DS4SERVER_QWEN38_MTP_PROFILE").is_some(), ..EngineSpeculativeSettings::default() }; - let mut executor = QwenExecutor::open_configured(model, context, settings).unwrap(); + let mut executor = QwenExecutor::open_configured(model, context, 0, 100, settings).unwrap(); let cancelled = AtomicBool::new(false); let mut prefill_rates = Vec::with_capacity(runs); let mut decode_rates = Vec::with_capacity(runs); @@ -9178,6 +10985,45 @@ mod tests { .saturating_sub(stats_before.ssd_pread_bytes), stats.ssd_pread_ms.saturating_sub(stats_before.ssd_pread_ms), ); + if std::env::var_os("DS4SERVER_QWEN38_PROFILE_AFTER_PREFILL").is_some() { + let commands = Commands::begin().unwrap(); + executor.begin_token(1).unwrap(); + commands.finish().unwrap(); + for layer in 0..LAYERS { + let started = Instant::now(); + let commands = Commands::begin().unwrap(); + if layer == 1 { + executor.ple(1).unwrap(); + } + if layer == 19 { + let prefix = format!("language_model.model.layers.{layer}"); + executor + .hyper_read(&format!("{prefix}.attn_hyper_connection")) + .unwrap(); + executor + .attention(&prefix, &executor.states[layer], executor.position) + .unwrap(); + executor.hyper_write().unwrap(); + commands.finish().unwrap(); + let attention_elapsed = started.elapsed(); + let commands = Commands::begin().unwrap(); + executor.encode_moe(&prefix, &layer.to_string()).unwrap(); + commands.finish().unwrap(); + eprintln!( + "DS4SERVER_QWEN38_POST_PREFILL_STAGE layer={layer} attention_ms={:.3} moe_ms={:.3}", + attention_elapsed.as_secs_f64() * 1_000.0, + (started.elapsed() - attention_elapsed).as_secs_f64() * 1_000.0, + ); + } else { + executor.encode_layer(layer).unwrap(); + commands.finish().unwrap(); + } + eprintln!( + "DS4SERVER_QWEN38_POST_PREFILL layer={layer} ms={:.3}", + started.elapsed().as_secs_f64() * 1_000.0 + ); + } + } } prefill_rates.sort_by(f64::total_cmp); decode_rates.sort_by(f64::total_cmp); @@ -9315,7 +11161,7 @@ mod tests { ..EngineSpeculativeSettings::default() }; let model = QwenModel::open_configured(&root, 8, true).unwrap(); - let mut executor = QwenExecutor::open_configured(model, 8, settings).unwrap(); + let mut executor = QwenExecutor::open_configured(model, 8, 0, 100, settings).unwrap(); executor.eval(1).unwrap(); executor.eval(2).unwrap(); let seeded = digest(executor.logits()); diff --git a/src/engine/metal/qwen_mtplx.rs b/src/engine/metal/qwen_mtplx.rs new file mode 100644 index 0000000..3a8efba --- /dev/null +++ b/src/engine/metal/qwen_mtplx.rs @@ -0,0 +1,7649 @@ +//! MTPLX model operations using its pinned custom and runtime 0.32.2 shaders. +//! Rust owns selection and dispatch. No runtime C/C++ library is linked. +use super::*; +use std::cell::RefCell; +#[cfg(test)] +use std::cell::{Cell, Ref}; +use std::ffi::CString; +use std::rc::Rc; + +pub(super) mod allocator; +mod ar; +mod array; +mod attention; +mod binary; +mod binding; +mod cache; +mod compile_graph; +mod compiled; +mod context_copy; +mod decoder; +mod dense; +mod encoder; +mod eval; +mod execution; +mod fused; +mod gdn; +mod graph_sync; +mod hyper; +mod indexing; +mod linear; +mod load; +mod mlp; +mod model; +mod moe; +mod mtp; +mod ngram; +mod ngram_sidecar; +mod ngram_stage; +mod normalization; +mod ops; +mod owner; +mod ple; +mod policy; +mod prefill; +mod qsa_attention; +mod qsa_compile; +mod qsa_core; +#[cfg(test)] +mod qsa_graph; +mod qsa_indexer; +mod qsa_prefill; +mod qsa_prepare; +mod qsa_select; +mod random; +mod reduce; +mod request; +mod residency; +mod rope; +mod sampling; +mod scheduler; +mod sdpa; +mod session_cache; +mod session_checkpoint; +mod session_codec; +mod sort; +mod sparse_attention; +mod speculative; +mod stream; +#[cfg(test)] +mod submission; +mod unary; +mod views; +mod weights; +#[cfg(test)] +pub(super) use encoder::Scope; +pub(super) use encoder::active_allocator; +pub(in crate::engine) use owner::QwenExecutor; +#[cfg(test)] +pub(super) use qsa_graph::{QsaCacheInput, QsaGraphBank}; +pub(in crate::engine) use request::LiveSession as QwenResidentState; +#[cfg(test)] +pub(super) use stream::{Device as StreamDevice, Streams}; + +struct Binding<'a> { + raw: MetalBinding, + allocation: Option, + access: Option, + _borrow: std::marker::PhantomData<&'a ()>, +} + +fn tensor(index: u32, buffer: &Buffer) -> Binding<'_> { + Binding { + raw: MetalBinding { + tensor: buffer.raw(), + bytes: std::ptr::null(), + size: 0, + index, + offset: 0, + }, + allocation: Some(buffer.hold_allocation()), + access: None, + _borrow: std::marker::PhantomData, + } +} + +fn bytes(index: u32, value: &T) -> Binding<'_> { + Binding { + raw: MetalBinding { + tensor: std::ptr::null(), + bytes: std::ptr::from_ref(value).cast(), + size: u32::try_from(std::mem::size_of_val(value)).expect("Metal inline bytes size"), + index, + offset: 0, + }, + allocation: None, + access: None, + _borrow: std::marker::PhantomData, + } +} + +fn scalar_buffer(value: &[u8]) -> Result { + let buffer = Buffer::mtplx_bytes(value.len() as u64)?; + buffer.write(0, value)?; + Ok(buffer) +} + +fn compile_custom( + name: &str, + source: impl FnOnce() -> Result, +) -> Result<(), String> { + let name = CString::new(name).map_err(|e| e.to_string())?; + if unsafe { ds4_gpu_mtplx_compile(name.as_ptr(), std::ptr::null()) } == 0 { + let source = CString::new(source()?).map_err(|e| e.to_string())?; + check( + unsafe { ds4_gpu_mtplx_compile(name.as_ptr(), source.as_ptr()) }, + "compiling original MTPLX custom kernel", + )?; + } + Ok(()) +} + +fn qsa_output_args(section: &serde_json::Value) -> Result, String> { + section["outputs"] + .as_array() + .ok_or("invalid QSA output names")? + .iter() + .map(|name| { + let name = name.as_str().ok_or("invalid QSA output name")?; + let ty = if name.ends_with("ids") { + "int" + } else if name == "adjusted_scores" { + "float" + } else { + "bool" + }; + Ok(format!("device {ty}* {name}")) + }) + .collect() +} + +fn qsa_shader_source(header: &str, name: &str, args: &[String], body: &str) -> String { + let args = args + .iter() + .enumerate() + .map(|(i, a)| format!("{a} [[buffer({i})]]")) + .collect::>() + .join(",\n"); + format!( + "{header}kernel void {name}(\n{args},\nuint3 threadgroup_position_in_grid [[threadgroup_position_in_grid]],\nuint3 thread_position_in_threadgroup [[thread_position_in_threadgroup]]) {{{body}}}\n" + ) +} + +fn dispatch( + name: &str, + bindings: &[Binding<'_>], + groups: [u32; 3], + threads: [u32; 3], +) -> Result<(), String> { + dispatch_specialized(name, bindings, &[], groups, threads) +} + +fn dispatch_specialized( + name: &str, + bindings: &[Binding<'_>], + constants: &[MetalConstant], + groups: [u32; 3], + threads: [u32; 3], +) -> Result<(), String> { + dispatch_geometry(name, bindings, constants, groups, threads, false) +} + +fn dispatch_geometry( + name: &str, + bindings: &[Binding<'_>], + constants: &[MetalConstant], + grid: [u32; 3], + threads: [u32; 3], + individual_threads: bool, +) -> Result<(), String> { + if let Some(result) = encoder::with_active(|encoder| { + encoder.dispatch(name, bindings, constants, grid, threads, individual_threads) + }) { + return result; + } + dispatch_geometry_on( + name, + bindings, + constants, + grid, + threads, + individual_threads, + None, + ) +} + +fn dispatch_geometry_on( + name: &str, + bindings: &[Binding<'_>], + constants: &[MetalConstant], + grid: [u32; 3], + threads: [u32; 3], + individual_threads: bool, + target: Option<(*mut c_void, *mut c_void, bool)>, +) -> Result<(), String> { + let name = CString::new(name).map_err(|e| e.to_string())?; + let raw = bindings.iter().map(|b| b.raw).collect::>(); + let mut seen = std::collections::HashSet::new(); + let allocations = bindings + .iter() + .filter_map(|b| b.allocation.as_ref()) + .filter(|a| seen.insert(a.identity())) + .cloned() + .collect::>(); + unsafe extern "C" fn release(context: *mut c_void) { + // The bridge takes this Box exactly once at callback registration, + // including when a submitted standalone command subsequently fails. + drop(unsafe { Box::from_raw(context.cast::>()) }); + } + let mut owner = Box::into_raw(Box::new(allocations)).cast::(); + let (command, encoder, barrier) = + target.unwrap_or((std::ptr::null_mut(), std::ptr::null_mut(), false)); + let result = unsafe { + ds4_gpu_mtplx_encode( + name.as_ptr(), + raw.as_ptr(), + raw.len() as u32, + constants.as_ptr(), + constants.len() as u32, + grid.as_ptr(), + threads.as_ptr(), + u32::from(individual_threads), + &mut owner, + Some(release), + command, + encoder, + u32::from(barrier), + ) + }; + if !owner.is_null() { + // Validation/pipeline/encoder failure: no ownership was transferred. + unsafe { release(owner) }; + } + let result = check(result, &format!("dispatching MTPLX {name:?}")); + #[cfg(test)] + if result.is_ok() { + super::qwen_mtplx_tests::record_dispatch( + name.to_str().unwrap(), + grid, + threads, + individual_threads, + ); + } + result +} + +#[derive(Clone, Copy)] +#[cfg(test)] +pub(super) enum SortDtype { + U32, + Bf16, + F32, +} + +#[cfg(test)] +pub(super) struct RouterOutput { + pub(super) probabilities: Buffer, + /// Last ten columns of argsort, not a contiguous [rows,10] allocation. + pub(super) indices: Buffer, + pub(super) index_row_stride: u32, + pub(super) scores: Buffer, + _temporaries: Vec, +} + +/// SparseMoeBlock's precise softmax -> argpartition -> take_along_axis -> +/// optional normalization. Consumes donatable logits; retains GPU scratch. +#[cfg(test)] +pub(super) fn router( + logits: Buffer, + [rows, experts]: [u32; 2], + normalize: bool, +) -> Result { + let count = u64::from(rows) * u64::from(experts); + if rows == 0 + || experts < 10 + || count > i32::MAX as u64 + || unsafe { ds4_gpu_tensor_bytes(logits.raw()) } < count * 2 + { + return Err("invalid MTPLX top-10 router shape or buffer".into()); + } + let group = if experts <= 4096 { + experts.div_ceil(4).div_ceil(32) * 32 + } else { + 1024 // Pinned looped-softmax pipeline maximum on M5 Max. + }; + let threads = rows + .checked_mul(group) + .ok_or("MTPLX softmax grid overflow")?; + dispatch_geometry( + if experts <= 4096 { + "block_softmax_precise_bfloat16" + } else { + "looped_softmax_precise_bfloat16" + }, + &[ + tensor(0, &logits).input(count as usize), + tensor(1, &logits).output(count as usize), + bytes(2, &experts), + ], + &[], + [threads, 1, 1], + [group, 1, 1], + true, + )?; + let order = Buffer::mtplx_bytes(count * 4)?; + let mut temporary = argsort(&logits, &order, [rows, experts], SortDtype::Bf16)?; + let offset = u64::from(experts - 10) * 4; + let indices = order.view(offset, count * 4 - offset)?; + let scores = Buffer::mtplx_bytes(u64::from(rows) * 10 * 2)?; + let grid = [1, 10, rows]; + dispatch_geometry( + if rows == 1 || experts == 10 { + "kernel_qwen_mtplx_gather_axis_bf16_int_11" + } else { + "kernel_qwen_mtplx_gather_axis_bf16_int_10" + }, + &[ + tensor(0, &logits).input(count as usize), + tensor(1, &indices).input(((u64::from(rows) - 1) * u64::from(experts) + 10) as usize), + tensor(2, &scores).output((u64::from(rows) * 10) as usize), + bytes(3, &rows), + bytes(4, &u64::from(experts)), + bytes(5, &u64::from(experts)), + bytes(6, &1_u64), + bytes(7, &1_u32), + bytes(8, &experts), + bytes(9, &1_u64), + bytes(10, &1_u64), + ], + &[], + grid, + block_dims(grid), + true, + )?; + if normalize { + let sums = Buffer::mtplx_bytes(u64::from(rows) * 2)?; + dispatch_geometry( + "row_reduce_small_1_reduce_sumbfloat16", + &[ + tensor(0, &scores).input((u64::from(rows) * 10) as usize), + tensor(1, &sums).output(rows as usize), + bytes(2, &10_u64), + bytes(3, &1_u64), + bytes(4, &rows), + bytes(5, &10_u64), + bytes(6, &1_u32), + bytes(7, &0_u32), + bytes(8, &0_u64), + bytes(9, &0_u32), + ], + &[], + [rows, 1, 1], + [rows.min(1024), 1, 1], + true, + )?; + if rows == 1 { + dispatch_geometry( + "vs_Dividebfloat16", + &[ + tensor(0, &scores).input((u64::from(rows) * 10) as usize), + tensor(1, &sums).input(rows as usize), + tensor(2, &scores).output((u64::from(rows) * 10) as usize), + bytes(3, &10_u32), + ], + &[], + [10, 1, 1], + [10, 1, 1], + true, + )?; + } else { + let grid = [10, rows, 1]; + dispatch_geometry( + "g2_Dividebfloat16", + &[ + tensor(0, &scores).input((u64::from(rows) * 10) as usize), + tensor(1, &sums).input(rows as usize), + tensor(2, &scores).output((u64::from(rows) * 10) as usize), + bytes(3, &[10_u64, 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + temporary.push(sums); + } + temporary.push(order); + Ok(RouterOutput { + probabilities: logits, + indices, + index_row_stride: experts, + scores, + _temporaries: temporary, + }) +} + +/// Contiguous last-axis argsort used by routing and _gather_sort. The reference +/// also implements argpartition by this complete sort, not a local top-k kernel. +#[cfg(test)] +pub(super) fn argsort( + input: &Buffer, + output: &Buffer, + [rows, width]: [u32; 2], + dtype: SortDtype, +) -> Result, String> { + use array::{Array, Dtype}; + let dtype = match dtype { + SortDtype::U32 => Dtype::U32, + SortDtype::Bf16 => Dtype::BF16, + SortDtype::F32 => Dtype::F32, + }; + let count = u64::from(rows) * u64::from(width); + let item_bytes = dtype.itemsize() as u64; + if rows == 0 + || width == 0 + || count > i32::MAX as u64 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } < count * item_bytes + || unsafe { ds4_gpu_tensor_bytes(output.raw()) } < count * 4 + { + return Err("invalid MTPLX contiguous argsort shape or buffer".into()); + } + let shape = if rows == 1 { + vec![width as i32] + } else { + vec![rows as i32, width as i32] + }; + let input = Array::new(&shape, dtype, input.view(0, count * item_bytes)?)?; + let output = Array::new(&shape, Dtype::U32, output.view(0, count * 4)?)?; + sort::sort_into(&input, &output, shape.len() - 1, true) +} + +fn block_dims(grid: [u32; 3]) -> [u32; 3] { + block_dims_pow2(grid, 10) +} + +fn block_dims_pow2(grid: [u32; 3], pow2: u32) -> [u32; 3] { + let mut group = [1, 1, 1]; + let mut used = 0; + loop { + let before = used; + for axis in 0..3 { + if grid[axis] >= group[axis] * 2 { + group[axis] *= 2; + used += 1; + } + if used == pow2 { + break; + } + } + if used == pow2 || used == before { + break; + } + } + group +} + +/// Actual compiled nn.silu(gate) followed by the reference's separate * up. +/// Input is the fused [rows,2*intermediate] BF16 pack, with strided half views. +/// Keep returned SiLU storage alive until the enclosing GPU batch completes. +#[cfg(test)] +pub(super) fn gate_up_bf16( + input: &Buffer, + output: &Buffer, + [rows, intermediate]: [u32; 2], +) -> Result { + let count = u64::from(rows) * u64::from(intermediate); + if rows == 0 + || intermediate == 0 + || !intermediate.is_multiple_of(2) + || count > i32::MAX as u64 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } < count * 4 + || unsafe { ds4_gpu_tensor_bytes(output.raw()) } < count * 2 + { + return Err("invalid MTPLX fused gate/up buffer or shape".into()); + } + let activated = Buffer::mtplx_bytes(count * 2)?; + let up = input.view( + u64::from(intermediate) * 2, + count * 4 - u64::from(intermediate) * 2, + )?; + let count = count as u32; + if rows == 1 { + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "kernel_qwen_mtplx_silu_bf16_contiguous" + } else { + "kernel_qwen_mtplx_silu_bf16_contiguous_n" + }, + &[ + tensor(0, input).input((u64::from(count) * 2 - u64::from(intermediate)) as usize), + tensor(1, &activated).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + dispatch_geometry( + if work == 1 { + "vv_Multiplybfloat16" + } else { + "vvn_Multiplybfloat16" + }, + &[ + tensor(0, &activated).input(count as usize), + tensor(1, &up).input((u64::from(count) * 2 - u64::from(intermediate)) as usize), + tensor(2, output).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } else { + let shape = [rows, intermediate]; + let in_strides = [u64::from(intermediate) * 2, 1]; + let out_strides = [u64::from(intermediate), 1]; + let grid = [intermediate, rows, 1]; + let group = block_dims(grid); + dispatch_geometry( + "kernel_qwen_mtplx_silu_bf16_strided_2", + &[ + tensor(0, input).input((u64::from(count) * 2 - u64::from(intermediate)) as usize), + bytes(1, &in_strides), + tensor(2, &activated).output(count as usize), + bytes(3, &shape), + ], + &[], + grid, + group, + true, + )?; + dispatch_geometry( + "g2_Multiplybfloat16", + &[ + tensor(0, &activated).input(count as usize), + tensor(1, &up).input((u64::from(count) * 2 - u64::from(intermediate)) as usize), + tensor(2, output).output(count as usize), + bytes(3, &out_strides), + bytes(4, &in_strides), + ], + &[], + grid, + group, + true, + )?; + } + Ok(activated) +} + +#[cfg(test)] +fn rms_norm_bf16( + input: &Buffer, + weight: Option<&Buffer>, + output: &Buffer, + [rows, width]: [u32; 2], + eps: f32, +) -> Result<(), String> { + let count = u64::from(rows) * u64::from(width); + if rows == 0 + || width == 0 + || count > i32::MAX as u64 + || !eps.is_finite() + || eps < 0.0 + || [input, output] + .iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < count * 2) + || weight.is_some_and(|w| unsafe { ds4_gpu_tensor_bytes(w.raw()) } < u64::from(width) * 2) + { + return Err("invalid MTPLX BF16 RMS norm".into()); + } + let default_weight = weight + .is_none() + .then(|| scalar_buffer(&0x3f80_u16.to_le_bytes())) + .transpose()?; + let bound_weight = weight.or(default_weight.as_ref()).unwrap(); + normalization::dispatch( + [ + (input, 0, count as usize), + ( + bound_weight, + 0, + if weight.is_some() { width as usize } else { 1 }, + ), + (output, 0, count as usize), + ], + array::Dtype::BF16, + width, + u32::from(weight.is_some()), + eps, + ) +} + +/// The shared HC/PLE GroupedRMSNorm: unweighted per-group RMS followed by +/// separate full-feature weighting. Folding the weight into RMS changes rounding. +#[cfg(test)] +pub(super) fn grouped_rms_norm( + input: &Buffer, + weight: &Buffer, + [rows, width, group_width]: [u32; 3], + eps: f32, +) -> Result { + if group_width == 0 + || !width.is_multiple_of(group_width) + || unsafe { ds4_gpu_tensor_bytes(weight.raw()) } < u64::from(width) * 2 + { + return Err("invalid MTPLX grouped RMS shape or weight".into()); + } + let count = u64::from(rows) * u64::from(width); + if count == 0 || count > i32::MAX as u64 { + return Err("invalid MTPLX grouped RMS size".into()); + } + let output = Buffer::mtplx_bytes(count * 2)?; + rms_norm_bf16( + input, + None, + &output, + [count as u32 / group_width, group_width], + eps, + )?; + if rows == 1 { + let work = if width < 65536 { 1 } else { 4 }; + let threads = width.div_ceil(work); + dispatch_geometry( + if work == 1 { + "vv_Multiplybfloat16" + } else { + "vvn_Multiplybfloat16" + }, + &[ + tensor(0, &output).input(count as usize), + tensor(1, weight).input(width as usize), + tensor(2, &output).output(count as usize), + bytes(3, &width), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } else { + let grid = [width, rows, 1]; + dispatch_geometry( + "g2_Multiplybfloat16", + &[ + tensor(0, &output).input(count as usize), + tensor(1, weight).input(width as usize), + tensor(2, &output).output(count as usize), + bytes(3, &[u64::from(width), 1]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + Ok(output) +} + +#[cfg(test)] +fn cast_bf16_f32(input: &Buffer, output: &Buffer, count: u32, to_f32: bool) -> Result<(), String> { + let (in_bytes, out_bytes) = if to_f32 { (2, 4) } else { (4, 2) }; + if count == 0 + || count > i32::MAX as u32 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } < u64::from(count) * in_bytes + || unsafe { ds4_gpu_tensor_bytes(output.raw()) } < u64::from(count) * out_bytes + { + return Err("invalid MTPLX BF16/FP32 cast".into()); + } + let work = if count < 65536 { + 1 + } else if to_f32 { + 2 + } else { + 4 + }; + let threads = count.div_ceil(work); + let dtype = if to_f32 { + "bfloat16float32" + } else { + "float32bfloat16" + }; + dispatch_geometry( + &format!("v{}_copy{dtype}", if work == 1 { "" } else { "n" }), + &[ + tensor(0, input).input(count as usize), + tensor(1, output).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + ) +} + +#[cfg(test)] +pub(super) struct GatedNormOutput { + pub(super) hidden: Buffer, + _temporaries: Vec, +} + +/// SigmoidRMSNormGated, including the projected Z view's token stride. +/// RMS output rounds to BF16 before its FP32 sigmoid/multiply epilogue. +#[cfg(test)] +pub(super) fn sigmoid_rms_norm( + input: &Buffer, + weight: &Buffer, + gate: Option<&Buffer>, + [tokens, heads, width, gate_stride]: [u32; 4], + eps: f32, +) -> Result { + let row_width = heads + .checked_mul(width) + .ok_or("MTPLX gated RMS width overflow")?; + let count = tokens + .checked_mul(row_width) + .filter(|n| *n > 0 && *n <= i32::MAX as u32) + .ok_or("invalid MTPLX gated RMS count")?; + let rows = tokens + .checked_mul(heads) + .ok_or("MTPLX gated RMS row overflow")?; + let hidden = Buffer::mtplx_bytes(u64::from(count) * 2)?; + rms_norm_bf16(input, Some(weight), &hidden, [rows, width], eps)?; + let Some(gate) = gate else { + return Ok(GatedNormOutput { + hidden, + _temporaries: Vec::new(), + }); + }; + if gate_stride < row_width + || unsafe { ds4_gpu_tensor_bytes(gate.raw()) } + < (u64::from(tokens - 1) * u64::from(gate_stride) + u64::from(row_width)) * 2 + { + return Err("invalid MTPLX gated RMS Z view".into()); + } + let g = Buffer::mtplx_bytes(u64::from(count) * 4)?; + if tokens == 1 || gate_stride == row_width { + cast_bf16_f32(gate, &g, count, true)?; + } else { + let grid = [row_width, tokens, 1]; + dispatch_geometry( + "g2_copybfloat16float32", + &[ + tensor(0, gate).input( + (u64::from(tokens - 1) * u64::from(gate_stride) + u64::from(row_width)) + as usize, + ), + tensor(1, &g).output(count as usize), + bytes(3, &[u64::from(gate_stride), 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let work = if count < 65536 { 1 } else { 2 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_Sigmoidfloat32float32" + } else { + "vn_Sigmoidfloat32float32" + }, + &[ + tensor(0, &g).input(count as usize), + tensor(1, &g).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + let x = Buffer::mtplx_bytes(u64::from(count) * 4)?; + cast_bf16_f32(&hidden, &x, count, true)?; + dispatch_geometry( + if work == 1 { + "vv_Multiplyfloat32" + } else { + "vvn_Multiplyfloat32" + }, + &[ + tensor(0, &g).input(count as usize), + tensor(1, &x).input(count as usize), + tensor(2, &x).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + cast_bf16_f32(&x, &hidden, count, false)?; + Ok(GatedNormOutput { + hidden, + _temporaries: vec![g, x], + }) +} + +/// Row gather used by MTPLX's _gather_sort and _scatter_unsort. Indices must +/// originate from the checked routing/sort path, not unchecked external data. +#[cfg(test)] +pub(super) fn gather_front( + input: &Buffer, + indices: &Buffer, + output: &Buffer, + [rows, width, routes]: [u32; 3], + dtype: SortDtype, +) -> Result<(), String> { + let (tag, item_bytes) = match dtype { + SortDtype::U32 => ("u32", 4), + SortDtype::Bf16 => ("bf16", 2), + SortDtype::F32 => ("f32", 4), + }; + let src_count = u64::from(rows) * u64::from(width); + let out_count = u64::from(routes) * u64::from(width); + if [rows, width, routes] + .iter() + .any(|v| *v == 0 || *v > i32::MAX as u32) + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } < src_count * item_bytes + || unsafe { ds4_gpu_tensor_bytes(indices.raw()) } < u64::from(routes) * 4 + || unsafe { ds4_gpu_tensor_bytes(output.raw()) } < out_count * item_bytes + { + return Err("invalid MTPLX gather-front shape or buffer".into()); + } + let work = if width > 8 && item_bytes < 4 { 2 } else { 1 }; + let grid = [width.div_ceil(work), routes, 1]; + let group = block_dims(grid); + let loc = if src_count > i32::MAX as u64 || out_count > i32::MAX as u64 { + "int64_t" + } else { + "int" + }; + dispatch_geometry( + &format!("kernel_qwen_mtplx_gather_front_{tag}_{loc}_{work}"), + &[ + tensor(0, input).input(src_count as usize), + tensor(1, indices).input(routes as usize), + tensor(2, output).output(out_count as usize), + bytes(3, &u64::from(width)), + bytes(4, &rows), + ], + &[], + grid, + group, + true, + ) +} + +#[cfg(test)] +pub(super) struct GatherSorted { + pub(super) x: Buffer, + pub(super) indices: Buffer, + pub(super) inverse: Buffer, + _temporaries: Vec, +} + +/// The connected reference _gather_sort path. Retain the result through GPU +/// completion; the caller applies the reference's >=64-route sort condition. +#[cfg(test)] +pub(super) fn gather_sort( + input: &Buffer, + indices: &Buffer, + [tokens, top_k, width]: [u32; 3], +) -> Result { + let routes = tokens + .checked_mul(top_k) + .filter(|v| *v > 0 && *v <= i32::MAX as u32) + .ok_or("invalid MTPLX route count")?; + if width == 0 + || width > i32::MAX as u32 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } < u64::from(tokens) * u64::from(width) * 2 + { + return Err("invalid MTPLX gather-sort input".into()); + } + let order = Buffer::mtplx_bytes(u64::from(routes) * 4)?; + let inverse = Buffer::mtplx_bytes(u64::from(routes) * 4)?; + let token_rows = Buffer::mtplx_bytes(u64::from(routes) * 4)?; + let sorted_indices = Buffer::mtplx_bytes(u64::from(routes) * 4)?; + let x = Buffer::mtplx_bytes(u64::from(routes) * u64::from(width) * 2)?; + let mut temporary = argsort(indices, &order, [1, routes], SortDtype::U32)?; + temporary.extend(argsort(&order, &inverse, [1, routes], SortDtype::U32)?); + let divisor = scalar_buffer(&top_k.to_le_bytes())?; + let work = if routes < 65536 { 1 } else { 2 }; + let threads = routes.div_ceil(work); + dispatch_geometry( + if work == 1 { + "vs_Divideuint32" + } else { + "vsn_Divideuint32" + }, + &[ + tensor(0, &order).input(routes as usize), + tensor(1, &divisor).input(1), + tensor(2, &token_rows).output(routes as usize), + bytes(3, &routes), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + gather_front( + input, + &token_rows, + &x, + [tokens, width, routes], + SortDtype::Bf16, + )?; + gather_front( + indices, + &order, + &sorted_indices, + [routes, 1, routes], + SortDtype::U32, + )?; + temporary.extend([order, token_rows]); + Ok(GatherSorted { + x, + indices: sorted_indices, + inverse, + _temporaries: temporary, + }) +} + +fn qmv_limit(k: u32, n: u32) -> u32 { + if k <= 2048 && n <= 2048 { + 33 + } else if k <= 4096 && n <= 4096 { + 25 + } else { + 13 + } +} + +#[derive(Debug, PartialEq)] +pub(super) struct AffinePlan { + pub(super) name: String, + pub(super) groups: [u32; 3], + pub(super) threads: [u32; 3], + pub(super) splits: u32, + pub(super) parameters: Vec, +} + +/// Contiguous, non-batched affine x @ W.T on the requested M5 Max. +/// Selection follows quantized.cpp at 1f8e74e, not a local speed heuristic. +pub(super) fn affine_plan( + shape: [u32; 3], + bits: u32, + group: u32, + nax: bool, +) -> Result { + affine_plan_batched(shape, bits, group, nax, 1) +} + +/// QuantizedMatmul uses M=x.shape(-2) and the original batch strides when +/// x is not row-contiguous. Only the B=1 matrix route may use Split-K. +fn affine_plan_batched( + [m, n, k]: [u32; 3], + bits: u32, + group: u32, + nax: bool, + batches: u32, +) -> Result { + if [m, n, k].iter().any(|d| *d == 0 || *d > i32::MAX as u32) + || !matches!(bits, 4 | 8) + || !matches!(group, 32 | 64) + || !k.is_multiple_of(group) + || batches == 0 + || u64::from(m) + .checked_mul(u64::from(n)) + .and_then(|v| v.checked_mul(u64::from(batches))) + .is_none_or(|v| v > i32::MAX as u64) + { + return Err("invalid MTPLX BF16 affine shape or installed-pack quantization".into()); + } + let suffix = format!("bfloat16_t_gs_{group}_b_{bits}"); + let batch = u8::from(batches > 1); + let limit = qmv_limit(k, n); + let mut plan = AffinePlan { + name: String::new(), + groups: [1, 1, 1], + threads: [32, 2, 1], + splits: 1, + parameters: vec![k, n], + }; + if m < limit { + if matches!(k, 64 | 128) { + plan.name = format!("affine_qmv_quad_{suffix}_d_{k}_batch_{batch}"); + plan.groups = [m, n.div_ceil(64), batches]; + plan.threads = [32, 1, 1]; + } else if m >= 2 { + let vectors = m.div_ceil(m.div_ceil(5)); + plan.name = format!("affine_qmv_wide_{suffix}_nv_{vectors}_kl_8_batch_{batch}"); + plan.groups = [m.div_ceil(vectors), n.div_ceil(8), batches]; + plan.parameters.push(m); + } else { + let fast = n.is_multiple_of(8) && k.is_multiple_of((32 / bits) * 2 * 32); + plan.name = format!( + "affine_qmv{}_{suffix}_batch_{batch}", + if fast { "_fast" } else { "" } + ); + plan.groups = [m, n.div_ceil(8), batches]; + } + return Ok(plan); + } + let tiles = u64::from(n.div_ceil(32)) * u64::from(m.div_ceil(32)); + let alignment = group.max(32); + let mut splits = if batches == 1 { + ((512 / tiles) as u32).max(1).min(k / alignment) + } else { + 1 + }; + while splits > 1 && !k.is_multiple_of(splits * alignment) { + splits -= 1; + } + plan.splits = splits; + plan.parameters.push(m); + plan.threads = [32, 2, 2]; + if splits > 1 { + plan.name = format!("affine_qmm_t_splitk_{suffix}_alN_{}", n.is_multiple_of(32)); + plan.groups = [n.div_ceil(32), m.div_ceil(32), splits]; + plan.parameters.extend([k / splits, m * n]); + } else if nax && k.is_multiple_of(64) { + let bm = if m <= 32 { 32 } else { 64 }; + plan.name = format!( + "affine_qmm_t_nax_{suffix}_bm{bm}_bn64_bk64_wm2_wn2_alN_{}_batch_{batch}", + n.is_multiple_of(64) + ); + plan.groups = [n.div_ceil(64), m.div_ceil(bm), batches]; + } else { + plan.name = format!( + "affine_qmm_t_{suffix}_alN_{}_batch_{batch}", + n.is_multiple_of(32) + ); + plan.groups = [n.div_ceil(32), m.div_ceil(32), batches]; + } + Ok(plan) +} + +/// Normalized x[X,M,K], affine weights[E,N,K], index vectors[R], y[R,M,N]. +/// For sorted=true x is already gathered in rhs order and lhs is identity, +/// matching _gather_sort and the reference's implicit-lhs sorted dispatch. +/// Indices originate from the checked router/sort path, not unchecked user data. +#[cfg(test)] +pub(super) fn gather_bf16( + buffers: [&Buffer; 7], + shape: [u32; 6], + quant: [u32; 2], + sorted: bool, + nax: bool, +) -> Result<(), String> { + gather_bf16_broadcast(buffers, shape, quant, sorted, nax, 1, [shape[5]; 2]) +} + +#[cfg(test)] +fn gather_bf16_broadcast( + buffers: [&Buffer; 7], + [x_batches, m, n, k, experts, routes]: [u32; 6], + [bits, group]: [u32; 2], + sorted: bool, + nax: bool, + lhs_repeat: u32, + [rhs_width, rhs_stride]: [u32; 2], +) -> Result<(), String> { + affine_plan([m, n, k], bits, group, nax)?; + if [x_batches, experts, routes] + .iter() + .any(|d| *d == 0 || *d > i32::MAX as u32) + || u64::from(m) * u64::from(routes) * u64::from(n) > i32::MAX as u64 + || (sorted && x_batches != routes) + || lhs_repeat == 0 + || !routes.is_multiple_of(lhs_repeat) + || (sorted && lhs_repeat != 1) + || rhs_width == 0 + || rhs_stride < rhs_width + || !routes.is_multiple_of(rhs_width) + || (rhs_stride != rhs_width && lhs_repeat != 1 && lhs_repeat != rhs_width) + || (sorted && rhs_stride != rhs_width) + { + return Err("invalid normalized MTPLX gather shape".into()); + } + let [w, s, b, x, lhs, rhs, y] = buffers; + let packed_cols = k / (32 / bits); + let param_cols = k / group; + let w_bytes = (u64::from(experts) * u64::from(n)).checked_mul(u64::from(packed_cols) * 4); + let p_bytes = (u64::from(experts) * u64::from(n)).checked_mul(u64::from(param_cols) * 2); + let expected = [ + w_bytes, + p_bytes, + p_bytes, + (u64::from(x_batches) * u64::from(m)).checked_mul(u64::from(k) * 2), + Some(u64::from(routes / lhs_repeat) * 4), + Some( + (u64::from(routes / rhs_width - 1) * u64::from(rhs_stride) + u64::from(rhs_width)) * 4, + ), + Some(u64::from(routes) * u64::from(m) * u64::from(n) * 2), + ]; + for (buffer, size) in buffers.iter().zip(expected) { + if size.is_none_or(|size| unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < size) { + return Err("MTPLX gather buffer is smaller than its shape".into()); + } + } + let elements: [usize; 7] = + std::array::from_fn(|i| (expected[i].unwrap() / [4, 2, 2, 2, 4, 4, 2][i]) as usize); + let strided_rhs = rhs_stride != rhs_width && rhs_width < routes; + let batch_dim = if strided_rhs || (lhs_repeat > 1 && lhs_repeat < routes) { + 2_u32 + } else { + 1 + }; + let batch_shape = if batch_dim == 2 { + let width = if strided_rhs { rhs_width } else { lhs_repeat }; + [routes / width, width] + } else { + [routes, 1] + }; + let lhs_strides = if strided_rhs && lhs_repeat == 1 { + [u64::from(rhs_width), 1] + } else if lhs_repeat > 1 && batch_dim == 1 { + [0, 0] + } else { + [1_u64, 0] + }; + let rhs_strides = if strided_rhs { + [u64::from(rhs_stride), 1] + } else if batch_dim == 1 { + [1_u64, 0] + } else { + [u64::from(lhs_repeat), 1] + }; + let x_shape = [x_batches, m, k]; + let x_strides = [u64::from(m) * u64::from(k), u64::from(k), 1]; + let w_shape = [experts, n, packed_cols]; + let w_strides = [ + u64::from(n) * u64::from(packed_cols), + u64::from(packed_cols), + 1, + ]; + let p_strides = [ + u64::from(n) * u64::from(param_cols), + u64::from(param_cols), + 1, + ]; + let batch_shape = batch_shape.map(|d| d as i32); + let lhs_strides = lhs_strides.map(|d| d as i64); + let rhs_strides = rhs_strides.map(|d| d as i64); + + gather_bf16_layout( + [ + tensor(0, w).input(elements[0]), + tensor(1, s).input(elements[1]), + tensor(2, b).input(elements[2]), + tensor(3, x).input(elements[3]), + tensor(4, lhs).input(elements[4]), + tensor(5, rhs).input(elements[5]), + tensor(6, y).output(elements[6]), + ], + [m, n, k, experts, routes, routes], + [bits, group], + sorted, + nax, + [ + &x_shape.map(|d| d as i32), + &w_shape.map(|d| d as i32), + &batch_shape[..batch_dim as usize], + ], + [ + &x_strides.map(|d| d as i64), + &w_strides.map(|d| d as i64), + &p_strides.map(|d| d as i64), + &p_strides.map(|d| d as i64), + &lhs_strides[..batch_dim as usize], + &rhs_strides[..batch_dim as usize], + ], + ) +} + +/// Shared original GatherQMM dispatch; array batch strides are passed verbatim, +/// while the two broadcast index layouts have jointly collapsed dimensions. +fn gather_bf16_layout( + bindings: [Binding<'_>; 7], + [m, n, k, experts, routes, sorted_rows]: [u32; 6], + [bits, group]: [u32; 2], + sorted: bool, + nax: bool, + [x_shape, w_shape, batch_shape]: [&[i32]; 3], + [ + x_strides, + w_strides, + s_strides, + b_strides, + lhs_strides, + rhs_strides, + ]: [&[i64]; 6], +) -> Result<(), String> { + let suffix = format!("bfloat16_t_gs_{group}_b_{bits}"); + if m == 1 && routes >= 16 && sorted && routes / experts >= 4 { + let (bm, bn, bk, wm, wn) = if nax { + ( + if sorted_rows / experts < 64 { 32 } else { 64 }, + 64, + 64, + 2, + 2, + ) + } else { + (16, 32, 32, 1, 2) + }; + let name = format!( + "affine_gather_qmm_rhs{}_nt_{suffix}_bm_{bm}_bn_{bn}_bk_{bk}_wm_{wm}_wn_{wn}", + if nax { "_nax" } else { "" } + ); + let constants = [ + (200, sorted_rows.is_multiple_of(bm)), + (201, n.is_multiple_of(bn)), + (202, k.is_multiple_of(bk)), + ] + .map(|(index, value)| MetalConstant { + index, + value: u32::from(value), + kind: 0, + }); + + let [w, s, b, x, _lhs, rhs, y] = bindings; + let mut sorted_bindings = [x, w, s, b, rhs, y]; + for (index, binding) in sorted_bindings.iter_mut().enumerate() { + binding.raw.index = index as u32; + } + let mut bindings = Vec::from(sorted_bindings); + bindings.extend([bytes(6, &sorted_rows), bytes(7, &n), bytes(8, &k)]); + return dispatch_specialized( + &name, + &bindings, + &constants, + [n.div_ceil(bn), sorted_rows.div_ceil(bm), 1], + [32, wn, wm], + ); + } + let matrix = m >= qmv_limit(k, n); + let (name, groups, threads) = if matrix { + if nax && k.is_multiple_of(64) { + ( + format!( + "affine_gather_qmm_t_nax_{suffix}_bm64_bn64_bk64_wm2_wn2_alN_{}", + n.is_multiple_of(64) + ), + [n.div_ceil(64), m.div_ceil(64), routes], + [32, 2, 2], + ) + } else { + ( + format!("affine_gather_qmm_t_{suffix}_alN_{}", n.is_multiple_of(32)), + [n.div_ceil(32), m.div_ceil(32), routes], + [32, 2, 2], + ) + } + } else { + let fast = n.is_multiple_of(8) && k.is_multiple_of((32 / bits) * 2 * 32); + ( + format!( + "affine_gather_qmv{}_{suffix}", + if fast { "_fast" } else { "" } + ), + [m, n.div_ceil(8), routes], + [32, 2, 1], + ) + }; + + let x_dim = (x_shape.len() - 2) as u32; + let w_dim = (w_shape.len() - 2) as u32; + let batch_dim = batch_shape.len() as u32; + let mut bindings = Vec::from(bindings); + bindings.extend([bytes(7, &k), bytes(8, &n)]); + if matrix { + bindings.push(bytes(9, &m)); + } + let base = bindings.len() as u32; + bindings.extend([ + bytes(base, &x_dim), + bytes(base + 1, x_shape), + bytes(base + 2, x_strides), + bytes(base + 3, &w_dim), + bytes(base + 4, w_shape), + bytes(base + 5, w_strides), + bytes(base + 6, s_strides), + bytes(base + 7, b_strides), + bytes(base + 8, &batch_dim), + bytes(base + 9, batch_shape), + bytes(base + 10, lhs_strides), + bytes(base + 11, rhs_strides), + ]); + dispatch(&name, &bindings, groups, threads) +} + +#[derive(Clone, Copy)] +#[cfg(test)] +pub(super) enum GateUpWeights<'a> { + Fused { + pack: [&'a Buffer; 3], + quant: [u32; 2], + }, + Separate { + gate: [&'a Buffer; 3], + up: [&'a Buffer; 3], + gate_quant: [u32; 2], + up_quant: [u32; 2], + }, +} + +#[cfg(test)] +pub(super) struct SwitchWeights<'a> { + pub(super) input: GateUpWeights<'a>, + pub(super) down: [&'a Buffer; 3], + pub(super) down_quant: [u32; 2], +} + +/// Actual shapeless compiled swiglu for two contiguous projection outputs. +#[cfg(test)] +fn swiglu_bf16(gate: &Buffer, up: &Buffer, output: &Buffer, count: u32) -> Result<(), String> { + if count == 0 + || count > i32::MAX as u32 + || [gate, up, output] + .iter() + .any(|buffer| unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < u64::from(count) * 2) + { + return Err("invalid MTPLX contiguous SwiGLU input".into()); + } + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "kernel_qwen_mtplx_swiglu_bf16_contiguous" + } else { + "kernel_qwen_mtplx_swiglu_bf16_contiguous_n" + }, + &[ + tensor(0, gate).input(count as usize), + tensor(1, up).input(count as usize), + tensor(2, output).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + ) +} + +#[cfg(test)] +pub(super) struct SwitchOutput { + pub(super) hidden: Buffer, + _temporaries: Vec, + _sorted: Option, +} + +#[cfg(test)] +fn flatten_indices(input: &Buffer, [rows, width, stride]: [u32; 3]) -> Result { + let count = u64::from(rows) * u64::from(width); + if rows == 0 + || width == 0 + || stride < width + || count > i32::MAX as u64 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } + < (u64::from(rows - 1) * u64::from(stride) + u64::from(width)) * 4 + { + return Err("invalid MTPLX index flatten view".into()); + } + if rows == 1 || stride == width { + return input.view(0, count * 4); + } + let flat = Buffer::mtplx_bytes(count * 4)?; + let grid = [width, rows, 1]; + dispatch_geometry( + "g2_copyuint32uint32", + &[ + tensor(0, input) + .input((u64::from(rows - 1) * u64::from(stride) + u64::from(width)) as usize), + tensor(1, &flat).output(count as usize), + bytes(3, &[u64::from(stride), 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + Ok(flat) +} + +/// Complete SwitchGLU or _FusedGateUpSwitchGLU with already-routed expert indices. +/// Own the result until GPU completion; router/shared-expert combination belongs +/// to SparseMoeBlock, not this reference submodule. +#[cfg(test)] +pub(super) fn switch_glu( + weights: SwitchWeights<'_>, + input: &Buffer, + indices: &Buffer, + [tokens, top_k, k, intermediate, experts]: [u32; 5], +) -> Result { + switch_glu_strided( + weights, + input, + indices, + [tokens, top_k, k, intermediate, experts], + top_k, + ) +} + +#[cfg(test)] +fn switch_glu_strided( + weights: SwitchWeights<'_>, + input: &Buffer, + indices: &Buffer, + [tokens, top_k, k, intermediate, experts]: [u32; 5], + index_stride: u32, +) -> Result { + let routes = tokens + .checked_mul(top_k) + .filter(|v| *v > 0 && *v <= i32::MAX as u32) + .ok_or("invalid MTPLX switch route count")?; + if [k, intermediate, experts] + .iter() + .any(|v| *v == 0 || *v > i32::MAX as u32) + || u64::from(routes) * u64::from(intermediate) * 2 > i32::MAX as u64 + || u64::from(routes) * u64::from(k) > i32::MAX as u64 + || index_stride < top_k + || unsafe { ds4_gpu_tensor_bytes(indices.raw()) } + < (u64::from(tokens - 1) * u64::from(index_stride) + u64::from(top_k)) * 4 + { + return Err("invalid MTPLX switch dimensions".into()); + } + let arange = |size: u32| -> Result { + let result = Buffer::mtplx_bytes(u64::from(size) * 4)?; + dispatch_geometry( + "arangeuint32", + &[ + bytes(0, &0_u32), + bytes(1, &1_u32), + tensor(2, &result).output(size as usize), + ], + &[], + [size, 1, 1], + [size.min(1024), 1, 1], + true, + )?; + Ok(result) + }; + // _gather_sort flattens the strided top-k view. Only that flatten needs + // materialization; the unsorted GatherQMM path accepts original strides. + let flat_indices = if routes >= 64 { + Some(flatten_indices(indices, [tokens, top_k, index_stride])?) + } else { + None + }; + let sorted = if routes >= 64 { + Some(gather_sort( + input, + flat_indices.as_ref().unwrap_or(indices), + [tokens, top_k, k], + )?) + } else { + None + }; + let route_range = arange(routes)?; + let token_range = if sorted.is_none() { + Some(arange(tokens)?) + } else { + None + }; + let (x, rhs, lhs, batches, repeat) = if let Some(sorted) = &sorted { + (&sorted.x, &sorted.indices, &route_range, routes, 1) + } else { + (input, indices, token_range.as_ref().unwrap(), tokens, top_k) + }; + let rhs_layout = if sorted.is_some() { + [routes; 2] + } else { + [top_k, index_stride] + }; + let h = Buffer::mtplx_bytes(u64::from(routes) * u64::from(intermediate) * 2)?; + let y = Buffer::mtplx_bytes(u64::from(routes) * u64::from(k) * 2)?; + let activation_temporary = match weights.input { + GateUpWeights::Fused { + pack: [w, s, b], + quant, + } => { + let gu = Buffer::mtplx_bytes(u64::from(routes) * u64::from(intermediate) * 4)?; + gather_bf16_broadcast( + [w, s, b, x, lhs, rhs, &gu], + [batches, 1, intermediate * 2, k, experts, routes], + quant, + sorted.is_some(), + true, + repeat, + rhs_layout, + )?; + let activated = gate_up_bf16(&gu, &h, [routes, intermediate])?; + vec![gu, activated] + } + GateUpWeights::Separate { + gate, + up, + gate_quant, + up_quant, + } => { + let gate_out = Buffer::mtplx_bytes(u64::from(routes) * u64::from(intermediate) * 2)?; + let up_out = Buffer::mtplx_bytes(u64::from(routes) * u64::from(intermediate) * 2)?; + // SwitchGLU constructs Up before Gate; Qwen3NextMLP uses the reverse. + for ([w, s, b], quant, output) in + [(up, up_quant, &up_out), (gate, gate_quant, &gate_out)] + { + gather_bf16_broadcast( + [w, s, b, x, lhs, rhs, output], + [batches, 1, intermediate, k, experts, routes], + quant, + sorted.is_some(), + true, + repeat, + rhs_layout, + )?; + } + swiglu_bf16(&gate_out, &up_out, &h, routes * intermediate)?; + vec![gate_out, up_out] + } + }; + let [w, s, b] = weights.down; + gather_bf16_broadcast( + [w, s, b, &h, &route_range, rhs, &y], + [routes, 1, k, intermediate, experts, routes], + weights.down_quant, + sorted.is_some(), + true, + 1, + rhs_layout, + )?; + let hidden = if let Some(sorted) = &sorted { + let unsorted = Buffer::mtplx_bytes(u64::from(routes) * u64::from(k) * 2)?; + gather_front( + &y, + &sorted.inverse, + &unsorted, + [routes, k, routes], + SortDtype::Bf16, + )?; + unsorted + } else { + y.view(0, u64::from(routes) * u64::from(k) * 2)? + }; + let mut temporary = vec![route_range, h, y]; + temporary.extend(activation_temporary); + temporary.extend(token_range); + temporary.extend(flat_indices); + Ok(SwitchOutput { + hidden, + _temporaries: temporary, + _sorted: sorted, + }) +} + +#[cfg(test)] +pub(super) struct MoeWeights<'a> { + pub(super) experts: SwitchWeights<'a>, + pub(super) shared: SwitchWeights<'a>, + pub(super) router: [&'a Buffer; 3], + pub(super) router_quant: [u32; 2], + pub(super) shared_gate: [&'a Buffer; 3], + pub(super) shared_gate_quant: [u32; 2], +} + +#[cfg(test)] +pub(super) struct MoeOutput { + pub(super) hidden: Buffer, + pub(super) used_fused: bool, + _router: RouterOutput, + _switch: Option, + _temporaries: Vec, +} + +/// Connected SparseMoeBlock with separate or sanitize-fused expert/shared MLPs. The two flags +/// are MTPLX_FUSED_MOE_DECODE / VERIFY; both default off in the reference. +#[cfg(test)] +pub(super) fn sparse_moe( + weights: MoeWeights<'_>, + input: &Buffer, + [tokens, experts, k, intermediate, shared_intermediate]: [u32; 5], + normalize: bool, + [fused_decode, fused_verify]: [bool; 2], +) -> Result { + let count = u64::from(tokens) * u64::from(k); + if tokens == 0 + || experts < 10 + || k == 0 + || count * 10 > i32::MAX as u64 + || u64::from(tokens) * u64::from(experts) > i32::MAX as u64 + || [intermediate, shared_intermediate] + .iter() + .any(|d| *d == 0 || u64::from(tokens) * u64::from(*d) * 20 > i32::MAX as u64) + { + return Err("invalid MTPLX sparse MoE shape".into()); + } + let logits = Buffer::mtplx_bytes(u64::from(tokens) * u64::from(experts) * 2)?; + let [w, s, b] = weights.router; + let [bits, group] = weights.router_quant; + let mut temporary = affine_bf16( + [w, s, b, input, &logits], + [tokens, experts, k], + bits, + group, + true, + )?; + let routing = router(logits, [tokens, experts], normalize)?; + let used_fused = ((tokens == 1 && fused_decode) || ((2..=4).contains(&tokens) && fused_verify)) + && matches!( + weights.experts.input, + GateUpWeights::Fused { + quant: [4, 32 | 64], + .. + } + ) + && weights.experts.down_quant[0] == 4 + && matches!(weights.experts.down_quant[1], 32 | 64); + let hidden = Buffer::mtplx_bytes(count * 2)?; + let switched = if used_fused { + if k != 2560 || intermediate != 640 { + return Err("MTPLX fused MoE requires the installed 2560/640 model shape".into()); + } + temporary.extend(fused_experts( + &weights.experts, + input, + &routing, + &hidden, + [tokens, experts], + )?); + None + } else { + let switched = switch_glu_strided( + weights.experts, + input, + &routing.indices, + [tokens, 10, k, intermediate, experts], + routing.index_row_stride, + )?; + let grid = [k, tokens * 10, 1]; + dispatch_geometry( + "g2_Multiplybfloat16", + &[ + tensor(0, &switched.hidden).input((count * 10) as usize), + tensor(1, &routing.scores).input((u64::from(tokens) * 10) as usize), + tensor(2, &switched.hidden).output((count * 10) as usize), + bytes(3, &[u64::from(k), 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let gx = k.div_ceil(4).min(32); + dispatch( + "col_reduce_small_1_reduce_sumbfloat16", + &[ + tensor(0, &switched.hidden).input((count * 10) as usize), + tensor(1, &hidden).output(count as usize), + bytes(2, &10_u64), + bytes(3, &u64::from(k)), + bytes(4, &tokens), + bytes(5, &(u64::from(k) * 10)), + bytes(6, &1_u32), + bytes(7, &10_u32), + bytes(8, &u64::from(k)), + bytes(9, &1_u32), + bytes(10, &1_u64), + ], + [k.div_ceil(4).div_ceil(gx), tokens, 1], + [gx, 8, 1], + )?; + Some(switched) + }; + // The fused branch evaluates sigmoid(shared_gate(x)) before shared_expert(x); + // the parent stock branch evaluates the MLP first. Keep both source orders. + let gate = || { + shared_gate_sigmoid( + weights.shared_gate, + weights.shared_gate_quant, + input, + [tokens, k], + ) + }; + let early_gate = if used_fused { Some(gate()?) } else { None }; + let shared_h = Buffer::mtplx_bytes(u64::from(tokens) * u64::from(shared_intermediate) * 2)?; + let shared = Buffer::mtplx_bytes(count * 2)?; + match weights.shared.input { + GateUpWeights::Fused { + pack: [w, s, b], + quant: [bits, group], + } => { + let gu = Buffer::mtplx_bytes(u64::from(tokens) * u64::from(shared_intermediate) * 4)?; + temporary.extend(affine_bf16( + [w, s, b, input, &gu], + [tokens, shared_intermediate * 2, k], + bits, + group, + true, + )?); + temporary.push(gate_up_bf16(&gu, &shared_h, [tokens, shared_intermediate])?); + temporary.push(gu); + } + GateUpWeights::Separate { + gate, + up, + gate_quant, + up_quant, + } => { + let gate_out = + Buffer::mtplx_bytes(u64::from(tokens) * u64::from(shared_intermediate) * 2)?; + let up_out = + Buffer::mtplx_bytes(u64::from(tokens) * u64::from(shared_intermediate) * 2)?; + for ([w, s, b], [bits, group], output) in + [(gate, gate_quant, &gate_out), (up, up_quant, &up_out)] + { + temporary.extend(affine_bf16( + [w, s, b, input, output], + [tokens, shared_intermediate, k], + bits, + group, + true, + )?); + } + swiglu_bf16(&gate_out, &up_out, &shared_h, tokens * shared_intermediate)?; + temporary.extend([gate_out, up_out]); + } + } + let [w, s, b] = weights.shared.down; + let [bits, group] = weights.shared.down_quant; + temporary.extend(affine_bf16( + [w, s, b, &shared_h, &shared], + [tokens, k, shared_intermediate], + bits, + group, + true, + )?); + let (shared_gate, gate_temporary) = match early_gate { + Some(result) => result, + None => gate()?, + }; + temporary.extend(gate_temporary); + if tokens == 1 { + let work = if k < 65536 { 1 } else { 4 }; + let threads = k.div_ceil(work); + dispatch_geometry( + if work == 1 { + "sv_Multiplybfloat16" + } else { + "svn_Multiplybfloat16" + }, + &[ + tensor(0, &shared_gate).input(tokens as usize), + tensor(1, &shared).input(count as usize), + tensor(2, &shared).output(count as usize), + bytes(3, &k), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } else { + let grid = [k, tokens, 1]; + dispatch_geometry( + "g2_Multiplybfloat16", + &[ + tensor(0, &shared_gate).input(tokens as usize), + tensor(1, &shared).input(count as usize), + tensor(2, &shared).output(count as usize), + bytes(3, &[1_u64, 0]), + bytes(4, &[u64::from(k), 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let count = count as u32; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "vv_Addbfloat16" + } else { + "vvn_Addbfloat16" + }, + &[ + tensor(0, &hidden).input(count as usize), + tensor(1, &shared).input(count as usize), + tensor(2, &hidden).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + temporary.extend([shared_h, shared, shared_gate]); + Ok(MoeOutput { + hidden, + used_fused, + _router: routing, + _switch: switched, + _temporaries: temporary, + }) +} + +#[cfg(test)] +fn shared_gate_sigmoid( + [w, s, b]: [&Buffer; 3], + [bits, group]: [u32; 2], + input: &Buffer, + [tokens, k]: [u32; 2], +) -> Result<(Buffer, Vec), String> { + let gate = Buffer::mtplx_bytes(u64::from(tokens) * 2)?; + let temporary = affine_bf16([w, s, b, input, &gate], [tokens, 1, k], bits, group, true)?; + let work = if tokens < 65536 { 1 } else { 4 }; + let threads = tokens.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_Sigmoidbfloat16bfloat16" + } else { + "vn_Sigmoidbfloat16bfloat16" + }, + &[ + tensor(0, &gate).input(tokens as usize), + tensor(1, &gate).output(tokens as usize), + bytes(2, &tokens), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + Ok((gate, temporary)) +} + +#[cfg(test)] +fn fused_experts( + weights: &SwitchWeights<'_>, + input: &Buffer, + routing: &RouterOutput, + output: &Buffer, + [tokens, experts]: [u32; 2], +) -> Result, String> { + let GateUpWeights::Fused { + pack: gu_pack, + quant: [4, gu_group], + } = weights.input + else { + return Err("MTPLX fused MoE requires a fused Q4 gate/up pack".into()); + }; + // Entry conditions are checked by SparseMoeBlock, including the installed + // dimensions for these template instantiations. Validate all six packs. + for (pack, n, k, group) in [ + (gu_pack, 1280_u64, 2560_u64, gu_group), + (weights.down, 2560, 640, weights.down_quant[1]), + ] { + let count = u64::from(experts) * n * k; + for (buffer, size) in pack.into_iter().zip([ + count / 2, + count / u64::from(group) * 2, + count / u64::from(group) * 2, + ]) { + if unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < size { + return Err("MTPLX fused MoE pack smaller than shape".into()); + } + } + } + let indices = flatten_indices(&routing.indices, [tokens, 10, routing.index_row_stride])?; + let routes = tokens * 10; + let scores = Buffer::mtplx_bytes(u64::from(routes) * 4)?; + dispatch_geometry( + "v_copybfloat16float32", + &[ + tensor(0, &routing.scores).input(routes as usize), + tensor(1, &scores).output(routes as usize), + bytes(2, &routes), + ], + &[], + [routes, 1, 1], + [routes, 1, 1], + true, + )?; + let h = Buffer::mtplx_bytes(u64::from(routes) * 640 * 2)?; + let suffix = |group| { + if tokens == 1 { + format!("g{group}_bf16") + } else { + format!("m_m{tokens}_g{group}_bf16") + } + }; + let [w, s, b] = gu_pack; + dispatch( + &format!("kernel_qwen_mtplx_moe_glu_h_{}", suffix(gu_group)), + &[ + tensor(0, input).input(tokens as usize * 2560), + tensor(1, w).input(experts as usize * 1280 * 2560 / 8), + tensor(2, s).input(experts as usize * 1280 * 2560 / gu_group as usize), + tensor(3, b).input(experts as usize * 1280 * 2560 / gu_group as usize), + tensor(4, &indices).input(routes as usize), + tensor(5, &h).output(routes as usize * 640), + ], + [(routes * 640).div_ceil(32), 1, 1], + [1024, 1, 1], + )?; + let [w, s, b] = weights.down; + dispatch( + &format!( + "kernel_qwen_mtplx_moe_down_y_{}", + suffix(weights.down_quant[1]) + ), + &[ + tensor(0, &h).input(routes as usize * 640), + tensor(1, w).input(experts as usize * 2560 * 640 / 8), + tensor(2, s).input(experts as usize * 2560 * 640 / weights.down_quant[1] as usize), + tensor(3, b).input(experts as usize * 2560 * 640 / weights.down_quant[1] as usize), + tensor(4, &indices).input(routes as usize), + tensor(5, &scores).input(routes as usize), + tensor(6, output).output(tokens as usize * 2560), + ], + [(tokens * 2560).div_ceil(32), 1, 1], + [1024, 1, 1], + )?; + Ok(vec![indices, scores, h]) +} + +/// Keep returned intermediate buffers alive until the enclosing command batch completes. +#[cfg(test)] +pub(super) fn affine_bf16( + buffers: [&Buffer; 5], + shape: [u32; 3], + bits: u32, + group: u32, + nax: bool, +) -> Result, String> { + affine_bf16_layout(buffers, shape, bits, group, nax, None) +} + +fn affine_bf16_layout( + buffers: [&Buffer; 5], + shape: [u32; 3], + bits: u32, + group: u32, + nax: bool, + input_layout: Option<[(u64, usize); 4]>, +) -> Result, String> { + let [m, n, k] = shape; + let plan = affine_plan(shape, bits, group, nax)?; + let expected = [ + u64::from(n) * u64::from(k) / (8 / u64::from(bits)), + u64::from(n) * u64::from(k / group) * 2, + u64::from(n) * u64::from(k / group) * 2, + u64::from(m) * u64::from(k) * 2, + u64::from(m) * u64::from(n) * 2, + ]; + let elements: [usize; 5] = std::array::from_fn(|i| (expected[i] / [4, 2, 2, 2, 2][i]) as usize); + let input_layout = input_layout.unwrap_or_else(|| std::array::from_fn(|i| (0, elements[i]))); + for (i, (buffer, size)) in buffers.iter().zip(expected).enumerate() { + let offset = input_layout.get(i).map_or(0, |layout| layout.0); + if offset + .checked_add(size) + .is_none_or(|end| unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < end) + { + return Err("MTPLX affine binding is smaller than its shape".into()); + } + } + let mut temporary = Vec::new(); + if plan.splits > 1 { + temporary.push(Buffer::mtplx_bytes(expected[4] * u64::from(plan.splits))?); + encoder::add_temporaries(&temporary); + } + let output = temporary.first().unwrap_or(buffers[4]); + let mut bindings = buffers[..4] + .iter() + .enumerate() + .map(|(i, b)| { + tensor(i as u32, b) + .at_byte_offset(input_layout[i].0) + .input(input_layout[i].1) + }) + .collect::>(); + bindings.push(tensor(4, output).output(elements[4] * plan.splits as usize)); + bindings.extend( + plan.parameters + .iter() + .enumerate() + .map(|(i, p)| bytes(i as u32 + 5, p)), + ); + dispatch(&plan.name, &bindings, plan.groups, plan.threads)?; + if plan.splits > 1 + && let Some(extra) = reduce_split_bf16(output, buffers[4], plan.splits, m * n)? + { + temporary.push(extra); + } + Ok(temporary) +} + +fn reduce_split_bf16( + input: &Buffer, + output: &Buffer, + splits: u32, + width: u32, +) -> Result, String> { + // ColReduceArgs for contiguous [split, M, N], reducing axis 0. + let size = u64::from(splits); + let stride = u64::from(width); + let zero = 0_u32; + let zero_stride = 0_u64; + let ndim = 1_u32; + let non_col = 1_u64; + let two_pass = splits > 256 && width / 32 < 1024; + let intermediate = if two_pass { + Some(Buffer::mtplx_bytes(stride * 32 * 2)?) + } else { + None + }; + if let Some(buffer) = &intermediate { + encoder::add_temporaries(std::slice::from_ref(buffer)); + } + let mut bindings = vec![ + tensor(0, input).input((size * stride) as usize), + tensor(1, intermediate.as_ref().unwrap_or(output)) + .output((stride * if two_pass { 32 } else { 1 }) as usize), + bytes(2, &size), + bytes(3, &stride), + bytes(4, &zero), + bytes(5, &zero_stride), + bytes(6, &zero), + bytes(7, &splits), + bytes(8, &stride), + bytes(9, &ndim), + bytes(10, &non_col), + ]; + let large = if size * stride > i32::MAX as u64 { + "_large" + } else { + "" + }; + if splits < 32 { + let x = width.div_ceil(4).min(32); + dispatch( + &format!("col_reduce_small{large}_1_reduce_sumbfloat16"), + &bindings, + [width.div_ceil(4).div_ceil(x), 1, 1], + [x, splits.min(8), 1], + )?; + } else if two_pass { + bindings.push(bytes(11, &non_col)); + dispatch( + &format!("col_reduce_2pass{large}_1_32_32_reduce_sumbfloat16"), + &bindings, + [width.div_ceil(32), 32, 1], + [256, 1, 1], + )?; + reduce_split_bf16(intermediate.as_ref().unwrap(), output, 32, width)?; + } else { + dispatch( + &format!("col_reduce_looped{large}_1_32_32_reduce_sumbfloat16"), + &bindings, + [width.div_ceil(32), 1, 1], + [256, 1, 1], + )?; + } + Ok(intermediate) +} + +#[cfg(test)] +pub(super) struct ConvNormOutput { + pub(super) q: Buffer, + pub(super) k: Buffer, + pub(super) v: Buffer, + pub(super) conv: Buffer, + /// Pre-convolution rows retained by the reference's verify capture. + pub(super) qkv: Buffer, + pub(super) used_fused: bool, + _temporaries: Vec, +} + +/// Stock GatedDeltaNet._l2norm, including its BF16 boundary before Q scaling. +#[cfg(test)] +fn gdn_l2_norm(input: &Buffer, output: &Buffer, rows: u32, q: bool) -> Result, String> { + let count = rows * 2048; + let heads = rows * 16; + let xf = Buffer::mtplx_bytes(u64::from(count) * 4)?; + let sq = Buffer::mtplx_bytes(u64::from(count) * 4)?; + let sum = Buffer::mtplx_bytes(u64::from(heads) * 4)?; + if rows == 1 { + cast_bf16_f32(input, &xf, count, true)?; + } else { + let grid = [2048, rows, 1]; + dispatch_geometry( + "g2_copybfloat16float32", + &[ + tensor(0, input).input(((rows - 1) * 10240 + 2048) as usize), + tensor(1, &xf).output(count as usize), + bytes(3, &[10240_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let work = if count < 65536 { 1 } else { 2 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "vv_Multiplyfloat32" + } else { + "vvn_Multiplyfloat32" + }, + &[ + tensor(0, &xf).input(count as usize), + tensor(1, &xf).input(count as usize), + tensor(2, &sq).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + if heads >= 32 { + dispatch_geometry( + "row_reduce_simple_sumfloat32", + &[ + tensor(0, &sq).input(count as usize), + tensor(1, &sum).output(heads as usize), + bytes(2, &128_u64), + bytes(3, &u64::from(heads)), + ], + &[], + [32, heads.div_ceil(4), 1], + [32, 1, 1], + true, + )?; + } else { + dispatch_geometry( + "row_reduce_looped_1_reduce_sumfloat32", + &[ + tensor(0, &sq).input(count as usize), + tensor(1, &sum).output(heads as usize), + bytes(2, &128_u64), + bytes(3, &1_u64), + bytes(4, &heads), + bytes(5, &128_u64), + bytes(6, &1_u32), + bytes(7, &0_u32), + bytes(8, &0_u64), + bytes(9, &0_u32), + ], + &[], + [32, heads, 1], + [32, 1, 1], + true, + )?; + } + let epsilon = scalar_buffer(&1e-6_f32.to_le_bytes())?; + let work = if heads < 65536 { 1 } else { 2 }; + let threads = heads.div_ceil(work); + dispatch_geometry( + if work == 1 { + "vs_Addfloat32" + } else { + "vsn_Addfloat32" + }, + &[ + tensor(0, &sum).input(heads as usize), + tensor(1, &epsilon).input(1), + tensor(2, &sum).output(heads as usize), + bytes(3, &heads), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + dispatch_geometry( + if work == 1 { + "v_Rsqrtfloat32float32" + } else { + "vn_Rsqrtfloat32float32" + }, + &[ + tensor(0, &sum).input(heads as usize), + tensor(1, &sum).output(heads as usize), + bytes(2, &heads), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + let grid = [128, heads, 1]; + dispatch_geometry( + "g2_Multiplyfloat32", + &[ + tensor(0, &xf).input(count as usize), + tensor(1, &sum).input(heads as usize), + tensor(2, &xf).output(count as usize), + bytes(3, &[128_u64, 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + cast_bf16_f32(&xf, output, count, false)?; + if q { + // Weak Python scalar converts to BF16 BEFORE Multiplybfloat16. + let bits = 128_f32.powf(-0.5).to_bits(); + let scale = ((bits + 0x7fff + ((bits >> 16) & 1)) >> 16) as u16; + let scale = scalar_buffer(&scale.to_le_bytes())?; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "sv_Multiplybfloat16" + } else { + "svn_Multiplybfloat16" + }, + &[ + tensor(0, &scale).input(1), + tensor(1, output).input(count as usize), + tensor(2, output).output(count as usize), + bytes(3, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } + Ok(vec![xf, sq, sum]) +} + +/// GDN conv/state and Q/K/V preparation for B=1. `fused` contains the +/// model's two conv-norm flags; cache absence/lengths/mask suppress fusion. +/// `length` is the cache's optional one-element INT32 valid-length tensor. +#[cfg(test)] +pub(super) fn gdn_conv_norm( + input: &Buffer, + weight: &Buffer, + [rows, stride]: [u32; 2], + [state, length]: [Option<&Buffer>; 2], + mask: Option<&Buffer>, + fused: [bool; 2], + has_cache: bool, +) -> Result { + let count = u64::from(rows) * 10240; + if rows == 0 + || stride < 10240 + || (u64::from(rows) + 3) * 10240 > i32::MAX as u64 + || unsafe { ds4_gpu_tensor_bytes(input.raw()) } + < (u64::from(rows - 1) * u64::from(stride) + 10240) * 2 + || unsafe { ds4_gpu_tensor_bytes(weight.raw()) } < 10240 * 4 * 2 + || state.is_some_and(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < 3 * 10240 * 2) + || mask.is_some_and(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < u64::from(rows)) + || length.is_some_and(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < 4) + { + return Err("invalid MTPLX GDN conv inputs".into()); + } + let mut temporary = Vec::new(); + let input_span = ((rows - 1) as usize * stride as usize) + 10240; + let qkv = if let Some(mask) = mask { + let qkv = Buffer::mtplx_bytes(count * 2)?; + let zero = scalar_buffer(&0_u16.to_le_bytes())?; + let grid = [10240, rows, 1]; + dispatch_geometry( + if rows == 1 { + "g1_Selectbfloat16" + } else { + "g2_Selectbfloat16" + }, + &[ + tensor(0, mask).input(rows as usize), + tensor(1, input).input(input_span), + tensor(2, &zero).input(1), + tensor(3, &qkv).output(count as usize), + bytes(4, &if rows == 1 { [0_u64, 0] } else { [1_u64, 0] }), + bytes( + 5, + &if rows == 1 { + [1_u64, 0] + } else { + [u64::from(stride), 1] + }, + ), + bytes(6, &[0_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + qkv + } else { + input.view(0, (u64::from(rows - 1) * u64::from(stride) + 10240) * 2)? + }; + let stride = if mask.is_some() { 10240 } else { stride }; + let qkv_span = (rows - 1) as usize * stride as usize + 10240; + let q = Buffer::mtplx_bytes(u64::from(rows) * 2048 * 2)?; + let k = Buffer::mtplx_bytes(u64::from(rows) * 2048 * 2)?; + let v; + let conv; + let used_fused = has_cache + && mask.is_none() + && length.is_none() + && ((rows == 1 && fused[0]) || ((2..=6).contains(&rows) && fused[1])); + if used_fused { + v = Buffer::mtplx_bytes(u64::from(rows) * 6144 * 2)?; + conv = Buffer::mtplx_bytes(3 * 10240 * 2)?; + let packed; + let source = if rows == 1 || stride == 10240 { + &qkv + } else { + packed = Buffer::mtplx_bytes(count * 2)?; + let grid = [10240, rows, 1]; + dispatch_geometry( + "g2_copybfloat16bfloat16", + &[ + tensor(0, &qkv).input(qkv_span), + tensor(1, &packed).output(count as usize), + bytes(3, &[u64::from(stride), 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + temporary.push(packed); + temporary.last().unwrap() + }; + let source = source.view(0, count * 2)?; + let zero; + let state = if let Some(state) = state { + state + } else { + zero = Buffer::mtplx_bytes(3 * 10240 * 2)?; + let scalar = scalar_buffer(&0_u16.to_le_bytes())?; + // CustomKernel materializes the broadcast scalar with General copy. + dispatch_geometry( + "g1_copybfloat16bfloat16", + &[ + tensor(0, &scalar).input(1), + tensor(1, &zero).output(3 * 10240), + bytes(3, &0_u64), + ], + &[], + [3 * 10240, 1, 1], + [1024, 1, 1], + true, + )?; + temporary.push(zero); + temporary.last().unwrap() + }; + let state = state.view(0, 3 * 10240 * 2)?; + dispatch( + &if rows == 1 { + "kernel_qwen_mtplx_gdn_conv_norm_bf16".into() + } else { + format!("kernel_qwen_mtplx_gdn_conv_norm_rows_s{rows}_bf16") + }, + &[ + tensor(0, &source).input(count as usize), + tensor(1, &state).input(3 * 10240), + tensor(2, weight).input(4 * 10240), + tensor(3, &q).output(rows as usize * 2048), + tensor(4, &k).output(rows as usize * 2048), + tensor(5, &v).output(rows as usize * 6144), + tensor(6, &conv).output(3 * 10240), + ], + [10, 1, 1], + [1024, 1, 1], + )?; + encoder::add_temporaries(&temporary); + } else { + conv = Buffer::mtplx_bytes(3 * 10240 * 2)?; + let window = Buffer::mtplx_bytes((count + 3 * 10240) * 2)?; + let tail = window.view(3 * 10240 * 2, count * 2)?; + // Original concatenate_gpu uses concurrent disjoint out_slice writers. + let concurrent = encoder::concurrent_scope(); + let zero = state + .is_none() + .then(|| scalar_buffer(&0_u16.to_le_bytes())) + .transpose()?; + // Concatenate uses GeneralGeneral copies, even for contiguous slices. + dispatch_geometry( + "gg1_copybfloat16bfloat16", + &[ + tensor(0, state.or(zero.as_ref()).unwrap()).input(if state.is_some() { + 3 * 10240 + } else { + 1 + }), + tensor(1, &window).output(3 * 10240), + bytes(3, &u64::from(state.is_some())), + bytes(4, &1_u64), + ], + &[], + [3 * 10240, 1, 1], + [1024, 1, 1], + true, + )?; + let contiguous = rows == 1 || stride == 10240; + let grid = if contiguous { + [count as u32, 1, 1] + } else { + [10240, rows, 1] + }; + dispatch_geometry( + if contiguous { + "gg1_copybfloat16bfloat16" + } else { + "gg2_copybfloat16bfloat16" + }, + &[ + tensor(0, &qkv).input(qkv_span), + tensor(1, &tail).output(count as usize), + bytes( + 3, + &if contiguous { + [1_u64, 0] + } else { + [u64::from(stride), 1] + }, + ), + bytes( + 4, + &if contiguous { + [1_u64, 0] + } else { + [10240_u64, 1] + }, + ), + ], + &[], + grid, + block_dims(grid), + true, + )?; + drop(concurrent); + if let Some(length) = length { + let zero = scalar_buffer(&0_i32.to_le_bytes())?; + let upper = scalar_buffer(&(rows as i32).to_le_bytes())?; + let end = Buffer::mtplx_bytes(4)?; + let positions = Buffer::mtplx_bytes(12)?; + let range = Buffer::mtplx_bytes(12)?; + dispatch_geometry( + "vs_Maximumint32", + &[ + tensor(0, length).input(1), + tensor(1, &zero).input(1), + tensor(2, &end).output(1), + bytes(3, &1_u32), + ], + &[], + [1, 1, 1], + [1, 1, 1], + true, + )?; + dispatch_geometry( + "vs_Minimumint32", + &[ + tensor(0, &end).input(1), + tensor(1, &upper).input(1), + tensor(2, &end).output(1), + bytes(3, &1_u32), + ], + &[], + [1, 1, 1], + [1, 1, 1], + true, + )?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &0_i32), + bytes(1, &1_i32), + tensor(2, &range).output(3), + ], + &[], + [3, 1, 1], + [3, 1, 1], + true, + )?; + dispatch_geometry( + "sv_Addint32", + &[ + tensor(0, &end).input(1), + tensor(1, &range).input(3), + tensor(2, &positions).output(3), + bytes(3, &3_u32), + ], + &[], + [3, 1, 1], + [3, 1, 1], + true, + )?; + let grid = [10240, 3, 1]; + dispatch_geometry( + "kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_10", + &[ + tensor(0, &window).input(count as usize + 3 * 10240), + tensor(1, &positions).input(3), + tensor(2, &conv).output(3 * 10240), + bytes(3, &10240_u32), + bytes(4, &1_u64), + bytes(5, &0_u64), + bytes(6, &1_u64), + bytes(7, &0_u32), + bytes(8, &(rows + 3)), + bytes(9, &10240_u64), + bytes(10, &1_u64), + ], + &[], + grid, + block_dims(grid), + true, + )?; + temporary.extend([end, positions, range]); + } else { + let view = window.view(u64::from(rows) * 10240 * 2, 3 * 10240 * 2)?; + dispatch_geometry( + "g1_copybfloat16bfloat16", + &[ + tensor(0, &view).input(3 * 10240), + tensor(1, &conv).output(3 * 10240), + bytes(3, &1_u64), + ], + &[], + [3 * 10240, 1, 1], + [1024, 1, 1], + true, + )?; + } + let convolved = Buffer::mtplx_bytes(count * 2)?; + let grid = [10240, rows, 1]; + dispatch_geometry( + "depthwise_conv_1d_bfloat16", + &[ + tensor(0, &window).input(count as usize + 3 * 10240), + tensor(1, weight).input(4 * 10240), + tensor(2, &convolved).output(count as usize), + bytes(3, &[(rows + 3) * 10240, 10240, 1]), + bytes(4, &4_u32), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let count = count as u32; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "kernel_qwen_mtplx_silu_bf16_contiguous" + } else { + "kernel_qwen_mtplx_silu_bf16_contiguous_n" + }, + &[ + tensor(0, &convolved).input(count as usize), + tensor(1, &convolved).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + temporary.extend(gdn_l2_norm(&convolved, &q, rows, true)?); + let key = convolved.view(2048 * 2, u64::from(count - 2048) * 2)?; + temporary.extend(gdn_l2_norm(&key, &k, rows, false)?); + let value = convolved.view(4096 * 2, u64::from(count - 4096) * 2)?; + if rows == 1 { + v = value; + } else { + v = Buffer::mtplx_bytes(u64::from(rows) * 6144 * 2)?; + let grid = [6144, rows, 1]; + dispatch_geometry( + "g2_copybfloat16bfloat16", + &[ + tensor(0, &value).input((rows - 1) as usize * 10240 + 6144), + tensor(1, &v).output(rows as usize * 6144), + bytes(3, &[10240_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + temporary.extend([window, convolved]); + } + Ok(ConvNormOutput { + q, + k, + v, + conv, + qkv, + used_fused, + _temporaries: temporary, + }) +} + +#[cfg(test)] +pub(super) struct DeltaUpdateOutput { + pub(super) hidden: Buffer, + pub(super) delta: Buffer, + pub(super) g: Buffer, + pub(super) beta: Buffer, + _initial_state: Option, +} + +/// Actual gated_delta_update inference branch, including compute_g, sigmoid, +/// optional zero initial state and mask. Q/K/V are contiguous as required by +/// the reference custom-kernel dispatcher; A/B retain projection row strides. +#[cfg(test)] +pub(super) fn gated_delta_update( + [q, k, v]: [&Buffer; 3], + [a, b, a_log, dt_bias]: [&Buffer; 4], + [rows, gate_stride]: [u32; 2], + state: Option<&Buffer>, + mask: Option<&Buffer>, +) -> Result { + let count = u64::from(rows) * 48; + let state_count = 48 * 128 * 128_u32; + if rows == 0 || gate_stride < 48 || u64::from(rows) * 6144 > i32::MAX as u64 + || [q, k].iter().any(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < u64::from(rows) * 2048 * 2) + || unsafe { ds4_gpu_tensor_bytes(v.raw()) } < u64::from(rows) * 6144 * 2 + || [a, b].iter().any(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } + < (u64::from(rows - 1) * u64::from(gate_stride) + 48) * 2) + || [a_log, dt_bias].iter().any(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < 48 * 2) + || state.is_some_and(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < u64::from(state_count) * 4) + || mask.is_some_and(|x| unsafe { ds4_gpu_tensor_bytes(x.raw()) } < u64::from(rows)) + { return Err("invalid MTPLX gated delta inputs".into()); } + let gate_span = (rows - 1) as usize * gate_stride as usize + 48; + let beta = Buffer::mtplx_bytes(count * 2)?; + let g = Buffer::mtplx_bytes(count * 4)?; + if rows == 1 || gate_stride == 48 { + let count = count as u32; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_Sigmoidbfloat16bfloat16" + } else { + "vn_Sigmoidbfloat16bfloat16" + }, + &[ + tensor(0, b).input(gate_span), + tensor(1, &beta).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } else { + let grid = [48, rows, 1]; + dispatch_geometry( + "gn1_Sigmoidbfloat16bfloat16", + &[ + tensor(0, b).input(gate_span), + tensor(1, &beta).output(count as usize), + bytes(2, &[rows, 48]), + bytes(3, &[u64::from(gate_stride), 1]), + bytes(4, &2_u32), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + if rows == 1 { + dispatch_geometry( + "kernel_qwen_mtplx_compute_g_bf16_contiguous", + &[ + tensor(0, a_log).input(48), + tensor(1, a).input(gate_span), + tensor(2, dt_bias).input(48), + tensor(3, &g).output(count as usize), + bytes(4, &48_u32), + ], + &[], + [48, 1, 1], + [48, 1, 1], + true, + )?; + } else { + let grid = [48, rows, 1]; + dispatch_geometry( + "kernel_qwen_mtplx_compute_g_bf16_strided_2", + &[ + tensor(0, a_log).input(48), + tensor(1, a).input(gate_span), + tensor(2, dt_bias).input(48), + bytes(3, &[0_u64, 1, u64::from(gate_stride), 1, 0, 1]), + tensor(4, &g).output(count as usize), + bytes(5, &[rows, 48]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let hidden = Buffer::mtplx_bytes(u64::from(rows) * 6144 * 2)?; + let delta = Buffer::mtplx_bytes(u64::from(state_count) * 4)?; + let initial_state = if state.is_none() { + let zero = Buffer::mtplx_bytes(u64::from(state_count) * 4)?; + let scalar = scalar_buffer(&0_f32.to_le_bytes())?; + dispatch_geometry( + "g1_copyfloat32float32", + &[ + tensor(0, &scalar).input(1), + tensor(1, &zero).output(state_count as usize), + bytes(3, &0_u64), + ], + &[], + [state_count, 1, 1], + [1024, 1, 1], + true, + )?; + Some(zero) + } else { + None + }; + let state = state.or(initial_state.as_ref()).unwrap(); + let length = scalar_buffer(&(rows as i32).to_le_bytes())?; + let mut bindings = vec![ + tensor(0, q).input(rows as usize * 2048), + tensor(1, k).input(rows as usize * 2048), + tensor(2, v).input(rows as usize * 6144), + tensor(3, &g).input(count as usize), + tensor(4, &beta).input(count as usize), + tensor(5, state).input(state_count as usize), + tensor(6, &length).input(1), + ]; + if let Some(mask) = mask { + bindings.push(tensor(7, mask).input(rows as usize)); + } + let index = bindings.len() as u32; + bindings.extend([ + tensor(index, &hidden).output(rows as usize * 6144), + tensor(index + 1, &delta).output(state_count as usize), + ]); + dispatch( + if mask.is_some() { + "kernel_qwen_mtplx_gated_delta_masked_bf16" + } else { + "kernel_qwen_mtplx_gated_delta_bf16" + }, + &bindings, + [1, 32, 48], + [32, 4, 1], + )?; + if let Some(initial_state) = &initial_state { + encoder::add_temporaries(std::slice::from_ref(initial_state)); + } + Ok(DeltaUpdateOutput { + hidden, + delta, + g, + beta, + _initial_state: initial_state, + }) +} + +#[cfg(test)] +fn qsa_copy_span(shape: [u32; 3], strides: [u64; 3]) -> Result { + if shape.contains(&0) { + return Ok(0); + } + shape + .into_iter() + .zip(strides) + .try_fold(1_usize, |span, (dim, stride)| { + usize::try_from(stride) + .ok() + .and_then(|stride| (dim as usize - 1).checked_mul(stride)) + .and_then(|n| span.checked_add(n)) + .ok_or_else(|| "QSA copy element span overflow".into()) + }) +} + +/// GeneralGeneral copy used by the reference's slice updates/concatenations. +/// Collapse only dimensions contiguous in BOTH source and destination. +#[cfg(test)] +fn qsa_copy( + source: Option<&Buffer>, + target: &Buffer, + shape: [u32; 3], + source_strides: [u64; 3], + target_strides: [u64; 3], + width: u32, + output_elements: usize, +) -> Result<(), String> { + qsa_copy_typed( + source, + target, + shape, + source_strides, + target_strides, + if width == 2 { "bfloat16" } else { "float32" }, + output_elements, + ) +} + +#[cfg(test)] +fn qsa_copy_typed( + source: Option<&Buffer>, + target: &Buffer, + shape: [u32; 3], + source_strides: [u64; 3], + target_strides: [u64; 3], + dtype: &str, + output_elements: usize, +) -> Result<(), String> { + if shape.contains(&0) { + return Ok(()); + } + let itemsize = match dtype { + "bool_" => 1, + "bfloat16" => 2, + "float32" | "int32" | "uint32" => 4, + _ => return Err("unsupported QSA copy dtype".into()), + }; + let zero = source + .is_none() + .then(|| scalar_buffer(&[0; 4][..itemsize])) + .transpose()?; + qsa_copy_offsets( + [ + tensor(0, source.or(zero.as_ref()).unwrap()).input(if source.is_some() { + qsa_copy_span(shape, source_strides)? + } else { + 1 + }), + tensor(1, target).output(output_elements), + ], + shape, + source_strides, + target_strides, + dtype, + [None; 2], + ) +} + +#[cfg(test)] +fn qsa_copy_offsets( + buffers: [Binding<'_>; 2], + shape: [u32; 3], + source_strides: [u64; 3], + target_strides: [u64; 3], + dtype: &str, + offsets: [Option<&Buffer>; 2], +) -> Result<(), String> { + if shape.contains(&0) { + return Ok(()); + } + let mut dims: Vec<(u32, u64, u64)> = Vec::new(); + for ((n, s), d) in shape.into_iter().zip(source_strides).zip(target_strides) { + if n == 1 { + continue; + } + if let Some(last) = dims.last_mut() + && last.1 == u64::from(n) * s + && last.2 == u64::from(n) * d + { + last.0 = last.0.checked_mul(n).ok_or("QSA copy shape overflow")?; + last.1 = s; + last.2 = d; + } else { + dims.push((n, s, d)); + } + } + if dims.is_empty() { + dims.push((1, 0, 0)); + } + let mut ss = [0_u64; 3]; + let mut ds = [0_u64; 3]; + let mut grid = [1_u32; 3]; + for (i, (n, s, d)) in dims.iter().enumerate() { + ss[i] = *s; + ds[i] = *d; + grid[dims.len() - 1 - i] = *n; + } + let dynamic = offsets.iter().any(Option::is_some); + let zero = 0_i64; + let [source, target] = buffers; + let bindings = [ + source, + target, + bytes(3, &ss), + bytes(4, &ds), + offsets[0].map_or_else(|| bytes(6, &zero), |b| tensor(6, b).input(1)), + offsets[1].map_or_else(|| bytes(7, &zero), |b| tensor(7, b).input(1)), + ]; + dispatch_geometry( + &format!( + "gg{}{}_copy{dtype}{dtype}", + dims.len(), + if dynamic { "_dynamic" } else { "" } + ), + &bindings[..if dynamic { 6 } else { 4 }], + &[], + grid, + block_dims(grid), + true, + ) +} + +/// Original DynamicSlice/Update row-copy stage for B1 BF16 indexer leaves. +/// Start leaves are int32[1] graph values with validated in-bounds semantics; +/// they stay on-device, just as in the reference's private GPU primitives. +/// Returns offset temporaries so callers retain the entire asynchronous chain. +#[cfg(test)] +pub(super) fn qsa_dynamic_copy_rows( + [source, target]: [&Buffer; 2], + [source_stride, target_stride]: [u64; 2], + [rows, width]: [u32; 2], + starts: [Option<&Buffer>; 2], + data_sizes: [usize; 2], +) -> Result, String> { + if rows == 0 + || width == 0 + || rows.checked_mul(width).is_none_or(|n| n > i32::MAX as u32) + || source_stride < u64::from(width) + || target_stride < u64::from(width) + || starts + .iter() + .flatten() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < 4) + || [source, target] + .into_iter() + .zip([source_stride, target_stride]) + .any(|(b, stride)| { + u64::from(rows - 1) + .checked_mul(stride) + .and_then(|n| n.checked_add(u64::from(width))) + .and_then(|n| n.checked_mul(2)) + .is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < n) + }) + { + return Err("invalid QSA dynamic copy buffers or geometry".into()); + } + for ((buffer, size), stride) in [source, target] + .into_iter() + .zip(data_sizes) + .zip([source_stride, target_stride]) + { + if size < qsa_copy_span([1, rows, width], [0, stride, 1])? + || size + .checked_mul(2) + .is_none_or(|n| n as u64 > unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }) + { + return Err("invalid QSA dynamic copy array data_size".into()); + } + } + let mut offsets = [None, None]; + for (i, (start, stride)) in starts + .into_iter() + .zip([source_stride, target_stride]) + .enumerate() + { + if let Some(start) = start { + let indices = array::Array::new(&[1], array::Dtype::I32, start.view(0, 4)?)?; + let stride = i64::try_from(stride).map_err(|_| "QSA dynamic copy stride overflow")?; + let offset = views::dynamic_offset(&indices, &[0, stride, 1], &[1])?; + offsets[i] = Some(offset.buffer().view(0, 8)?); + } + } + qsa_copy_offsets( + [ + tensor(0, source).input(data_sizes[0]), + tensor(1, target).output(data_sizes[1]), + ], + [1, rows, width], + [0, source_stride, 1], + [0, target_stride, 1], + "bfloat16", + [offsets[0].as_ref(), offsets[1].as_ref()], + )?; + Ok(offsets.into_iter().flatten().collect()) +} + +#[cfg(test)] +fn qsa_zero(count: u32, width: u32) -> Result { + let output = Buffer::mtplx_bytes(u64::from(count) * u64::from(width))?; + let zero = scalar_buffer(&[0; 4][..width as usize])?; + let work = if count < 65536 { 1 } else { 8 / width }; + let threads = count.div_ceil(work); + let dtype = if width == 2 { "bfloat16" } else { "float32" }; + dispatch_geometry( + &format!("s{}_copy{dtype}{dtype}", if work == 1 { "" } else { "n" }), + &[ + tensor(0, &zero).input(1), + tensor(1, &output).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + Ok(output) +} + +#[cfg(test)] +fn qsa_grown_capacity(end: u32, current: u32) -> Result { + end.checked_add(255) + .map(|n| n / 256 * 256) + .zip(current.checked_mul(2)) + .map(|(a, b)| a.max(b)) + .filter(|cap| *cap <= i32::MAX as u32 / 512) + .ok_or_else(|| "QSA capacity overflow".into()) +} + +/// Four logical state leaves, sharing immutable backing until a later write. +/// Python array identity and its separately shared storage are different things: +/// __setitem__ overwrites the array descriptor, whereas slicing creates an array. +#[cfg(test)] +pub(super) struct QsaArray { + storage: array::Array, + pub(super) head_stride: Cell, +} + +#[cfg(test)] +impl QsaArray { + pub(super) fn new(buffer: Buffer, head_stride: u64) -> Result, String> { + let elements = i32::try_from(unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } / 2) + .map_err(|_| "QSA backing dimension overflow")?; + Ok(Rc::new(Self { + storage: array::Array::new(&[elements], array::Dtype::BF16, buffer)?, + head_stride: Cell::new(head_stride), + })) + } + + pub(super) fn buffer(&self) -> Ref<'_, Buffer> { + self.storage.buffer() + } + + fn slice(&self) -> Rc { + Rc::new(Self { + storage: self.storage.share_data(), + head_stride: Cell::new(self.head_stride.get()), + }) + } + + fn shared_storage(&self) -> bool { + self.storage.shared_storage() + } + + // Installed BF16 vector-copy contract: descriptor and Data must both be + // exclusive, and at most 16 KiB of the root allocation may be unused. + fn can_donate_bf16(array: &Rc, input: &Buffer, output_bytes: u64) -> bool { + let storage = array.buffer(); + Rc::strong_count(array) == 1 + && array.storage.is_donatable() + && storage.identity() == input.identity() + && input.unique_data() + && unsafe { ds4_gpu_tensor_bytes(input.raw()) } >= output_bytes + && input.allocation_bytes().saturating_sub(output_bytes) <= 16384 + } +} + +#[derive(Clone)] +#[cfg(test)] +pub(super) struct QsaSnapshot { + pub(super) leaves: [Option>; 4], // keys, values, raw, pooled + pub(super) offset: u32, + pub(super) pooled_len: u32, +} + +/// Installed single-sequence QSACache + KVCache geometry (KV2x256, index128). +/// Array aliases follow MTPLX's state setter; distinct views use storage COW. +#[derive(Default)] +#[cfg(test)] +pub(super) struct QsaCache { + pub(super) keys: Option>, + pub(super) values: Option>, + pub(super) raw: Option>, + pub(super) pooled: Option>, + pub(super) mirror: Option>, + pub(super) offset: u32, + pub(super) kv_cap: u32, + pub(super) kv_head_stride: u64, + pub(super) raw_cap: u32, + pub(super) pooled_cap: u32, + pub(super) pooled_len: u32, + pub(super) mirror_cap: u32, + pub(super) mirror_strides: [u64; 2], // D, blocks; initial transpose is a VIEW + reserved_raw: u32, + reserved_pooled: u32, +} + +/// Original precompute_qsa_replay_capacity for the installed ratio4/step256. +/// The fixed ceil(window/4) staging window can exceed the logical frontier. +#[cfg(test)] +pub(super) fn qsa_replay_capacity( + start: u32, + window: u32, + existing: [u32; 2], +) -> Result<[u32; 2], String> { + let end = start + .checked_add(window) + .ok_or("QSA replay frontier overflow")?; + let staging = window.div_ceil(4); + let staging_tokens = staging.checked_mul(4).ok_or("QSA replay window overflow")?; + let [raw, pooled] = [ + existing[0].max(end).max(staging_tokens), + existing[1].max(end / 4).max(staging), + ] + .map(|required| { + if required == 0 { + return Ok(0); + } + required + .max(256) + .checked_next_power_of_two() + .filter(|n| *n <= i32::MAX as u32 / 512) + .ok_or_else(|| "QSA replay capacity overflow".to_owned()) + }); + Ok([raw?, pooled?]) +} + +#[cfg(test)] +impl QsaCache { + fn grow_index( + buffer: &mut Option>, + cap: &mut u32, + target: u32, + ) -> Result<(), String> { + if target == 0 || target > i32::MAX as u32 / 512 { + return Err("invalid QSA capacity".into()); + } + let grown = qsa_zero(target * 128, 2)?; + if let Some(old) = buffer.as_ref() { + qsa_copy( + Some(&old.buffer()), + &grown, + [1, *cap, 128], + [0, 128, 1], + [0, 128, 1], + 2, + target as usize * 128, + )?; + } + *buffer = Some(QsaArray::new(grown, 0)?); + *cap = target; + Ok(()) + } + + fn index_cow(buffer: &Option>, cap: u32) -> Result<(), String> { + if let Some(old) = buffer.as_ref() + && old.shared_storage() + { + let copy = Buffer::mtplx_bytes(u64::from(cap) * 128 * 2)?; + let count = cap * 128; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_copybfloat16bfloat16" + } else { + "vn_copybfloat16bfloat16" + }, + &[ + tensor(0, &old.buffer()).input(count as usize), + tensor(1, ©).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + old.storage.replace(copy); + } + Ok(()) + } + + pub(super) fn reserve(&mut self, raw: u32, pooled: u32) -> Result<(), String> { + let raw = raw.max(self.raw_cap).max(self.reserved_raw); + let pooled = pooled.max(self.pooled_cap).max(self.reserved_pooled); + if raw < self.offset + || pooled < self.pooled_len + || raw > i32::MAX as u32 / 512 + || pooled > i32::MAX as u32 / 512 + { + return Err("invalid QSA reservation".into()); + } + self.reserved_raw = raw; + self.reserved_pooled = pooled; + if self.raw.is_some() && raw > self.raw_cap { + Self::grow_index(&mut self.raw, &mut self.raw_cap, raw)?; + } + if self.pooled.is_some() && pooled > self.pooled_cap { + Self::grow_index(&mut self.pooled, &mut self.pooled_cap, pooled)?; + } + Ok(()) + } + + /// _ensure_compiled_backings includes pending reservations and materializes + /// pristine leaves. It neither advances KV.offset nor the pooled frontier. + pub(super) fn ensure_compiled_backings(&mut self, rows: u32) -> Result<(), String> { + if rows == 0 { + return Err("compiled QSA requires positive rows".into()); + } + let [raw, pooled] = qsa_replay_capacity( + self.offset, + rows, + [ + self.raw_cap.max(self.reserved_raw), + self.pooled_cap.max(self.reserved_pooled), + ], + )?; + self.reserve(raw, pooled.max(256))?; + if self.raw.is_none() { + Self::grow_index(&mut self.raw, &mut self.raw_cap, self.reserved_raw)?; + } + if self.pooled.is_none() { + Self::grow_index(&mut self.pooled, &mut self.pooled_cap, self.reserved_pooled)?; + } + Ok(()) + } + + pub(super) fn write_raw( + &mut self, + keys: &Buffer, + rows: u32, + stride: u64, + ) -> Result<(), String> { + let end = self + .offset + .checked_add(rows) + .filter(|n| *n <= i32::MAX as u32 / 512) + .ok_or("QSA raw range overflow")?; + let bytes_needed = u64::from(rows.saturating_sub(1)) + .checked_mul(stride) + .and_then(|n| n.checked_add(128)) + .and_then(|n| n.checked_mul(2)); + if rows == 0 + || stride < 128 + || bytes_needed.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(keys.raw()) } < n) + { + return Err("invalid QSA raw input".into()); + } + if self.raw.is_none() || end > self.raw_cap { + let target = qsa_grown_capacity(end, self.raw_cap)?.max(self.reserved_raw); + Self::grow_index(&mut self.raw, &mut self.raw_cap, target)?; + } else { + Self::index_cow(&self.raw, self.raw_cap)?; + } + let target = self + .raw + .as_ref() + .unwrap() + .buffer() + .view(u64::from(self.offset) * 128 * 2, u64::from(rows) * 128 * 2)?; + qsa_copy( + Some(keys), + &target, + [1, rows, 128], + [0, stride, 1], + [0, 128, 1], + 2, + self.raw_cap as usize * 128, + ) + } + + pub(super) fn write_pooled( + &mut self, + blocks: &Buffer, + start: u32, + total: u32, + ) -> Result<(), String> { + if total <= start + || total > i32::MAX as u32 / 512 + || unsafe { ds4_gpu_tensor_bytes(blocks.raw()) } < u64::from(total - start) * 128 * 2 + { + return Err("invalid QSA pooled input".into()); + } + if self.pooled.is_none() || total > self.pooled_cap { + let target = qsa_grown_capacity(total, self.pooled_cap)?.max(self.reserved_pooled); + Self::grow_index(&mut self.pooled, &mut self.pooled_cap, target)?; + } else { + Self::index_cow(&self.pooled, self.pooled_cap)?; + } + let target = self.pooled.as_ref().unwrap().buffer().view( + u64::from(start) * 128 * 2, + u64::from(total - start) * 128 * 2, + )?; + qsa_copy( + Some(blocks), + &target, + [1, total - start, 128], + [0, 128, 1], + [0, 128, 1], + 2, + self.pooled_cap as usize * 128, + )?; + if self.mirror.is_none() { + self.rebuild_mirror()?; + } else { + if self.mirror_cap < self.pooled_cap { + let grown = qsa_zero(self.pooled_cap * 128, 4)?; + qsa_copy( + self.mirror.as_deref(), + &grown, + [1, 128, self.mirror_cap], + [0, self.mirror_strides[0], self.mirror_strides[1]], + [0, u64::from(self.pooled_cap), 1], + 4, + self.pooled_cap as usize * 128, + )?; + self.mirror = Some(Rc::new(grown)); + self.mirror_cap = self.pooled_cap; + self.mirror_strides = [u64::from(self.pooled_cap), 1]; + } + let f32blocks = Buffer::mtplx_bytes(u64::from(total - start) * 128 * 4)?; + cast_bf16_f32(blocks, &f32blocks, (total - start) * 128, true)?; + let at = u64::from(start) * self.mirror_strides[1] * 4; + let span = (127 * self.mirror_strides[0] + + u64::from(total - start - 1) * self.mirror_strides[1] + + 1) + * 4; + let target = self.mirror.as_ref().unwrap().view(at, span)?; + qsa_copy( + Some(&f32blocks), + &target, + [1, 128, total - start], + [0, 1, 128], + [0, self.mirror_strides[0], self.mirror_strides[1]], + 4, + self.mirror_cap as usize * 128, + )?; + } + self.pooled_len = total; + Ok(()) + } + + fn rebuild_mirror(&mut self) -> Result<(), String> { + let pooled = self + .pooled + .as_ref() + .ok_or("QSA mirror needs pooled state")?; + let mirror = Buffer::mtplx_bytes(u64::from(self.pooled_cap) * 128 * 4)?; + cast_bf16_f32(&pooled.buffer(), &mirror, self.pooled_cap * 128, true)?; + self.mirror = Some(Rc::new(mirror)); + self.mirror_cap = self.pooled_cap; + self.mirror_strides = [1, 128]; + Ok(()) + } + + pub(super) fn pooled_f32_view(&mut self, nb: u32) -> Result<(&Buffer, [u64; 2]), String> { + if nb == 0 || nb > self.pooled_cap { + return Err("invalid QSA mirror frontier".into()); + } + if self.mirror.is_none() || self.mirror_cap < nb { + self.rebuild_mirror()?; + } + Ok((self.mirror.as_deref().unwrap(), self.mirror_strides)) + } + + pub(super) fn extend_pooled( + &mut self, + total: u32, + norm: &Buffer, + freq: &Buffer, + eager: bool, + ) -> Result, String> { + let nb = total / 4; + let old = self.pooled_len.min(nb); + if total > self.raw_cap { + return Err("QSA pool exceeds raw backing".into()); + } + if nb > old { + let fresh = self + .raw + .as_ref() + .ok_or("QSA pool needs raw keys")? + .buffer() + .view( + u64::from(old) * 4 * 128 * 2, + u64::from(nb - old) * 4 * 128 * 2, + )?; + let (blocks, mut temporary) = if eager { + qsa_pool_keys_eager([&fresh, norm, freq], nb - old, [128, 1], old as i32)? + } else { + ( + qsa_pool_keys([&fresh, norm, freq], nb - old, [128, 1], old as i32)?, + Vec::new(), + ) + }; + self.write_pooled(&blocks, old, nb)?; + temporary.push(blocks); + return Ok(temporary); + } + Ok(Vec::new()) + } + + pub(super) fn update_kv( + &mut self, + keys: &Buffer, + values: &Buffer, + rows: u32, + strides: [u64; 2], + ) -> Result<(), String> { + let end = self + .offset + .checked_add(rows) + .filter(|n| *n <= i32::MAX as u32 / 512) + .ok_or("QSA KV range overflow")?; + let bytes_needed = u64::from(rows.saturating_sub(1)) + .checked_mul(strides[1]) + .and_then(|n| n.checked_add(strides[0])) + .and_then(|n| n.checked_add(256)) + .and_then(|n| n.checked_mul(2)); + if rows == 0 + || bytes_needed.is_none_or(|n| { + [keys, values] + .iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < n) + }) + { + return Err("invalid QSA KV input".into()); + } + if self.keys.is_none() || end > self.kv_cap { + let keep = if !self.offset.is_multiple_of(256) { + self.offset + } else { + self.kv_cap + }; + let extra = rows.div_ceil(256) * 256; + let cap = keep + .checked_add(extra) + .filter(|n| *n <= i32::MAX as u32 / 512) + .ok_or("QSA KV allocation overflow")?; + for buffer in [&mut self.keys, &mut self.values] { + let grown = if buffer.is_none() { + qsa_zero(cap * 512, 2)? + } else { + Buffer::mtplx_bytes(u64::from(cap) * 512 * 2)? + }; + let concurrent = encoder::concurrent_scope(); + if let Some(old) = buffer.as_ref() { + qsa_copy( + Some(&old.buffer()), + &grown, + [2, keep, 256], + [self.kv_head_stride, 256, 1], + [u64::from(cap) * 256, 256, 1], + 2, + keep as usize * 512, + )?; + } + if buffer.is_some() { + let tail = grown.view( + u64::from(keep) * 256 * 2, + (u64::from(cap) * 256 + u64::from(extra) * 256) * 2, + )?; + qsa_copy( + None, + &tail, + [2, extra, 256], + [0; 3], + [u64::from(cap) * 256, 256, 1], + 2, + extra as usize * 512, + )?; + } + drop(concurrent); + *buffer = Some(QsaArray::new(grown, u64::from(cap) * 256)?); + } + self.kv_cap = cap; + self.kv_head_stride = u64::from(cap) * 256; + } else { + // Distinct slices can prevent donation; aliases of the same array + // object observe its descriptor replacement instead. + let need_copy = [&self.keys, &self.values] + .iter() + .any(|b| b.as_ref().unwrap().shared_storage()) + || self.kv_head_stride != u64::from(self.kv_cap) * 256; + if need_copy { + for buffer in [&mut self.keys, &mut self.values] { + let copy = Buffer::mtplx_bytes(u64::from(self.kv_cap) * 512 * 2)?; + if self.kv_head_stride == u64::from(self.kv_cap) * 256 { + let count = self.kv_cap * 512; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_copybfloat16bfloat16" + } else { + "vn_copybfloat16bfloat16" + }, + &[ + tensor(0, &buffer.as_ref().unwrap().buffer()).input( + (self.kv_head_stride + u64::from(self.kv_cap) * 256) as usize, + ), + tensor(1, ©).output(self.kv_cap as usize * 512), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + } else { + let grid = [self.kv_cap * 256, 2, 1]; + dispatch_geometry( + "g2_copybfloat16bfloat16", + &[ + tensor(0, &buffer.as_ref().unwrap().buffer()).input( + (self.kv_head_stride + u64::from(self.kv_cap) * 256) as usize, + ), + tensor(1, ©).output(self.kv_cap as usize * 512), + bytes(3, &[self.kv_head_stride, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let array = buffer.as_ref().unwrap(); + array.storage.replace(copy); + array.head_stride.set(u64::from(self.kv_cap) * 256); + } + self.kv_head_stride = u64::from(self.kv_cap) * 256; + } + } + for (source, target) in [keys, values].into_iter().zip([&self.keys, &self.values]) { + let span = (self.kv_head_stride + u64::from(rows) * 256) * 2; + let target = target + .as_ref() + .unwrap() + .buffer() + .view(u64::from(self.offset) * 256 * 2, span)?; + qsa_copy( + Some(source), + &target, + [2, rows, 256], + [strides[0], strides[1], 1], + [self.kv_head_stride, 256, 1], + 2, + self.kv_cap as usize * 512, + )?; + } + self.offset = end; + Ok(()) + } + + pub(super) fn trim(&mut self, n: u32) -> u32 { + let trimmed = n.min(self.offset); + self.offset -= trimmed; + self.pooled_len = self.pooled_len.min(self.offset / 4); + trimmed + } + + pub(super) fn nbytes(&self) -> u64 { + // QSACache reports logical backing capacities, excluding its FP32 mirror. + u64::from(if self.keys.is_some() { self.kv_cap } else { 0 }) * 2048 + + u64::from(self.raw_cap) * 256 + + u64::from(self.pooled_cap) * 256 + } + + pub(super) fn snapshot(&self) -> QsaSnapshot { + let nb = self.pooled_len.min(self.offset / 4); + let kv = |array: &Option>| { + array.as_ref().map(|a| { + if self.offset == self.kv_cap { + a.clone() + } else { + a.slice() + } + }) + }; + QsaSnapshot { + leaves: [ + kv(&self.keys), + kv(&self.values), + self.raw.as_ref().map(|a| a.slice()), + if nb == 0 { + None + } else { + self.pooled.as_ref().map(|a| a.slice()) + }, + ], + offset: self.offset, + pooled_len: nb, + } + } + + pub(super) fn restore(&mut self, state: &QsaSnapshot) -> Result<(), String> { + let head_stride = state.leaves[0].as_ref().map_or(0, |a| a.head_stride.get()); + let kv_span = head_stride + .checked_add(u64::from(state.offset) * 256) + .and_then(|n| n.checked_mul(2)); + if state.offset>i32::MAX as u32/512 || state.pooled_len>state.offset/4 + || state.leaves[0].is_some()!=state.leaves[1].is_some() + || (state.offset>0 && state.leaves[0].is_none()) + || (state.pooled_len>0 && state.leaves[3].is_none()) + || state.leaves[..2].iter().flatten().any(|b|kv_span.is_none_or(|n|unsafe{ds4_gpu_tensor_bytes(b.buffer().raw())} &'static str { + match self { + Self::Blocks => "blocks", + Self::DenseMask => "dense_mask", + Self::RowTokens => "row_tokens", + } + } +} + +/// Original selector specialization for the installed H4/D128/ratio4 model. +/// Logical frontiers remain device scalars, not shader specializations. +#[derive(Clone, Copy)] +#[cfg(test)] +pub(super) struct QsaSelectPlan { + pub(super) rows: u32, + pub(super) blocks: u32, + pub(super) topk: u32, + pub(super) pos: u32, + pub(super) total: u32, + pub(super) logical: u32, + pub(super) dense_width: u32, + pub(super) mode: QsaSelectMode, + pub(super) tf32: bool, + pub(super) input_f32: [bool; 2], +} + +#[cfg(test)] +impl QsaSelectPlan { + fn widths(self) -> Vec<(u32, u32)> { + match self.mode { + QsaSelectMode::Blocks => vec![(self.topk, 4), (self.topk, 1), (self.topk, 4)], + QsaSelectMode::DenseMask => vec![(self.dense_width, 1)], + QsaSelectMode::RowTokens => vec![(self.topk * 4 + 4, 4), (self.topk * 4 + 4, 1)], + } + } + + fn canonical(self) -> qsa_select::Kernel { + use array::Dtype; + qsa_select::Kernel { + heads: 4, + dim: 128, + blocks: self.blocks as i32, + topk: self.topk as i32, + ratio: 4, + dense_width: if self.mode == QsaSelectMode::DenseMask { + self.dense_width as i32 + } else { + 0 + }, + mode: self.mode, + tf32: self.tf32, + dtypes: self + .input_f32 + .map(|f32| if f32 { Dtype::F32 } else { Dtype::BF16 }), + } + } + + pub(super) fn source(self) -> Result { + self.canonical().source() + } +} + +/// One original fused selector dispatch, including its otherwise private scratch. +#[cfg(test)] +pub(super) struct QsaSelection { + pub(super) outputs: Vec, + pub(super) row_widths: Vec<(u32, u32)>, // elements, storage bytes + pub(super) row_strides: Vec, + _temporaries: Vec, +} + +/// One original fused selector dispatch, including its otherwise private scratch. +#[cfg(test)] +pub(super) fn qsa_select( + [q, pooled]: [&Buffer; 2], + q_strides: [u64; 3], + pooled_strides: [u64; 2], + plan: QsaSelectPlan, +) -> Result { + if plan.rows == 0 + || plan.rows > i32::MAX as u32 / 512 + || !(1..=512).contains(&plan.topk) + || plan.total > i32::MAX as u32 + || plan + .pos + .checked_add(plan.rows) + .is_none_or(|n| n > plan.total) + || plan.logical > plan.blocks + || plan.logical != plan.total / 4 + || (plan.mode == QsaSelectMode::DenseMask && plan.dense_width < plan.total) + { + return Err("invalid QSA selector geometry or frontier".into()); + } + let positions = + [plan.pos, plan.total, plan.logical].map(|value| scalar_buffer(&value.to_le_bytes())); + let [pos, total, logical] = positions; + let positions = [pos?, total?, logical?]; + let mut out = qsa_select_device( + [q, pooled], + q_strides, + pooled_strides, + plan, + [&positions[0], &positions[1], &positions[2]], + )?; + out._temporaries.extend(positions); + Ok(out) +} + +/// Fixed selector geometry with explicit int32[1] graph frontier leaves. +/// plan.pos/total/logical are unused here; only the device leaves are consumed. +#[cfg(test)] +pub(super) fn qsa_select_device( + [q, pooled]: [&Buffer; 2], + q_strides: [u64; 3], + pooled_strides: [u64; 2], + plan: QsaSelectPlan, + [pos, total, logical]: [&Buffer; 3], +) -> Result { + if plan.rows == 0 + || plan.rows > i32::MAX as u32 / 512 + || plan.blocks > i32::MAX as u32 + || !(1..=512).contains(&plan.topk) + || [pos, total, logical] + .into_iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < 4) + { + return Err("invalid QSA device selector geometry or leaves".into()); + } + for (buffer, shape, strides, f32) in [ + (q, [plan.rows, 4, 128], q_strides, plan.input_f32[0]), + ( + pooled, + [1, plan.blocks, 128], + [0, pooled_strides[0], pooled_strides[1]], + plan.input_f32[1], + ), + ] { + let span = shape + .into_iter() + .zip(strides) + .try_fold(0_u64, |n, (dim, stride)| { + u64::from(dim.saturating_sub(1)) + .checked_mul(stride) + .and_then(|v| n.checked_add(v)) + }) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(if f32 { 4 } else { 2 })); + if !shape.contains(&0) + && span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < n) + { + return Err("QSA selector input exceeds backing buffer".into()); + } + } + use array::{Array, Dtype}; + let kernel = plan.canonical(); + let q = buffer_array( + q, + &[1, plan.rows as i32, 4, 128], + &[0, q_strides[0], q_strides[1], q_strides[2]], + kernel.dtypes[0], + )?; + let pooled = buffer_array( + pooled, + &[1, plan.blocks as i32, 128], + &[0, pooled_strides[0], pooled_strides[1]], + kernel.dtypes[1], + )?; + let inputs = vec![ + q, + pooled, + Array::new(&[1], Dtype::I32, pos.view(0, 4)?)?, + Array::new(&[1], Dtype::I32, total.view(0, 4)?)?, + Array::new(&[1], Dtype::I32, logical.view(0, 4)?)?, + ]; + let arrays = kernel + .layouts(plan.rows as i32)? + .into_iter() + .map(|layout| { + Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes((layout.nbytes() as u64).max(4))?, + ) + }) + .collect::, String>>()?; + qsa_select::encode(&inputs, &arrays, kernel)?; + let mut buffers = arrays + .iter() + .map(|a| a.buffer().view(0, (a.layout().nbytes() as u64).max(4))) + .collect::, _>>()?; + let scratch = buffers.pop().ok_or("QSA scratch sibling missing")?; + let widths = plan.widths(); + Ok(QsaSelection { + outputs: buffers, + row_strides: widths.iter().map(|(w, _)| *w).collect(), + row_widths: widths, + _temporaries: vec![scratch], + }) +} + +/// Preserve an existing Buffer view when delegating to the canonical backend. +#[cfg(test)] +fn buffer_array( + buffer: &Buffer, + shape: &[i32], + strides: &[u64], + dtype: array::Dtype, +) -> Result { + use array::{Array, Flags}; + let strides = strides + .iter() + .map(|&s| i64::try_from(s).map_err(|_| "QSA stride overflow")) + .collect::, _>>()?; + let size = if shape.contains(&0) { + 0 + } else { + shape.iter().zip(&strides).try_fold(1_i64, |n, (&d, &s)| { + n.checked_add( + i64::from(d.saturating_sub(1)) + .checked_mul(s) + .ok_or("QSA span overflow")?, + ) + .ok_or("QSA span overflow") + })? as usize + }; + let a = Array::unallocated(shape, dtype)?; + let (_, row, col) = a.layout().contiguity(&strides)?; + a.set_strided_data( + buffer.view(0, (size * dtype.itemsize()) as u64)?, + size, + &strides, + Flags { + contiguous: row || col, + row_contiguous: row, + col_contiguous: col, + }, + 0, + )?; + Ok(a) +} + +/// QSAIndexer._select_fused: bound score scratch per dispatch, concatenate +/// original typed outputs, then return a zero-copy logical dense-mask slice. +#[cfg(test)] +pub(super) fn qsa_select_chunked( + input: [&Buffer; 2], + q_strides: [u64; 3], + pooled_strides: [u64; 2], + mut plan: QsaSelectPlan, +) -> Result { + if plan.rows == 0 + || plan.rows > i32::MAX as u32 / 512 + || !(1..=512).contains(&plan.topk) + || plan.total > i32::MAX as u32 + || plan + .pos + .checked_add(plan.rows) + .is_none_or(|n| n > plan.total) + || plan.logical > plan.blocks + || plan.logical != plan.total / 4 + { + return Err("invalid chunked QSA geometry".into()); + } + if plan.mode == QsaSelectMode::DenseMask { + plan.dense_width = plan + .blocks + .checked_add(1) + .and_then(|n| n.checked_mul(4)) + .ok_or("QSA dense capacity overflow")?; + } + let chunk_rows = u64::from(plan.rows) + .min(((32 * 1024 * 1024) / (u64::from(plan.blocks.max(1)) * 4)).max(1)) + as u32; + let mut chunks = Vec::new(); + for start in (0..plan.rows).step_by(chunk_rows as usize) { + let rows = chunk_rows.min(plan.rows - start); + let at = u64::from(start) + .checked_mul(q_strides[0]) + .and_then(|n| n.checked_mul(if plan.input_f32[0] { 4 } else { 2 })) + .ok_or("QSA query slice overflow")?; + let bytes = unsafe { ds4_gpu_tensor_bytes(input[0].raw()) } + .checked_sub(at) + .ok_or("QSA query slice outside backing")?; + let query = input[0].view(at, bytes)?; + let pos = plan + .pos + .checked_add(start) + .ok_or("QSA query position overflow")?; + chunks.push(qsa_select( + [&query, input[1]], + q_strides, + pooled_strides, + QsaSelectPlan { rows, pos, ..plan }, + )?); + } + let mut result = qsa_concat_selection(chunks, plan, chunk_rows)?; + if plan.mode == QsaSelectMode::DenseMask { + result.row_widths[0].0 = plan.total; + } + Ok(result) +} + +#[cfg(test)] +fn qsa_concat_selection( + mut chunks: Vec, + plan: QsaSelectPlan, + chunk_rows: u32, +) -> Result { + Ok(if chunks.len() == 1 { + chunks.pop().unwrap() + } else { + let widths = plan.widths(); + let outputs = widths + .iter() + .map(|(width, bytes)| { + Buffer::mtplx_bytes(u64::from(plan.rows) * u64::from(*width) * u64::from(*bytes)) + }) + .collect::, _>>()?; + for (i, (target, (width, bytes))) in outputs.iter().zip(&widths).enumerate() { + let dtype = if *bytes == 1 { + "bool_" + } else if i == 0 { + "int32" + } else { + "float32" + }; + let concurrent = encoder::concurrent_scope(); + for (chunk_index, chunk) in chunks.iter().enumerate() { + let start = chunk_index as u32 * chunk_rows; + let rows = chunk_rows.min(plan.rows - start); + let view = target.view( + u64::from(start) * u64::from(*width) * u64::from(*bytes), + u64::from(rows) * u64::from(*width) * u64::from(*bytes), + )?; + qsa_copy_typed( + Some(&chunk.outputs[i]), + &view, + [1, rows, *width], + [0, u64::from(*width), 1], + [0, u64::from(*width), 1], + dtype, + (rows) as usize * (*width) as usize, + )?; + } + drop(concurrent); + } + let mut temporaries = Vec::new(); + for chunk in chunks { + temporaries.extend(chunk.outputs); + temporaries.extend(chunk._temporaries); + } + QsaSelection { + outputs, + row_strides: widths.iter().map(|(w, _)| *w).collect(), + row_widths: widths, + _temporaries: temporaries, + } + }) +} + +/// The producer-aware 128MiB score-plane budget, including the original +/// alignment-down rule. The general FP32 producer needs H4+1 planes. +#[cfg(test)] +pub(super) fn qsa_prefill_chunk_rows( + rows: u32, + blocks: u32, + budget: u64, + alignment: u32, + mpp: bool, +) -> Result { + if rows == 0 || blocks == 0 || budget == 0 || alignment == 0 { + return Err("invalid QSA prefill budget".into()); + } + let per_row = u64::from(blocks) * 4 * if mpp { 1 } else { 5 }; + let mut chunk = u64::from(rows).min((budget / per_row).max(1)) as u32; + if chunk >= alignment && chunk < rows { + chunk = alignment.max(chunk / alignment * alignment); + } + Ok(chunk) +} + +/// Original General copy (including cast), after runtime dimension collapse. +#[cfg(test)] +fn qsa_copy_f32( + input: &Buffer, + shape: [u32; 3], + strides: [u64; 3], + bf16: bool, +) -> Result { + qsa_copy_general( + input, + shape, + strides, + if bf16 { "bfloat16" } else { "float32" }, + "float32", + 4, + ) +} + +#[cfg(test)] +fn qsa_copy_general( + input: &Buffer, + shape: [u32; 3], + strides: [u64; 3], + source_type: &str, + output_type: &str, + output_bytes: u32, +) -> Result { + let count = shape + .into_iter() + .try_fold(1_u32, |n, d| n.checked_mul(d)) + .filter(|n| *n > 0 && *n <= i32::MAX as u32) + .ok_or("QSA General copy exceeds its index range")?; + let output = Buffer::mtplx_bytes(u64::from(count) * u64::from(output_bytes))?; + let mut dims: Vec<(u32, u64)> = Vec::new(); + for (d, s) in shape.into_iter().zip(strides).filter(|(d, _)| *d > 1) { + if let Some(last) = dims.last_mut() + && last.1 == u64::from(d) * s + { + last.0 *= d; + last.1 = s; + } else { + dims.push((d, s)); + } + } + let mut grid = [1; 3]; + let mut ss = [0_u64; 3]; + for (i, &(d, s)) in dims.iter().enumerate() { + grid[dims.len() - 1 - i] = d; + ss[i] = s; + } + dispatch_geometry( + &format!("g{}_copy{source_type}{output_type}", dims.len()), + &[ + tensor(0, input).input(qsa_copy_span(shape, strides)?), + tensor(1, &output).output(count as usize), + bytes(3, &ss), + ], + &[], + grid, + block_dims(grid), + true, + )?; + Ok(output) +} + +// AsType Vector preserves physically contiguous layouts, including transposes +// and broadcasts; General materializes all logical entries. +#[cfg(test)] +fn qsa_cast_f32(input: &Buffer, shape: [u32; 3], strides: &mut [u64; 3]) -> Result { + let count = shape.into_iter().try_fold(1_u32, |n, d| n.checked_mul(d)); + let span = shape + .into_iter() + .zip(*strides) + .try_fold(1_u64, |n, (d, s)| { + u64::from(d.saturating_sub(1)) + .checked_mul(s) + .and_then(|v| n.checked_add(v)) + }) + .and_then(|n| n.checked_mul(2)); + if shape.contains(&0) + || count.is_none_or(|n| n > i32::MAX as u32) + || span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(input.raw()) } < n) + { + return Err("invalid QSA cast input".into()); + } + let mut dims = shape + .into_iter() + .zip(*strides) + .filter(|(d, s)| *d > 1 && *s != 0) + .collect::>(); + dims.sort_unstable_by_key(|(_, s)| *s); + let mut size = 1_u64; + let contiguous = dims.into_iter().all(|(d, s)| { + let fits = s == size; + size *= u64::from(d); + fits + }); + if contiguous { + let cast = Buffer::mtplx_bytes(size * 4)?; + cast_bf16_f32(input, &cast, size as u32, true)?; + Ok(cast) + } else { + let cast = qsa_copy_f32(input, shape, *strides, true)?; + *strides = [ + u64::from(shape[1]) * u64::from(shape[2]), + u64::from(shape[2]), + 1, + ]; + Ok(cast) + } +} + +#[repr(C)] +struct QsaGemmParams { + matrix: [i32; 8], + batch_strides: [i64; 3], + swizzle: i32, + k_iterations: i32, + batch_ndim: i32, + padding: i32, +} + +/// qsa_indexer_prefill_scores / _select_eager, installed H4/D128 geometry. +/// Preserve the pinned runtime's casts, layout checks, batch collapse and +/// M5 Max GEMV/Steel/NAX/Split-K selection, followed by per-head ReLU and sum. +/// The caller retains the returned temporaries through GPU completion. +#[cfg(test)] +pub(super) fn qsa_prefill_f32_scores( + [q, pooled_t]: [&Buffer; 2], + [rows, blocks]: [u32; 2], + mut q_strides: [u64; 3], + pooled_strides: [u64; 2], + q_bf16: bool, + tf32: bool, +) -> Result<(Buffer, Vec), String> { + if rows == 0 + || blocks == 0 + || rows.checked_mul(512).is_none_or(|n| n > i32::MAX as u32) + || rows + .checked_mul(4) + .and_then(|n| n.checked_mul(blocks)) + .is_none_or(|n| n > i32::MAX as u32) + || blocks.checked_mul(128).is_none_or(|n| n > i32::MAX as u32) + { + return Err("invalid QSA FP32 score geometry".into()); + } + for (b, shape, strides, width) in [ + (q, [rows, 4, 128], q_strides, if q_bf16 { 2 } else { 4 }), + ( + pooled_t, + [1, 128, blocks], + [0, pooled_strides[0], pooled_strides[1]], + 4, + ), + ] { + let span = shape + .into_iter() + .zip(strides) + .try_fold(1_u64, |n, (d, s)| { + u64::from(d - 1) + .checked_mul(s) + .and_then(|v| n.checked_add(v)) + }) + .and_then(|n| n.checked_mul(width)); + if strides.iter().any(|s| *s > i32::MAX as u64) + || span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < n) + { + return Err("QSA FP32 input outside backing or index range".into()); + } + } + let mut temporary = Vec::new(); + let cast = if q_bf16 { + Some(qsa_cast_f32(q, [rows, 4, 128], &mut q_strides)?) + } else { + None + }; + let a = cast.as_ref().unwrap_or(q); + let per_head_size = rows as usize * 4 * blocks as usize; + // Matmul allocates its output before check_transpose's input copies. + let per_head = Buffer::mtplx_bytes(per_head_size as u64 * 4)?; + let copied_a = if q_strides[2] != 1 && q_strides[1] != 1 { + let copied = qsa_copy_f32(a, [rows, 4, 128], q_strides, false)?; + q_strides = [512, 128, 1]; + Some(copied) + } else { + None + }; + let a = copied_a.as_ref().unwrap_or(a); + let ta = q_strides[2] != 1; + let lda = q_strides[if ta { 2 } else { 1 }] as i32; + let [bd, bn_stride] = pooled_strides; + let b_normal = bn_stride == 1 && (blocks != 1 || bd == u64::from(blocks)); + let b_transposed = bd == 1 && (blocks != 1 || bn_stride == 128); + // check_transpose sees the already broadcast B. A General copy therefore + // duplicates B across rows and prevents collapsing the rows into M. + let copied_b = if b_normal || b_transposed { + None + } else { + Some(qsa_copy_f32( + pooled_t, + [rows, 128, blocks], + [0, bd, bn_stride], + false, + )?) + }; + let b = copied_b.as_ref().unwrap_or(pooled_t); + let tb = copied_b.is_none() && !b_normal; + let ldb = if copied_b.is_some() { + blocks + } else if tb { + bn_stride as u32 + } else { + bd as u32 + } as i32; + let mut batch = rows; + let mut m = 4_u32; + let mut a_batch = q_strides[0] as i64; + let mut b_batch = if copied_b.is_some() { + i64::from(blocks) * 128 + } else { + 0 + }; + if rows > 1 && !ta && q_strides[1] == 128 && a_batch == 512 && b_batch == 0 { + m *= rows; + batch = 1; + a_batch = 0; + b_batch = 0; + } + let a_size = qsa_copy_span([rows, 4, 128], q_strides)?; + let b_size = if copied_b.is_some() { + rows as usize * 128 * blocks as usize + } else { + qsa_copy_span([1, 128, blocks], [0, bd, bn_stride])? + }; + let trans = format!( + "{}{}", + if ta { 't' } else { 'n' }, + if tb { 't' } else { 'n' } + ); + if blocks == 1 { + let (bm, bn, sm, sn) = if ta { + ( + 1, + if m >= 2048 { + 16 + } else if m >= 512 { + 4 + } else { + 2 + }, + 8, + 4, + ) + } else if 128 >= 16 * m { + (1, 8, 1, 32) + } else { + (if m >= 4096 { 8 } else { 4 }, 1, 1, 32) + }; + let out_per_group = if ta { bn * sn * 4 } else { bm * sm * 4 }; + dispatch( + &format!( + "gemv{}float32_bm{bm}_bn{bn}_sm{sm}_sn{sn}_tm4_tn4_nc0_axpby0", + if ta { "_t_" } else { "_" } + ), + &[ + tensor(0, a).input(a_size), + tensor(1, b).input(b_size), + tensor(3, &per_head).output(per_head_size), + bytes(4, &128_i32), + bytes(5, &m), + bytes(6, &lda), + bytes(9, &1_i32), + bytes(10, &batch), + bytes(11, &b_batch), + bytes(12, &a_batch), + ], + [m.div_ceil(out_per_group), 1, batch], + [32, bn, bm], + )?; + } else if batch == 1 && ((!tf32 && m.max(blocks) <= 128) || (tf32 && m.max(blocks) < 64)) { + let (bm, bn, bk, partitions, partition_size) = if tf32 { + (64, 64, 256, 2, 64) + } else { + let parts = (8 / (m.div_ceil(32) * blocks.div_ceil(32))) + .next_power_of_two() + .clamp(2, 32); + ( + if m < 40 { 16 } else { 32 }, + if blocks < 40 { 16 } else { 32 }, + 16, + parts, + 128 / parts, + ) + }; + let scratch_size = partitions as usize * m as usize * blocks as usize; + let scratch = Buffer::mtplx_bytes(scratch_size as u64 * 4)?; + let tn = blocks.div_ceil(bn); + let tm = m.div_ceil(bm); + let params = [ + m as i32, + blocks as i32, + 128, + lda, + ldb, + blocks as i32, + tn as i32, + tm as i32, + partitions as i32, + (m * blocks) as i32, + partition_size as i32, + 0, + (partition_size / bk) as i32, + ]; + let constants = [ + (200, m.is_multiple_of(bm)), + (201, blocks.is_multiple_of(bn)), + ] + .map(|(index, value)| MetalConstant { + index, + value: u32::from(value), + kind: 0, + }); + let name = if tf32 { + format!("steel_gemm_splitk_nax_{trans}_float32_float32_bm64_bn64_bk256_wm2_wn2") + } else { + format!( + "steel_gemm_splitk_{trans}_float32_float32_bm{bm}_bn{bn}_bk16_wm2_wn2_MN_{}aligned_K_taligned", + if m.is_multiple_of(bm) && blocks.is_multiple_of(bn) { + 't' + } else { + 'n' + } + ) + }; + dispatch_specialized( + &name, + &[ + tensor(0, a).input(a_size), + tensor(1, b).input(b_size), + tensor(2, &scratch).output(scratch_size), + bytes(3, ¶ms), + ], + if tf32 { &constants } else { &[] }, + if tf32 { + [tn * tm * partitions, 1, 1] + } else { + [tn, tm, partitions] + }, + [32, 2, 2], + )?; + let grid = [blocks, m, 1]; + dispatch_geometry( + "steel_gemm_splitk_accum_float32_float32", + &[ + tensor(0, &scratch).input(scratch_size), + tensor(1, &per_head).output(per_head_size), + bytes(2, &partitions), + bytes(3, &(m * blocks)), + bytes(4, &blocks), + ], + &[], + grid, + block_dims(grid), + true, + )?; + encoder::add_temporaries(std::slice::from_ref(&scratch)); + temporary.push(scratch); + } else { + let (bn, bk, wn, swizzle) = if tf32 { + (128, 256, 4, 2) + } else { + (64, 16, 2, 0) + }; + let tn = blocks.div_ceil(bn); + let tm = m.div_ceil(64); + let params = QsaGemmParams { + matrix: [ + m as i32, + blocks as i32, + 128, + lda, + ldb, + blocks as i32, + tn as i32, + tm as i32, + ], + batch_strides: [a_batch, b_batch, i64::from(m) * i64::from(blocks)], + swizzle, + k_iterations: 128 / bk, + batch_ndim: 1, + padding: 0, + }; + let constants = [ + (10, false), + (100, false), + (110, false), + (200, m.is_multiple_of(64)), + (201, blocks.is_multiple_of(bn)), + (202, !tf32), + ] + .map(|(index, value)| MetalConstant { + index, + value: u32::from(value), + kind: 0, + }); + dispatch_specialized( + &format!( + "steel_gemm_fused_{}{trans}_float32_float32_bm64_bn{bn}_bk{bk}_wm2_wn{wn}", + if tf32 { "nax_" } else { "" } + ), + &[ + tensor(0, a).input(a_size), + tensor(1, b).input(b_size), + tensor(3, &per_head).output(per_head_size), + bytes(4, ¶ms), + ], + &constants, + [tn * (1 << swizzle), tm.div_ceil(1 << swizzle), batch], + [32, wn, 2], + )?; + } + encoder::add_temporaries(copied_a.as_slice()); + encoder::add_temporaries(copied_b.as_slice()); + temporary.extend(cast); + temporary.extend(copied_a); + temporary.extend(copied_b); + let zero = scalar_buffer(&0_f32.to_le_bytes())?; + let count = rows * 4 * blocks; + let work = if count < 65536 { 1 } else { 2 }; + dispatch_geometry( + &format!("vs{}_Maximumfloat32", if work == 1 { "" } else { "n" }), + &[ + tensor(0, &per_head).input(per_head_size), + tensor(1, &zero).input(1), + tensor(2, &per_head).output(per_head_size), + bytes(3, &count), + ], + &[], + [count.div_ceil(work), 1, 1], + [count.div_ceil(work).min(1024), 1, 1], + true, + )?; + let scores_size = rows as usize * blocks as usize; + let scores = Buffer::mtplx_bytes(scores_size as u64 * 4)?; + let ndim = u32::from(rows > 1); + let outer_shape = if rows > 1 { rows } else { 0 }; + let outer_stride = if rows > 1 { u64::from(blocks) * 4 } else { 0 }; + if blocks == 1 { + dispatch_geometry( + "row_reduce_small_1_reduce_sumfloat32", + &[ + tensor(0, &per_head).input(per_head_size), + tensor(1, &scores).output(scores_size), + bytes(2, &4_u64), + bytes(3, &1_u64), + bytes(4, &outer_shape), + bytes(5, &outer_stride), + bytes(6, &ndim), + bytes(7, &0_i32), + bytes(8, &0_u64), + bytes(9, &0_i32), + ], + &[], + [rows, 1, 1], + [rows.min(1024), 1, 1], + true, + )?; + } else { + let gx = blocks.div_ceil(4).min(32); + dispatch( + "col_reduce_small_1_reduce_sumfloat32", + &[ + tensor(0, &per_head).input(per_head_size), + tensor(1, &scores).output(scores_size), + bytes(2, &4_u64), + bytes(3, &u64::from(blocks)), + bytes(4, &outer_shape), + bytes(5, &outer_stride), + bytes(6, &ndim), + bytes(7, &4_u32), + bytes(8, &u64::from(blocks)), + bytes(9, &1_i32), + bytes(10, &1_u64), + ], + [blocks.div_ceil(4).div_ceil(gx), rows, 1], + [gx, 4, 1], + )?; + } + let divisor = scalar_buffer(&(128_f64.sqrt() as f32).to_le_bytes())?; + let count = rows * blocks; + let work = if count < 65536 { 1 } else { 2 }; + dispatch_geometry( + &format!("vs{}_Dividefloat32", if work == 1 { "" } else { "n" }), + &[ + tensor(0, &scores).input(scores_size), + tensor(1, &divisor).input(1), + tensor(2, &scores).output(scores_size), + bytes(3, &count), + ], + &[], + [count.div_ceil(work), 1, 1], + [count.div_ceil(work).min(1024), 1, 1], + true, + )?; + temporary.push(per_head); + Ok((scores, temporary)) +} + +#[cfg(test)] +fn qsa_vector( + prefix: &str, + op: &str, + bindings: &[Binding<'_>], + count: u32, + width: u32, +) -> Result<(), String> { + let work = if count < 65536 { 1 } else { 8 / width }; + let suffix = if work == 1 || prefix == "ss" { "" } else { "n" }; + dispatch_geometry( + &format!("{prefix}{suffix}_{op}"), + bindings, + &[], + [count.div_ceil(work), 1, 1], + [count.div_ceil(work).min(1024), 1, 1], + true, + ) +} + +#[cfg(test)] +pub(super) struct QsaEagerTopk { + rows: u32, + pos_start: u32, + tiled: bool, + /// Untiled: last K columns of ArgPartition, stride N. Tiled: concat, stride K. + pub(super) indices: Buffer, + pub(super) valid: Buffer, + pub(super) masked_scores: Option, + pub(super) positions: Buffer, + pub(super) complete_blocks: Buffer, + pub(super) width: u32, + pub(super) row_stride: u32, + pub(super) index_row_stride: u32, + _temporaries: Vec, +} + +/// _select_eager, including _tiled_topk's synchronous per-tile eval and concat. +/// ArgPartition in the pinned runtime is a complete argsort, not a replacement +/// custom selector. The pooled FP32 mirror and tie vector are shared by tiles. +#[cfg(test)] +pub(super) fn qsa_eager_topk( + input: [&Buffer; 2], + q_strides: [u64; 3], + pooled_t_strides: [u64; 2], + plan: QsaSelectPlan, + tile_rows: u32, + mut commands: Option<&mut Commands>, +) -> Result { + if plan + .pos + .checked_add(plan.rows) + .is_none_or(|n| n > plan.total) + || plan.total > i32::MAX as u32 + || plan.blocks != plan.total / 4 + || !plan.input_f32[1] + || !(1..=512).contains(&plan.topk) + || plan.rows == 0 + || plan.blocks == 0 + || plan + .rows + .checked_mul(plan.blocks) + .is_none_or(|n| n > i32::MAX as u32) + { + return Err("invalid QSA eager frontier".into()); + } + let rows = plan.rows; + let blocks = plan.blocks; + let positions = Buffer::mtplx_bytes(u64::from(rows) * 4)?; + let complete = Buffer::mtplx_bytes(u64::from(rows) * 4)?; + let blk = Buffer::mtplx_bytes(u64::from(blocks) * 4)?; + let tie = Buffer::mtplx_bytes(u64::from(blocks) * 4)?; + let one = scalar_buffer(&1_i32.to_le_bytes())?; + let ratio = scalar_buffer(&4_i32.to_le_bytes())?; + let tie_scale = scalar_buffer(&1e-12_f32.to_le_bytes())?; + let neg = scalar_buffer(&f32::NEG_INFINITY.to_le_bytes())?; + // Original vector dispatch threshold for int32/float32; SS entries have + // no size argument, which the shared Metal binder may harmlessly leave set. + let vector = |prefix: &str, op: &str, bindings: &[Binding<'_>], count: u32| { + qsa_vector(prefix, op, bindings, count, 4) + }; + for (out, count, start) in [(&positions, rows, plan.pos), (&blk, blocks, 0)] { + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &start), + bytes(1, &1_i32), + tensor(2, out).output(count as usize), + ], + &[], + [count, 1, 1], + [count.min(1024), 1, 1], + true, + )?; + } + let prefix = if rows == 1 { "ss" } else { "vs" }; + vector( + prefix, + "Addint32", + &[ + tensor(0, &positions).input(rows as usize), + tensor(1, &one).input(1), + tensor(2, &complete).output(rows as usize), + bytes(3, &rows), + ], + rows, + )?; + vector( + prefix, + "Divideint32", + &[ + tensor(0, &complete).input(rows as usize), + tensor(1, &ratio).input(1), + tensor(2, &complete).output(rows as usize), + bytes(3, &rows), + ], + rows, + )?; + let work = if blocks < 65536 { 1 } else { 2 }; + dispatch_geometry( + &format!("v{}_copyint32float32", if work == 1 { "" } else { "n" }), + &[ + tensor(0, &blk).input(blocks as usize), + tensor(1, &tie).output(blocks as usize), + bytes(2, &blocks), + ], + &[], + [blocks.div_ceil(work), 1, 1], + [blocks.div_ceil(work).min(1024), 1, 1], + true, + )?; + vector( + if blocks == 1 { "ss" } else { "vs" }, + "Multiplyfloat32", + &[ + tensor(0, &tie).input(blocks as usize), + tensor(1, &tie_scale).input(1), + tensor(2, &tie).output(blocks as usize), + bytes(3, &blocks), + ], + blocks, + )?; + let width = plan.topk.min(blocks); + let tiled = rows > 1 && tile_rows > 0 && tile_rows < rows; + let (indices, valid, masked_scores, mut temporary) = if tiled { + let mut parts = Vec::new(); + for start in (0..rows).step_by(tile_rows as usize) { + let len = tile_rows.min(rows - start); + let complete_view = complete.view(u64::from(start) * 4, u64::from(len) * 4)?; + let valid = qsa_eager_valid(&blk, &complete_view, len, blocks)?; + let item_bytes = if plan.input_f32[0] { 4 } else { 2 }; + let q_len = u64::from(len - 1) + .checked_mul(q_strides[0]) + .and_then(|n| n.checked_add(3_u64.checked_mul(q_strides[1])?)) + .and_then(|n| n.checked_add(127_u64.checked_mul(q_strides[2])?)) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(item_bytes)) + .ok_or("QSA eager tile query span overflow")?; + let offset = u64::from(start) + .checked_mul(q_strides[0]) + .and_then(|n| n.checked_mul(item_bytes)) + .ok_or("QSA eager tile query offset overflow")?; + let q = input[0].view(offset, q_len)?; + let (part, _scores, _scratch) = qsa_eager_rank( + [&q, input[1]], + q_strides, + pooled_t_strides, + QsaSelectPlan { + rows: len, + pos: plan.pos + start, + ..plan + }, + &valid, + &tie, + &neg, + )?; + // mx.eval(top_t) completes before constructing the next tile. + // Keep only the evaluated ArgPartition view/backing in parts; + // score intermediates are not retained for the entire query chunk. + if let Some(result) = encoder::with_active(|encoder| encoder.synchronize()) { + result?; + } else { + commands + .as_deref_mut() + .ok_or("QSA eager eval requires an active command owner")? + .eval_boundary()?; + } + parts.push((part, len)); + } + let indices = Buffer::mtplx_bytes(u64::from(rows) * u64::from(width) * 4)?; + let mut start = 0; + let mut temporary = Vec::new(); + let concurrent = encoder::concurrent_scope(); + for (part, len) in parts { + let dst = indices.view( + u64::from(start) * u64::from(width) * 4, + u64::from(len) * u64::from(width) * 4, + )?; + qsa_copy_typed( + Some(&part), + &dst, + [1, len, width], + [0, u64::from(blocks), 1], + [0, u64::from(width), 1], + "uint32", + (len) as usize * (width) as usize, + )?; + temporary.push(part); + start += len; + } + drop(concurrent); + // Global valid is a different lazy expression from valid_t; evaluate + // it for the epilogue after the per-tile evals, as in the reference. + let valid = qsa_eager_valid(&blk, &complete, rows, blocks)?; + (indices, valid, None, temporary) + } else { + let valid = qsa_eager_valid(&blk, &complete, rows, blocks)?; + let (indices, scores, temporary) = + qsa_eager_rank(input, q_strides, pooled_t_strides, plan, &valid, &tie, &neg)?; + (indices, valid, Some(scores), temporary) + }; + temporary.extend([blk, tie, one, ratio, tie_scale, neg]); + Ok(QsaEagerTopk { + rows, + pos_start: plan.pos, + tiled, + indices, + valid, + masked_scores, + positions, + complete_blocks: complete, + width, + row_stride: blocks, + index_row_stride: if tiled { width } else { blocks }, + _temporaries: temporary, + }) +} + +#[cfg(test)] +fn qsa_eager_valid( + blk: &Buffer, + complete: &Buffer, + rows: u32, + blocks: u32, +) -> Result { + let count = rows * blocks; + let valid = Buffer::mtplx_bytes(u64::from(count))?; + if rows == 1 || blocks == 1 { + qsa_vector( + if count == 1 { + "ss" + } else if rows == 1 { + "vs" + } else { + "sv" + }, + "Lessint32", + &[ + tensor(0, blk).input(blocks as usize), + tensor(1, complete).input(rows as usize), + tensor(2, &valid).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + } else { + let grid = [blocks, rows, 1]; + dispatch_geometry( + "g2_Lessint32", + &[ + tensor(0, blk).input(blocks as usize), + tensor(1, complete).input(rows as usize), + tensor(2, &valid).output(count as usize), + bytes(3, &[0_u64, 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + Ok(valid) +} + +#[cfg(test)] +fn qsa_eager_rank( + input: [&Buffer; 2], + q_strides: [u64; 3], + pooled_t_strides: [u64; 2], + plan: QsaSelectPlan, + valid: &Buffer, + tie: &Buffer, + neg: &Buffer, +) -> Result<(Buffer, Buffer, Vec), String> { + let rows = plan.rows; + let blocks = plan.blocks; + let count = rows * blocks; + let (scores, mut temporary) = qsa_prefill_f32_scores( + input, + [rows, blocks], + q_strides, + pooled_t_strides, + !plan.input_f32[0], + plan.tf32, + )?; + qsa_vector( + if count == 1 { "v" } else { "vs" }, + "Selectfloat32", + &[ + tensor(0, valid).input(count as usize), + tensor(1, &scores).input(count as usize), + tensor(2, neg).input(1), + tensor(3, &scores).output(count as usize), + bytes(4, &count), + ], + count, + 4, + )?; + if rows == 1 || blocks == 1 { + qsa_vector( + if count == 1 { + "ss" + } else if blocks == 1 { + "vs" + } else { + "vv" + }, + "Subtractfloat32", + &[ + tensor(0, &scores).input(count as usize), + tensor(1, tie).input(blocks as usize), + tensor(2, &scores).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + } else { + let grid = [blocks, rows, 1]; + dispatch_geometry( + "g2_Subtractfloat32", + &[ + tensor(0, &scores).input(count as usize), + tensor(1, tie).input(blocks as usize), + tensor(2, &scores).output(count as usize), + bytes(3, &[u64::from(blocks), 1]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let sorted = Buffer::mtplx_bytes(u64::from(count) * 4)?; + temporary.extend(argsort(&scores, &sorted, [rows, blocks], SortDtype::F32)?); + let width = plan.topk.min(blocks); + let offset = u64::from(blocks - width) * 4; + let indices = sorted.view(offset, u64::from(count) * 4 - offset)?; + temporary.push(sorted); + Ok((indices, scores, temporary)) +} + +/// The eager selector's output switches. `large_prefill` is the common +/// phase/rows/earliest-position eligibility decision, also used by the fused +/// and compiled selectors; it must not be inferred from rows > 1 alone. +pub(super) struct QsaEagerOptions { + pub(super) large_prefill: bool, + pub(super) flash: bool, + pub(super) gather_decode: bool, + pub(super) gather: bool, + pub(super) gather_max_rows: u32, + pub(super) gather_min_context: u32, +} + +#[cfg(test)] +pub(super) enum QsaIndexerSelection { + Dense(QsaSelection), + PrefillBlocks(QsaSelection), + FlashBlocks(QsaSelection, u32), + DecodeTokens(QsaSelection), + RowTokens(QsaSelection), +} + +/// Complete _select_eager return-branch order. Inactive lazy expressions +/// (especially the dense scatter mask in flash/gather modes) are not encoded. +#[cfg(test)] +pub(super) fn qsa_eager_output( + top: QsaEagerTopk, + total: u32, + options: QsaEagerOptions, +) -> Result { + if top.pos_start.checked_add(top.rows) != Some(total) + || top.row_stride != total / 4 + || top.row_stride <= 512 + { + return Err("invalid active eager selector output frontier".into()); + } + if top.rows > 1 && options.large_prefill { + return qsa_eager_blocks(top).map(QsaIndexerSelection::PrefillBlocks); + } + if top.rows == 1 && options.flash { + let (blocks, tail) = qsa_eager_decode(top, total, false)?; + return Ok(QsaIndexerSelection::FlashBlocks(blocks, tail)); + } + if top.rows == 1 && options.gather_decode { + return qsa_eager_decode(top, total, true) + .map(|(tokens, _)| QsaIndexerSelection::DecodeTokens(tokens)); + } + if top.rows > 1 + && !top.tiled + && options.gather + && top.rows <= options.gather_max_rows + && total >= options.gather_min_context + { + return qsa_eager_gather_rows(top).map(QsaIndexerSelection::RowTokens); + } + qsa_eager_dense(top, total).map(QsaIndexerSelection::Dense) +} + +/// Eager flash_prefill epilogue: chronological int32 blocks, gathered validity, +/// then invalid slots replaced by zero. No custom selector substitution. +#[cfg(test)] +pub(super) fn qsa_eager_blocks(top: QsaEagerTopk) -> Result { + let rows = top.rows; + let width = top.width; + let count = rows + .checked_mul(width) + .filter(|n| *n > 0 && *n <= i32::MAX as u32) + .ok_or("invalid eager QSA block output shape")?; + let (sorted, ids) = qsa_eager_sorted_ids(&top)?; + let indices64 = Buffer::mtplx_bytes(u64::from(count) * 8)?; + let valid = Buffer::mtplx_bytes(u64::from(count))?; + let work = if count < 65536 { 1 } else { 2 }; + // int64 output has one element per thread even above the vector threshold. + dispatch_geometry( + "v_copyint32int64", + &[ + tensor(0, &sorted).input(count as usize), + tensor(1, &indices64).output(count as usize), + bytes(2, &count), + ], + &[], + [count, 1, 1], + [count.min(1024), 1, 1], + true, + )?; + let grid = [1, width, rows]; + dispatch_geometry( + "kernel_qwen_mtplx_gather_axis_bool_idxi64_int_11", + &[ + tensor(0, &top.valid).input(rows as usize * top.row_stride as usize), + tensor(1, &indices64).input(count as usize), + tensor(2, &valid).output(count as usize), + bytes(3, &rows), + bytes(4, &u64::from(top.row_stride)), + bytes(5, &u64::from(width)), + bytes(6, &1_u64), + bytes(7, &1_u32), + bytes(8, &top.row_stride), + bytes(9, &1_u64), + bytes(10, &1_u64), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let zero = scalar_buffer(&0_i32.to_le_bytes())?; + dispatch_geometry( + &format!( + "{}{}_Selectint32", + if count == 1 { "v" } else { "vs" }, + if work == 1 { "" } else { "n" } + ), + &[ + tensor(0, &valid).input(count as usize), + tensor(1, &sorted).input(count as usize), + tensor(2, &zero).input(1), + tensor(3, &sorted).output(count as usize), + bytes(4, &count), + ], + &[], + [count.div_ceil(work), 1, 1], + [count.div_ceil(work).min(1024), 1, 1], + true, + )?; + let mut temporary = top._temporaries; + temporary.extend(top.masked_scores); + temporary.extend([ + ids, + indices64, + top.indices, + top.valid, + top.positions, + top.complete_blocks, + ]); + Ok(QsaSelection { + outputs: vec![sorted, valid], + row_widths: vec![(width, 4), (width, 1)], + row_strides: vec![width; 2], + _temporaries: temporary, + }) +} + +#[cfg(test)] +fn qsa_eager_sorted_ids(top: &QsaEagerTopk) -> Result<(Buffer, Buffer), String> { + let width = top.width; + let rows = top.rows; + let ids = qsa_eager_cast_indices(top, "int32", 4)?; + let sorted = Buffer::mtplx_bytes(u64::from(rows) * u64::from(width) * 4)?; + let bn = width.div_ceil(4).next_power_of_two().clamp(32, 512); + let segment = if rows == 1 { i32::MAX as u32 } else { width }; + dispatch( + &format!("c_block_sort_int32_int32_bn{bn}_tn4"), + &[ + tensor(0, &ids).input(rows as usize * width as usize), + tensor(1, &sorted).output(rows as usize * width as usize), + bytes(2, &width), + bytes(3, &1_u32), + bytes(4, &1_u32), + bytes(5, &segment), + bytes(6, &segment), + ], + [1, rows, 1], + [bn, 1, 1], + )?; + Ok((sorted, ids)) +} + +/// Untiled eager decode epilogues. The dead selected-mask expression in the +/// Python source is not evaluated by these lazy output branches. +#[cfg(test)] +pub(super) fn qsa_eager_decode( + top: QsaEagerTopk, + total: u32, + gather: bool, +) -> Result<(QsaSelection, u32), String> { + if top.rows != 1 + || top.pos_start.checked_add(1) != Some(total) + || total / 4 != top.row_stride + || top.row_stride <= 512 + { + return Err("invalid active QSA eager decode frontier".into()); + } + let tail_start = total / 4 * 4; + let k = top.width; + let (sorted, cast) = qsa_eager_sorted_ids(&top)?; + let mut temporary = top._temporaries; + temporary.extend(top.masked_scores); + temporary.extend([ + cast, + top.indices, + top.valid, + top.positions, + top.complete_blocks, + ]); + let (out, width) = if !gather { + (sorted, k) + } else { + let ratio = scalar_buffer(&4_i32.to_le_bytes())?; + qsa_vector( + "vs", + "Multiplyint32", + &[ + tensor(0, &sorted).input(k as usize), + tensor(1, &ratio).input(1), + tensor(2, &sorted).output(k as usize), + bytes(3, &k), + ], + k, + 4, + )?; + let ratio_range = Buffer::mtplx_bytes(16)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &0_u32), + bytes(1, &1_u32), + tensor(2, &ratio_range).output(4), + ], + &[], + [4, 1, 1], + [4, 1, 1], + true, + )?; + let block_tokens = Buffer::mtplx_bytes(u64::from(k) * 16)?; + let grid = [4, k, 1]; + dispatch_geometry( + "g2_Addint32", + &[ + tensor(0, &sorted).input(k as usize), + tensor(1, &ratio_range).input(4), + tensor(2, &block_tokens).output(k as usize * 4), + bytes(3, &[1_u64, 0]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let tail_len = total - tail_start; + let width = k * 4 + tail_len; + let tail = if tail_len > 0 { + let tail = Buffer::mtplx_bytes(u64::from(tail_len) * 4)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &tail_start), + bytes(1, &1_u32), + tensor(2, &tail).output(tail_len as usize), + ], + &[], + [tail_len, 1, 1], + [tail_len, 1, 1], + true, + )?; + Some(tail) + } else { + None + }; + let out = Buffer::mtplx_bytes(u64::from(width) * 4)?; + let concurrent = encoder::concurrent_scope(); + qsa_copy_typed( + Some(&block_tokens), + &out, + [1, 1, k * 4], + [0, 0, 1], + [0, 0, 1], + "int32", + (k * 4) as usize, + )?; + if let Some(tail) = tail { + let dst = out.view(u64::from(k) * 16, u64::from(tail_len) * 4)?; + qsa_copy_typed( + Some(&tail), + &dst, + [1, 1, tail_len], + [0, 0, 1], + [0, 0, 1], + "int32", + (tail_len) as usize, + )?; + temporary.push(tail); + } + drop(concurrent); + temporary.extend([sorted, ratio, ratio_range, block_tokens]); + (out, width) + }; + Ok(( + QsaSelection { + outputs: vec![out], + row_widths: vec![(width, 4)], + row_strides: vec![width], + _temporaries: temporary, + }, + tail_start, + )) +} + +#[cfg(test)] +fn qsa_eager_cast_indices( + top: &QsaEagerTopk, + dtype: &str, + bytes_per_item: u32, +) -> Result { + let count = top.rows * top.width; + let input_size = (top.rows as usize - 1) * top.index_row_stride as usize + top.width as usize; + let output = Buffer::mtplx_bytes(u64::from(count) * u64::from(bytes_per_item))?; + if top.rows == 1 || top.width == top.index_row_stride { + qsa_vector( + "v", + &format!("copyuint32{dtype}"), + &[ + tensor(0, &top.indices).input(input_size), + tensor(1, &output).output(count as usize), + bytes(2, &count), + ], + count, + bytes_per_item, + )?; + } else { + let grid = [top.width, top.rows, 1]; + dispatch_geometry( + &format!("g2_copyuint32{dtype}"), + &[ + tensor(0, &top.indices).input(input_size), + tensor(1, &output).output(count as usize), + bytes(3, &[u64::from(top.index_row_stride), 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + Ok(output) +} + +/// _select_eager's rows-gather epilogue. Keeps argsort order (unlike the +/// chronological flash block contract), then appends each row's visible tail. +#[cfg(test)] +pub(super) fn qsa_eager_gather_rows(top: QsaEagerTopk) -> Result { + let rows = top.rows; + let k = top.width; + let count = rows * k; + let width = k * 4 + 4; + if rows <= 1 + || top.row_stride <= 512 + || rows.checked_mul(width).is_none_or(|n| n > i32::MAX as u32) + { + return Err("invalid active QSA gather-rows geometry".into()); + } + let idx64 = qsa_eager_cast_indices(&top, "int64", 8)?; + let blk_ok = Buffer::mtplx_bytes(u64::from(count))?; + let grid = [1, k, rows]; + dispatch_geometry( + "kernel_qwen_mtplx_gather_axis_bool_idxi64_int_11", + &[ + tensor(0, &top.valid).input(rows as usize * top.row_stride as usize), + tensor(1, &idx64).input(count as usize), + tensor(2, &blk_ok).output(count as usize), + bytes(3, &rows), + bytes(4, &u64::from(top.row_stride)), + bytes(5, &u64::from(k)), + bytes(6, &1_u64), + bytes(7, &1_u32), + bytes(8, &top.row_stride), + bytes(9, &1_u64), + bytes(10, &1_u64), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let idx32 = qsa_eager_cast_indices(&top, "int32", 4)?; + let ratio = scalar_buffer(&4_i32.to_le_bytes())?; + qsa_vector( + "vs", + "Multiplyint32", + &[ + tensor(0, &idx32).input(count as usize), + tensor(1, &ratio).input(1), + tensor(2, &idx32).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + let ratio_range = Buffer::mtplx_bytes(16)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &0_u32), + bytes(1, &1_u32), + tensor(2, &ratio_range).output(4), + ], + &[], + [4, 1, 1], + [4, 1, 1], + true, + )?; + let tokens = Buffer::mtplx_bytes(u64::from(count) * 16)?; + let blocks_ok = Buffer::mtplx_bytes(u64::from(count) * 4)?; + let grid = [4, count, 1]; + dispatch_geometry( + "g2_Addint32", + &[ + tensor(0, &idx32).input(count as usize), + tensor(1, &ratio_range).input(4), + tensor(2, &tokens).output(count as usize * 4), + bytes(3, &[1_u64, 0]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + dispatch_geometry( + "g2_copybool_bool_", + &[ + tensor(0, &blk_ok).input(count as usize), + tensor(1, &blocks_ok).output(count as usize * 4), + bytes(3, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let tail_start = top.complete_blocks; + let tail_ratio = scalar_buffer(&4_i32.to_le_bytes())?; + qsa_vector( + "vs", + "Multiplyint32", + &[ + tensor(0, &tail_start).input(rows as usize), + tensor(1, &tail_ratio).input(1), + tensor(2, &tail_start).output(rows as usize), + bytes(3, &rows), + ], + rows, + 4, + )?; + let tail_range = Buffer::mtplx_bytes(16)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &0_u32), + bytes(1, &1_u32), + tensor(2, &tail_range).output(4), + ], + &[], + [4, 1, 1], + [4, 1, 1], + true, + )?; + let tail_tokens = Buffer::mtplx_bytes(u64::from(rows) * 16)?; + let tail_ok = Buffer::mtplx_bytes(u64::from(rows) * 4)?; + let grid = [4, rows, 1]; + dispatch_geometry( + "g2_Addint32", + &[ + tensor(0, &tail_start).input(rows as usize), + tensor(1, &tail_range).input(4), + tensor(2, &tail_tokens).output(rows as usize * 4), + bytes(3, &[1_u64, 0]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + dispatch_geometry( + "g2_LessEqualint32", + &[ + tensor(0, &tail_tokens).input(rows as usize * 4), + tensor(1, &top.positions).input(rows as usize), + tensor(2, &tail_ok).output(rows as usize * 4), + bytes(3, &[4_u64, 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let ids = Buffer::mtplx_bytes(u64::from(rows) * u64::from(width) * 4)?; + let valid = Buffer::mtplx_bytes(u64::from(rows) * u64::from(width))?; + for (block, tail, out, dtype, b) in [ + (&tokens, &tail_tokens, &ids, "int32", 4_u64), + (&blocks_ok, &tail_ok, &valid, "bool_", 1), + ] { + let _concurrent = encoder::concurrent_scope(); + qsa_copy_typed( + Some(block), + out, + [1, rows, k * 4], + [0, u64::from(k) * 4, 1], + [0, u64::from(width), 1], + dtype, + (rows) as usize * (k * 4) as usize, + )?; + let offset = u64::from(k) * 4 * b; + let dst = out.view(offset, u64::from(rows) * u64::from(width) * b - offset)?; + qsa_copy_typed( + Some(tail), + &dst, + [1, rows, 4], + [0, 4, 1], + [0, u64::from(width), 1], + dtype, + (rows) as usize * 4, + )?; + } + let count = rows * width; + let zero = scalar_buffer(&0_i32.to_le_bytes())?; + qsa_vector( + "vs", + "Selectint32", + &[ + tensor(0, &valid).input(count as usize), + tensor(1, &ids).input(count as usize), + tensor(2, &zero).input(1), + tensor(3, &ids).output(count as usize), + bytes(4, &count), + ], + count, + 4, + )?; + let mut temporary = top._temporaries; + temporary.extend(top.masked_scores); + temporary.extend([ + idx64, + idx32, + blk_ok, + blocks_ok, + ratio, + ratio_range, + tail_ratio, + tail_range, + tokens, + tail_start, + tail_tokens, + tail_ok, + top.indices, + top.valid, + top.positions, + ]); + Ok(QsaSelection { + outputs: vec![ids, valid], + row_widths: vec![(width, 4), (width, 1)], + row_strides: vec![width; 2], + _temporaries: temporary, + }) +} + +/// Remaining dense-mask epilogue of _select_eager, after the active indexer +/// threshold (N>512). Uses original ScatterAxis/Repeat/Concatenate operations. +#[cfg(test)] +pub(super) fn qsa_eager_dense(top: QsaEagerTopk, total: u32) -> Result { + let rows = top.rows; + let blocks = top.row_stride; + if blocks <= 512 + || total / 4 != blocks + || top.pos_start.checked_add(rows) != Some(total) + || total > i32::MAX as u32 + || rows.checked_mul(total).is_none_or(|n| n > i32::MAX as u32) + { + return Err("invalid active QSA dense-mask geometry".into()); + } + let k = top.width; + let index_count = rows * k; + let count = rows * blocks; + let indices64 = qsa_eager_cast_indices(&top, "int64", 8)?; + let selected = Buffer::mtplx_bytes(u64::from(count))?; + let zero = scalar_buffer(&[0_u8])?; + let one = scalar_buffer(&[1_u8])?; + qsa_vector( + "s", + "copybool_bool_", + &[ + tensor(0, &zero).input(1), + tensor(1, &selected).output(count as usize), + bytes(2, &count), + ], + count, + 1, + )?; + let grid = [1, k, rows]; + dispatch_geometry( + if index_count == 1 { + "kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_11" + } else { + "kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_01" + }, + &[ + tensor(0, &one).input(1), + tensor(1, &indices64).input(index_count as usize), + tensor(2, &selected).output(count as usize), + bytes(3, &rows), + bytes(4, &0_u64), + bytes(5, &u64::from(k)), + bytes(6, &1_u64), + bytes(7, &1_u32), + bytes(8, &blocks), + bytes(9, &0_u64), + bytes(10, &1_u64), + ], + &[], + grid, + block_dims(grid), + true, + )?; + qsa_vector( + "vv", + "BitwiseAndbool_", + &[ + tensor(0, &selected).input(count as usize), + tensor(1, &top.valid).input(count as usize), + tensor(2, &selected).output(count as usize), + bytes(3, &count), + ], + count, + 1, + )?; + // repeat inserts a broadcast axis and its final reshape is a General copy. + let repeated = Buffer::mtplx_bytes(u64::from(count) * 4)?; + let grid = [4, count, 1]; + dispatch_geometry( + "g2_copybool_bool_", + &[ + tensor(0, &selected).input(count as usize), + tensor(1, &repeated).output(count as usize * 4), + bytes(3, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + let mut temporary = top._temporaries; + temporary.extend(top.masked_scores); + let mask = if total == blocks * 4 { + repeated + } else { + let pad_count = rows * (total - blocks * 4); + let pad = Buffer::mtplx_bytes(u64::from(pad_count))?; + let pad_zero = scalar_buffer(&[0_u8])?; + qsa_vector( + "s", + "copybool_bool_", + &[ + tensor(0, &pad_zero).input(1), + tensor(1, &pad).output(pad_count as usize), + bytes(2, &pad_count), + ], + pad_count, + 1, + )?; + let padded = Buffer::mtplx_bytes(u64::from(rows) * u64::from(total))?; + let concurrent = encoder::concurrent_scope(); + qsa_copy_typed( + Some(&repeated), + &padded, + [1, rows, blocks * 4], + [0, u64::from(blocks) * 4, 1], + [0, u64::from(total), 1], + "bool_", + (rows) as usize * (blocks * 4) as usize, + )?; + let tail = padded.view( + u64::from(blocks) * 4, + u64::from(rows) * u64::from(total) - u64::from(blocks) * 4, + )?; + qsa_copy_typed( + Some(&pad), + &tail, + [1, rows, total - blocks * 4], + [0, u64::from(total - blocks * 4), 1], + [0, u64::from(total), 1], + "bool_", + (rows) as usize * (total - blocks * 4) as usize, + )?; + drop(concurrent); + temporary.extend([repeated, pad, pad_zero]); + padded + }; + let tpos = Buffer::mtplx_bytes(u64::from(total) * 4)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &0_u32), + bytes(1, &1_i32), + tensor(2, &tpos).output(total as usize), + ], + &[], + [total, 1, 1], + [total.min(1024), 1, 1], + true, + )?; + let tail_start = top.complete_blocks; + let ratio = scalar_buffer(&4_i32.to_le_bytes())?; + qsa_vector( + if rows == 1 { "ss" } else { "vs" }, + "Multiplyint32", + &[ + tensor(0, &tail_start).input(rows as usize), + tensor(1, &ratio).input(1), + tensor(2, &tail_start).output(rows as usize), + bytes(3, &rows), + ], + rows, + 4, + )?; + let count = rows * total; + let tail = Buffer::mtplx_bytes(u64::from(count))?; + let causal = Buffer::mtplx_bytes(u64::from(count))?; + for (op, rhs, out) in [ + ("GreaterEqualint32", &tail_start, &tail), + ("LessEqualint32", &top.positions, &causal), + ] { + if rows == 1 { + qsa_vector( + "vs", + op, + &[ + tensor(0, &tpos).input(total as usize), + tensor(1, rhs).input(rows as usize), + tensor(2, out).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + } else { + let grid = [total, rows, 1]; + dispatch_geometry( + &format!("g2_{op}"), + &[ + tensor(0, &tpos).input(total as usize), + tensor(1, rhs).input(rows as usize), + tensor(2, out).output(count as usize), + bytes(3, &[0_u64, 1]), + bytes(4, &[1_u64, 0]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + } + qsa_vector( + "vv", + "BitwiseOrbool_", + &[ + tensor(0, &mask).input(count as usize), + tensor(1, &tail).input(count as usize), + tensor(2, &mask).output(count as usize), + bytes(3, &count), + ], + count, + 1, + )?; + qsa_vector( + "vv", + "BitwiseAndbool_", + &[ + tensor(0, &mask).input(count as usize), + tensor(1, &causal).input(count as usize), + tensor(2, &mask).output(count as usize), + bytes(3, &count), + ], + count, + 1, + )?; + temporary.extend([ + selected, + zero, + one, + ratio, + indices64, + tpos, + tail_start, + tail, + causal, + top.indices, + top.valid, + top.positions, + ]); + Ok(QsaSelection { + outputs: vec![mask], + row_widths: vec![(total, 1)], + row_strides: vec![total], + _temporaries: temporary, + }) +} + +/// Original TensorOps score producer, not a replacement QMM implementation. +#[cfg(test)] +pub(super) fn qsa_prefill_mpp_scores( + [q, pooled]: [&Buffer; 2], + [rows, blocks]: [u32; 2], + q_strides: [u64; 3], + pooled_strides: [u64; 2], +) -> Result { + let tiles = rows + .div_ceil(16) + .checked_mul(blocks.div_ceil(32)) + .and_then(|n| n.checked_mul(128)); + if rows == 0 + || blocks == 0 + || rows > i32::MAX as u32 / 512 + || blocks > i32::MAX as u32 + || tiles.is_none() + { + return Err("invalid QSA MPP score geometry".into()); + } + for (b, shape, strides) in [ + (q, [rows, 4, 128], q_strides), + ( + pooled, + [1, blocks, 128], + [0, pooled_strides[0], pooled_strides[1]], + ), + ] { + let span = shape + .into_iter() + .zip(strides) + .try_fold(1_u64, |n, (d, s)| { + u64::from(d - 1) + .checked_mul(s) + .and_then(|v| n.checked_add(v)) + }) + .and_then(|n| n.checked_mul(2)); + if span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < n) { + return Err("QSA MPP input outside backing".into()); + } + } + use array::{Array, Dtype}; + let inputs = [ + buffer_array( + q, + &[1, rows as i32, 4, 128], + &[0, q_strides[0], q_strides[1], q_strides[2]], + Dtype::BF16, + )?, + buffer_array( + pooled, + &[1, blocks as i32, 128], + &[0, pooled_strides[0], pooled_strides[1]], + Dtype::BF16, + )?, + ]; + let scores = Array::unallocated(&[rows as i32, blocks as i32], Dtype::F32)?; + qsa_prefill::mpp_evaluate(&inputs, &scores)?; + let buffer = scores.buffer().view(0, scores.layout().nbytes() as u64)?; + Ok(buffer) +} + +#[cfg(test)] +impl QsaSelectPlan { + fn prefill_plan(self) -> qsa_prefill::TopK { + qsa_prefill::TopK { + blocks: self.blocks, + topk: self.topk, + ratio: 4, + dense_width: if self.mode == QsaSelectMode::DenseMask { + self.dense_width + } else { + 0 + }, + mode: self.mode, + } + } + pub(super) fn prefill_source(self) -> Result { + self.prefill_plan().prefill_source() + } +} + +#[cfg(test)] +pub(super) fn qsa_prefill_topk( + scores: &Buffer, + strides: [u64; 2], + plan: QsaSelectPlan, +) -> Result { + if plan.rows == 0 + || plan.blocks == 0 + || plan.rows > i32::MAX as u32 / 512 + || !(1..=512).contains(&plan.topk) + || plan.total > i32::MAX as u32 + || plan + .pos + .checked_add(plan.rows) + .is_none_or(|n| n > plan.total) + || plan.logical > plan.blocks + || plan.logical != plan.total / 4 + || plan + .rows + .checked_mul(plan.blocks) + .is_none_or(|n| n > i32::MAX as u32) + || (plan.mode == QsaSelectMode::DenseMask && plan.dense_width < plan.total) + { + return Err("invalid QSA prefill selector geometry".into()); + } + let positions = [ + scalar_buffer(&plan.pos.to_le_bytes())?, + scalar_buffer(&plan.total.to_le_bytes())?, + scalar_buffer(&plan.logical.to_le_bytes())?, + ]; + let mut out = qsa_prefill_topk_device( + scores, + strides, + plan, + [&positions[0], &positions[1], &positions[2]], + )?; + out._temporaries.extend(positions); + Ok(out) +} + +/// Original prefill top-k with moving frontiers kept on the GPU. +#[cfg(test)] +pub(super) fn qsa_prefill_topk_device( + scores: &Buffer, + strides: [u64; 2], + plan: QsaSelectPlan, + [pos, total, logical]: [&Buffer; 3], +) -> Result { + if plan.rows == 0 + || plan.blocks == 0 + || plan.rows > i32::MAX as u32 / 512 + || !(1..=512).contains(&plan.topk) + || plan + .rows + .checked_mul(plan.blocks) + .is_none_or(|n| n > i32::MAX as u32) + || [pos, total, logical] + .into_iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < 4) + { + return Err("invalid QSA device prefill geometry or leaves".into()); + } + let span = u64::from(plan.rows - 1) + .checked_mul(strides[0]) + .and_then(|n| { + u64::from(plan.blocks - 1) + .checked_mul(strides[1]) + .and_then(|m| n.checked_add(m)) + }) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(4)); + if span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(scores.raw()) } < n) { + return Err("QSA score view outside backing".into()); + } + use array::{Array, Dtype}; + let inputs = [ + buffer_array( + scores, + &[plan.rows as i32, plan.blocks as i32], + &strides, + Dtype::F32, + )?, + Array::new(&[1], Dtype::I32, pos.view(0, 4)?)?, + Array::new(&[1], Dtype::I32, total.view(0, 4)?)?, + Array::new(&[1], Dtype::I32, logical.view(0, 4)?)?, + ]; + let kernel = plan.prefill_plan(); + let outputs = kernel + .layouts(plan.rows as i32)? + .into_iter() + .map(|l| Array::unallocated(l.shape(), l.dtype())) + .collect::, _>>()?; + qsa_prefill::topk_evaluate(&inputs, &outputs, kernel)?; + let outputs = outputs + .iter() + .map(|a| a.buffer().view(0, a.layout().nbytes() as u64)) + .collect::, _>>()?; + let widths = plan.widths(); + Ok(QsaSelection { + outputs, + row_strides: widths.iter().map(|(w, _)| *w).collect(), + row_widths: widths, + _temporaries: Vec::new(), + }) +} + +/// qsa_indexer_prefill_metal on M5: BF16 pairs select TensorOps, otherwise the +/// general FP32 expression. Dispatch failures never switch producers. +#[cfg(test)] +pub(super) fn qsa_prefill( + input: [&Buffer; 2], + q_strides: [u64; 3], + pooled_strides: [u64; 2], + plan: QsaSelectPlan, + workspace: u64, +) -> Result { + if plan.rows <= 1 + || plan.rows > i32::MAX as u32 / 512 + || plan + .pos + .checked_add(plan.rows) + .is_none_or(|n| n > plan.total) + || plan.logical > plan.blocks + || plan.logical != plan.total / 4 + || !(1..=512).contains(&plan.topk) + { + return Err("invalid QSA prefill input".into()); + } + let mpp = plan.input_f32 == [false; 2]; + let chunk_rows = qsa_prefill_chunk_rows(plan.rows, plan.blocks, workspace, 32, mpp)?; + let mut pooled_s = [0, pooled_strides[0], pooled_strides[1]]; + let pooled_cast = if !mpp && !plan.input_f32[1] { + Some(qsa_cast_f32( + input[1], + [1, plan.blocks, 128], + &mut pooled_s, + )?) + } else { + None + }; + let pooled = pooled_cast.as_ref().unwrap_or(input[1]); + let mut chunks = Vec::new(); + for start in (0..plan.rows).step_by(chunk_rows as usize) { + let rows = chunk_rows.min(plan.rows - start); + let offset = u64::from(start) + .checked_mul(q_strides[0]) + .and_then(|n| n.checked_mul(if plan.input_f32[0] { 4 } else { 2 })) + .ok_or("QSA prefill offset overflow")?; + let bytes = unsafe { ds4_gpu_tensor_bytes(input[0].raw()) } + .checked_sub(offset) + .ok_or("QSA prefill slice outside backing")?; + let q = input[0].view(offset, bytes)?; + let (scores, scratch) = if mpp { + ( + qsa_prefill_mpp_scores( + [&q, pooled], + [rows, plan.blocks], + q_strides, + pooled_strides, + )?, + Vec::new(), + ) + } else { + qsa_prefill_f32_scores( + [&q, pooled], + [rows, plan.blocks], + q_strides, + [pooled_s[2], pooled_s[1]], + !plan.input_f32[0], + plan.tf32, + )? + }; + let mut selected = qsa_prefill_topk( + &scores, + [u64::from(plan.blocks), 1], + QsaSelectPlan { + rows, + pos: plan.pos + start, + ..plan + }, + )?; + selected._temporaries.push(scores); + selected._temporaries.extend(scratch); + chunks.push(selected); + } + let mut selected = qsa_concat_selection(chunks, plan, chunk_rows)?; + selected._temporaries.extend(pooled_cast); + Ok(selected) +} + +#[cfg(test)] +pub(super) fn qsa_prefill_cached( + cache: &QsaCache, + prepared_q: &Buffer, + rows: u32, + mode: QsaSelectMode, + workspace: u64, +) -> Result { + let total = cache + .offset + .checked_add(rows) + .ok_or("QSA prefill cache position overflow")?; + let logical = total / 4; + if cache.pooled_len < logical { + return Err("QSA prefill needs complete pooled keys".into()); + } + let pooled = cache + .pooled + .as_ref() + .ok_or("QSA prefill needs pooled backing")?; + // The large-prefill branch receives _extend_pooled's logical slice, not + // the reserved cache capacity used by the legacy decode selector. + qsa_prefill( + [prepared_q, &pooled.buffer()], + [512, 128, 1], + [128, 1], + QsaSelectPlan { + rows, + blocks: logical, + topk: 512, + pos: cache.offset, + total, + logical, + dense_width: total, + mode, + tf32: true, + input_f32: [false; 2], + }, + workspace, + ) +} + +#[cfg(test)] +pub(super) fn qsa_select_cached( + cache: &QsaCache, + prepared_q: &Buffer, + rows: u32, + mode: QsaSelectMode, + tf32: bool, +) -> Result { + let total = cache + .offset + .checked_add(rows) + .ok_or("QSA cache position overflow")?; + if cache.pooled_len < total / 4 { + return Err("QSA selector needs complete pooled keys".into()); + } + let pooled = cache + .pooled + .as_ref() + .ok_or("QSA selector needs pooled backing")?; + qsa_select_chunked( + [prepared_q, &pooled.buffer()], + [512, 128, 1], + [128, 1], + QsaSelectPlan { + rows, + blocks: cache.pooled_cap, + topk: 512, + pos: cache.offset, + total, + logical: total / 4, + dense_width: 0, + mode, + tf32, + input_f32: [false; 2], + }, + ) +} + +/// Original eager _rope_cos_sin + _apply_partial_rope, for normalized BF16 +/// QSA queries (H4) or pooled keys (H1). Every cast/concat stays explicit. +#[cfg(test)] +fn qsa_eager_rope( + normalized: Buffer, + freq: &Buffer, + [rows, heads]: [u32; 2], + [position, position_scale]: [i32; 2], + attention_scale: f32, +) -> Result<(Buffer, Vec), String> { + let count = rows * heads * 64; + let positions = Buffer::mtplx_bytes(u64::from(rows) * 4)?; + dispatch_geometry( + "arangeint32", + &[ + bytes(0, &position), + bytes(1, &1_i32), + tensor(2, &positions).output(rows as usize), + ], + &[], + [rows, 1, 1], + [rows.min(1024), 1, 1], + true, + )?; + if position_scale != 1 { + let scale = scalar_buffer(&position_scale.to_le_bytes())?; + qsa_vector( + if rows == 1 { "ss" } else { "vs" }, + "Multiplyint32", + &[ + tensor(0, &positions).input(rows as usize), + tensor(1, &scale).input(1), + tensor(2, &positions).output(rows as usize), + bytes(3, &rows), + ], + rows, + 4, + )?; + } + let fp_positions = Buffer::mtplx_bytes(u64::from(rows) * 4)?; + qsa_vector( + "v", + "copyint32float32", + &[ + tensor(0, &positions).input(rows as usize), + tensor(1, &fp_positions).output(rows as usize), + bytes(2, &rows), + ], + rows, + 4, + )?; + let angles = Buffer::mtplx_bytes(u64::from(rows) * 32 * 4)?; + if rows == 1 { + qsa_vector( + "sv", + "Multiplyfloat32", + &[ + tensor(0, &fp_positions).input(rows as usize), + tensor(1, freq).input(32), + tensor(2, &angles).output(rows as usize * 32), + bytes(3, &32_u32), + ], + 32, + 4, + )?; + } else { + let grid = [32, rows, 1]; + dispatch_geometry( + "g2_Multiplyfloat32", + &[ + tensor(0, &fp_positions).input(rows as usize), + tensor(1, freq).input(32), + tensor(2, &angles).output(rows as usize * 32), + bytes(3, &[1_u64, 0]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let emb = Buffer::mtplx_bytes(u64::from(rows) * 64 * 4)?; + let concurrent = encoder::concurrent_scope(); + for offset in [0, 32 * 4] { + let dst = emb.view(offset, (u64::from(rows) * 64 - 32) * 4)?; + qsa_copy_typed( + Some(&angles), + &dst, + [1, rows, 32], + [0, 32, 1], + [0, 64, 1], + "float32", + (rows) as usize * 32, + )?; + } + drop(concurrent); + let cosine = Buffer::mtplx_bytes(u64::from(rows) * 64 * 4)?; + let sine = Buffer::mtplx_bytes(u64::from(rows) * 64 * 4)?; + for (op, out) in [("Cosfloat32float32", &cosine), ("Sinfloat32float32", &sine)] { + qsa_vector( + "v", + op, + &[ + tensor(0, &emb).input(rows as usize * 64), + tensor(1, out).output(rows as usize * 64), + bytes(2, &(rows * 64)), + ], + rows * 64, + 4, + )?; + if attention_scale != 1.0 { + let scale = scalar_buffer(&attention_scale.to_le_bytes())?; + qsa_vector( + "vs", + "Multiplyfloat32", + &[ + tensor(0, out).input(rows as usize * 64), + tensor(1, &scale).input(1), + tensor(2, out).output(rows as usize * 64), + bytes(3, &(rows * 64)), + ], + rows * 64, + 4, + )?; + } + } + let norm_bytes = u64::from(rows) * u64::from(heads) * 128 * 2; + let x2 = normalized.view(32 * 2, norm_bytes - 32 * 2)?; + let negative = Buffer::mtplx_bytes(u64::from(rows) * u64::from(heads) * 32 * 2)?; + if rows * heads == 1 { + qsa_vector( + "v", + "Negativebfloat16bfloat16", + &[ + tensor(0, &x2).input(((rows * heads - 1) * 128 + 32) as usize), + tensor(1, &negative).output(rows as usize * heads as usize * 32), + bytes(2, &32_u32), + ], + 32, + 2, + )?; + } else { + let grid = [32, rows * heads, 1]; + dispatch_geometry( + "gn1_Negativebfloat16bfloat16", + &[ + tensor(0, &x2).input(((rows * heads - 1) * 128 + 32) as usize), + tensor(1, &negative).output(rows as usize * heads as usize * 32), + bytes(2, &[rows * heads, 32]), + bytes(3, &[128_u64, 1]), + bytes(4, &2_u32), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + let rotated = Buffer::mtplx_bytes(u64::from(count) * 2)?; + let concurrent = encoder::concurrent_scope(); + for (src, stride, offset) in [(&negative, 32_u64, 0), (&normalized, 128, 32 * 2)] { + let dst = rotated.view(offset, u64::from(count) * 2 - offset)?; + qsa_copy_typed( + Some(src), + &dst, + [1, rows * heads, 32], + [0, stride, 1], + [0, 64, 1], + "bfloat16", + (rows * heads) as usize * 32, + )?; + } + drop(concurrent); + let mut norm_strides = [u64::from(heads) * 128, 128, 1]; + let x_float = qsa_cast_f32(&normalized, [rows, heads, 64], &mut norm_strides)?; + let rotated_float = Buffer::mtplx_bytes(u64::from(count) * 4)?; + cast_bf16_f32(&rotated, &rotated_float, count, true)?; + for (x, table) in [(&x_float, &cosine), (&rotated_float, &sine)] { + if heads == 1 { + qsa_vector( + "vv", + "Multiplyfloat32", + &[ + tensor(0, x).input(count as usize), + tensor(1, table).input(rows as usize * 64), + tensor(2, x).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + } else if rows == 1 { + let grid = [64, heads, 1]; + dispatch_geometry( + "g2_Multiplyfloat32", + &[ + tensor(0, x).input(count as usize), + tensor(1, table).input(rows as usize * 64), + tensor(2, x).output(count as usize), + bytes(3, &[64_u64, 1]), + bytes(4, &[0_u64, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } else { + let grid = [64, heads, rows]; + dispatch_geometry( + "g3_Multiplyfloat32", + &[ + tensor(0, x).input(count as usize), + tensor(1, table).input(rows as usize * 64), + tensor(2, x).output(count as usize), + bytes(3, &[u64::from(heads) * 64, 64, 1]), + bytes(4, &[64_u64, 0, 1]), + ], + &[], + grid, + block_dims(grid), + true, + )?; + } + } + qsa_vector( + "vv", + "Addfloat32", + &[ + tensor(0, &x_float).input(count as usize), + tensor(1, &rotated_float).input(count as usize), + tensor(2, &x_float).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + let rope = Buffer::mtplx_bytes(u64::from(count) * 2)?; + cast_bf16_f32(&x_float, &rope, count, false)?; + let output = Buffer::mtplx_bytes(norm_bytes)?; + let pass = normalized.view(64 * 2, norm_bytes - 64 * 2)?; + let concurrent = encoder::concurrent_scope(); + for (src, stride, offset) in [(&rope, 64_u64, 0), (&pass, 128, 64 * 2)] { + let dst = output.view(offset, norm_bytes - offset)?; + qsa_copy_typed( + Some(src), + &dst, + [1, rows * heads, 64], + [0, stride, 1], + [0, 128, 1], + "bfloat16", + (rows * heads) as usize * 64, + )?; + } + drop(concurrent); + Ok(( + output, + vec![ + normalized, + positions, + fp_positions, + angles, + emb, + cosine, + sine, + negative, + rotated, + x_float, + rotated_float, + rope, + ], + )) +} + +#[cfg(test)] +pub(super) fn qsa_prepare_queries_eager( + [input, norm, freq]: [&Buffer; 3], + rows: u32, + strides: [u64; 3], + position: i32, +) -> Result<(Buffer, Vec), String> { + let span = u64::from(rows.saturating_sub(1)) + .checked_mul(strides[0]) + .and_then(|n| n.checked_add(3_u64.checked_mul(strides[1])?)) + .and_then(|n| n.checked_add(127_u64.checked_mul(strides[2])?)) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(2)); + if rows == 0 + || rows > i32::MAX as u32 / 512 + || position.checked_add(rows as i32 - 1).is_none() + || span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(input.raw()) } < n) + || unsafe { ds4_gpu_tensor_bytes(freq.raw()) } < 128 + { + return Err("invalid eager QSA query preparation".into()); + } + // RMSNorm::eval_gpu materializes noncontiguous projection slices, then + // donates that copy to its output. A contiguous caller input is borrowed. + let copied = if strides[2] != 1 || strides[1] != 128 || (rows > 1 && strides[0] != 512) { + Some(qsa_copy_general( + input, + [rows, 4, 128], + strides, + "bfloat16", + "bfloat16", + 2, + )?) + } else { + None + }; + let normalized = if let Some(copy) = copied { + rms_norm_bf16(©, Some(norm), ©, [rows * 4, 128], 1e-6)?; + copy + } else { + let out = Buffer::mtplx_bytes(u64::from(rows) * 512 * 2)?; + rms_norm_bf16(input, Some(norm), &out, [rows * 4, 128], 1e-6)?; + out + }; + qsa_eager_rope(normalized, freq, [rows, 4], [position, 1], 1.0) +} + +#[cfg(test)] +pub(super) fn qsa_pool_keys_eager( + [input, norm, freq]: [&Buffer; 3], + blocks: u32, + [row_stride, dim_stride]: [u64; 2], + start: i32, +) -> Result<(Buffer, Vec), String> { + if blocks == 0 + || blocks > i32::MAX as u32 / 512 + || start + .checked_add(blocks as i32 - 1) + .and_then(|n| n.checked_mul(4)) + .is_none() + || unsafe { ds4_gpu_tensor_bytes(freq.raw()) } < 128 + { + return Err("invalid eager QSA pooling".into()); + } + let mut strides = [ + row_stride + .checked_mul(4) + .ok_or("QSA pool stride overflow")?, + row_stride, + dim_stride, + ]; + let fresh = qsa_cast_f32(input, [blocks, 4, 128], &mut strides)?; + if strides != [512, 128, 1] { + return Err("unsupported eager pool physical layout".into()); + } + let sum = Buffer::mtplx_bytes(u64::from(blocks) * 128 * 4)?; + let ndim = u32::from(blocks > 1); + dispatch( + "col_reduce_small_1_reduce_sumfloat32", + &[ + tensor(0, &fresh).input(blocks as usize * 512), + tensor(1, &sum).output(blocks as usize * 128), + bytes(2, &4_u64), + bytes(3, &128_u64), + bytes(4, &if blocks > 1 { blocks } else { 0 }), + bytes(5, &if blocks > 1 { 512_u64 } else { 0 }), + bytes(6, &ndim), + bytes(7, &4_u32), + bytes(8, &128_u64), + bytes(9, &1_u32), + bytes(10, &1_u64), + ], + [1, blocks, 1], + [32, 4, 1], + )?; + let count = blocks * 128; + let mean_scale = scalar_buffer(&0.25_f32.to_le_bytes())?; + qsa_vector( + "vs", + "Multiplyfloat32", + &[ + tensor(0, &sum).input(count as usize), + tensor(1, &mean_scale).input(1), + tensor(2, &sum).output(count as usize), + bytes(3, &count), + ], + count, + 4, + )?; + let pooled = Buffer::mtplx_bytes(u64::from(count) * 2)?; + cast_bf16_f32(&sum, &pooled, count, false)?; + rms_norm_bf16(&pooled, Some(norm), &pooled, [blocks, 128], 1e-6)?; + let (out, mut temporary) = qsa_eager_rope(pooled, freq, [blocks, 1], [start, 4], 1.0)?; + temporary.extend([fresh, sum]); + Ok((out, temporary)) +} + +/// Original installed QSA indexer geometry: H4, D128, rotary64, ratio4, +/// epsilon1e-6 and attention scaling1. Strides are physical BF16 elements. +#[cfg(test)] +pub(super) fn qsa_prepare_queries( + input: [&Buffer; 3], + rows: u32, + strides: [u64; 3], + pos_start: i32, +) -> Result { + if rows == 0 || rows > i32::MAX as u32 / 512 || pos_start.checked_add(rows as i32 - 1).is_none() + { + return Err("invalid QSA query position".into()); + } + let pos = scalar_buffer(&pos_start.to_le_bytes())?; + qsa_prepare_queries_bound(input, rows, strides, tensor(6, &pos).input(1)) +} + +#[cfg(test)] +pub(super) fn qsa_prepare_queries_device( + input: [&Buffer; 3], + rows: u32, + strides: [u64; 3], + pos: &Buffer, +) -> Result { + if unsafe { ds4_gpu_tensor_bytes(pos.raw()) } < 4 { + return Err("invalid QSA device query position".into()); + } + qsa_prepare_queries_bound(input, rows, strides, tensor(6, pos).input(1)) +} + +#[cfg(test)] +fn qsa_prepare_queries_bound( + [input, norm, inv_freq]: [&Buffer; 3], + rows: u32, + [row_stride, head_stride, dim_stride]: [u64; 3], + pos_start: Binding<'_>, +) -> Result { + let end = u64::from(rows.saturating_sub(1)) + .checked_mul(row_stride) + .and_then(|n| n.checked_add(3_u64.checked_mul(head_stride)?)) + .and_then(|n| n.checked_add(127_u64.checked_mul(dim_stride)?)) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(2)); + if rows == 0 + || rows > i32::MAX as u32 / 512 + || dim_stride == 0 + || end.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(input.raw()) } < n) + || unsafe { ds4_gpu_tensor_bytes(norm.raw()) } < 128 * 2 + || unsafe { ds4_gpu_tensor_bytes(inv_freq.raw()) } < 32 * 4 + { + return Err("invalid MTPLX QSA query preparation buffers or shape".into()); + } + let output = Buffer::mtplx_bytes(u64::from(rows) * 512 * 2)?; + dispatch( + "kernel_qwen_mtplx_qsa_prepare_q_bf16", + &[ + tensor(0, input).input((end.unwrap() / 2) as usize), + bytes(1, &[0_u64, row_stride, head_stride, dim_stride]), + tensor(2, norm).input(128), + bytes(3, &1_u64), + tensor(4, inv_freq).input(32), + bytes(5, &1_u64), + pos_start, + tensor(7, &output).output(rows as usize * 512), + ], + [rows * 4, 1, 1], + [32, 1, 1], + )?; + Ok(output) +} + +#[cfg(test)] +pub(super) fn qsa_pool_keys( + inputs: [&Buffer; 3], + blocks: u32, + strides: [u64; 2], + block_start: i32, +) -> Result { + if blocks == 0 + || blocks > i32::MAX as u32 / 4 + || block_start + .checked_add(blocks as i32 - 1) + .and_then(|n| n.checked_mul(4)) + .is_none() + { + return Err("invalid MTPLX QSA pooled-key position".into()); + } + let start = scalar_buffer(&block_start.to_le_bytes())?; + qsa_pool_keys_bound(inputs, blocks, strides, tensor(6, &start).input(1)) +} + +#[cfg(test)] +fn qsa_pool_keys_bound( + [input, norm, inv_freq]: [&Buffer; 3], + blocks: u32, + [row_stride, dim_stride]: [u64; 2], + block_start: Binding<'_>, +) -> Result { + let tokens = u64::from(blocks) * 4; + let end = tokens + .saturating_sub(1) + .checked_mul(row_stride) + .and_then(|n| n.checked_add(127_u64.checked_mul(dim_stride)?)) + .and_then(|n| n.checked_add(1)) + .and_then(|n| n.checked_mul(2)); + if blocks == 0 + || tokens > i32::MAX as u64 + || dim_stride == 0 + || end.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(input.raw()) } < n) + || unsafe { ds4_gpu_tensor_bytes(norm.raw()) } < 128 * 2 + || unsafe { ds4_gpu_tensor_bytes(inv_freq.raw()) } < 32 * 4 + { + return Err("invalid MTPLX QSA pooled-key preparation buffers or shape".into()); + } + let output = Buffer::mtplx_bytes(u64::from(blocks) * 128 * 2)?; + dispatch( + "kernel_qwen_mtplx_qsa_pool_k_bf16", + &[ + tensor(0, input).input((end.unwrap() / 2) as usize), + bytes(1, &[0_u64, row_stride, dim_stride]), + tensor(2, norm).input(128), + bytes(3, &1_u64), + tensor(4, inv_freq).input(32), + bytes(5, &1_u64), + block_start, + tensor(7, &output).output(blocks as usize * 128), + ], + [blocks, 1, 1], + [32, 1, 1], + )?; + Ok(output) +} + +fn qsa_compiled_clamp_name(max_new: u32, max_start: u32) -> String { + format!("kernel_qwen_mtplx_qsa_clamp_n{max_new}_p{max_start}") +} + +/// Original compiler's three constant-CSE layouts, with only shape constants +/// and the exported symbol specialized. Dynamic frontier leaves stay inputs. +pub(super) fn qsa_compiled_clamp_source(max_new: u32, max_start: u32) -> Result { + if max_new == 0 || max_new > i32::MAX as u32 || max_start > i32::MAX as u32 { + return Err("invalid compiled QSA clamp geometry".into()); + } + let bank: serde_json::Value = serde_json::from_str(include_str!( + "../../../metal/mtplx-qsa-compiled-scalars.json" + )) + .map_err(|e| e.to_string())?; + let kind = if max_start == 0 { + "zero" + } else if max_start == max_new { + "equal" + } else { + "distinct" + }; + let variant = &bank["clamp"][kind]; + let body = variant["kernels"] + .as_str() + .ok_or("missing original compiled QSA clamp")?; + let original_name = body + .split_once("host_name(\"") + .and_then(|(_, s)| s.split_once('"')) + .ok_or("invalid compiled QSA symbol")? + .0; + let mut body = body.replace(original_name, &qsa_compiled_clamp_name(max_new, max_start)); + body = body.replace( + &format!("tmp_D = static_cast({});", variant["max_new"]), + &format!("tmp_D = static_cast({max_new});"), + ); + if kind == "distinct" { + body = body.replace( + &format!("tmp_F = static_cast({});", variant["max_start"]), + &format!("tmp_F = static_cast({max_start});"), + ); + } + Ok(body) +} + +#[cfg(test)] +fn qsa_compiled_frontiers( + [logical, pooled_len]: [&Buffer; 2], + [max_new, max_start]: [u32; 2], +) -> Result<[Buffer; 2], String> { + let block_start = qsa_compiled_block_start([logical, pooled_len], [max_new, max_start])?; + let raw_start = qsa_compiled_raw_start(&block_start)?; + Ok([block_start, raw_start]) +} + +#[cfg(test)] +fn qsa_compiled_block_start( + [logical, pooled_len]: [&Buffer; 2], + [max_new, max_start]: [u32; 2], +) -> Result { + qsa_compile::Scalar::Clamp { max_new, max_start }.buffer(&[logical, pooled_len]) +} + +#[cfg(test)] +fn qsa_compiled_raw_start(block_start: &Buffer) -> Result { + qsa_compile::Scalar::Multiply(4).buffer(&[block_start]) +} + +#[cfg(test)] +fn qsa_retained_bf16_copy(input: &Buffer, count: u32) -> Result { + let output = Buffer::mtplx_bytes(u64::from(count) * 2)?; + let work = if count < 65536 { 1 } else { 4 }; + let threads = count.div_ceil(work); + dispatch_geometry( + if work == 1 { + "v_copybfloat16bfloat16" + } else { + "vn_copybfloat16bfloat16" + }, + &[ + tensor(0, input).input(count as usize), + tensor(1, &output).output(count as usize), + bytes(2, &count), + ], + &[], + [threads, 1, 1], + [threads.min(1024), 1, 1], + true, + )?; + Ok(output) +} + +#[cfg(test)] +pub(super) struct QsaCompiledCacheWindow { + pub(super) raw: Buffer, + pub(super) pooled: Buffer, + pub(super) block_start: Buffer, + pub(super) raw_start: Buffer, + _temporaries: Vec, +} + +/// Connected cache-maintenance subgraph of QSACompiledIndexerCore.from_qk_rows. +/// This entry retains the old leaves, so the reference's non-donation path is +/// required. Graph-bank ownership/donation and BFS scheduling are separate. +/// Position/logical/frontier are validated int32[1] device leaves; no readback. +#[cfg(test)] +pub(super) fn qsa_compiled_cache_window( + [qk, raw, pooled, norm, freq]: [&Buffer; 5], + [pos, logical, pooled_len]: [&Buffer; 3], + rows: u32, + qk_stride: u64, + [raw_cap, pooled_cap]: [u32; 2], +) -> Result { + let max_new = rows.div_ceil(4); + let max_start = (raw_cap / 4).min(pooled_cap).checked_sub(max_new); + if rows == 0 + || rows > raw_cap + || qk_stride < 640 + || max_start.is_none() + || [raw_cap, pooled_cap] + .into_iter() + .any(|n| n < 256 || !n.is_power_of_two() || n > i32::MAX as u32 / 512) + || [pos, logical, pooled_len] + .into_iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < 4) + || unsafe { ds4_gpu_tensor_bytes(raw.raw()) } < u64::from(raw_cap) * 256 + || unsafe { ds4_gpu_tensor_bytes(pooled.raw()) } < u64::from(pooled_cap) * 256 + || u64::from(rows - 1) + .checked_mul(qk_stride) + .and_then(|n| n.checked_add(640)) + .and_then(|n| n.checked_mul(2)) + .is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(qk.raw()) } < n) + { + return Err("invalid compiled QSA cache-window inputs or geometry".into()); + } + let raw_next = qsa_retained_bf16_copy(raw, raw_cap * 128)?; + let k = qk.view(512 * 2, (u64::from(rows - 1) * qk_stride + 128) * 2)?; + let mut temporary = qsa_dynamic_copy_rows( + [&k, &raw_next], + [qk_stride, 128], + [rows, 128], + [None, Some(pos)], + [ + ((rows - 1) as u64 * qk_stride + 128) as usize, + raw_cap as usize * 128, + ], + )?; + let [block_start, raw_start] = + qsa_compiled_frontiers([logical, pooled_len], [max_new, max_start.unwrap()])?; + let window = Buffer::mtplx_bytes(u64::from(max_new) * 4 * 128 * 2)?; + temporary.extend(qsa_dynamic_copy_rows( + [&raw_next, &window], + [128, 128], + [max_new * 4, 128], + [Some(&raw_start), None], + [raw_cap as usize * 128, max_new as usize * 512], + )?); + let pool_window = qsa_pool_keys_bound( + [&window, norm, freq], + max_new, + [128, 1], + tensor(6, &block_start).input(1), + )?; + let pooled_next = qsa_retained_bf16_copy(pooled, pooled_cap * 128)?; + temporary.extend(qsa_dynamic_copy_rows( + [&pool_window, &pooled_next], + [128, 128], + [max_new, 128], + [None, Some(&block_start)], + [max_new as usize * 128, pooled_cap as usize * 128], + )?); + temporary.extend([k, window, pool_window]); + Ok(QsaCompiledCacheWindow { + raw: raw_next, + pooled: pooled_next, + block_start, + raw_start, + _temporaries: temporary, + }) +} + +#[cfg(test)] +pub(super) struct QsaProjected { + pub(super) q: Buffer, + pub(super) raw_keys: Buffer, + _temporary: Vec, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub(super) enum QsaCompiledMode { + UpdateOnly, + Blocks, + PrefillBlocks, + RowTokens, + DenseMask, +} + +pub(super) fn qsa_compiled_row_position_source(start: u32) -> Result { + if start > i32::MAX as u32 { + return Err("invalid compiled QSA row offset".into()); + } + let bank: serde_json::Value = serde_json::from_str(include_str!( + "../../../tests/fixtures/mtplx-qsa-select-jit.json" + )) + .map_err(|e| e.to_string())?; + let body = bank[3]["kernels"] + .as_str() + .ok_or("missing original compiled row offset")?; + let symbol = body + .split_once("host_name(\"") + .and_then(|(_, s)| s.split_once('"')) + .ok_or("invalid compiled row offset symbol")? + .0; + Ok(body + .replace(symbol, &format!("kernel_qwen_mtplx_qsa_pos_add_{start}")) + .replace( + "tmp_C = static_cast(3);", + &format!("tmp_C = static_cast({start});"), + )) +} + +#[cfg(test)] +fn qsa_compiled_row_position(pos: &Buffer, start: u32) -> Result { + qsa_compile::Scalar::Add(start).buffer(&[pos]) +} + +#[cfg(test)] +pub(super) struct QsaIndexerWeights<'a> { + pub(super) projection: [&'a Buffer; 3], + pub(super) quant: [u32; 2], + pub(super) q_norm: &'a Buffer, + pub(super) k_norm: &'a Buffer, + pub(super) inv_freq: &'a Buffer, +} + +/// Resolved MTPLX switches for both indexer routes. Prefill's +/// device-dependent AUTO value must be resolved before entering this path. +pub(super) struct QsaIndexerOptions { + pub(super) fused: bool, + pub(super) compiled: bool, + pub(super) prefill: bool, + pub(super) phase_prefill: bool, + pub(super) prefill_min_rows: u32, + pub(super) prefill_compile_rows: u32, + pub(super) prefill_min_context: u32, + pub(super) prefill_workspace: u64, + pub(super) tile_rows: u32, + pub(super) flash: bool, + pub(super) gather_decode: bool, + pub(super) gather: bool, + pub(super) gather_max_rows: u32, + pub(super) gather_min_context: u32, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) tf32: bool, +} + +impl QsaIndexerOptions { + fn large_prefill(&self, rows: u32, pos: u32) -> bool { + self.prefill + && self.phase_prefill + && rows >= self.prefill_min_rows + && pos >= self.prefill_min_context + } + + /// Original _compiled_mode; total is the post-update token frontier. + pub(super) fn compiled_mode( + &self, + rows: u32, + total: u32, + ratio: u32, + topk: u32, + ) -> QsaCompiledMode { + if total / ratio <= topk { + QsaCompiledMode::UpdateOnly + } else if rows == 1 && self.flash { + QsaCompiledMode::Blocks + } else if rows != 1 && self.large_prefill(rows, total.saturating_sub(rows)) { + QsaCompiledMode::PrefillBlocks + } else if rows != 1 + && self.gather + && rows <= self.gather_max_rows + && total >= self.gather_min_context + { + QsaCompiledMode::RowTokens + } else { + QsaCompiledMode::DenseMask + } + } + + /// Cache/phase portion of _compiled_route_supported, BEFORE capacity + /// bucketing. QsaCache fixes B1/BF16/D128/ratio4. This does not validate a + /// source tensor, projection/norm dtype or device; those remain entry-point + /// obligations. In particular it is not a generic tensor eligibility test. + #[cfg(test)] + pub(super) fn compiled_cache_mode( + &self, + cache: &QsaCache, + rows: u32, + pos: u32, + ) -> Option { + let total = pos.checked_add(rows)?; + if !self.fused || !self.compiled || rows == 0 || pos != cache.offset { + return None; + } + let mode = self.compiled_mode(rows, total, 4, 512); + if rows != 1 { + if mode == QsaCompiledMode::UpdateOnly && self.phase_prefill { + return None; + } + if rows >= self.prefill_min_rows + && (!matches!( + mode, + QsaCompiledMode::PrefillBlocks | QsaCompiledMode::UpdateOnly + ) || rows != self.prefill_compile_rows) + { + return None; + } + } + if pos > 0 && (cache.raw.is_none() || cache.raw_cap < pos) { + return None; + } + if cache.pooled.is_none() { + if cache.pooled_len != 0 { + return None; + } + } else if cache.pooled_len > cache.pooled_cap { + return None; + } + let logical = total / 4; + if logical - cache.pooled_len.min(logical) > rows.div_ceil(4) { + return None; + } + if rows == 1 + && !matches!(mode, QsaCompiledMode::UpdateOnly | QsaCompiledMode::Blocks) + && self.gather_decode + { + return None; + } + Some(mode) + } +} + +#[cfg(test)] +pub(super) struct QsaIndexed { + pub(super) selection: Option, + pub(super) lane: &'static str, + _temporaries: Vec, +} + +/// Connected _call_rows host flow for the installed, typed B1/BF16 indexer. +/// Replays the parameter-bound indexer graph with its exclusive cache state. +/// Shared descriptors/Data retain the reference's copying path. +/// Eligibility rejection selects eager; dispatch errors are returned, not hidden. +#[allow(clippy::too_many_arguments)] // Explicit model inputs, cache and evaluator state. +#[cfg(test)] +pub(super) fn qsa_indexer_rows( + weights: QsaIndexerWeights<'_>, + hidden: &Buffer, + supplied_qk: Option<(&Buffer, u64)>, + rows: u32, + cache: &mut QsaCache, + options: &QsaIndexerOptions, + commands: Option<&mut Commands>, + graph: &mut QsaGraphBank, +) -> Result { + let total = qsa_validate_indexer_options(rows, cache.offset, options)?; + let Some(mode) = options.compiled_cache_mode(cache, rows, cache.offset) else { + return qsa_indexer_rows_uncompiled( + weights, + hidden, + supplied_qk, + rows, + cache, + options, + commands, + ); + }; + cache.ensure_compiled_backings(rows)?; + let logical = total / 4; + let frontiers = [cache.offset, total, logical, cache.pooled_len.min(logical)] + .map(|value| scalar_buffer(&(value as i32).to_le_bytes())); + let [pos, end, blocks, frontier] = frontiers; + let frontiers = [pos?, end?, blocks?, frontier?]; + let budget = if mode == QsaCompiledMode::PrefillBlocks { + options.prefill_workspace + } else { + 32 * 1024 * 1024 + }; + let geometry = [rows, cache.raw_cap, cache.pooled_cap]; + let (updated, selected) = graph.run( + weights, + supplied_qk.map_or(hidden, |(q, _)| q), + QsaCacheInput::State([cache.raw.as_mut().unwrap(), cache.pooled.as_mut().unwrap()]), + frontiers.each_ref(), + geometry, + supplied_qk.map(|(_, stride)| stride), + mode, + budget, + options.tf32, + )?; + // Commit leaves/frontier without waiting or reading GPU scalars. Attention + // alone advances KV.offset. A former eager mirror is now invalid. + cache.raw = Some(QsaArray::new(updated.raw, 0)?); + cache.pooled = Some(QsaArray::new(updated.pooled, 0)?); + cache.pooled_len = logical; + cache.mirror = None; + cache.mirror_cap = 0; + cache.mirror_strides = [0; 2]; + let mut temporary = updated._temporaries; + temporary.extend(frontiers); + let selection = if mode == QsaCompiledMode::UpdateOnly { + None + } else { + let mut out = selected.ok_or("compiled QSA omitted its selection")?; + Some(match mode { + QsaCompiledMode::Blocks => { + out._temporaries.extend(out.outputs.drain(1..)); + out.row_widths.truncate(1); + out.row_strides.truncate(1); + QsaIndexerSelection::FlashBlocks(out, total / 4 * 4) + } + QsaCompiledMode::PrefillBlocks => { + out._temporaries.extend(out.outputs.drain(2..)); + out.row_widths.truncate(2); + out.row_strides.truncate(2); + QsaIndexerSelection::PrefillBlocks(out) + } + QsaCompiledMode::RowTokens => QsaIndexerSelection::RowTokens(out), + QsaCompiledMode::DenseMask => { + out.row_widths[0] = (total, 1); + QsaIndexerSelection::Dense(out) + } + QsaCompiledMode::UpdateOnly => unreachable!(), + }) + }; + Ok(QsaIndexed { + selection, + lane: "compiled", + _temporaries: temporary, + }) +} + +#[cfg(test)] +fn qsa_validate_indexer_options( + rows: u32, + pos: u32, + options: &QsaIndexerOptions, +) -> Result { + let total = pos + .checked_add(rows) + .filter(|n| rows > 0 && *n <= i32::MAX as u32 / 512) + .ok_or("invalid QSA indexer frontier")?; + if options.prefill_min_rows < 2 + || options.prefill_compile_rows < 2 + || options.prefill_min_context < 2049 + || options.prefill_workspace < 1024 * 1024 + || options.gather_max_rows < 2 + { + return Err("unresolved or invalid QSA indexer options".into()); + } + Ok(total) +} + +/// _call_rows after compiled-route rejection, for the installed B1 BF16 model. +/// Does not replace an eligible compiled route. Attention advances KV.offset +/// later; this call only writes the indexer's raw/pool state. +#[cfg(test)] +pub(super) fn qsa_indexer_rows_uncompiled( + weights: QsaIndexerWeights<'_>, + hidden: &Buffer, + supplied_qk: Option<(&Buffer, u64)>, + rows: u32, + cache: &mut QsaCache, + options: &QsaIndexerOptions, + commands: Option<&mut Commands>, +) -> Result { + let total = qsa_validate_indexer_options(rows, cache.offset, options)?; + let mut temporary = Vec::new(); + let mut projected = None; + let (qk, stride) = if let Some((qk, stride)) = supplied_qk { + let span = u64::from(rows - 1) + .checked_mul(stride) + .and_then(|n| n.checked_add(640)) + .and_then(|n| n.checked_mul(2)); + if stride < 640 || span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(qk.raw()) } < n) { + return Err("invalid supplied QSA projection view".into()); + } + (qk, stride) + } else { + let output = Buffer::mtplx_bytes(u64::from(rows) * 640 * 2)?; + let [w, s, b] = weights.projection; + temporary.extend(affine_bf16( + [w, s, b, hidden, &output], + [rows, 640, 2560], + weights.quant[0], + weights.quant[1], + true, + )?); + projected = Some(output); + (projected.as_ref().unwrap(), 640) + }; + // In the dense==sparse regime q preparation is a dead lazy expression. + // Projection/raw writes and completed-key pooling still belong to cache. + let query = if total / 4 > 512 { + if options.fused { + Some(qsa_prepare_queries( + [qk, weights.q_norm, weights.inv_freq], + rows, + [stride, 128, 1], + cache.offset as i32, + )?) + } else { + let (q, scratch) = qsa_prepare_queries_eager( + [qk, weights.q_norm, weights.inv_freq], + rows, + [stride, 128, 1], + cache.offset as i32, + )?; + temporary.extend(scratch); + Some(q) + } + } else { + None + }; + let raw_len = (u64::from(rows - 1) * stride + 128) * 2; + let raw = qk.view(512 * 2, raw_len)?; + cache.write_raw(&raw, rows, stride)?; + temporary.extend(cache.extend_pooled( + total, + weights.k_norm, + weights.inv_freq, + !options.fused, + )?); + temporary.extend(projected); + let Some(query) = query else { + return Ok(QsaIndexed { + selection: None, + lane: "update_only", + _temporaries: temporary, + }); + }; + let decode = rows == 1; + let large_prefill = options.large_prefill(rows, cache.offset); + // All prepared B1/H4/D128 BF16 arrays meet the original M5 eligibility. + let (selection, lane) = if !decode && large_prefill { + let mut out = qsa_prefill_cached( + cache, + &query, + rows, + QsaSelectMode::Blocks, + options.prefill_workspace, + )?; + out._temporaries.extend(out.outputs.drain(2..)); + out.row_widths.truncate(2); + out.row_strides.truncate(2); + (QsaIndexerSelection::PrefillBlocks(out), "metal_prefill") + } else if options.fused + && (decode || rows < options.prefill_min_rows) + && !(decode && options.gather_decode) + { + if decode && options.flash { + let mut out = + qsa_select_cached(cache, &query, rows, QsaSelectMode::Blocks, options.tf32)?; + out._temporaries.extend(out.outputs.drain(1..)); + out.row_widths.truncate(1); + out.row_strides.truncate(1); + ( + QsaIndexerSelection::FlashBlocks(out, total / 4 * 4), + "legacy_fused", + ) + } else if !decode + && options.gather + && rows <= options.gather_max_rows + && total >= options.gather_min_context + { + ( + QsaIndexerSelection::RowTokens(qsa_select_cached( + cache, + &query, + rows, + QsaSelectMode::RowTokens, + options.tf32, + )?), + "legacy_fused", + ) + } else { + ( + QsaIndexerSelection::Dense(qsa_select_cached( + cache, + &query, + rows, + QsaSelectMode::DenseMask, + options.tf32, + )?), + "legacy_fused", + ) + } + } else { + let pos = cache.offset; + let (pooled, strides) = cache.pooled_f32_view(total / 4)?; + let top = qsa_eager_topk( + [&query, pooled], + [512, 128, 1], + strides, + QsaSelectPlan { + rows, + blocks: total / 4, + topk: 512, + pos, + total, + logical: total / 4, + dense_width: total, + mode: QsaSelectMode::Blocks, + tf32: options.tf32, + input_f32: [false, true], + }, + options.tile_rows, + commands, + )?; + ( + qsa_eager_output( + top, + total, + QsaEagerOptions { + large_prefill, + flash: options.flash, + gather_decode: options.gather_decode, + gather: options.gather, + gather_max_rows: options.gather_max_rows, + gather_min_context: options.gather_min_context, + }, + )?, + "eager", + ) + }; + temporary.push(query); + Ok(QsaIndexed { + selection: Some(selection), + lane, + _temporaries: temporary, + }) +} + +/// Shared-input indexer projection followed by the selected original fused or +/// eager preparation. Raw keys retain the projection stride for cache.write_raw. +#[cfg(test)] +pub(super) fn qsa_project_prepare( + pack: [&Buffer; 3], + [norm, inv_freq]: [&Buffer; 2], + input: &Buffer, + rows: u32, + quant: [u32; 2], + pos_start: i32, + eager: bool, +) -> Result { + if rows == 0 || rows > i32::MAX as u32 / 640 { + return Err("invalid MTPLX QSA projection rows".into()); + } + let projected = Buffer::mtplx_bytes(u64::from(rows) * 640 * 2)?; + let [w, s, b] = pack; + let mut temporary = affine_bf16( + [w, s, b, input, &projected], + [rows, 640, 2560], + quant[0], + quant[1], + true, + )?; + let q = if eager { + let (q, scratch) = qsa_prepare_queries_eager( + [&projected, norm, inv_freq], + rows, + [640, 128, 1], + pos_start, + )?; + temporary.extend(scratch); + q + } else { + qsa_prepare_queries([&projected, norm, inv_freq], rows, [640, 128, 1], pos_start)? + }; + let raw_keys = projected.view(512 * 2, (u64::from(rows) * 640 - 512) * 2)?; + temporary.push(projected); + Ok(QsaProjected { + q, + raw_keys, + _temporary: temporary, + }) +} + +#[cfg(test)] +pub(super) enum GdnInputWeights<'a> { + Fused { + pack: [&'a Buffer; 3], + quant: [u32; 2], + }, + /// Original qkv, z, b, a module order, each with its own quantization. + Separate { + packs: [[&'a Buffer; 3]; 4], + quant: [[u32; 2]; 4], + }, +} + +#[cfg(test)] +pub(super) struct GdnWeights<'a> { + pub(super) input: GdnInputWeights<'a>, + pub(super) output: [&'a Buffer; 3], + pub(super) output_quant: [u32; 2], // bits, group + pub(super) conv: &'a Buffer, + pub(super) a_log: &'a Buffer, + pub(super) dt_bias: &'a Buffer, + pub(super) norm: &'a Buffer, +} + +#[cfg(test)] +struct GdnProjected { + qkv: Buffer, + z: Buffer, + b: Buffer, + a: Buffer, + strides: [u32; 3], // qkv, z, a/b + temporary: Vec, +} + +#[cfg(test)] +fn gdn_project( + weights: &GdnInputWeights<'_>, + input: &Buffer, + rows: u32, +) -> Result { + let count = u64::from(rows) * 16480; + if rows == 0 || count > i32::MAX as u64 { + return Err("invalid MTPLX GDN projection rows".into()); + } + let mut temporary = Vec::new(); + match weights { + GdnInputWeights::Fused { + pack: [w, s, b], + quant: [bits, group], + } => { + let projected = Buffer::mtplx_bytes(count * 2)?; + temporary.extend(affine_bf16( + [w, s, b, input, &projected], + [rows, 16480, 2560], + *bits, + *group, + true, + )?); + let qkv = projected.view(0, (count - 6240) * 2)?; + let z = projected.view(10240 * 2, (count - 10336) * 2)?; + let b = projected.view(16384 * 2, (count - 16432) * 2)?; + let a = projected.view(16432 * 2, (count - 16432) * 2)?; + temporary.push(projected); + Ok(GdnProjected { + qkv, + z, + b, + a, + strides: [16480; 3], + temporary, + }) + } + GdnInputWeights::Separate { packs, quant } => { + let mut project = |index: usize, width| { + let [w, s, b] = packs[index]; + let [bits, group] = quant[index]; + let output = Buffer::mtplx_bytes(u64::from(rows) * u64::from(width) * 2)?; + temporary.extend(affine_bf16( + [w, s, b, input, &output], + [rows, width, 2560], + bits, + group, + true, + )?); + Ok::<_, String>(output) + }; + // Do not sort these by width or coalesce independently quantized modules. + let qkv = project(0, 10240)?; + let z = project(1, 6144)?; + let b = project(2, 48)?; + let a = project(3, 48)?; + Ok(GdnProjected { + qkv, + z, + b, + a, + strides: [10240, 6144, 48], + temporary, + }) + } + } +} + +#[cfg(test)] +pub(super) struct GdnDecodeOutput { + pub(super) hidden: Buffer, + pub(super) conv: Buffer, + pub(super) delta: Buffer, + // Like the reference encoder's temporaries, live through command completion. + _temporaries: Vec, +} + +#[cfg(test)] +pub(super) struct GdnStagedOutput { + pub(super) hidden: Buffer, + pub(super) prepared: ConvNormOutput, + pub(super) recurrent: DeltaUpdateOutput, + _norm: Option, + _temporaries: Vec, +} + +// Keep the fixed GPU-handle bundle inline, without an allocation per layer. +#[allow(clippy::large_enum_variant)] +#[cfg(test)] +pub(super) enum GdnForwardOutput { + Fused(GdnDecodeOutput), + Staged(GdnStagedOutput), +} + +/// GatedDeltaNet's inference branch order for the installed B=1 geometry. +/// Flags: fused step, conv-single, conv-verify, fused output, verify capture. +/// State bindings: BF16 conv, FP32 delta, optional INT32 valid length. +#[cfg(test)] +pub(super) fn gdn_forward( + weights: &GdnWeights<'_>, + input: &Buffer, + rows: u32, + cache: [Option<&Buffer>; 3], + mask: Option<&Buffer>, + flags: [bool; 5], + has_cache: bool, +) -> Result { + let [conv, delta, length] = if has_cache { cache } else { [None; 3] }; + if rows == 1 + && has_cache + && flags[0] + && !flags[4] + && mask.is_none() + && length.is_none() + && let Some(delta) = delta + { + gdn_decode(weights, input, conv, delta).map(GdnForwardOutput::Fused) + } else { + gdn_staged( + weights, + input, + rows, + [conv, delta, length], + mask, + [flags[1], flags[2], flags[3]], + has_cache, + ) + .map(GdnForwardOutput::Staged) + } +} + +/// Connected cold/prefill/verify forward with either input projection layout. +/// Fused-step selection remains the caller's earlier branch; these are the +/// conv-single, conv-verify and output-fusion flags from the actual model. +#[cfg(test)] +pub(super) fn gdn_staged( + weights: &GdnWeights<'_>, + input: &Buffer, + rows: u32, + [conv, delta, length]: [Option<&Buffer>; 3], + mask: Option<&Buffer>, + flags: [bool; 3], + has_cache: bool, +) -> Result { + let GdnProjected { + qkv, + z, + b, + a, + strides, + mut temporary, + } = gdn_project(&weights.input, input, rows)?; + let prepared = gdn_conv_norm( + &qkv, + weights.conv, + [rows, strides[0]], + [conv, length], + mask, + [flags[0], flags[1]], + has_cache, + )?; + let recurrent = gated_delta_update( + [&prepared.q, &prepared.k, &prepared.v], + [&a, &b, weights.a_log, weights.dt_bias], + [rows, strides[2]], + delta, + mask, + )?; + let hidden = Buffer::mtplx_bytes(u64::from(rows) * 2560 * 2)?; + let norm = if rows == 1 + && flags[2] + && weights.output_quant[0] == 4 + && [32, 64].contains(&weights.output_quant[1]) + { + let [w, s, b] = weights.output; + dispatch( + &format!( + "kernel_qwen_mtplx_gdn_out_fused_gs{}_bf16", + weights.output_quant[1] + ), + &[ + tensor(0, &recurrent.hidden).input(6144), + tensor(1, &z).input(6144), + tensor(2, weights.norm).input(128), + tensor(3, w).input(2560 * 6144 / 8), + tensor(4, s).input(2560 * 6144 / weights.output_quant[1] as usize), + tensor(5, b).input(2560 * 6144 / weights.output_quant[1] as usize), + tensor(6, &hidden).output(2560), + ], + [2560_u32.div_ceil(32), 1, 1], + [1024, 1, 1], + )?; + None + } else { + let norm = sigmoid_rms_norm( + &recurrent.hidden, + weights.norm, + Some(&z), + [rows, 48, 128, strides[1]], + 1e-6, + )?; + let [w, s, b] = weights.output; + temporary.extend(affine_bf16( + [w, s, b, &norm.hidden, &hidden], + [rows, 2560, 6144], + weights.output_quant[0], + weights.output_quant[1], + true, + )?); + Some(norm) + }; + temporary.extend([qkv, z, b, a]); + Ok(GdnStagedOutput { + hidden, + prepared, + recurrent, + _norm: norm, + _temporaries: temporary, + }) +} + +/// The reference's live-state, unmasked, single-row fused-step branch. +/// Caller checks the model branch gate; cold/prefill/verify use different graphs. +/// Keep this result alive until the enclosing command batch completes. +#[cfg(test)] +pub(super) fn gdn_decode( + weights: &GdnWeights<'_>, + input: &Buffer, + conv: Option<&Buffer>, + delta: &Buffer, +) -> Result { + for (buffer, size) in [ + (delta, 48 * 128 * 128 * 4), + (weights.conv, 10240 * 4 * 2), + (weights.a_log, 48 * 2), + (weights.dt_bias, 48 * 2), + (weights.norm, 128 * 2), + ] { + if unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } < size { + return Err("MTPLX GDN state/weight binding is too small".into()); + } + } + if conv.is_some_and(|conv| unsafe { ds4_gpu_tensor_bytes(conv.raw()) } < 3 * 10240 * 2) { + return Err("MTPLX GDN conv state binding is too small".into()); + } + let GdnProjected { + qkv, + z, + b, + a, + mut temporary, + .. + } = gdn_project(&weights.input, input, 1)?; + let gated = Buffer::mtplx_bytes(6144 * 2)?; + let next_conv = Buffer::mtplx_bytes(3 * 10240 * 2)?; + let next_delta = Buffer::mtplx_floats(48 * 128 * 128)?; + // CustomKernel allocates outputs before materializing a broadcast input. + // Keep the cold conv copy after the input projection, as in the reference. + let initial_conv = if conv.is_none() { + let zero = Buffer::mtplx_bytes(3 * 10240 * 2)?; + let scalar = scalar_buffer(&0_u16.to_le_bytes())?; + dispatch_geometry( + "g1_copybfloat16bfloat16", + &[ + tensor(0, &scalar).input(1), + tensor(1, &zero).output(3 * 10240), + bytes(3, &0_u64), + ], + &[], + [3 * 10240, 1, 1], + [1024, 1, 1], + true, + )?; + Some(zero) + } else { + None + }; + let conv = conv.or(initial_conv.as_ref()).unwrap(); + gdn::dispatch_step(&[ + tensor(0, &qkv).input(10240), + tensor(1, &z).input(6144), + tensor(2, &a).input(48), + tensor(3, &b).input(48), + tensor(4, conv).input(3 * 10240), + tensor(5, weights.conv).input(4 * 10240), + tensor(6, weights.a_log).input(48), + tensor(7, weights.dt_bias).input(48), + tensor(8, delta).input(48 * 128 * 128), + tensor(9, weights.norm).input(128), + tensor(10, &gated).output(6144), + tensor(11, &next_conv).output(3 * 10240), + tensor(12, &next_delta).output(48 * 128 * 128), + ])?; + if let Some(initial_conv) = initial_conv { + encoder::add_temporaries(std::slice::from_ref(&initial_conv)); + temporary.push(initial_conv); + } + let hidden = Buffer::mtplx_bytes(2560 * 2)?; + let [w, s, bias] = weights.output; + temporary.extend(affine_bf16( + [w, s, bias, &gated, &hidden], + [1, 2560, 6144], + weights.output_quant[0], + weights.output_quant[1], + true, + )?); + temporary.extend([qkv, z, b, a, gated]); + Ok(GdnDecodeOutput { + hidden, + conv: next_conv, + delta: next_delta, + _temporaries: temporary, + }) +} diff --git a/src/engine/metal/qwen_mtplx/allocator.rs b/src/engine/metal/qwen_mtplx/allocator.rs new file mode 100644 index 0000000..f0f156b --- /dev/null +++ b/src/engine/metal/qwen_mtplx/allocator.rs @@ -0,0 +1,679 @@ +//! Pinned MTPLX allocator/cache policy with native roots and a 1 MiB heap. +//! Residency is connected; the model-wide owner and encoder integration remain open. +use super::super::gpu::*; +use super::residency::ResidencySets; +use std::collections::BTreeMap; +use std::ptr::NonNull; +use std::sync::{Arc, Mutex}; + +struct NativeBuffer(NonNull); + +impl NativeBuffer { + fn erase_residency(&self, residency: &ResidencySets) { + if unsafe { ds4_gpu_tensor_has_heap(self.0.as_ptr()) } == 0 { + residency.erase(unsafe { ds4_gpu_mtplx_tensor_allocation(self.0.as_ptr()) } as usize); + } + } +} + +// SAFETY: cached handles expose no CPU/GPU access. Ownership is transferred +// under the allocator mutex; native destruction has its own locked ledger. +unsafe impl Send for NativeBuffer {} + +impl Drop for NativeBuffer { + fn drop(&mut self) { + unsafe { ds4_gpu_tensor_free(self.0.as_ptr()) }; + } +} + +struct Heap(*mut std::ffi::c_void); + +// SAFETY: this immutable owned Metal heap supports concurrent allocation and +// release. It outlives every allocation returned by this allocator. +unsafe impl Send for Heap {} +unsafe impl Sync for Heap {} + +impl Drop for Heap { + fn drop(&mut self) { + unsafe { ds4_gpu_mtplx_heap_free(self.0) }; + } +} + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +pub(in super::super) struct Stats { + pub active: usize, + pub cached: usize, + pub peak: usize, + pub resources: usize, +} + +struct State { + cache: BufferCache, + active: usize, + peak: usize, + resources: usize, + resource_limit: usize, + memory_limit: usize, + gc_limit: usize, + cache_limit: usize, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + wired_limit: usize, +} + +impl State { + fn release_cached(&mut self, bytes: usize, residency: &ResidencySets) { + let released = self.cache.release(bytes); + self.resources -= released.len(); + for buffer in released { + buffer.erase_residency(residency); + drop(buffer); + } + } +} + +/// Pinned malloc/free/cache/limit rules with real native roots. An explicit +/// owner permits isolated reference tests without keeping resources past the +/// existing Context teardown. The model-wide owner remains open. +pub(in super::super) struct Allocator { + state: Mutex, + heap: Heap, + page: usize, + max_buffer: usize, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + recommended: usize, + pub(super) residency: ResidencySets, +} + +impl Drop for Allocator { + fn drop(&mut self) { + self.clear_cache(); + if !self.heap.0.is_null() { + self.residency.erase(self.heap.0 as usize); + } + } +} + +impl Allocator { + pub(in super::super) fn new() -> Result, String> { + let page = usize::try_from(unsafe { libc::sysconf(libc::_SC_PAGESIZE) }) + .map_err(|e| e.to_string())?; + let max_buffer = unsafe { ds4_gpu_max_buffer_length() } as usize; + if page == 0 || max_buffer == 0 { + return Err("cannot query Metal allocator limits".into()); + } + let sysctl = |name: &std::ffi::CStr| { + let mut value = 0_usize; + let mut length = std::mem::size_of::(); + unsafe { + libc::sysctlbyname( + name.as_ptr(), + std::ptr::from_mut(&mut value).cast(), + &mut length, + std::ptr::null_mut(), + 0, + ) + }; + value + }; + let memory = sysctl(c"hw.memsize"); + let mut resource_limit = sysctl(c"iogpu.rsrc_limit"); + if resource_limit == 0 { + resource_limit = 499_000; + } + let recommended = unsafe { ds4_gpu_recommended_working_set_size() } as usize; + let memory_limit = (1.5 * recommended as f64).min(0.95 * memory as f64) as usize; + let residency = ResidencySets::new(recommended)?; + let heap = Heap(unsafe { ds4_gpu_mtplx_heap_create(1 << 20) }); + if !heap.0.is_null() { + unsafe { residency.insert(heap.0 as usize) }; + } + Ok(Arc::new(Self { + state: Mutex::new(State { + cache: BufferCache::new(page), + active: 0, + peak: 0, + resources: 0, + resource_limit, + memory_limit, + gc_limit: memory_limit.min((0.95 * recommended as f64) as usize), + cache_limit: memory_limit, + wired_limit: 0, + }), + heap, + page, + max_buffer, + recommended, + residency, + })) + } + + pub(in super::super) fn allocate( + self: &Arc, + bytes: usize, + ) -> Result, String> { + // The reference represents empty storage as null, not a one-byte buffer. + if bytes == 0 { + return Ok(None); + } + let size = allocation_size(bytes, self.page, self.max_buffer)?; + let mut state = self.state.lock().unwrap(); + let (buffer, actual) = if let Some(found) = state.cache.take(size) { + found + } else { + let required = state + .active + .wrapping_add(state.cache.bytes) + .wrapping_add(size); + if required >= state.gc_limit || state.resources >= state.resource_limit { + // Deliberate size_t subtraction: resource pressure alone can + // underflow here in the reference, selecting full cache GC. + let release = required.wrapping_sub(state.gc_limit); + state.release_cached(release, &self.residency); + } + if state.resources >= state.resource_limit { + return Err(format!( + "Metal resource limit ({}) exceeded", + state.resource_limit + )); + } + drop(state); + let heap = if size < 256 { + self.heap.0 + } else { + std::ptr::null_mut() + }; + let root = NonNull::new(unsafe { ds4_gpu_mtplx_tensor_alloc(size as u64, heap) }) + .ok_or_else(|| format!("Metal could not allocate {size} bytes"))?; + let buffer = NativeBuffer(root); + let actual = unsafe { ds4_gpu_tensor_bytes(root.as_ptr()) } as usize; + state = self.state.lock().unwrap(); + state.resources += 1; + if unsafe { ds4_gpu_tensor_has_heap(root.as_ptr()) } == 0 { + unsafe { + self.residency + .insert(ds4_gpu_mtplx_tensor_allocation(root.as_ptr()) as usize) + }; + } + (buffer, actual) + }; + state.active += actual; + state.peak = state.peak.max(state.active); + if state.cache.bytes > state.cache_limit { + let release = state.cache.bytes - state.cache_limit; + state.release_cached(release, &self.residency); + } + drop(state); + let root = buffer.0; + std::mem::forget(buffer); // BufferAllocation now owns the native root. + let buffer = unsafe { Buffer::from_pooled(root, self.clone()) }; + if actual == bytes { + Ok(Some(buffer)) + } else { + buffer.view(0, bytes as u64).map(Some) + } + } + + /// SAFETY: transfer the unique native root only after every descriptor and + /// GPU allocation hold is gone. Views are never eligible for this method. + pub(in super::super) unsafe fn recycle(&self, root: NonNull) { + let bytes = unsafe { ds4_gpu_tensor_bytes(root.as_ptr()) } as usize; + let buffer = NativeBuffer(root); + let mut state = self.state.lock().unwrap(); + state.active -= bytes; + if state.cache.bytes < state.cache_limit { + state.cache.recycle(buffer, bytes); + } else { + state.resources -= 1; + buffer.erase_residency(&self.residency); + drop(state); + drop(buffer); + } + } + + pub(in super::super) fn stats(&self) -> Stats { + let state = self.state.lock().unwrap(); + Stats { + active: state.active, + cached: state.cache.bytes, + peak: state.peak, + resources: state.resources, + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn set_cache_limit(&self, limit: usize) -> usize { + std::mem::replace(&mut self.state.lock().unwrap().cache_limit, limit) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn set_memory_limit(&self, limit: usize) -> usize { + let mut state = self.state.lock().unwrap(); + state.gc_limit = limit.min((0.95 * self.recommended as f64) as usize); + std::mem::replace(&mut state.memory_limit, limit) + } + + pub(super) fn memory_limit(&self) -> usize { + self.state.lock().unwrap().memory_limit + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn reset_peak(&self) { + self.state.lock().unwrap().peak = 0; + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn set_wired_limit(&self, limit: usize) -> Result { + if limit > self.recommended { + return Err("wired limit exceeds Metal recommended working set".into()); + } + let mut state = self.state.lock().unwrap(); + let old = std::mem::replace(&mut state.wired_limit, limit); + self.residency.resize(limit); + Ok(old) + } + + pub(in super::super) fn clear_cache(&self) { + let mut state = self.state.lock().unwrap(); + let bytes = state.cache.bytes; + state.release_cached(bytes, &self.residency); + } +} + +/// MetalAllocator::malloc checks the device limit before page rounding; small +/// allocations are not rounded (the reference separately tries its 1 MiB heap). +pub(in super::super) fn allocation_size( + size: usize, + page: usize, + max_buffer: usize, +) -> Result { + if page == 0 || size > max_buffer { + return Err("invalid Metal allocation size/page".into()); + } + if size <= page { + return Ok(size); + } + size.checked_add(page - 1) + .map(|n| n / page * page) + .ok_or_else(|| "Metal allocation rounding overflow".into()) +} + +/// Original std::multimap ordering: best fitting size, oldest insertion among +/// equal sizes. The age index replaces its intrusive doubly-linked list without +/// changing eviction order or adding unsafe host pointers. +struct BufferCache { + sizes: BTreeMap<(usize, u64), T>, + ages: BTreeMap, + bytes: usize, + serial: u64, + page: usize, +} + +impl Drop for BufferCache { + fn drop(&mut self) { + for buffer in self.clear() { + drop(buffer); + } + } +} + +impl BufferCache { + fn new(page: usize) -> Self { + Self { + sizes: BTreeMap::new(), + ages: BTreeMap::new(), + bytes: 0, + serial: 0, + page, + } + } + + fn take(&mut self, size: usize) -> Option<(T, usize)> { + let (&(found, age), _) = self.sizes.range((size, 0)..).next()?; + // These are strict bounds in the original unsigned size_t expression. + let limit = size + .wrapping_mul(2) + .min(size.wrapping_add(self.page.wrapping_mul(2))); + if found >= limit { + return None; + } + let buffer = self.sizes.remove(&(found, age)).unwrap(); + self.ages.remove(&age); + self.bytes -= found; + Some((buffer, found)) + } + + fn recycle(&mut self, buffer: T, size: usize) { + let age = self.serial; + self.serial = self + .serial + .checked_add(1) + .expect("buffer cache insertion age exhausted"); + self.bytes = self + .bytes + .checked_add(size) + .expect("buffer cache byte count overflow"); + self.sizes.insert((size, age), buffer); + self.ages.insert(age, size); + } + + /// Return native resources in the reference's release order. The caller + /// owns their destruction/residency removal, not the selection policy. + fn release(&mut self, minimum: usize) -> Vec { + if minimum as f64 >= 0.9 * self.bytes as f64 { + return self.clear(); + } + let mut released = Vec::new(); + let mut bytes = 0; + while bytes < minimum { + let Some((age, size)) = self.ages.pop_first() else { + break; + }; + released.push(self.sizes.remove(&(size, age)).unwrap()); + bytes += size; + } + self.bytes -= bytes; + released + } + + fn clear(&mut self) -> Vec { + self.ages.clear(); + self.bytes = 0; + self.serial = 0; + std::mem::take(&mut self.sizes).into_values().collect() + } +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_native_allocator_replays_reference_allocations() { + use super::super::*; + use serde_json::Value; + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + let rows = include_str!("../../../../tests/fixtures/mtplx-allocator.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(rows.len(), 101); + let n = |r: &Value, key: &str| r[key].as_u64().unwrap() as usize; + assert_eq!(allocator.page, n(&rows[0], "page")); + let mut limit = n(&rows[0], "limit"); + allocator.set_cache_limit(limit); + let mut live = BTreeMap::new(); + let mut reference_cache = BufferCache::new(allocator.page); + let mut addresses = BTreeMap::new(); + let mut peak = 0; + let mut hits = 0; + for (i, row) in rows.iter().enumerate() { + match row["op"].as_str().unwrap() { + "init" => assert_eq!(row["runtime"], "0.32.2"), + "alloc" => { + let bytes = n(row, "size"); + let output = allocator.allocate(bytes).unwrap(); + if let Some(buffer) = &output { + let size = + allocation_size(bytes, allocator.page, allocator.max_buffer).unwrap(); + let address = unsafe { ds4_gpu_tensor_contents(buffer.raw()) } as usize; + let id = n(row, "buffer"); + if let Some((expected, actual)) = reference_cache.take(size) { + assert_eq!(id, expected, "event {i}: reference hit identity"); + assert_eq!( + address, addresses[&id], + "event {i}: actual cached storage reuse" + ); + assert_eq!(buffer.allocation_bytes() as usize, actual); + hits += 1; + } else { + addresses.insert(id, address); + } + assert_eq!(buffer.allocation_bytes() as usize, n(row, "storage")); + assert_eq!( + unsafe { ds4_gpu_tensor_bytes(buffer.raw()) } as usize, + bytes + ); + assert!(buffer.unique_data()); + buffer.write(bytes as u64 - 1, &[73]).unwrap(); + let mut last = [0]; + buffer.read(bytes as u64 - 1, &mut last).unwrap(); + assert_eq!(last, [73]); + assert!(buffer.write(bytes as u64, &[0]).is_err()); + if reference_cache.bytes > limit { + reference_cache.release(reference_cache.bytes - limit); + } + } else { + assert_eq!(bytes, 0); + } + let id = row["buffer"].as_u64().map(|n| n as usize); + assert!( + live.insert(row["name"].as_str().unwrap(), (output, id)) + .is_none() + ); + } + "free" => { + let (buffer, id) = live.remove(row["name"].as_str().unwrap()).unwrap(); + if let Some(buffer) = buffer { + if reference_cache.bytes < limit { + reference_cache.recycle(id.unwrap(), buffer.allocation_bytes() as usize); + } + drop(buffer); + } + } + "limit" => { + let next = n(row, "size"); + assert_eq!(allocator.set_cache_limit(next), limit); + limit = next; + } + "clear" => { + allocator.clear_cache(); + reference_cache.clear(); + } + op => panic!("unknown allocator event {op}"), + } + let stats = allocator.stats(); + peak = peak.max(n(row, "active")); + assert_eq!(stats.active, n(row, "active"), "event {i}: active bytes"); + assert_eq!(stats.cached, n(row, "cached"), "event {i}: cached bytes"); + assert_eq!(stats.peak, peak, "event {i}: peak bytes"); + assert_eq!( + stats.resources, + reference_cache.sizes.len() + + live.values().filter(|(buffer, _)| buffer.is_some()).count(), + "event {i}: resources" + ); + } + assert!(hits >= 10 && live.is_empty()); + assert_eq!(allocator.stats().resources, 0); + allocator.reset_peak(); + assert_eq!(allocator.stats(), Stats::default()); + assert!(allocator.allocate(allocator.max_buffer + 1).is_err()); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_native_allocator_heap_limits_and_gpu_lifetime() { + use super::super::*; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + for (bytes, heap) in [(1, true), (255, true), (256, false), (257, false)] { + let buffer = allocator.allocate(bytes).unwrap().unwrap(); + assert_eq!(unsafe { ds4_gpu_tensor_has_heap(buffer.raw()) } != 0, heap); + drop(buffer); + allocator.clear_cache(); + } + // Exhaust the 1 MiB heap with its 256-byte allocation slots: the native + // bridge must fall back to the device, not fail or create another heap. + let buffers = (0..4097) + .map(|_| allocator.allocate(1).unwrap().unwrap()) + .collect::>(); + assert_ne!(unsafe { ds4_gpu_tensor_has_heap(buffers[0].raw()) }, 0); + assert_eq!(unsafe { ds4_gpu_tensor_has_heap(buffers[4096].raw()) }, 0); + drop(buffers); + allocator.clear_cache(); + + // A memory limit triggers cache GC; it is not a hard allocation rejection. + let old_limit = allocator.set_memory_limit(128); + let cached = allocator.allocate(256).unwrap().unwrap(); + drop(cached); + let live = allocator.allocate(512).unwrap().unwrap(); + assert_eq!(allocator.stats().cached, 0); + assert_eq!(allocator.stats().resources, 1); + drop(live); + allocator.clear_cache(); + assert_eq!(allocator.set_memory_limit(old_limit), 128); + + // Resource-only pressure uses the original unsigned GC subtraction. + let old_resources = allocator.state.lock().unwrap().resource_limit; + allocator.state.lock().unwrap().resource_limit = 1; + let cached = allocator.allocate(256).unwrap().unwrap(); + drop(cached); + let live = allocator.allocate(512).unwrap().unwrap(); + let before = allocator.stats(); + assert!(matches!(allocator.allocate(16), Err(error) if error.contains("resource limit"))); + assert_eq!(allocator.stats(), before); + drop(live); + allocator.clear_cache(); + allocator.state.lock().unwrap().resource_limit = old_resources; + + let input = allocator.allocate(16).unwrap().unwrap(); + let address = unsafe { ds4_gpu_tensor_contents(input.raw()) }; + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let output = Buffer::mtplx_bytes(16).unwrap(); + let commands = Commands::begin().unwrap(); + assert!( + super::qsa_dynamic_copy_rows([&input, &output], [8, 8], [1, 8], [None, None], [8; 2]) + .unwrap() + .is_empty() + ); + assert!(input.unique_data()); + drop(input); + assert_eq!(allocator.stats().active, 16); + assert_eq!( + allocator.stats().cached, + 0, + "in-flight storage must not reach the cache" + ); + let another = allocator.allocate(16).unwrap().unwrap(); + assert_ne!(unsafe { ds4_gpu_tensor_contents(another.raw()) }, address); + commands.finish().unwrap(); + assert_eq!(allocator.stats().active, 16); + assert_eq!(allocator.stats().cached, 16); + let reused = allocator.allocate(16).unwrap().unwrap(); + assert_eq!(unsafe { ds4_gpu_tensor_contents(reused.raw()) }, address); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + drop((another, reused)); + allocator.clear_cache(); + assert_eq!(allocator.stats().resources, 0); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_allocations_preserve_logical_bounds_with_reference_rounding() { + use super::super::*; + let _context = Context::open_qwen(0).unwrap(); + let page = unsafe { libc::sysconf(libc::_SC_PAGESIZE) } as usize; + for size in [1, 255, 256, page - 1, page, page + 1, 2 * page + 1] { + for untracked in [false, true] { + let buffer = if untracked { + Buffer::mtplx_untracked(size as u64) + } else { + Buffer::mtplx_bytes(size as u64) + } + .unwrap(); + assert_eq!( + buffer.allocation_bytes() as usize, + allocation_size(size, page, usize::MAX).unwrap() + ); + assert_eq!(unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }, size as u64); + assert!(buffer.unique_data()); + buffer.write(size as u64 - 1, &[73]).unwrap(); + let mut last = [0]; + buffer.read(size as u64 - 1, &mut last).unwrap(); + assert_eq!(last, [73]); + assert!(buffer.write(size as u64, &[0]).is_err()); + } + } +} + +#[test] +fn mtplx_allocator_cache_matches_live_reference_trace() { + use serde_json::Value; + let rows = include_str!("../../../../tests/fixtures/mtplx-allocator.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(rows.len(), 101); + let n = |r: &Value, key: &str| r[key].as_u64().unwrap() as usize; + let page = n(&rows[0], "page"); + let mut limit = n(&rows[0], "limit"); + let mut pool = BufferCache::new(page); + let mut live = BTreeMap::new(); + let mut active = 0; + let (mut hits, mut misses) = (0, 0); + for (i, row) in rows.iter().enumerate() { + match row["op"].as_str().unwrap() { + "init" => assert_eq!(row["runtime"], "0.32.2"), + "alloc" => { + let size = allocation_size(n(row, "size"), page, 1 << 30).unwrap(); + let buffer = if size == 0 { + None + } else { + let (id, actual) = if let Some(found) = pool.take(size) { + hits += 1; + found + } else { + misses += 1; + (n(row, "buffer"), size) + }; + assert_eq!(id, n(row, "buffer"), "event {i}: physical buffer identity"); + assert_eq!(actual, n(row, "storage"), "event {i}: allocation bytes"); + active += actual; + // MetalAllocator trims only after allocation/reuse. + if pool.bytes > limit { + pool.release(pool.bytes - limit); + } + Some((id, actual)) + }; + assert!(live.insert(row["name"].as_str().unwrap(), buffer).is_none()); + } + "free" => { + if let Some((id, bytes)) = live.remove(row["name"].as_str().unwrap()).unwrap() { + active -= bytes; + // Pre-insertion bound, not a hard cap on the new pool size. + if pool.bytes < limit { + pool.recycle(id, bytes); + } + } + } + "limit" => limit = n(row, "size"), + "clear" => { + pool.clear(); + } + op => panic!("unknown allocator receipt event {op}"), + } + assert_eq!(active, n(row, "active"), "event {i}: active"); + assert_eq!(pool.bytes, n(row, "cached"), "event {i}: cached"); + assert_eq!(pool.ages.len(), pool.sizes.len()); + } + assert!(hits >= 10 && misses >= 20); + assert!(live.is_empty() && pool.sizes.is_empty()); + + // Explicit destructor order differs between partial GC (age order) and + // clear/>=90% GC (size order, FIFO for equal sizes). + for (id, size) in [(0, 256), (1, 64), (2, 512), (3, 128)] { + pool.recycle(id, size); + } + assert_eq!(pool.release(360), [0, 1, 2]); + assert!(pool.release(0).is_empty()); + assert_eq!(pool.clear(), [3]); + for (id, size) in [(0, 256), (1, 64), (2, 512), (3, 128)] { + pool.recycle(id, size); + } + assert_eq!(pool.release(864), [1, 3, 0, 2]); + assert!(allocation_size(1, 0, 10).is_err()); + assert!(allocation_size(11, page, 10).is_err()); + assert!(allocation_size(usize::MAX, page, usize::MAX).is_err()); +} diff --git a/src/engine/metal/qwen_mtplx/ar.rs b/src/engine/metal/qwen_mtplx/ar.rs new file mode 100644 index 0000000..f48b588 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ar.rs @@ -0,0 +1,346 @@ +//! Normal-text AR decode from MTPLX generation.generate_ar, after prompt restore. +//! Prompt/session restore, constraints and repetition/thinking guards belong to +//! the request owner; this lane must not be selected for those guarded requests. +use super::array::{Array, Dtype}; +use super::execution::Throttle; +use super::model::Output; +use super::sampling::{SamplerConfig, lazy_sample, sample_from_logits}; +use super::stream::{Stream, Streams}; +use super::{ops, random}; +use crate::engine::Rng; +use std::time::Instant; + +#[derive(Clone)] +pub(super) struct Options<'a> { + pub(super) max_tokens: usize, + pub(super) seed: u64, + pub(super) stop_tokens: &'a [i64], + pub(super) pipeline: bool, + pub(super) sync_eval: bool, + pub(super) return_hidden: bool, + pub(super) capture_final_state: bool, +} + +impl Options<'_> { + pub(super) fn pipeline_eligible(&self, sampler: &SamplerConfig) -> bool { + self.pipeline + && sampler.temperature > 0.0 + && sampler.top_k > 1 + && sampler.top_k < 4096 + && sampler.presence_penalty == 0.0 + && sampler.frequency_penalty == 0.0 + && self.max_tokens > 2 + } +} + +#[derive(Default)] +pub(super) struct Decoded { + pub(super) tokens: Vec, + pub(super) final_logits: Option, + pub(super) final_state_error: Option, + pub(super) pipeline: bool, + pub(super) verify_calls: usize, + pub(super) forward_seconds: f64, + pub(super) eval_seconds: f64, + pub(super) decode_seconds: f64, + pub(super) elapsed_seconds: f64, + cached_final_row: Option, +} + +pub(super) fn last_row(logits: &Array, stream: Stream) -> Result { + let shape = logits.layout().shape().to_vec(); + if shape.len() != 3 || shape[0] != 1 || shape[1] < 1 { + return Err("AR forward must return [1, tokens, vocabulary] logits".into()); + } + let row = ops::slice(logits, &[0, shape[1] - 1, 0], &shape, &[1, 1, 1], stream)?; + ops::reshape(&row, &[1, shape[2]], stream) +} + +fn token_array(token: i64) -> Result { + let value = i32::try_from(token).map_err(|_| "AR token exceeds int32")?; + Array::new( + &[1, 1], + Dtype::I32, + super::scalar_buffer(&value.to_le_bytes())?, + ) +} + +/// The model owner enables/disables pipeline mode around this call, including +/// errors from the callback. Forward consumes resident token arrays unchanged. +#[allow(clippy::too_many_arguments)] +pub(super) fn decode( + initial_logits: &Array, + sampler: &SamplerConfig, + options: &Options<'_>, + pipeline_ready: bool, + streams: &Streams, + stream: Stream, + throttle: &mut Throttle, + mut forward: impl FnMut(&Array, bool) -> Result, + mut emit: impl FnMut(i64) -> Result<(), String>, +) -> Result { + let started_all = Instant::now(); + let mut result = Decoded::default(); + let mut rng = Rng::new_qwen(options.seed); + let mut logits = initial_logits.clone(); + let mut final_row = None; + let stopped = |token: i64| options.stop_tokens.contains(&token); + let mut commit = |tokens: &mut Vec, token| -> Result<(), String> { + tokens.push(token); + if !stopped(token) { + emit(token)?; + } + Ok(()) + }; + if options.pipeline_eligible(sampler) && pipeline_ready { + result.pipeline = true; + let mut key = random::key(options.seed & 0x7fff_ffff)?; + let row = ops::reshape(&logits, &[-1], stream)?; + let token = sample_from_logits(&row, sampler, &mut rng, &[], &[], streams, stream)?.0; + commit(&mut result.tokens, token)?; + if !stopped(token) { + let mut lane_step = |token: &Array| -> Result<(Array, Array), String> { + let (next, sub) = random::split(&key, stream)?; + key = next; + let out = forward(&ops::reshape(token, &[1, 1], stream)?, false)?; + let row = last_row( + out.logits.as_ref().ok_or("AR forward omitted logits")?, + stream, + )?; + let next = lazy_sample(&ops::reshape(&row, &[-1], stream)?, sampler, &sub, stream)?; + Ok((row, next)) + }; + let started = Instant::now(); + let first_power_started = throttle.begin(); + let (mut _row_lazy, mut token_lazy) = lane_step(&token_array(token)?)?; + ops::evaluate(streams, std::slice::from_ref(&token_lazy), stream, true)?; + result.forward_seconds += started.elapsed().as_secs_f64(); + throttle.pause(streams, stream, first_power_started)?; + loop { + let power_started = throttle.begin(); + let built = Instant::now(); + let (row_next, token_next) = lane_step(&token_lazy)?; + ops::evaluate(streams, std::slice::from_ref(&token_next), stream, true)?; + let build_elapsed = built.elapsed().as_secs_f64(); + let waited = Instant::now(); + let token = ops::read_i64(&token_lazy, streams, stream)?[0]; + let wait_elapsed = waited.elapsed().as_secs_f64(); + result.forward_seconds += build_elapsed; + result.eval_seconds += wait_elapsed; + result.decode_seconds += build_elapsed + wait_elapsed; + result.verify_calls += 1; + throttle.pause(streams, stream, power_started)?; + commit(&mut result.tokens, token)?; + if stopped(token) || result.tokens.len() >= options.max_tokens { + final_row = Some(row_next); + break; + } + _row_lazy = row_next; + token_lazy = token_next; + } + } + } else { + let mut counts = Vec::<(i64, i64)>::new(); + for step in 0..options.max_tokens { + let row = ops::reshape(&logits, &[-1], stream)?; + if !options.sync_eval && step > 0 { + let started = Instant::now(); + ops::evaluate(streams, std::slice::from_ref(&row), stream, false)?; + let elapsed = started.elapsed().as_secs_f64(); + result.eval_seconds += elapsed; + result.decode_seconds += elapsed; + } + let token = + sample_from_logits(&row, sampler, &mut rng, &counts, &[], streams, stream)?.0; + commit(&mut result.tokens, token)?; + if sampler.presence_penalty != 0.0 || sampler.frequency_penalty != 0.0 { + if let Some((_, count)) = counts.iter_mut().find(|(id, _)| *id == token) { + *count += 1; + } else { + counts.push((token, 1)); + } + } + if step + 1 >= options.max_tokens || stopped(token) { + break; + } + let started = Instant::now(); + let power_started = throttle.begin(); + let output = forward(&token_array(token)?, options.return_hidden)?; + result.forward_seconds += started.elapsed().as_secs_f64(); + let eval_started = Instant::now(); + let next = output.logits.ok_or("AR forward omitted logits")?; + let mut roots = vec![next.clone()]; + roots.extend(output.hidden); + ops::evaluate(streams, &roots, stream, !options.sync_eval)?; + result.eval_seconds += eval_started.elapsed().as_secs_f64(); + result.decode_seconds += started.elapsed().as_secs_f64(); + result.verify_calls += 1; + logits = last_row(&next, stream)?; + throttle.pause(streams, stream, power_started)?; + } + } + // Match generate_ar: response timing ends before session-bank tail capture. + result.elapsed_seconds = started_all.elapsed().as_secs_f64(); + result.cached_final_row = final_row; + Ok(result) +} + +/// Called after the owner restores non-pipeline mode, as in generate_ar's +/// finally block. Capture failures preserve a successfully finished response. +pub(super) fn capture_final_state( + result: &mut Decoded, + options: &Options<'_>, + streams: &Streams, + stream: Stream, + mut forward: impl FnMut(&Array, bool) -> Result, +) { + let final_row = result.cached_final_row.take(); + if options.capture_final_state + && let Some(&last) = result.tokens.last() + { + let capture = (|| { + let row = match final_row { + Some(row) => row, + None => last_row( + &forward(&token_array(last)?, false)? + .logits + .ok_or("AR tail omitted logits")?, + stream, + )?, + }; + ops::evaluate(streams, std::slice::from_ref(&row), stream, false)?; + Ok::<_, String>(row) + })(); + match capture { + Ok(row) => result.final_logits = Some(row), + Err(error) => result.final_state_error = Some(error), + } + } +} + +#[test] +#[ignore = "requires Apple Metal; unchanged MTPLX generate_ar orchestration oracle"] +fn mtplx_ar_driver_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::hex_digest}; + use super::{allocator, configure_sources, indexing, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let data = (0..37 * 37) + .flat_map(|i| (((i * 17 + 96 * 13) % 257 - 128) as f32 / 131.0).to_le_bytes()) + .collect::>(); + let table = Array::new(&[37, 37], Dtype::F32, super::scalar_buffer(&data).unwrap()).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-ar-driver.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 480); + for (index, case) in cases.iter().enumerate() { + eprintln!("AR driver reference {index}/{}", cases.len()); + let sampler = SamplerConfig { + temperature: case["temperature"].as_f64().unwrap(), + presence_penalty: case["penalty"].as_f64().unwrap(), + ..Default::default() + }; + let stops = case["stops"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let options = Options { + max_tokens: case["limit"].as_u64().unwrap() as usize, + seed: 4294967297, + stop_tokens: &stops, + pipeline: case["pipeline"].as_bool().unwrap(), + sync_eval: !case["asynchronous"].as_bool().unwrap(), + return_hidden: false, + capture_final_state: case["capture"].as_bool().unwrap(), + }; + let mut calls = Vec::new(); + let mut forward = |ids: &Array, hidden| { + calls.push((ids.clone(), hidden)); + Ok(Output { + logits: Some(indexing::take_rows(&table, ids, stream)?), + hidden: if hidden { + Some(ops::astype(ids, Dtype::F32, false, stream)?) + } else { + None + }, + }) + }; + let first = indexing::take_rows(&table, &token_array(2).unwrap(), stream).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&first), stream, false).unwrap(); + let row = last_row(&first, stream).unwrap(); + let mut emitted = Vec::new(); + let mut result = decode( + &row, + &sampler, + &options, + true, + &streams, + stream, + &mut Throttle::new(100).unwrap(), + &mut forward, + |token| { + emitted.push(token); + Ok(()) + }, + ) + .unwrap(); + capture_final_state(&mut result, &options, &streams, stream, &mut forward); + assert!(result.final_state_error.is_none()); + let actual_calls = calls + .iter() + .map(|(ids, hidden)| { + serde_json::json!({ + "ids":ops::read_i64(ids, &streams, stream).unwrap(), "hidden":hidden, + }) + }) + .collect::>(); + let final_row = result.final_logits.as_ref().map(|row| { + let bytes = ops::read_f32_as_f64(row, &streams, stream) + .unwrap() + .iter() + .flat_map(|v| (*v as f32).to_le_bytes()) + .collect::>(); + serde_json::json!({"shape":row.layout().shape(), "sha256":hex_digest(&bytes)}) + }); + assert_eq!( + serde_json::json!(result.tokens), + case["tokens"], + "tokens case {index}" + ); + assert_eq!( + serde_json::json!(emitted), + case["emitted"], + "emitted case {index}" + ); + assert_eq!( + serde_json::json!(actual_calls), + case["calls"], + "calls case {index}" + ); + assert_eq!( + serde_json::json!(final_row), + case["final"], + "final cache row case {index}" + ); + assert_eq!( + result.pipeline, + !case["modes"].as_array().unwrap().is_empty(), + "pipeline admission case {index}" + ); + assert_eq!( + serde_json::json!(result.verify_calls), + case["verify_calls"], + "verify count case {index}" + ); + assert!( + result.elapsed_seconds >= result.decode_seconds + && result.forward_seconds >= 0.0 + && result.eval_seconds >= 0.0 + ); + } +} diff --git a/src/engine/metal/qwen_mtplx/array.rs b/src/engine/metal/qwen_mtplx/array.rs new file mode 100644 index 0000000..9bd20e2 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/array.rs @@ -0,0 +1,1098 @@ +//! Array descriptor/Data ownership from the pinned runtime's array.cpp. +//! Shared by QSA materialized caches and the lazy eval/async_eval executor. +use super::super::gpu::{Buffer, ds4_gpu_tensor_bytes}; +use super::eval::Status; +use super::graph_sync::GraphEvent; +use super::stream::{Device, Stream}; +use std::cell::{Cell, Ref, RefCell}; +use std::collections::HashMap; +use std::rc::{Rc, Weak}; + +/// The pinned runtime's dtype values. Equal byte widths are not equal dtypes. +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub(super) enum Dtype { + Bool, + U8, + U16, + U32, + U64, + I8, + I16, + I32, + I64, + F16, + F32, + F64, + BF16, + C64, +} + +impl Dtype { + /// dtype.cpp's complete 14-type promotion table, expressed by its width + /// and floating-dominance rules. In particular U64 + signed -> F32. + pub(super) fn promote(self, other: Self) -> Self { + use Dtype::*; + match (self, other) { + (C64, _) | (_, C64) => C64, + (F64, _) | (_, F64) => F64, + (F32, _) | (_, F32) | (BF16, F16) | (F16, BF16) => F32, + (BF16, _) | (_, BF16) => BF16, + (F16, _) | (_, F16) => F16, + (Bool, b) => b, + (a, Bool) => a, + (a, b) => { + let signed = |d| matches!(d, I8 | I16 | I32 | I64); + if signed(a) == signed(b) { + return if a.itemsize() >= b.itemsize() { a } else { b }; + } + let (s, u) = if signed(a) { (a, b) } else { (b, a) }; + match s.itemsize().max(u.itemsize() * 2) { + 2 => I16, + 4 => I32, + 8 => I64, + _ => F32, + } + } + } + } + + pub(super) fn at_least_float(self) -> Self { + if matches!( + self, + Self::F16 | Self::BF16 | Self::F32 | Self::F64 | Self::C64 + ) { + self + } else { + Self::F32 + } + } + + pub(super) const fn kernel_name(self) -> &'static str { + match self { + Self::Bool => "bool_", + Self::U8 => "uint8", + Self::U16 => "uint16", + Self::U32 => "uint32", + Self::U64 => "uint64", + Self::I8 => "int8", + Self::I16 => "int16", + Self::I32 => "int32", + Self::I64 => "int64", + Self::F16 => "float16", + Self::F32 => "float32", + Self::F64 => "double", + Self::BF16 => "bfloat16", + Self::C64 => "complex64", + } + } + + pub(super) const fn itemsize(self) -> usize { + match self { + Self::Bool | Self::U8 | Self::I8 => 1, + Self::U16 | Self::I16 | Self::F16 | Self::BF16 => 2, + Self::U32 | Self::I32 | Self::F32 => 4, + Self::U64 | Self::I64 | Self::F64 | Self::C64 => 8, + } + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(super) struct Flags { + pub(super) contiguous: bool, + pub(super) row_contiguous: bool, + pub(super) col_contiguous: bool, +} + +#[test] +fn mtplx_dtype_promotion_matches_all_reference_pairs() { + use Dtype::*; + let types = [ + Bool, U8, U16, U32, U64, I8, I16, I32, I64, F16, F32, F64, BF16, C64, + ]; + // Rows transcribed from the pinned dtype.cpp type_rules; hexadecimal + // indices use the reference dtype order above, not the implementation. + let rows = [ + "0 1 2 3 4 5 6 7 8 9 a b c d", + "1 1 2 3 4 6 6 7 8 9 a b c d", + "2 2 2 3 4 7 7 7 8 9 a b c d", + "3 3 3 3 4 8 8 8 8 9 a b c d", + "4 4 4 4 4 a a a a 9 a b c d", + "5 6 7 8 a 5 6 7 8 9 a b c d", + "6 6 7 8 a 6 6 7 8 9 a b c d", + "7 7 7 8 a 7 7 7 8 9 a b c d", + "8 8 8 8 a 8 8 8 8 9 a b c d", + "9 9 9 9 9 9 9 9 9 9 a b a d", + "a a a a a a a a a a a b a d", + "b b b b b b b b b b b b b d", + "c c c c c c c c c a a b c d", + "d d d d d d d d d d d d d d", + ]; + for (a, row) in types.into_iter().zip(rows) { + for (b, expected) in types.into_iter().zip(row.split_whitespace()) { + let expected = types[usize::from_str_radix(expected, 16).unwrap()]; + assert_eq!(a.promote(b), expected, "{a:?} + {b:?}"); + } + } +} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub(super) struct Layout { + shape: Vec, + strides: Vec, + dtype: Dtype, + size: usize, + data_size: usize, + flags: Flags, +} + +impl Layout { + pub(super) fn new(shape: &[i32], dtype: Dtype) -> Result { + let mut size = 1_usize; + let mut strides = vec![0; shape.len()]; + for (axis, &dim) in shape.iter().enumerate().rev() { + strides[axis] = i64::try_from(size).map_err(|_| "array stride overflow")?; + size = size + .checked_mul(usize::try_from(dim).map_err(|_| "negative array dimension")?) + .ok_or("array size overflow")?; + } + size.checked_mul(dtype.itemsize()) + .ok_or("array byte size overflow")?; + Ok(Self { + shape: shape.to_vec(), + strides, + dtype, + size, + data_size: 0, + // ArrayDesc initializes these before storage exists; set_data + // computes the materialized column-contiguous flag separately. + flags: Flags { + contiguous: true, + row_contiguous: true, + col_contiguous: true, + }, + }) + } + + pub(super) fn shape(&self) -> &[i32] { + &self.shape + } + pub(super) fn strides(&self) -> &[i64] { + &self.strides + } + pub(super) fn dtype(&self) -> Dtype { + self.dtype + } + pub(super) fn size(&self) -> usize { + self.size + } + pub(super) fn nbytes(&self) -> usize { + self.size * self.dtype.itemsize() + } + pub(super) fn flags(&self) -> Flags { + self.flags + } + + fn axis(&self, axis: i32) -> Result { + let axis = if axis < 0 { + self.shape.len() as i64 + i64::from(axis) + } else { + i64::from(axis) + }; + usize::try_from(axis) + .ok() + .filter(|&axis| axis < self.shape.len()) + .ok_or_else(|| "array axis out of bounds".into()) + } + + pub(super) fn dim(&self, axis: i32) -> Result { + Ok(self.shape[self.axis(axis)?]) + } + pub(super) fn stride(&self, axis: i32) -> Result { + Ok(self.strides[self.axis(axis)?]) + } + + fn materialize_contiguous(&mut self) { + self.data_size = self.size; + self.flags = Flags { + contiguous: true, + row_contiguous: true, + col_contiguous: self.size <= 1 + || self.shape.iter().any(|&dim| dim as usize == self.size), + }; + } + + pub(super) fn span(&self, strides: &[i64]) -> Result<(i64, i64), String> { + if strides.len() != self.shape.len() { + return Err("array stride rank mismatch".into()); + } + if self.size == 0 { + return Ok((0, -1)); + } + strides + .iter() + .zip(&self.shape) + .try_fold((0_i64, 0_i64), |(lo, hi), (&stride, &dim)| { + let delta = stride + .checked_mul(i64::from(dim - 1)) + .ok_or("array strided span overflow")?; + Ok(( + lo.checked_add(delta.min(0)) + .ok_or("array strided span overflow")?, + hi.checked_add(delta.max(0)) + .ok_or("array strided span overflow")?, + )) + }) + } + + pub(super) fn contiguity(&self, strides: &[i64]) -> Result<(usize, bool, bool), String> { + if strides.len() != self.shape.len() { + return Err("array stride rank mismatch".into()); + } + let (mut no_broadcast, mut forward, mut backward) = (1_usize, 1_i64, 1_i64); + let (mut row, mut col) = (true, true); + for (i, ri) in (0..self.shape.len()).zip((0..self.shape.len()).rev()) { + col &= strides[i] == forward || self.shape[i] == 1; + row &= strides[ri] == backward || self.shape[ri] == 1; + forward = forward + .checked_mul(i64::from(self.shape[i])) + .ok_or("array stride overflow")?; + backward = backward + .checked_mul(i64::from(self.shape[ri])) + .ok_or("array stride overflow")?; + if strides[i] > 0 { + no_broadcast = no_broadcast + .checked_mul(self.shape[i] as usize) + .ok_or("array size overflow")?; + } + } + Ok((no_broadcast, row, col)) + } + + fn validate_storage( + &self, + buffer: &Buffer, + strides: &[i64], + data_size: usize, + offset: i64, + ) -> Result<(), String> { + let bytes = unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }; + let (lo, hi) = self.span(strides)?; + let width = self.dtype.itemsize() as i128; + let start = i128::from(offset) + i128::from(lo) * width; + let end = if self.size == 0 { + i128::from(offset) + } else { + i128::from(offset) + (i128::from(hi) + 1) * width + }; + if offset < 0 + || offset as u64 > bytes + || start < 0 + || end > i128::from(bytes) + || data_size + .checked_mul(self.dtype.itemsize()) + .is_none_or(|n| n as u128 > u128::from(bytes)) + { + return Err("array view exceeds its backing storage".into()); + } + Ok(()) + } +} + +#[derive(Default)] +struct Links { + inputs: Vec, + siblings: Vec, +} + +struct Descriptor { + data: RefCell>>, + layout: RefCell, + offset: Cell, + status: Cell, + event: RefCell, + tracer: Cell, + sibling_position: Cell, + primitive: Cell>, + operation: RefCell>>, + links: RefCell, +} + +/// Clone aliases the descriptor; share_data creates a new descriptor over the +/// same Data. A null handle exists only while breaking a sibling cycle, just as +/// array.cpp clears array_desc_ without recursively invoking array::~array. +#[derive(Clone)] +pub(super) struct Array(Option>); + +pub(super) struct WeakArray(Weak); + +impl WeakArray { + pub(super) fn upgrade(&self) -> Option { + self.0.upgrade().map(|descriptor| Array(Some(descriptor))) + } +} + +impl Array { + fn descriptor(&self) -> &Rc { + self.0.as_ref().expect("detaching array handle") + } + + fn from_parts( + layout: Layout, + data: Option>, + primitive: Option, + inputs: Vec, + sibling_position: usize, + ) -> Self { + Self(Some(Rc::new(Descriptor { + layout: RefCell::new(layout), + offset: Cell::new(0), + status: Cell::new(if primitive.is_some() { + Status::Unscheduled + } else { + Status::Available + }), + event: RefCell::new(GraphEvent::default()), + tracer: Cell::new(inputs.iter().any(Self::is_tracer)), + sibling_position: Cell::new(sibling_position), + data: RefCell::new(data), + primitive: Cell::new(primitive), + operation: RefCell::new(None), + links: RefCell::new(Links { + inputs, + siblings: Vec::new(), + }), + }))) + } + + pub(super) fn new(shape: &[i32], dtype: Dtype, buffer: Buffer) -> Result { + let array = Self::unallocated(shape, dtype)?; + array.set_data(buffer)?; + Ok(array) + } + + /// Backend temporary descriptor with neither Data nor a lazy primitive. + pub(super) fn unallocated(shape: &[i32], dtype: Dtype) -> Result { + Ok(Self::from_parts( + Layout::new(shape, dtype)?, + None, + None, + Vec::new(), + 0, + )) + } + + pub(super) fn make_arrays( + stream: Stream, + inputs: &[Self], + layouts: &[Layout], + ) -> Result, String> { + if !layouts.is_empty() + && stream.device() == Device::Gpu + && (inputs + .iter() + .any(|input| input.layout().dtype == Dtype::F64) + || layouts.iter().any(|layout| layout.dtype == Dtype::F64)) + { + return Err("float64 is not supported on the GPU".into()); + } + let outputs = layouts + .iter() + .enumerate() + .map(|(position, layout)| { + Ok(Self::from_parts( + Layout::new(layout.shape(), layout.dtype())?, + None, + Some(stream), + inputs.to_vec(), + position, + )) + }) + .collect::, String>>()?; + for (index, output) in outputs.iter().enumerate() { + output.descriptor().links.borrow_mut().siblings = outputs + .iter() + .enumerate() + .filter(|(i, _)| *i != index) + .map(|(_, array)| array.clone()) + .collect(); + } + Ok(outputs) + } + + pub(super) fn id(&self) -> usize { + Rc::as_ptr(self.descriptor()) as usize + } + + pub(super) fn downgrade(&self) -> WeakArray { + WeakArray(Rc::downgrade(self.descriptor())) + } + + pub(super) fn inputs(&self) -> Ref<'_, Vec> { + Ref::map(self.descriptor().links.borrow(), |links| &links.inputs) + } + + pub(super) fn siblings(&self) -> Ref<'_, Vec> { + Ref::map(self.descriptor().links.borrow(), |links| &links.siblings) + } + + pub(super) fn outputs(&self) -> Vec { + let mut outputs = self.siblings().clone(); + outputs.insert(self.descriptor().sibling_position.get(), self.clone()); + outputs + } + + pub(super) fn stream(&self) -> Option { + self.descriptor().primitive.get() + } + + pub(super) fn make_operation( + stream: Stream, + input: &Self, + layout: Layout, + operation: super::ops::Operation, + ) -> Result { + Self::make_operation_with_inputs(stream, std::slice::from_ref(input), layout, operation) + } + + pub(super) fn make_operation_with_inputs( + stream: Stream, + inputs: &[Self], + layout: Layout, + operation: super::ops::Operation, + ) -> Result { + let output = Self::make_operations(stream, inputs, &[layout], operation)? + .pop() + .expect("one primitive output"); + Ok(output) + } + + pub(super) fn make_operations( + stream: Stream, + inputs: &[Self], + layouts: &[Layout], + operation: super::ops::Operation, + ) -> Result, String> { + Self::make_shared_operations(stream, inputs, layouts, Rc::new(operation)) + } + + /// compile_replace reuses the immutable primitive, never its output Data. + pub(super) fn make_shared_operations( + stream: Stream, + inputs: &[Self], + layouts: &[Layout], + operation: Rc, + ) -> Result, String> { + let outputs = Self::make_arrays(stream, inputs, layouts)?; + for output in &outputs { + *output.descriptor().operation.borrow_mut() = Some(operation.clone()); + } + Ok(outputs) + } + + pub(super) fn operation(&self) -> Option> { + self.descriptor().operation.borrow().clone() + } + + pub(super) fn status(&self) -> Status { + self.descriptor().status.get() + } + + pub(super) fn set_status(&self, status: Status) { + self.descriptor().status.set(status); + } + + pub(super) fn is_tracer(&self) -> bool { + self.descriptor().tracer.get() + } + + pub(super) fn set_tracer(&self, tracer: bool) { + self.descriptor().tracer.set(tracer); + } + + pub(super) fn event(&self) -> GraphEvent { + self.descriptor().event.borrow().clone() + } + + pub(super) fn attach_event(&self, event: GraphEvent) { + *self.descriptor().event.borrow_mut() = event; + } + + pub(super) fn detach_event(&self) -> Result<(), String> { + self.event().check_error()?; + self.attach_event(GraphEvent::default()); + Ok(()) + } + + pub(super) fn is_available(&self) -> Result { + if self.status() == Status::Available { + return Ok(true); + } + if self.status() == Status::Evaluated + && (!self.event().valid() || self.event().is_signaled()) + { + self.detach_event()?; + self.set_status(Status::Available); + return Ok(true); + } + Ok(false) + } + + pub(super) fn wait(&self) -> Result<(), String> { + if !self.is_available()? { + if self.event().valid() { + self.event().wait()?; + self.detach_event()?; + } + self.set_status(Status::Available); + } + Ok(()) + } + + pub(super) fn has_data(&self) -> bool { + self.descriptor().data.borrow().is_some() + } + + pub(super) fn data_size(&self) -> usize { + self.layout().data_size + } + + pub(super) fn itemsize(&self) -> usize { + self.layout().dtype.itemsize() + } + + pub(super) fn layout(&self) -> Ref<'_, Layout> { + self.descriptor().layout.borrow() + } + + pub(super) fn set_data(&self, buffer: Buffer) -> Result<(), String> { + if (unsafe { ds4_gpu_tensor_bytes(buffer.raw()) }) < self.layout().nbytes() as u64 { + return Err("materialized buffer is smaller than the array".into()); + } + self.replace(buffer); + self.descriptor().offset.set(0); + self.descriptor() + .layout + .borrow_mut() + .materialize_contiguous(); + Ok(()) + } + + pub(super) fn offset(&self) -> u64 { + self.descriptor().offset.get() as u64 + } + + /// Explicit backend materialization: offset is bytes, unlike shared-copy's + /// element offset. Preserve supplied flags rather than recomputing them. + pub(super) fn set_strided_data( + &self, + buffer: Buffer, + data_size: usize, + strides: &[i64], + flags: Flags, + offset: i64, + ) -> Result<(), String> { + self.layout() + .validate_storage(&buffer, strides, data_size, offset)?; + self.replace(buffer); + self.install_layout(strides, flags, data_size, offset); + Ok(()) + } + + fn install_layout(&self, strides: &[i64], flags: Flags, data_size: usize, offset: i64) { + let mut layout = self.descriptor().layout.borrow_mut(); + layout.strides = strides.to_vec(); + layout.flags = flags; + layout.data_size = data_size; + self.descriptor().offset.set(offset); + } + + pub(super) fn copy_shared_buffer( + &self, + other: &Self, + strides: &[i64], + flags: Flags, + data_size: usize, + element_offset: i64, + ) -> Result<(), String> { + let offset = element_offset + .checked_mul(self.itemsize() as i64) + .and_then(|delta| other.descriptor().offset.get().checked_add(delta)) + .ok_or("array view offset overflow")?; + let data = other + .descriptor() + .data + .borrow() + .as_ref() + .ok_or("array has no materialized Data")? + .clone(); + self.layout() + .validate_storage(&data, strides, data_size, offset)?; + *self.descriptor().data.borrow_mut() = Some(data); + self.install_layout(strides, flags, data_size, offset); + Ok(()) + } + + /// array.cpp's unqualified copy_shared_buffer(other). Runtime scratch + /// donation can deliberately retain the source's data_size/strides even + /// for an int64[1] offset made from a differently typed index vector. + pub(super) fn copy_shared_buffer_default(&self, other: &Self) -> Result<(), String> { + let data = other + .descriptor() + .data + .borrow() + .as_ref() + .ok_or("array has no materialized Data")? + .clone(); + let source = other.layout(); + let target = self.layout(); + let check_strides = if target.size() == 1 { + vec![1; target.shape().len()] + } else { + source.strides().to_vec() + }; + // data_size here is inherited runtime accounting metadata, not the + // number of target-dtype elements this primitive accesses. + target.validate_storage(&data, &check_strides, 0, other.descriptor().offset.get())?; + drop(target); + *self.descriptor().data.borrow_mut() = Some(data); + self.install_layout( + source.strides(), + source.flags(), + other.data_size(), + other.descriptor().offset.get(), + ); + Ok(()) + } + + /// Shared backing, not the first logical element of a view. Bind/read it + /// with offset(), as the reference's buffer() and offset() contract requires. + pub(super) fn buffer(&self) -> Ref<'_, Buffer> { + Ref::map(self.descriptor().data.borrow(), |data| { + data.as_ref() + .expect("array has no materialized Data") + .as_ref() + }) + } + + /// Backend copy_shared_buffer: the input must already be materialized. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn share_data(&self) -> Self { + let data = self.descriptor().data.borrow(); + let array = Self::from_parts( + self.layout().clone(), + Some( + data.as_ref() + .expect("array has no materialized Data") + .clone(), + ), + None, + Vec::new(), + 0, + ); + array + .descriptor() + .offset + .set(self.descriptor().offset.get()); + array + } + + pub(super) fn replace(&self, buffer: Buffer) { + *self.descriptor().data.borrow_mut() = Some(Rc::new(buffer)); + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn shared_storage(&self) -> bool { + self.descriptor() + .data + .borrow() + .as_ref() + .is_some_and(|data| Rc::strong_count(data) > 1 || !data.unique_data()) + } + + pub(super) fn is_donatable(&self) -> bool { + Rc::strong_count(self.descriptor()) == 1 + && self + .descriptor() + .data + .borrow() + .as_ref() + .is_some_and(|data| Rc::strong_count(data) == 1 && data.unique_data()) + } + + pub(super) fn detach(&self) { + let descriptor = self.descriptor(); + descriptor.primitive.set(None); + descriptor.operation.borrow_mut().take(); + let mut links = descriptor.links.borrow_mut(); + for sibling in &links.siblings { + sibling.descriptor().primitive.set(None); + sibling.descriptor().operation.borrow_mut().take(); + } + for sibling in &links.siblings { + let mut links = sibling.descriptor().links.borrow_mut(); + links.inputs.clear(); + links.siblings.clear(); + sibling.descriptor().sibling_position.set(0); + } + links.inputs.clear(); + links.siblings.clear(); + descriptor.sibling_position.set(0); + } +} + +impl Drop for Array { + fn drop(&mut self) { + let Some(descriptor) = &self.0 else { return }; + if descriptor.primitive.get().is_none() { + return; + } + let links = descriptor.links.borrow(); + let count = links.siblings.len(); + if count > 0 + && Rc::strong_count(descriptor) == count + 1 + && links + .siblings + .iter() + .all(|sibling| Rc::strong_count(sibling.descriptor()) == count) + { + for sibling in &links.siblings { + let mut links = sibling.descriptor().links.borrow_mut(); + for sibling in &mut links.siblings { + // Drop only Rc, not Array's sibling-cycle check. + sibling.0 = None; + } + links.siblings.clear(); + } + } + } +} + +impl Descriptor { + fn append_deletable_inputs(&self, pending: &mut Vec>) { + let mut input_map = HashMap::new(); + let mut links = self.links.borrow_mut(); + for input in &links.inputs { + if let Some(descriptor) = &input.0 { + input_map + .entry(Rc::as_ptr(descriptor)) + .or_insert_with(|| input.clone()); + for sibling in &descriptor.links.borrow().siblings { + input_map + .entry(Rc::as_ptr(sibling.descriptor())) + .or_insert_with(|| sibling.clone()); + } + } + } + links.inputs.clear(); + drop(links); + // Determine all deletable descriptors before dropping the map. Moving + // an Rc into pending preserves its count during the sibling checks. + let mut deletable = Vec::new(); + for (id, input) in &input_map { + let descriptor = input.descriptor(); + let links = descriptor.links.borrow(); + let count = links.siblings.len(); + if Rc::strong_count(descriptor) <= count + 1 + && links.siblings.iter().all(|sibling| { + Rc::strong_count(sibling.descriptor()) + <= count + + usize::from(input_map.contains_key(&Rc::as_ptr(sibling.descriptor()))) + }) + { + deletable.push(*id); + } + } + for id in deletable { + pending.push(input_map.get_mut(&id).unwrap().0.take().unwrap()); + } + } +} + +impl Drop for Descriptor { + fn drop(&mut self) { + if self.links.get_mut().inputs.is_empty() { + return; + } + let mut pending = Vec::new(); + self.append_deletable_inputs(&mut pending); + while let Some(descriptor) = pending.pop() { + descriptor.append_deletable_inputs(&mut pending); + let mut links = descriptor.links.borrow_mut(); + for sibling in &mut links.siblings { + sibling.0 = None; + } + links.siblings.clear(); + } + } +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn nodes(stream: Stream, inputs: &[Array], count: usize) -> Vec { + Array::make_arrays( + stream, + inputs, + &vec![Layout::new(&[], Dtype::Bool).unwrap(); count], + ) + .unwrap() +} + +#[test] +fn mtplx_array_layout_preserves_dtype_shape_stride_and_materialization_flags() { + use Dtype::*; + for (dtype, width) in [ + (Bool, 1), + (U8, 1), + (U16, 2), + (U32, 4), + (U64, 8), + (I8, 1), + (I16, 2), + (I32, 4), + (I64, 8), + (F16, 2), + (F32, 4), + (F64, 8), + (BF16, 2), + (C64, 8), + ] { + for (shape, strides, size, col_contiguous) in [ + (vec![], vec![], 1, true), + (vec![2, 3], vec![3, 1], 6, false), + (vec![1, 3, 1], vec![3, 1, 1], 3, true), + (vec![2, 0, 3], vec![0, 3, 1], 0, true), + (vec![1, 1], vec![1, 1], 1, true), + ] { + let mut layout = Layout::new(&shape, dtype).unwrap(); + assert_eq!(layout.dtype(), dtype); + assert_eq!(dtype.itemsize(), width); + assert_eq!(layout.shape(), shape); + assert_eq!(layout.strides(), strides); + assert_eq!(layout.size(), size); + assert_eq!(layout.nbytes(), size * width); + assert_eq!(layout.data_size, 0); + assert!(layout.flags().col_contiguous, "unscheduled ArrayDesc flags"); + for axis in 0..shape.len() { + for index in [axis as i32, axis as i32 - shape.len() as i32] { + assert_eq!(layout.dim(index).unwrap(), shape[axis]); + assert_eq!(layout.stride(index).unwrap(), strides[axis]); + } + } + assert!(layout.dim(shape.len() as i32).is_err()); + assert!(layout.stride(-(shape.len() as i32) - 1).is_err()); + layout.materialize_contiguous(); + assert_eq!(layout.data_size, size); + assert_eq!( + layout.flags(), + Flags { + contiguous: true, + row_contiguous: true, + col_contiguous + } + ); + // Outputs get fresh geometry, not an input's materialized flags/data_size. + let outputs = Array::make_arrays(Stream::new(0, Device::Cpu), &[], &[layout]).unwrap(); + assert_eq!(outputs[0].data_size(), 0); + assert!(outputs[0].layout().flags().col_contiguous); + } + } + assert_ne!(BF16, F16); + assert!(Layout::new(&[2, -1], F32).is_err()); + assert!(Layout::new(&[i32::MAX; 3], F32).is_err()); + let cpu = Stream::new(0, Device::Cpu); + let gpu = Stream::new(1, Device::Gpu); + let double = Layout::new(&[1], F64).unwrap(); + assert_eq!( + Array::make_arrays(gpu, &[], std::slice::from_ref(&double)) + .err() + .unwrap(), + "float64 is not supported on the GPU" + ); + let input = Array::make_arrays(cpu, &[], &[double]).unwrap(); + assert_eq!( + Array::make_arrays(gpu, &input, &[Layout::new(&[], F32).unwrap()]) + .err() + .unwrap(), + "float64 is not supported on the GPU" + ); + assert!(Array::make_arrays(gpu, &input, &[]).unwrap().is_empty()); +} + +#[test] +#[ignore = "requires Apple Metal; typed materialized descriptors without model weights"] +fn mtplx_array_materialization_keeps_geometry_and_rejects_short_storage() { + use super::super::gpu::Context; + use super::configure_sources; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let array = Array::new(&[2, 3], Dtype::BF16, Buffer::mtplx_bytes(12).unwrap()).unwrap(); + let expected = array.layout().clone(); + let buffer_id = array.buffer().identity(); + assert_eq!(array.data_size(), 6); + assert_eq!(array.itemsize(), 2); + assert_eq!( + array.set_data(Buffer::mtplx_bytes(2).unwrap()), + Err("materialized buffer is smaller than the array".into()) + ); + assert_eq!(*array.layout(), expected); + assert_eq!( + array.buffer().identity(), + buffer_id, + "failed materialization preserves previous storage" + ); + let alias = array.share_data(); + assert_eq!(*alias.layout(), expected); + assert_ne!(alias.id(), array.id()); + assert!(!alias.is_donatable()); + drop(array); + assert!(alias.is_donatable()); + for shape in [vec![], vec![0], vec![2, 0, 3]] { + let layout = Layout::new(&shape, Dtype::F32).unwrap(); + let array = Array::new( + &shape, + Dtype::F32, + Buffer::mtplx_bytes(layout.nbytes() as u64).unwrap(), + ) + .unwrap(); + assert_eq!(array.layout().shape(), shape); + assert_eq!(array.data_size(), layout.size()); + assert!(array.layout().flags().col_contiguous); + } + + let flags = Flags { + contiguous: false, + row_contiguous: false, + col_contiguous: false, + }; + let stream = Stream::new(0, Device::Gpu); + let reverse = Array::make_arrays(stream, &[], &[Layout::new(&[2, 3], Dtype::BF16).unwrap()]) + .unwrap() + .pop() + .unwrap(); + reverse + .set_strided_data(Buffer::mtplx_bytes(12).unwrap(), 6, &[-3, -1], flags, 10) + .unwrap(); + assert_eq!(reverse.offset(), 10); + assert_eq!(reverse.layout().span(&[-3, -1]).unwrap(), (-5, 0)); + assert_eq!( + reverse.layout().contiguity(&[-3, -1]).unwrap(), + (1, false, false) + ); + let alias = reverse.share_data(); + assert_eq!(alias.offset(), 10); + assert_eq!(*alias.layout(), *reverse.layout()); + let bytes = Array::make_arrays(stream, &[], &[Layout::new(&[4], Dtype::U8).unwrap()]) + .unwrap() + .pop() + .unwrap(); + let contiguous = Flags { + contiguous: true, + row_contiguous: true, + col_contiguous: true, + }; + bytes + .copy_shared_buffer(&reverse, &[1], contiguous, 4, -2) + .unwrap(); + assert_eq!( + bytes.offset(), + 8, + "offset increments use destination itemsize" + ); + let old_layout = bytes.layout().clone(); + assert!( + bytes + .copy_shared_buffer(&reverse, &[1], contiguous, 4, -11) + .is_err() + ); + assert!( + bytes + .copy_shared_buffer(&reverse, &[1], contiguous, 4, 1) + .is_err() + ); + assert_eq!(bytes.offset(), 8); + assert_eq!(*bytes.layout(), old_layout); + bytes + .copy_shared_buffer(&bytes, &[1], contiguous, 4, 0) + .unwrap(); + assert_eq!(bytes.offset(), 8, "self shared-copy is legal"); + reverse.set_data(Buffer::mtplx_bytes(12).unwrap()).unwrap(); + assert_eq!(reverse.offset(), 0); + assert_eq!( + reverse.layout().strides(), + [-3, -1], + "set_data preserves strides like array.cpp" + ); +} + +#[test] +fn mtplx_array_releases_sibling_cycles_and_deep_input_graphs() { + use super::stream::Device; + let stream = Stream::new(0, Device::Cpu); + let mut siblings = nodes(stream, &[], 3); + let weak = siblings + .iter() + .map(|a| Rc::downgrade(a.descriptor())) + .collect::>(); + let keep = siblings.remove(1); + assert_eq!( + keep.outputs().iter().map(Array::id).collect::>(), + [siblings[0].id(), keep.id(), siblings[1].id()] + ); + drop(siblings); + assert!(weak.iter().all(|a| a.strong_count() > 0)); + drop(keep); + assert!(weak.iter().all(|a| a.strong_count() == 0)); + + let mut node = nodes(stream, &[], 1).pop().unwrap(); + let first = Rc::downgrade(node.descriptor()); + let mut retained = None; + for depth in 0..30_000 { + node = nodes(stream, &[node], 1).pop().unwrap(); + if depth == 15_000 { + retained = Some(node.clone()); + } + } + let last = Rc::downgrade(node.descriptor()); + drop(node); + assert_eq!(last.strong_count(), 0); + assert_eq!( + first.strong_count(), + 1, + "external intermediate keeps its inputs alive" + ); + drop(retained); + assert_eq!( + first.strong_count(), + 0, + "long graphs release without recursive stack growth" + ); + + // Exercise shared input maps and sibling cycles at every level, not only + // the single-output chain and isolated sibling group above. + let mut roots = nodes(stream, &[], 2); + let first = roots.iter().map(Array::downgrade).collect::>(); + for _ in 0..10_000 { + roots = nodes(stream, &roots, 2); + } + drop(roots); + assert!(first.iter().all(|a| a.upgrade().is_none())); +} + +#[test] +fn mtplx_array_detach_clears_every_siblings_inputs_and_primitive() { + use super::stream::Device; + let stream = Stream::new(0, Device::Cpu); + let input = nodes(stream, &[], 1).pop().unwrap(); + let input_weak = Rc::downgrade(input.descriptor()); + let siblings = nodes(stream, &[input], 3); + assert_eq!(input_weak.strong_count(), 3); + siblings[1].detach(); + assert_eq!(input_weak.strong_count(), 0); + for sibling in &siblings { + assert!(sibling.descriptor().primitive.get().is_none()); + let links = sibling.descriptor().links.borrow(); + assert!(links.inputs.is_empty()); + assert!(links.siblings.is_empty()); + assert_eq!(Rc::strong_count(sibling.descriptor()), 1); + assert_eq!(sibling.descriptor().sibling_position.get(), 0); + } +} diff --git a/src/engine/metal/qwen_mtplx/attention.rs b/src/engine/metal/qwen_mtplx/attention.rs new file mode 100644 index 0000000..f47368f --- /dev/null +++ b/src/engine/metal/qwen_mtplx/attention.rs @@ -0,0 +1,1483 @@ +//! Original SDPA fallback and QSA rows-gather graphs for BF16 attention. +//! The surrounding D256 model call is connected in qsa_attention; other +//! Full-SDPA geometries remain separate from Qwen's explicit-mask path. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::stream::Stream; +use super::{dense, indexing, normalization, ops}; + +/// qsa_indexer_prefill_scores; also the arithmetic of QSAIndexer._select_eager. +pub(super) fn qsa_scores( + q: &Array, + pooled_t: &Array, + dim: i32, + stream: Stream, +) -> Result { + let qs = q.layout(); + let ps = pooled_t.layout(); + if qs.shape().len() != 4 + || qs.shape()[0] != 1 + || dim <= 0 + || qs.shape()[3] != dim + || ps.shape().len() != 4 + || ps.shape()[0..3] != [1, 1, dim] + || ps.dtype() != Dtype::F32 + { + return Err("QSA scores require [1,S,H,D] and F32 [1,1,D,N]".into()); + } + drop((qs, ps)); + let scalar = |x: f32| Array::new(&[], Dtype::F32, super::scalar_buffer(&x.to_le_bytes())?); + let per_head = dense::matmul( + &ops::astype(q, Dtype::F32, false, stream)?, + pooled_t, + stream, + )?; + let scores = super::reduce::sum( + &binary(&per_head, &scalar(0.)?, Binary::Maximum, stream)?, + &[2], + false, + stream, + )?; + let scores = binary( + &scores, + &scalar(f64::from(dim).sqrt() as f32)?, + Binary::Divide, + stream, + )?; + let shape = scores.layout().shape().to_vec(); + ops::squeeze( + &ops::slice(&scores, &[0, 0, 0], &shape, &[1, 1, 1], stream)?, + Some(&[0]), + stream, + ) +} + +/// The five original eager selection return contracts. +pub(super) enum EagerSelection { + PrefillBlocks(Array, Array), + FlashBlocks(Array, i32), + DecodeTokens(Array), + RowTokens(Array, Array), + Dense(Array), +} + +fn prefill_counts() -> &'static std::sync::Mutex> { + static COUNTS: std::sync::OnceLock< + std::sync::Mutex>, + > = std::sync::OnceLock::new(); + COUNTS.get_or_init(Default::default) +} + +pub(super) fn qsa_prefill_engagement() +-> Result, String> { + prefill_counts() + .lock() + .map(|counts| counts.clone()) + .map_err(|_| "QSA engagement counter poisoned".into()) +} + +/// Original _qsa_prefill_count: host-side lane selection, not GPU completion. +pub(super) fn prefill_count(lane: &'static str) -> Result<(), String> { + static ARMED: std::sync::OnceLock> = std::sync::OnceLock::new(); + *prefill_counts() + .lock() + .map_err(|_| "QSA engagement counter poisoned")? + .entry(lane) + .or_default() += 1; + ARMED + .get_or_init(|| { + let raw = std::env::var("MTPLX_QSA_PREFILL_DEBUG").unwrap_or_default(); + if ["1", "true", "yes", "on"].contains(&raw.trim().to_ascii_lowercase().as_str()) { + extern "C" fn report() { + // Never unwind through the C atexit boundary. + let _ = std::panic::catch_unwind(|| { + use std::io::Write; + if let Ok(counts) = qsa_prefill_engagement() { + let _ = writeln!( + std::io::stderr().lock(), + "qsa_prefill_engagement={counts:?}" + ); + } + }); + } + if unsafe { libc::atexit(report) } != 0 { + return Err("cannot register QSA engagement report".into()); + } + } + Ok(()) + }) + .clone() +} + +/// QSAIndexer._select_eager, including _tiled_topk and all output branches. +/// options.large_prefill is the existing phase/earliest-position policy result, +/// not a test for S>1. The caller owns environment/phase policy. +#[expect( + clippy::too_many_arguments, + reason = "reference selector geometry and existing policy are explicit" +)] +pub(super) fn select_eager( + q: &Array, + pos_start: i32, + cache: &mut super::cache::QsaCache, + total: i32, + block_topk: i32, + tile: i32, + options: &super::QsaEagerOptions, + streams: &super::stream::Streams, + stream: Stream, +) -> Result { + let shape = q.layout().shape().to_vec(); + let ratio = cache.ratio; + let nb = cache.pooled_len; + if shape.len() != 4 + || shape[0] != 1 + || shape[1] <= 0 + || shape[2] <= 0 + || shape[3] <= 0 + || pos_start < 0 + || pos_start.checked_add(shape[1]) != Some(total) + || ratio <= 0 + || nb <= 0 + || nb != total / ratio + || block_topk <= 0 + { + return Err("invalid QSA eager selector geometry/frontier".into()); + } + let rows = shape[1]; + let dim = shape[3]; + let k = block_topk.min(nb); + let pooled_t = cache.pooled_f32_view(nb, stream)?.borrow().clone(); + let i32_scalar = |n: i32| Array::new(&[], Dtype::I32, super::scalar_buffer(&n.to_le_bytes())?); + let f32_scalar = |n: f32| Array::new(&[], Dtype::F32, super::scalar_buffer(&n.to_le_bytes())?); + let qpos = indexing::arange_range_i32(pos_start, total, stream)?; + let nb_q = super::binary::floor_divide_integer( + &binary(&qpos, &i32_scalar(1)?, Binary::Add, stream)?, + &i32_scalar(ratio)?, + stream, + )?; + let blk = indexing::arange_i32(nb, stream)?; + let valid = binary( + &ops::expand_dims(&blk, &[0], stream)?, + &ops::expand_dims(&nb_q, &[1], stream)?, + Binary::Less, + stream, + )?; + let tie = binary( + &ops::expand_dims(&ops::astype(&blk, Dtype::F32, false, stream)?, &[0], stream)?, + &f32_scalar(1e-12)?, + Binary::Multiply, + stream, + )?; + let neg = f32_scalar(f32::NEG_INFINITY)?; + let topk = |q: &Array, valid: &Array| -> Result { + let scores = qsa_scores(q, &pooled_t, dim, stream)?; + let masked = binary( + &indexing::select(valid, &scores, &neg, stream)?, + &tie, + Binary::Subtract, + stream, + )?; + let sorted = super::sort::sort(&masked, Some(-1), true, Some(nb - k), stream)?; + let rows = sorted.layout().shape()[0]; + ops::slice(&sorted, &[0, nb - k], &[rows, nb], &[1, 1], stream) + }; + let tiled = rows > 1 && tile > 0 && tile < rows; + let top = if tiled { + let mut parts = Vec::new(); + for start in (0..rows).step_by(tile as usize) { + let end = (start + tile).min(rows); + let q = ops::slice( + q, + &[0, start, 0, 0], + &[1, end, shape[2], dim], + &[1; 4], + stream, + )?; + let nb_t = ops::slice(&nb_q, &[start], &[end], &[1], stream)?; + let valid_t = binary( + &ops::expand_dims(&blk, &[0], stream)?, + &ops::expand_dims(&nb_t, &[1], stream)?, + Binary::Less, + stream, + )?; + let part = topk(&q, &valid_t)?; + // Original mx.eval(top_t), not merely an encode/flush or async_eval. + ops::evaluate(streams, std::slice::from_ref(&part), stream, false)?; + parts.push(part); + } + ops::concatenate(&parts, 0, stream)? + } else { + topk(q, &valid)? + }; + if rows > 1 && options.large_prefill { + let ids = super::sort::sort( + &ops::astype(&top, Dtype::I32, false, stream)?, + Some(-1), + false, + None, + stream, + )?; + let valid = indexing::take_along_axis( + &valid, + &ops::astype(&ids, Dtype::I64, false, stream)?, + -1, + stream, + )?; + let ids = indexing::select(&valid, &ids, &i32_scalar(0)?, stream)?; + prefill_count("eager_selector")?; + return Ok(EagerSelection::PrefillBlocks(ids, valid)); + } + let selected = indexing::put_along_axis( + &ops::zeros(&[rows, nb], Dtype::Bool, stream)?, + &ops::astype(&top, Dtype::I64, false, stream)?, + &Array::new(&[], Dtype::Bool, super::scalar_buffer(&[1])?)?, + -1, + stream, + )?; + let selected = binary(&selected, &valid, Binary::BitwiseAnd, stream)?; + if rows == 1 && (options.flash || options.gather_decode) { + let ids = super::sort::sort( + &ops::astype( + &ops::squeeze(&top, Some(&[0]), stream)?, + Dtype::I32, + false, + stream, + )?, + None, + false, + None, + stream, + )?; + let tail_start = ((pos_start + 1) / ratio) * ratio; + if options.flash { + prefill_count("decode_flash_skip")?; + return Ok(EagerSelection::FlashBlocks(ids, tail_start)); + } + let tokens = binary( + &binary( + &ops::expand_dims(&ids, &[1], stream)?, + &i32_scalar(ratio)?, + Binary::Multiply, + stream, + )?, + &indexing::arange_i32(ratio, stream)?, + Binary::Add, + stream, + )?; + let tokens = ops::reshape(&tokens, &[-1], stream)?; + prefill_count("decode_gather")?; + return Ok(EagerSelection::DecodeTokens(ops::concatenate( + &[ + tokens, + indexing::arange_range_i32(tail_start, total, stream)?, + ], + 0, + stream, + )?)); + } + if rows > 1 + && !tiled + && options.gather + && rows as u32 <= options.gather_max_rows + && total as u32 >= options.gather_min_context + { + let block_valid = indexing::take_along_axis( + &valid, + &ops::astype(&top, Dtype::I64, false, stream)?, + -1, + stream, + )?; + let offsets = indexing::arange_i32(ratio, stream)?; + let tokens = binary( + &binary( + &ops::expand_dims(&ops::astype(&top, Dtype::I32, false, stream)?, &[2], stream)?, + &i32_scalar(ratio)?, + Binary::Multiply, + stream, + )?, + &offsets, + Binary::Add, + stream, + )?; + let tokens = ops::reshape(&tokens, &[rows, -1], stream)?; + let block_valid = ops::repeat(&block_valid, ratio, 1, stream)?; + let tail = binary( + &binary( + &ops::expand_dims(&nb_q, &[1], stream)?, + &i32_scalar(ratio)?, + Binary::Multiply, + stream, + )?, + &offsets, + Binary::Add, + stream, + )?; + let tail_valid = binary( + &tail, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?; + let indices = ops::concatenate(&[tokens, tail], 1, stream)?; + let valid = ops::concatenate(&[block_valid, tail_valid], 1, stream)?; + return Ok(EagerSelection::RowTokens( + indexing::select(&valid, &indices, &i32_scalar(0)?, stream)?, + valid, + )); + } + if rows == 1 { + prefill_count("decode_dense_mask")?; + } + let mut tok_sel = ops::repeat(&selected, ratio, 1, stream)?; + if nb * ratio < total { + tok_sel = ops::concatenate( + &[ + tok_sel, + ops::zeros(&[rows, total - nb * ratio], Dtype::Bool, stream)?, + ], + 1, + stream, + )?; + } + let tpos = ops::expand_dims(&indexing::arange_i32(total, stream)?, &[0], stream)?; + let tail = binary( + &tpos, + &binary( + &ops::expand_dims(&nb_q, &[1], stream)?, + &i32_scalar(ratio)?, + Binary::Multiply, + stream, + )?, + Binary::GreaterEqual, + stream, + )?; + let causal = binary( + &tpos, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?; + let mask = binary( + &binary(&tok_sel, &tail, Binary::BitwiseOr, stream)?, + &causal, + Binary::BitwiseAnd, + stream, + )?; + Ok(EagerSelection::Dense(ops::expand_dims( + &mask, + &[0, 1], + stream, + )?)) +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_qsa_eager_array_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + QsaEagerOptions, allocator, + cache::QsaCache, + configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let tf32 = std::env::var("MLX_ENABLE_TF32").ok().as_deref() != Some("0"); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-eager-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["tf32"].as_bool() == Some(tf32)) + .collect::>(); + assert_eq!(cases.len(), 72); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let num = |s: &str| case[s].as_i64().unwrap() as i32; + let flag = |s: &str| case[s].as_bool().unwrap(); + let (rows, pos, ratio, topk, tile) = ( + num("rows"), + num("pos"), + num("ratio"), + num("topk"), + num("tile"), + ); + let nb = (pos + rows) / ratio; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => panic!("dtype"), + }; + let source = |shape: &[i32], salt: u32| { + let count = shape.iter().product::(); + let mut a = ops::astype( + &Array::new(&[count], Dtype::BF16, pattern(count as u32, salt)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + if salt == 181 && dtype == Dtype::F32 { + let extra = (0..count) + .flat_map(|i| ((i % 7) as f32 / 65536.).to_le_bytes()) + .collect::>(); + a = binary( + &a, + &Array::new( + &[count], + Dtype::F32, + super::scalar_buffer(&extra).unwrap(), + ) + .unwrap(), + Binary::Add, + gpu, + ) + .unwrap(); + } + ops::reshape(&a, shape, gpu).unwrap() + }; + let q = source(&[1, rows, 4, 128], 181); + let pooled = source(&[1, nb, 128], 182); + let mut cache = QsaCache::new(ratio); + cache.write_pooled(&pooled, 0, nb, gpu).unwrap(); + if prepared { + ops::evaluate( + &streams, + &[q.clone(), cache.pooled.as_ref().unwrap().borrow().clone()], + gpu, + false, + ) + .unwrap(); + } + let options = QsaEagerOptions { + large_prefill: flag("large"), + flash: flag("flash"), + gather_decode: flag("decode"), + gather: flag("gather"), + gather_min_context: num("minimum") as u32, + gather_max_rows: num("maximum") as u32, + }; + let before = qsa_prefill_engagement().unwrap(); + let (selection, calls) = capture_dispatches(|| { + select_eager( + &q, + pos, + &mut cache, + pos + rows, + topk, + tile, + &options, + &streams, + gpu, + ) + .unwrap() + }); + if rows > 1 && tile > 0 && tile < rows { + assert_eq!( + calls + .iter() + .filter(|c| c.0.starts_with("carg_block_sort_float32_") + || c.0.starts_with("sort_mbsort_float32_")) + .count(), + (rows as u32).div_ceil(tile as u32) as usize, + "{}: {calls:?}", + case["kernel"] + ); + } else { + assert!( + calls.is_empty(), + "non-tiled eager selector must remain lazy" + ); + } + let (lane, outputs) = match selection { + EagerSelection::PrefillBlocks(ids, valid) => { + ("flash_prefill", vec![ids, valid]) + } + EagerSelection::FlashBlocks(ids, tail) => { + assert_eq!(tail, num("tail")); + ("flash", vec![ids]) + } + EagerSelection::DecodeTokens(ids) => ("decode_tokens", vec![ids]), + EagerSelection::RowTokens(ids, valid) => ("gather_rows", vec![ids, valid]), + EagerSelection::Dense(mask) => ("dense", vec![mask]), + }; + assert_eq!(lane, case["lane"].as_str().unwrap()); + let counted = match lane { + "flash_prefill" => Some("eager_selector"), + "flash" => Some("decode_flash_skip"), + "decode_tokens" => Some("decode_gather"), + "dense" if rows == 1 => Some("decode_dense_mask"), + _ => None, + }; + let mut expected = before; + if let Some(lane) = counted { + *expected.entry(lane).or_default() += 1; + } + assert_eq!(qsa_prefill_engagement().unwrap(), expected); + for (i, a) in outputs.iter().enumerate() { + let shape = case["shapes"][i] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(a.layout().shape(), shape); + } + // Cache/query objects may die before their lazy consumers execute. + drop((cache, q, pooled)); + let outputs = outputs + .iter() + .map(|a| ops::astype(a, Dtype::F32, false, gpu).unwrap()) + .collect::>(); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + let buffers = outputs.iter().map(Array::buffer).collect::>(); + let checks = buffers + .iter() + .zip(&outputs) + .map(|(b, a)| (&**b, a.layout().size() as u32, 4)) + .collect::>(); + verify_typed(case["kernel"].as_str().unwrap(), &checks); + }); + } + } +} + +/// MTPLX _qsa_blocks_to_dense_mask, including its invalid-ID sentinel column. +pub(super) fn blocks_to_dense_mask( + block_ids: &Array, + block_valid: &Array, + pos_start: i32, + total_tokens: i32, + compress_ratio: i32, + stream: Stream, +) -> Result { + let shape = block_ids.layout().shape().to_vec(); + if shape.len() != 2 + || block_valid.layout().shape() != shape + || block_valid.layout().dtype() != Dtype::Bool + || block_ids.layout().dtype() != Dtype::I32 + || pos_start < 0 + || total_tokens < 0 + || compress_ratio <= 0 + { + return Err( + "QSA mask requires matching I32/Bool selections and valid token geometry".into(), + ); + } + let rows = shape[0]; + let end = pos_start + .checked_add(rows) + .ok_or("QSA mask position overflow")?; + let ratio = compress_ratio; + let logical_blocks = total_tokens / ratio; + let sentinel_columns = logical_blocks + .checked_add(1) + .ok_or("QSA mask sentinel overflow")?; + let scalar = |n: i32| Array::new(&[], Dtype::I32, super::scalar_buffer(&n.to_le_bytes())?); + let qpos = indexing::arange_range_i32(pos_start, end, stream)?; + let complete_for_row = super::binary::floor_divide_integer( + &binary(&qpos, &scalar(1)?, Binary::Add, stream)?, + &scalar(ratio)?, + stream, + )?; + let in_range = binary( + &binary( + &binary(block_ids, &scalar(0)?, Binary::GreaterEqual, stream)?, + &binary(block_ids, &scalar(logical_blocks)?, Binary::Less, stream)?, + Binary::BitwiseAnd, + stream, + )?, + &binary( + block_ids, + &ops::expand_dims(&complete_for_row, &[1], stream)?, + Binary::Less, + stream, + )?, + Binary::BitwiseAnd, + stream, + )?; + let valid = binary(block_valid, &in_range, Binary::BitwiseAnd, stream)?; + let sentinel = scalar(logical_blocks)?; + let safe_ids = indexing::select(&valid, block_ids, &sentinel, stream)?; + let mut selected = ops::zeros(&[rows, sentinel_columns], Dtype::Bool, stream)?; + selected = ops::slice( + &indexing::put_along_axis( + &selected, + &ops::astype(&safe_ids, Dtype::I64, false, stream)?, + &Array::new(&[], Dtype::Bool, super::scalar_buffer(&[1])?)?, + -1, + stream, + )?, + &[0, 0], + &[rows, logical_blocks], + &[1, 1], + stream, + )?; + let complete_token_count = logical_blocks * ratio; + let mut token_selected = ops::repeat(&selected, ratio, 1, stream)?; + if complete_token_count < total_tokens { + token_selected = ops::concatenate( + &[ + token_selected, + ops::zeros( + &[rows, total_tokens - complete_token_count], + Dtype::Bool, + stream, + )?, + ], + -1, + stream, + )?; + } + let tail_start = binary(&complete_for_row, &scalar(ratio)?, Binary::Multiply, stream)?; + let tpos = indexing::arange_i32(total_tokens, stream)?; + let tail = binary( + &binary( + &ops::expand_dims(&tpos, &[0], stream)?, + &ops::expand_dims(&tail_start, &[1], stream)?, + Binary::GreaterEqual, + stream, + )?, + &binary( + &ops::expand_dims(&tpos, &[0], stream)?, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?, + Binary::BitwiseAnd, + stream, + )?; + let causal = binary( + &ops::expand_dims(&tpos, &[0], stream)?, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?; + ops::expand_dims( + &binary( + &binary(&token_selected, &tail, Binary::BitwiseOr, stream)?, + &causal, + Binary::BitwiseAnd, + stream, + )?, + &[0, 1], + stream, + ) +} + +/// Qwen's ordinary D256 SDPA call uses an explicit array mask or no mask, +/// never the causal string. Preserve the original vector/fallback selection. +pub(super) fn scaled_dot_product( + q: &Array, + k: &Array, + v: &Array, + mask: Option<&Array>, + scale: f32, + stream: Stream, +) -> Result { + let qs = q.layout(); + let ks = k.layout(); + let vector = qs.shape().len() == 4 + && ks.shape().len() == 4 + && ks.shape()[1] > 0 + && qs.shape()[3] == 256 + && ks.shape()[3] == 256 + && qs.shape()[2] <= 8 + && qs.shape()[2] <= ks.shape()[2] + && i64::from(qs.shape()[2]) * i64::from(qs.shape()[1] / ks.shape()[1]) <= 32; + drop((qs, ks)); + if vector { + super::sdpa::vector(q, k, v, mask, scale, false, stream) + } else { + sdpa_fallback(q, k, v, mask, scale, stream) + } +} + +/// Original portable prefill tier. Tile evals are part of the algorithm: +/// only the final concatenation remains lazy when there is more than one tile. +#[allow(clippy::too_many_arguments)] +pub(super) fn prefill_gather( + q: &Array, + keys: &Array, + values: &Array, + block_ids: &Array, + block_valid: &Array, + pos_start: i32, + compress_ratio: i32, + scale: f32, + tile_rows: i32, + streams: &super::stream::Streams, + stream: Stream, +) -> Result { + let qs = q.layout().shape().to_vec(); + let bs = block_ids.layout().shape().to_vec(); + if qs.len() != 4 + || bs.len() != 2 + || qs[2] <= 0 + || bs[0] != qs[2] + || block_valid.layout().shape() != bs + || block_valid.layout().dtype() != Dtype::Bool + || compress_ratio <= 0 + || tile_rows <= 0 + || pos_start < 0 + { + return Err( + "prefill gather requires nonempty rows, matching block selections and positive tiling" + .into(), + ); + } + pos_start + .checked_add(qs[2]) + .ok_or("prefill position overflow")?; + let width = bs[1] + .checked_mul(compress_ratio) + .ok_or("prefill selection width overflow")?; + let scalar = |n: i32| Array::new(&[], Dtype::I32, super::scalar_buffer(&n.to_le_bytes())?); + let arange_ratio = indexing::arange_i32(compress_ratio, stream)?; + let mut outputs = Vec::new(); + // Python locals survive each tile eval and are released when reassigned + // in the next iteration. Keep the same owners, not just identical values. + let mut qpos; + let mut nb_q; + let mut ids; + let mut ok; + let mut blocks; + let mut blocks_ok; + let mut tail; + let mut tail_ok; + let mut idx; + let mut token_ok; + let mut out; + for r0 in (0..qs[2]).step_by(tile_rows as usize) { + let r1 = r0.saturating_add(tile_rows).min(qs[2]); + qpos = indexing::arange_range_i32(pos_start + r0, pos_start + r1, stream)?; + nb_q = super::binary::floor_divide_integer( + &binary(&qpos, &scalar(1)?, Binary::Add, stream)?, + &scalar(compress_ratio)?, + stream, + )?; + ids = ops::slice(block_ids, &[r0, 0], &[r1, bs[1]], &[1, 1], stream)?; + ok = ops::slice(block_valid, &[r0, 0], &[r1, bs[1]], &[1, 1], stream)?; + blocks = ops::reshape( + &binary( + &binary( + &ops::expand_dims( + &ops::astype(&ids, Dtype::I32, false, stream)?, + &[2], + stream, + )?, + &scalar(compress_ratio)?, + Binary::Multiply, + stream, + )?, + &arange_ratio, + Binary::Add, + stream, + )?, + &[r1 - r0, width], + stream, + )?; + // ops.cpp repeat: count1 is identity; otherwise expand/broadcast/reshape. + blocks_ok = if compress_ratio == 1 { + ok.clone() + } else { + ops::reshape( + &ops::broadcast_to( + &ops::expand_dims(&ok, &[2], stream)?, + &[r1 - r0, bs[1], compress_ratio], + stream, + )?, + &[r1 - r0, width], + stream, + )? + }; + tail = binary( + &binary( + &ops::expand_dims(&nb_q, &[1], stream)?, + &scalar(compress_ratio)?, + Binary::Multiply, + stream, + )?, + &arange_ratio, + Binary::Add, + stream, + )?; + tail_ok = binary( + &tail, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?; + idx = ops::concatenate(&[blocks.clone(), tail.clone()], 1, stream)?; + token_ok = ops::concatenate(&[blocks_ok.clone(), tail_ok.clone()], 1, stream)?; + idx = indexing::select(&token_ok, &idx, &scalar(0)?, stream)?; + out = rows_gather( + &ops::slice( + q, + &[0, 0, r0, 0], + &[qs[0], qs[1], r1, qs[3]], + &[1, 1, 1, 1], + stream, + )?, + keys, + values, + &idx, + &token_ok, + scale, + stream, + )?; + ops::evaluate(streams, std::slice::from_ref(&out), stream, false)?; + outputs.push(out.clone()); + } + ops::concatenate(&outputs, 2, stream) +} + +/// qwen4_exp._qsa_rows_gather_attention, including its distinct F32 scaling +/// AFTER BF16 QK matmul. This is not the shared-sequence SDPA fallback. +pub(super) fn rows_gather( + q: &Array, + k: &Array, + v: &Array, + token_idx: &Array, + token_ok: &Array, + scale: f32, + stream: Stream, +) -> Result { + let qs = q.layout().shape().to_vec(); + let ks = k.layout().shape().to_vec(); + let ts = token_idx.layout().shape().to_vec(); + if qs.len() != 4 + || ks.len() != 4 + || ts.len() != 2 + || qs[0] != 1 + || ks[0] != 1 + || ks[1] <= 0 + || qs[1] % ks[1] != 0 + || qs[2] != ts[0] + || qs[3] != ks[3] + || ts[1] < 2 + || k.layout().shape() != v.layout().shape() + || token_ok.layout().shape() != ts + || token_ok.layout().dtype() != Dtype::Bool + || !matches!(token_idx.layout().dtype(), Dtype::I32 | Dtype::I64) + || !scale.is_finite() + || [q, k, v] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16 || a.layout().size() == 0) + { + return Err( + "QSA rows gather requires B1 BF16 grouped attention and matching token selections" + .into(), + ); + } + let (heads, rows, dim, kv, count) = (qs[1], qs[2], qs[3], ks[1], ts[1]); + let flat = ops::reshape(token_idx, &[-1], stream)?; + let k = ops::reshape( + &indexing::take(k, &flat, 2, stream)?, + &[1, kv, rows, count, dim], + stream, + )?; + let v = ops::reshape( + &indexing::take(v, &flat, 2, stream)?, + &[1, kv, rows, count, dim], + stream, + )?; + let k = ops::transpose(&k, &[0, 1, 2, 4, 3], stream)?; + let grouped = heads != kv; + let (q, k, v, mask) = if grouped { + ( + ops::reshape(q, &[1, kv, heads / kv, rows, 1, dim], stream)?, + ops::reshape(&k, &[1, kv, 1, rows, dim, count], stream)?, + ops::reshape(&v, &[1, kv, 1, rows, count, dim], stream)?, + ops::expand_dims(token_ok, &[0, 1, 2], stream)?, + ) + } else { + ( + ops::expand_dims(q, &[-2], stream)?, + k, + v, + ops::expand_dims(token_ok, &[0, 1], stream)?, + ) + }; + let scores = ops::squeeze(&dense::matmul(&q, &k, stream)?, Some(&[-2]), stream)?; + let scalar = Array::new(&[], Dtype::F32, super::scalar_buffer(&scale.to_le_bytes())?)?; + let scores = binary( + &ops::astype(&scores, Dtype::F32, false, stream)?, + &scalar, + Binary::Multiply, + stream, + )?; + let neg = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&f32::NEG_INFINITY.to_le_bytes())?, + )?; + let scores = indexing::select(&mask, &scores, &neg, stream)?; + let probs = ops::astype( + &normalization::softmax_last(&scores, false, stream)?, + Dtype::BF16, + false, + stream, + )?; + let out = dense::matmul(&ops::expand_dims(&probs, &[-2], stream)?, &v, stream)?; + let out = ops::squeeze(&out, Some(&[-2]), stream)?; + if grouped { + ops::reshape(&out, &[1, heads, rows, dim], stream) + } else { + Ok(out) + } +} + +pub(super) fn sdpa_fallback( + q: &Array, + k: &Array, + v: &Array, + mask: Option<&Array>, + scale: f32, + stream: Stream, +) -> Result { + let qs = q.layout().shape().to_vec(); + let ks = k.layout().shape().to_vec(); + let vs = v.layout().shape().to_vec(); + if qs.len() != 4 + || ks.len() != 4 + || vs.len() != 4 + || !scale.is_finite() + || [q, k, v] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16 || a.layout().size() == 0) + || qs[0] != ks[0] + || qs[0] != vs[0] + || ks[1] != vs[1] + || qs[1] % ks[1] != 0 + || qs[3] != ks[3] + || ks[2] != vs[2] + { + return Err("Qwen SDPA fallback requires compatible nonempty BF16 rank-four inputs".into()); + } + let repeats = qs[1] / ks[1]; + // fast.cpp constructs the scale in the input dtype before multiplication. + let bits = scale.to_bits(); + let bits = (bits.wrapping_add(0x7fff + ((bits >> 16) & 1)) >> 16) as u16; + let scalar = Array::new(&[], Dtype::BF16, super::scalar_buffer(&bits.to_le_bytes())?)?; + let q = binary(&scalar, q, Binary::Multiply, stream)?; + let (q, k, v) = if repeats > 1 { + ( + ops::reshape(&q, &[qs[0], ks[1], repeats, qs[2], qs[3]], stream)?, + ops::expand_dims(k, &[2], stream)?, + ops::expand_dims(v, &[2], stream)?, + ) + } else { + (q, k.clone(), v.clone()) + }; + let rank = k.layout().shape().len(); + let mut axes = (0..rank as i32).collect::>(); + axes.swap(rank - 2, rank - 1); + let mut scores = dense::matmul(&q, &ops::transpose(&k, &axes, stream)?, stream)?; + if let Some(mask) = mask { + let dtype = mask.layout().dtype(); + if dtype.promote(Dtype::BF16) != Dtype::BF16 { + return Err("SDPA mask must promote to the input dtype".into()); + } + let mask = if dtype == Dtype::Bool { + mask.clone() + } else { + ops::astype(mask, Dtype::BF16, false, stream)? + }; + let mask = ops::broadcast_to(&mask, &[qs[0], qs[1], qs[2], ks[2]], stream)?; + let mask = if repeats > 1 { + ops::reshape(&mask, &[qs[0], ks[1], repeats, qs[2], ks[2]], stream)? + } else { + mask + }; + scores = if dtype == Dtype::Bool { + let minimum = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&0xff7fu16.to_le_bytes())?, + )?; + indexing::select(&mask, &scores, &minimum, stream)? + } else { + binary(&scores, &mask, Binary::Add, stream)? + }; + } + let scores = normalization::softmax_last(&scores, true, stream)?; + let out = dense::matmul(&scores, &v, stream)?; + if repeats > 1 { + ops::reshape(&out, &[qs[0], qs[1], qs[2], vs[3]], stream) + } else { + Ok(out) + } +} + +#[test] +#[ignore = "requires Apple Metal; original MTPLX block mask including sentinel and tails"] +fn mtplx_qsa_dense_mask_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-dense-mask.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 44); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [rows, pos, ratio, topk] = + ["rows", "pos", "ratio", "topk"].map(|k| case[k].as_i64().unwrap() as i32); + let strided = case["strided"].as_bool().unwrap(); + let empty = case["empty"].as_bool().unwrap(); + let total = pos + rows; + let cols = topk * if strided { 2 } else { 1 }; + let mut ids = Vec::new(); + let mut valid = Vec::new(); + for r in 0..rows { + for c in 0..cols { + let slot = if strided { c / 2 } else { c }; + let candidate = (pos + r + 1) / ratio - 1 - slot / 2; + let id = if slot % 11 == 5 { + total + } else if slot % 11 == 3 { + -1 + } else { + candidate + }; + ids.extend(id.to_le_bytes()); + valid.push(u8::from(!empty && slot % 7 != 2)); + } + } + let mut ids = Array::new( + &[rows, cols], + Dtype::I32, + super::scalar_buffer(&ids).unwrap(), + ) + .unwrap(); + let mut valid = Array::new( + &[rows, cols], + Dtype::Bool, + super::scalar_buffer(&valid).unwrap(), + ) + .unwrap(); + if strided { + ids = ops::slice(&ids, &[0, 0], &[rows, cols], &[1, 2], gpu).unwrap(); + valid = ops::slice(&valid, &[0, 0], &[rows, cols], &[1, 2], gpu).unwrap(); + } + if prepared { + ops::evaluate(&streams, &[ids.clone(), valid.clone()], gpu, false).unwrap(); + } + let out = blocks_to_dense_mask(&ids, &valid, pos, total, ratio, gpu).unwrap(); + assert_eq!(out.layout().shape(), &[1, 1, rows, total]); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap() + }); + assert_eq!( + calls + .iter() + .filter(|c| c.0.contains("scatter_axis")) + .count(), + usize::from(rows > 0 && topk > 0) + ); + let read = ops::contiguous( + &ops::astype(&out, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&read.buffer(), (rows * total) as u32, 4)], + ); + }); + } + } +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX tiled prefill gather"] +fn mtplx_qsa_prefill_gather_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{ + allocator, configure_sources, + eval::Status, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&v| v as u32).product(), salt), + ) + .unwrap() + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-prefill-gather.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 34); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [heads, rows, pos, ratio, topk, tile] = + ["heads", "rows", "pos", "ratio", "topk", "tile"] + .map(|k| case[k].as_i64().unwrap() as i32); + let strided = case["strided"].as_bool().unwrap(); + let cap = pos + rows + 7; + let q = + ops::transpose(&bf16(&[1, rows, heads, 256], 100), &[0, 2, 1, 3], gpu).unwrap(); + let (keys, values) = (bf16(&[1, 2, cap, 256], 101), bf16(&[1, 2, cap, 256], 102)); + let cols = topk * if strided { 2 } else { 1 }; + let mut ids = Vec::new(); + let mut valid = Vec::new(); + for r in 0..rows { + for j in 0..cols { + let padding = strided && j % 2 == 0; + let index = (pos + r + 1) / ratio - 1 - if strided { j / 2 } else { j }; + let ok = !padding && index >= 0; + let id = if padding { + -888 + } else if ok { + index + } else { + -999 + }; + if strided { + ids.extend(i64::from(id).to_le_bytes()); + } else { + ids.extend(id.to_le_bytes()); + } + valid.push(u8::from(ok)); + } + } + let ids = Array::new( + &[rows, cols], + if strided { Dtype::I64 } else { Dtype::I32 }, + super::scalar_buffer(&ids).unwrap(), + ) + .unwrap(); + let ok = Array::new( + &[rows, cols], + Dtype::Bool, + super::scalar_buffer(&valid).unwrap(), + ) + .unwrap(); + let (ids, ok) = if strided { + ( + ops::slice(&ids, &[0, 1], &[rows, cols], &[1, 2], gpu).unwrap(), + ops::slice(&ok, &[0, 1], &[rows, cols], &[1, 2], gpu).unwrap(), + ) + } else { + (ids, ok) + }; + if prepared { + ops::evaluate(&streams, &[q.clone(), ids.clone(), ok.clone()], gpu, false) + .unwrap(); + } + let (output, calls) = capture_dispatches(|| { + prefill_gather( + &q, &keys, &values, &ids, &ok, pos, ratio, 0.0625, tile, &streams, gpu, + ) + .unwrap() + }); + let evals = case["evals"].as_array().unwrap(); + assert_eq!( + calls + .iter() + .filter(|r| r.0.ends_with("softmax_float32")) + .count(), + evals.len() + ); + assert_eq!( + calls + .iter() + .filter(|r| r.0.starts_with("kernel_qwen_mtplx_gather_bf16_idxi32_1_1_")) + .count(), + 2 * evals.len() + ); + if evals.len() == 1 { + assert_eq!(output.status(), Status::Evaluated); + assert_eq!(serde_json::json!([output.layout().shape()]), evals[0]); + } else { + assert_eq!( + output.status(), + Status::Unscheduled, + "final concatenate must remain lazy" + ); + let inputs = output.inputs(); + assert_eq!(inputs.len(), evals.len()); + for (input, shape) in inputs.iter().zip(evals) { + assert_eq!( + input.status(), + Status::Evaluated, + "tile must retire before return" + ); + assert_eq!(serde_json::json!([input.layout().shape()]), *shape); + } + } + drop((q, keys, values, ids, ok)); + let packed = ops::contiguous(&output, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + verify( + case["kernel"].as_str().unwrap(), + &[( + &super::scalar_buffer(&bytes).unwrap(), + packed.layout().size() as u32, + )], + ); + }); + } + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX QSA rows-gather attention"] +fn mtplx_qsa_rows_gather_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-rows-attention.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 18); + for deferred in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [heads, rows, total, count] = ["heads", "rows", "total", "count"] + .map(|key| case[key].as_i64().unwrap() as i32); + let layout = case["layout"].as_str().unwrap(); + let q = + ops::transpose(&bf16(&[1, rows, heads, 256], 97), &[0, 2, 1, 3], gpu).unwrap(); + let cached = |salt| { + let cap = match layout { + "offset" => total + 7, + "strided" => total * 2, + _ => total, + }; + let a = bf16(&[1, 2, cap, 256], salt); + match layout { + "offset" => ops::slice( + &a, + &[0, 0, 2, 0], + &[1, 2, total + 2, 256], + &[1, 1, 1, 1], + gpu, + ) + .unwrap(), + "strided" => { + ops::slice(&a, &[0, 0, 0, 0], &[1, 2, cap, 256], &[1, 1, 2, 1], gpu) + .unwrap() + } + _ => a, + } + }; + let (k, v) = (cached(98), cached(99)); + let ids = (0..rows * count) + .flat_map(|i| (i * 7 % total).to_le_bytes()) + .collect::>(); + let valid = (0..rows * count) + .map(|i| u8::from(i % 5 != 1)) + .collect::>(); + let idx = Array::new( + &[rows, count], + Dtype::I32, + super::scalar_buffer(&ids).unwrap(), + ) + .unwrap(); + let ok = Array::new( + &[rows, count], + Dtype::Bool, + super::scalar_buffer(&valid).unwrap(), + ) + .unwrap(); + if !deferred { + ops::evaluate(&streams, &[q.clone(), k.clone(), v.clone()], gpu, false) + .unwrap(); + } + let output = rows_gather(&q, &k, &v, &idx, &ok, 0.0625, gpu).unwrap(); + drop((q, k, v, idx, ok)); + let packed = ops::contiguous(&output, false, gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap() + }); + assert_eq!( + calls + .iter() + .filter(|r| r.0.starts_with("kernel_qwen_mtplx_gather_bf16_idxi32_1_1_")) + .count(), + 2 + ); + assert_eq!( + calls + .iter() + .filter(|r| r.0.ends_with("softmax_float32")) + .count(), + 1 + ); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + verify( + case["kernel"].as_str().unwrap(), + &[( + &super::scalar_buffer(&bytes).unwrap(), + packed.layout().size() as u32, + )], + ); + }); + } + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple M5 Max; actual Qwen SDPA fallback reference"] +fn mtplx_sdpa_fallback_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-sdpa-fallback.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 21); + let mut checked = 0; + for deferred in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [batch, heads, rows, total] = + ["batch", "heads", "rows", "total"].map(|k| case[k].as_i64().unwrap() as i32); + let mode = case["mode"].as_str().unwrap(); + let q = ops::transpose(&bf16(&[batch, rows, heads, 256], 93), &[0, 2, 1, 3], gpu) + .unwrap(); + let cached = |salt| { + ops::slice( + &bf16(&[batch, 2, total + 7, 256], salt), + &[0, 0, 2, 0], + &[batch, 2, total + 2, 256], + &[1, 1, 1, 1], + gpu, + ) + .unwrap() + }; + let (k, v) = (cached(94), cached(95)); + let mask = if mode == "none" { + None + } else { + let values = (0..rows) + .flat_map(|i| { + (0..total).map(move |j| j <= total - rows + i && j % 3 != 1 && i != 1) + }) + .flat_map(|on| { + if mode == "bool" { + vec![u8::from(on)] + } else { + (if on { 0u16 } else { 0xc120 }).to_le_bytes().to_vec() + } + }) + .collect::>(); + Some( + Array::new( + &[1, 1, rows, total], + if mode == "bool" { + Dtype::Bool + } else { + Dtype::BF16 + }, + super::scalar_buffer(&values).unwrap(), + ) + .unwrap(), + ) + }; + if !deferred { + ops::evaluate(&streams, &[q.clone(), k.clone(), v.clone()], gpu, false) + .unwrap(); + } + let output = scaled_dot_product(&q, &k, &v, mask.as_ref(), 0.0625, gpu).unwrap(); + drop((q, k, v, mask)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + let softmax = calls + .iter() + .filter(|r| r.0.contains("softmax")) + .collect::>(); + assert_eq!(softmax.len(), 1); + assert_eq!( + softmax[0].0, + if total > 4096 { + "looped_softmax_precise_bfloat16" + } else { + "block_softmax_precise_bfloat16" + } + ); + verify( + case["kernel"].as_str().unwrap(), + &[(&output.buffer(), output.layout().size() as u32)], + ); + checked += 1; + }); + } + } + assert_eq!(checked, 42); + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/binary.rs b/src/engine/metal/qwen_mtplx/binary.rs new file mode 100644 index 0000000..c634ff5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/binary.rs @@ -0,0 +1,521 @@ +//! ops.cpp and common/metal binary dispatch from MTPLX's pinned runtime. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, dispatch_geometry, ops, tensor, views}; + +#[derive(Clone, Copy, Debug)] +pub(super) enum Binary { + Equal, + Greater, + GreaterEqual, + Less, + LessEqual, + LogicalAnd, + LogicalOr, + BitwiseAnd, + BitwiseOr, + BitwiseXor, + Remainder, + Add, + Subtract, + Multiply, + Divide, + Maximum, + Minimum, + LogAddExp, + Power, +} + +/// ops.cpp floor_divide keeps integer dtype and uses the existing Divide +/// primitive; true divide instead promotes integers to F32. +pub(super) fn floor_divide_integer(a: &Array, b: &Array, stream: Stream) -> Result { + let dtype = a.layout().dtype().promote(b.layout().dtype()); + if stream.device() != Device::Gpu + || !matches!( + dtype, + Dtype::Bool + | Dtype::I8 + | Dtype::I16 + | Dtype::I32 + | Dtype::I64 + | Dtype::U8 + | Dtype::U16 + | Dtype::U32 + | Dtype::U64 + ) + { + return Err("integer floor divide requires integer GPU inputs".into()); + } + let inputs = ops::broadcast_arrays( + &[ + ops::astype(a, dtype, false, stream)?, + ops::astype(b, dtype, false, stream)?, + ], + &[], + stream, + )?; + Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new(inputs[0].layout().shape(), dtype)?, + ops::Operation::Binary(Binary::Divide), + ) +} + +pub(super) fn binary(a: &Array, b: &Array, op: Binary, stream: Stream) -> Result { + if stream.device() != Device::Gpu { + return Err("CPU binary arithmetic is not ported".into()); + } + let mut dtype = a.layout().dtype().promote(b.layout().dtype()); + if matches!(op, Binary::LogicalAnd | Binary::LogicalOr) { + dtype = Dtype::Bool; + } + if matches!( + op, + Binary::BitwiseAnd | Binary::BitwiseOr | Binary::BitwiseXor + ) && !matches!( + dtype, + Dtype::Bool + | Dtype::I8 + | Dtype::I16 + | Dtype::I32 + | Dtype::I64 + | Dtype::U8 + | Dtype::U16 + | Dtype::U32 + | Dtype::U64 + ) { + return Err("bitwise operands must promote to an integer or bool".into()); + } + if matches!(op, Binary::Remainder) && dtype == Dtype::C64 { + return Err("remainder does not support complex values".into()); + } + if matches!(op, Binary::Divide | Binary::LogAddExp) { + dtype = dtype.at_least_float(); + } + let a = ops::astype(a, dtype, false, stream)?; + let b = ops::astype(b, dtype, false, stream)?; + let inputs = ops::broadcast_arrays(&[a, b], &[], stream)?; + let shape = inputs[0].layout().shape().to_vec(); + Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new( + &shape, + if matches!( + op, + Binary::Equal + | Binary::Greater + | Binary::GreaterEqual + | Binary::Less + | Binary::LessEqual + ) { + Dtype::Bool + } else { + dtype + }, + )?, + ops::Operation::Binary(op), + ) +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum Kind { + Ss, + Sv, + Vs, + Vv, + General, +} + +fn kind(a: &Array, b: &Array) -> Kind { + let af = a.layout().flags(); + let bf = b.layout().flags(); + if a.data_size() == 1 && b.data_size() == 1 { + Kind::Ss + } else if a.data_size() == 1 && bf.contiguous { + Kind::Sv + } else if b.data_size() == 1 && af.contiguous { + Kind::Vs + } else if (af.row_contiguous && bf.row_contiguous) || (af.col_contiguous && bf.col_contiguous) { + Kind::Vv + } else { + Kind::General + } +} + +fn allocate(a: &Array, b: &Array, out: &Array, kind: Kind) -> Result<(), String> { + if kind == Kind::Ss { + let layout = a.layout(); + return out.set_strided_data( + Buffer::mtplx_bytes(out.itemsize() as u64)?, + 1, + layout.strides(), + layout.flags(), + 0, + ); + } + if kind != Kind::General { + let source = if kind == Kind::Sv + || (kind == Kind::Vv && !views::can_donate(a, out) && views::can_donate(b, out)) + { + b + } else { + a + }; + views::set_unary_output_data(source, out)?; + return Ok(()); + } + for input in [a, b] { + let layout = input.layout(); + if views::can_donate(input, out) + && layout.flags().row_contiguous + && layout.size() == out.layout().size() + { + return out.copy_shared_buffer( + input, + layout.strides(), + layout.flags(), + input.data_size(), + 0, + ); + } + } + let nbytes = out.layout().nbytes(); + out.set_data(Buffer::mtplx_bytes(nbytes as u64)?) +} + +pub(super) fn evaluate(a: &Array, b: &Array, out: &Array, op: Binary) -> Result<(), String> { + let kind = kind(a, b); + allocate(a, b, out, kind)?; + let dst = out.layout(); + if dst.size() == 0 { + return Ok(()); + } + let al = a.layout(); + let bl = b.layout(); + let general = kind == Kind::General; + let (shape, strides) = if general { + views::collapse_joint(al.shape(), &[al.strides(), bl.strides(), dst.strides()]) + } else { + (Vec::new(), Vec::new()) + }; + let ndim = shape.len(); + let large = if general { + a.data_size() > i32::MAX as usize + || b.data_size() > i32::MAX as usize + || dst.size() > i32::MAX as usize + } else { + out.data_size() > u32::MAX as usize + }; + let work = if general { + if large { 4 } else { 2 } + } else if out.data_size() < 1 << 16 { + 1 + } else { + (8 / a.itemsize()).max(1) + }; + let prefix = match kind { + Kind::Ss => "ss", + Kind::Sv => "sv", + Kind::Vs => "vs", + Kind::Vv => "vv", + Kind::General => "g", + }; + let suffix = if general { + format!( + "{}{}", + if ndim <= 3 { + ndim.to_string() + } else { + format!("n{work}") + }, + if large { "large" } else { "" } + ) + } else if kind == Kind::Ss { + String::new() + } else { + (if large { + "2" + } else if work > 1 { + "n" + } else { + "" + }) + .into() + }; + let name = format!("{prefix}{suffix}_{op:?}{}", al.dtype().kernel_name()); + let max = views::kernel_max_threads(&name)?; + let ab = a.buffer(); + let bb = b.buffer(); + let ob = out.buffer(); + let mut bindings = vec![ + tensor(0, &ab) + .at_byte_offset(a.offset()) + .input(a.data_size()), + tensor(1, &bb) + .at_byte_offset(b.offset()) + .input(b.data_size()), + tensor(2, &ob) + .at_byte_offset(out.offset()) + .output(out.data_size()), + ]; + if general { + let ndim = ndim as i32; + let dim0 = shape.last().copied().unwrap_or(1) as usize; + let dim1 = shape.iter().rev().nth(1).copied().unwrap_or(1) as usize; + let rest = dst.size() / (dim0 * dim1); + if ndim > 3 { + bindings.extend([ + bytes(3, shape.as_slice()), + bytes(4, strides[0].as_slice()), + bytes(5, strides[1].as_slice()), + bytes(6, &ndim), + ]); + } else { + bindings.extend([ + bytes(3, strides[0].as_slice()), + bytes(4, strides[1].as_slice()), + ]); + } + let grid = [ + if ndim > 3 { dim0.div_ceil(work) } else { dim0 }, + dim1, + rest, + ] + .map(|d| u32::try_from(d).map_err(|_| "binary grid overflow")); + let grid = [grid[0]?, grid[1]?, grid[2]?]; + if max != 1024 { + return Err("[Metal::binary] Must use 1024 sized block".into()); + } + dispatch_geometry(&name, &bindings, &[], grid, super::block_dims(grid), true) + } else { + let n32 = out.data_size() as i32; + let n64 = out.data_size() as i64; + bindings.push(if large { + bytes(3, &n64) + } else { + bytes(3, &n32) + }); + let grid = if large { + views::large_copy_grid(&dst, work)? + } else { + [out.data_size().div_ceil(work) as u32, 1, 1] + }; + dispatch_geometry( + &name, + &bindings, + &[], + grid, + [ + (max as usize).min(out.data_size().div_ceil(work)) as u32, + 1, + 1, + ], + true, + ) + } +} + +#[test] +#[ignore = "requires Apple Metal; binary graph broadcast/layout and donation branches"] +fn mtplx_graph_binary_preserves_reference_branches() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{allocator, array::Dtype, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let encode = |dtype: Dtype, value: f32| { + if dtype == Dtype::BF16 { + ((value.to_bits() >> 16) as u16).to_le_bytes().to_vec() + } else { + value.to_le_bytes().to_vec() + } + }; + let constant = |dtype: Dtype, shape: &[i32], value: f32| { + let layout = Layout::new(shape, dtype).unwrap(); + let buffer = Buffer::mtplx_bytes(layout.nbytes() as u64).unwrap(); + buffer + .write(0, &encode(dtype, value).repeat(layout.size())) + .unwrap(); + Array::new(shape, dtype, buffer).unwrap() + }; + let check = |out: &Array, expected| { + ops::evaluate(&streams, std::slice::from_ref(out), gpu, false).unwrap(); + let mut actual = vec![0; out.data_size() * out.itemsize()]; + out.buffer().read(out.offset(), &mut actual).unwrap(); + assert_eq!( + actual, + encode(out.layout().dtype(), expected).repeat(out.data_size()) + ); + }; + for dtype in [Dtype::BF16, Dtype::F32] { + for (op, bvalue, expected) in [ + (Binary::Add, 2., 6.), + (Binary::Subtract, 2., 2.), + (Binary::Multiply, 2., 8.), + (Binary::Divide, 2., 2.), + (Binary::Maximum, 2., 4.), + (Binary::Minimum, 2., 2.), + (Binary::LogAddExp, f32::NEG_INFINITY, 4.), + ] { + for count in [0, 1, 65535, 65536, 65537] { + for kind in [Kind::Sv, Kind::Vs, Kind::Vv] { + let a = constant( + dtype, + if kind == Kind::Sv { + &[] + } else { + std::slice::from_ref(&count) + }, + 4., + ); + let b = constant( + dtype, + if kind == Kind::Vs { + &[] + } else { + std::slice::from_ref(&count) + }, + bvalue, + ); + let out = binary(&a, &b, op, gpu).unwrap(); + drop((a, b)); + check(&out, expected); + assert_eq!(out.layout().shape(), [count]); + } + } + for mode in 0..7 { + let a = constant(dtype, &[2, 3], 4.); + let b = constant(dtype, &[2, 3], bvalue); + let aid = a.buffer().data_identity(); + let bid = b.buffer().data_identity(); + let (a, b) = if mode >= 4 { + let av = ops::transpose(&a, &[1, 0], gpu).unwrap(); + let bv = if mode == 4 { + ops::transpose(&b, &[1, 0], gpu).unwrap() + } else { + ops::reshape(&b, &[3, 2], gpu).unwrap() + }; + drop((a, b)); + (av, bv) + } else { + (a, b) + }; + let aliases = match mode { + 0 => vec![a.clone()], + 1 => vec![b.clone()], + 2 | 6 => vec![a.clone(), b.clone()], + _ => vec![], + }; + let out = binary(&a, &b, op, gpu).unwrap(); + drop((a, b)); + check(&out, expected); + let donor = match mode { + 0 | 5 => Some(bid), + 1 | 3 | 4 => Some(aid), + _ => None, + }; + if let Some(id) = donor { + assert_eq!(out.buffer().data_identity(), id, "{op:?} mode {mode}"); + } else { + assert_ne!(out.buffer().data_identity(), aid); + assert_ne!(out.buffer().data_identity(), bid); + } + if mode == 4 { + assert_eq!(out.layout().strides(), [1, 3]); + } + drop(aliases); + } + let a = ops::broadcast_to(&constant(dtype, &[], 4.), &[2, 3], gpu).unwrap(); + let b = ops::broadcast_to(&constant(dtype, &[], bvalue), &[2, 3], gpu).unwrap(); + let out = binary(&a, &b, op, gpu).unwrap(); + drop((a, b)); + check(&out, expected); + assert_eq!(out.data_size(), 1); + assert_eq!(out.layout().strides(), [0, 0]); + + let a = constant(dtype, &[2, 1], 4.); + let b = constant(dtype, &[1, 3], bvalue); + let out = binary(&a, &b, op, gpu).unwrap(); + drop((a, b)); + check(&out, expected); + assert_eq!(out.layout().shape(), [2, 3]); + assert_eq!(out.data_size(), 6); + + let a = constant(dtype, &[2, 2, 2, 2, 2], 4.); + let a = ops::transpose(&a, &[4, 3, 2, 1, 0], gpu).unwrap(); + let b = constant(dtype, &[2, 2, 2, 2, 2], bvalue); + let out = binary(&a, &b, op, gpu).unwrap(); + drop((a, b)); + check(&out, expected); + } + } + // Nonconstant offset and reverse inputs expose index and alias errors + // that constant-valued dispatch checks cannot detect. + let buffer = Buffer::mtplx_bytes(24).unwrap(); + buffer + .write( + 0, + &[0_f32, 1., 2., 3., 4., 5.] + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>(), + ) + .unwrap(); + let base = Array::new(&[6], Dtype::F32, buffer).unwrap(); + let a = ops::slice(&base, &[5], &[-7], &[-2], gpu).unwrap(); + let b = ops::slice(&base, &[1], &[4], &[1], gpu).unwrap(); + let out = binary(&a, &b, Binary::Subtract, gpu).unwrap(); + drop((a, b, base)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + let mut actual = [0; 12]; + out.buffer().read(out.offset(), &mut actual).unwrap(); + assert_eq!( + actual.as_slice(), + [4_f32, 1., -2.] + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>() + ); + let buffer = Buffer::mtplx_bytes(128).unwrap(); + buffer + .write( + 0, + &(0..32) + .flat_map(|i| (i as f32).to_le_bytes()) + .collect::>(), + ) + .unwrap(); + let base = Array::new(&[2, 2, 2, 2, 2], Dtype::F32, buffer).unwrap(); + let a = ops::transpose(&base, &[4, 3, 2, 1, 0], gpu).unwrap(); + let b = constant(Dtype::F32, &[2, 2, 2, 2, 2], 2.); + let out = binary(&a, &b, Binary::Subtract, gpu).unwrap(); + drop((a, b, base)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + let mut actual = [0; 128]; + out.buffer().read(out.offset(), &mut actual).unwrap(); + let expected = (0_u32..32) + .flat_map(|i| ((i.reverse_bits() >> 27) as f32 - 2.).to_le_bytes()) + .collect::>(); + assert_eq!(actual.as_slice(), expected); + let integer = |n: i32| { + let buffer = Buffer::mtplx_bytes(4).unwrap(); + buffer.write(0, &n.to_le_bytes()).unwrap(); + Array::new(&[], Dtype::I32, buffer).unwrap() + }; + let divided = binary(&integer(4), &integer(2), Binary::Divide, gpu).unwrap(); + assert_eq!(divided.layout().dtype(), Dtype::F32); + check(÷d, 2.); + let a = constant(Dtype::BF16, &[2], 4.); + let b = constant(Dtype::F32, &[1], 2.); + let out = binary(&a, &b, Binary::Add, gpu).unwrap(); + assert_eq!(out.layout().dtype(), Dtype::F32); + check(&out, 6.); + assert!(binary(&a, &constant(Dtype::F32, &[3], 1.), Binary::Add, gpu).is_err()); + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/binding.rs b/src/engine/metal/qwen_mtplx/binding.rs new file mode 100644 index 0000000..04e7b6a --- /dev/null +++ b/src/engine/metal/qwen_mtplx/binding.rs @@ -0,0 +1,999 @@ +//! Persistent module binding for the installed converted Qwen checkpoint. +//! Arrays/quantized packs have one owning bank; module views borrow that bank. +use super::array::{Array, Dtype}; +use super::mlp::{Linear, QuantizedLinear}; +use super::model::TextModel; +use super::stream::{Stream, Streams}; +use super::{ + decoder, gdn, hyper, model, moe, mtp, ngram, ngram_stage, ops, ple, qsa_attention, qsa_indexer, + rope, weights, +}; +use std::collections::{BTreeMap, BTreeSet}; +use std::path::Path; + +#[derive(serde::Deserialize)] +#[serde(default)] +pub(super) struct Config { + hidden_size: i32, + hc_count: i32, + hc_lowrank: i32, + num_hidden_layers: usize, + layer_types: Option>, + full_attention_interval: usize, + num_attention_heads: i32, + num_key_value_heads: i32, + head_dim: i32, + num_experts_per_tok: i32, + moe_intermediate_size: i32, + shared_expert_intermediate_size: i32, + norm_topk_prob: bool, + indexer_n_heads: i32, + indexer_kv_heads: i32, + indexer_head_dim: i32, + indexer_budget: i32, + indexer_compress_ratio: i32, + rms_norm_eps: f64, + ple_layer_ids: Vec, + ple_embed_dim: Option, + ngram_sidecar: bool, + eos_token_id: serde_json::Value, + tie_word_embeddings: bool, + partial_rotary_factor: f64, + rope_theta: f64, + rope_parameters: serde_json::Value, + mrope_section: Option>, + mrope_interleaved: bool, +} + +impl Default for Config { + fn default() -> Self { + Self { + hidden_size: 2560, + hc_count: 4, + hc_lowrank: 320, + num_hidden_layers: 48, + layer_types: None, + full_attention_interval: 4, + num_attention_heads: 24, + num_key_value_heads: 2, + head_dim: 256, + num_experts_per_tok: 10, + moe_intermediate_size: 640, + shared_expert_intermediate_size: 640, + norm_topk_prob: true, + indexer_n_heads: 4, + indexer_kv_heads: 1, + indexer_head_dim: 128, + indexer_budget: 2048, + indexer_compress_ratio: 4, + rms_norm_eps: 1e-6, + ple_layer_ids: Vec::new(), + ple_embed_dim: None, + ngram_sidecar: false, + eos_token_id: serde_json::Value::Null, + tie_word_embeddings: false, + partial_rotary_factor: 0.25, + rope_theta: 10_000_000., + rope_parameters: serde_json::Value::Null, + mrope_section: None, + mrope_interleaved: false, + } + } +} + +impl Config { + fn parse(value: &serde_json::Value) -> Result { + let mut c: Self = serde_json::from_value(value.clone()).map_err(|e| e.to_string())?; + if c.hidden_size != 2560 + || c.hc_count != 4 + || c.hc_lowrank != 320 + || c.full_attention_interval == 0 + || c.num_hidden_layers == 0 + || c.indexer_compress_ratio <= 0 + { + return Err("checkpoint does not have the installed Qwen geometry".into()); + } + if c.layer_types.is_none() { + c.layer_types = Some( + (0..c.num_hidden_layers) + .map(|i| { + if (i + 1) % c.full_attention_interval == 0 { + "full_attention" + } else { + "linear_attention" + } + .to_owned() + }) + .collect(), + ); + } + if c.layer_types.as_ref().unwrap().len() != c.num_hidden_layers { + return Err("Qwen layer_types length differs from num_hidden_layers".into()); + } + c.ple_layer_ids.sort_unstable(); + c.ple_layer_ids.dedup(); + c.ple_embed_dim.get_or_insert(c.hidden_size); + let p = &c.rope_parameters; + c.partial_rotary_factor = p["partial_rotary_factor"] + .as_f64() + .unwrap_or(c.partial_rotary_factor); + c.rope_theta = p["rope_theta"].as_f64().unwrap_or(c.rope_theta); + if let Some(section) = p["mrope_section"].as_array().filter(|s| !s.is_empty()) { + c.mrope_section = Some( + section + .iter() + .map(|v| { + v.as_i64() + .and_then(|v| i32::try_from(v).ok()) + .ok_or("invalid mrope section".to_owned()) + }) + .collect::>()?, + ); + } + c.mrope_interleaved = p["mrope_interleaved"] + .as_bool() + .unwrap_or(c.mrope_interleaved); + Ok(c) + } + + fn input_width(&self, name: &str) -> i32 { + if name.ends_with("switch_mlp.down_proj") { + self.moe_intermediate_size + } else if name.ends_with("shared_expert.down_proj") { + self.shared_expert_intermediate_size + } else if name.ends_with("linear_attn.out_proj") { + 48 * 128 + } else if name.ends_with("self_attn.o_proj") { + self.num_attention_heads * self.head_dim + } else if name.ends_with("input_mix_weight_down") || name.ends_with("block_inject_weight") { + self.hidden_size * self.hc_count + } else if name.ends_with("input_mix_weight_up") { + self.hc_lowrank + } else if name.ends_with("ple.key_proj") || name.ends_with("ple.value_proj") { + self.ple_embed_dim.unwrap() + } else { + self.hidden_size + } + } + + fn rope(&self, stream: Stream) -> Result { + let p = &self.rope_parameters; + let kind = p["rope_type"] + .as_str() + .filter(|v| !v.is_empty()) + .unwrap_or("default") + .trim() + .to_ascii_lowercase(); + let yarn = match kind.as_str() { + "default" => None, + "yarn" => Some(rope::Yarn { + factor: p["factor"].as_f64().ok_or("YaRN factor missing")?, + original_max: p["original_max_position_embeddings"] + .as_i64() + .ok_or("YaRN original context missing")?, + attention_factor: p["attention_factor"].as_f64(), + mscale: p["mscale"].as_f64(), + mscale_all_dim: p["mscale_all_dim"].as_f64(), + beta_fast: p["beta_fast"].as_f64().unwrap_or(32.), + beta_slow: p["beta_slow"].as_f64().unwrap_or(1.), + truncate: p["truncate"].as_bool().unwrap_or(true), + }), + _ => return Err("unsupported Qwen RoPE type".into()), + }; + let dim = (self.head_dim as f64 * self.partial_rotary_factor) as i32; + let (frequency, scaling) = + rope::inv_freq_and_scaling(dim, self.rope_theta, yarn.as_ref(), stream)?; + let axes = match &self.mrope_section { + Some(section) if section.iter().sum::() == dim / 2 => { + let axes = rope::build_mrope_axes(section, self.mrope_interleaved); + Some(Array::new( + &[axes.len() as i32], + Dtype::I32, + super::scalar_buffer( + &axes + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + )?, + )?) + } + _ => None, + }; + Ok(Rope { + frequency, + scaling, + axes, + }) + } +} + +struct Rope { + frequency: Array, + scaling: f64, + axes: Option, +} + +pub(super) struct Bank { + pub(super) parameters: weights::Parameters, + quantized: BTreeMap, + fusions: BTreeMap, + rope: BTreeMap, + config: Config, + has_mtp: bool, +} + +// The executor can move this owner without rebuilding modules or losing their +// compile/staging caches. Reuse the already locked self_cell implementation: +// dependent modules are dropped before their weight bank, without local unsafe. +self_cell::self_cell!( + pub(super) struct BoundModel { + owner: Bank, + #[covariant] + dependent: TextModel, + } +); + +impl Bank { + /// mx.eval(model.parameters()): one synchronous evaluation of the ordered + /// roots, not one eval per weight or a new alphabetical/shard grouping. + pub(super) fn materialize( + &self, + names: &[String], + streams: &Streams, + stream: Stream, + ) -> Result<(), String> { + let roots = names + .iter() + .map(|name| { + self.parameters + .get(name) + .cloned() + .ok_or_else(|| format!("missing parameter {name}")) + }) + .collect::, _>>()?; + ops::evaluate(streams, &roots, stream, false) + } + + pub(super) fn load( + root: &Path, + options: weights::FusionOptions, + enable_mtp: bool, + streams: &Streams, + stream: Stream, + ) -> Result { + let raw: serde_json::Value = serde_json::from_slice( + &std::fs::read(root.join("config.json")).map_err(|e| e.to_string())?, + ) + .map_err(|e| e.to_string())?; + let config = Config::parse(&raw["text_config"])?; + let mut parameters = weights::load_shards(root, streams)?; + // This loader binds the converted checkpoint validated by DS4Server. + // Never silently apply converted norm conventions to raw HF weights. + if parameters.iter().any(|(k, v)| { + k.starts_with("model.language_model.") + || (k.ends_with("linear_attn.conv1d.weight") + && v.layout().shape().last() != Some(&1)) + }) { + return Err("raw HF checkpoint requires raw sanitize before converted binding".into()); + } + for name in parameters + .keys() + .filter(|k| k.ends_with("ple.conv1d.weight")) + .cloned() + .collect::>() + { + let value = parameters.remove(&name).unwrap(); + parameters.insert(name.replace("ple.conv1d.weight", "ple.conv_weight"), value); + } + let fusions = weights::fuse( + &mut parameters, + options, + &vec![config.indexer_n_heads > 0; config.num_hidden_layers], + stream, + )?; + let has_mtp = enable_mtp && root.join("mtp.safetensors").exists(); + if has_mtp { + let head = super::load::safetensors(&root.join("mtp.safetensors"), streams)?; + parameters.extend(head.into_iter().filter(|(n, _)| n.starts_with("mtp."))); + for name in [ + "mtp.pre_fc_norm_embedding.weight", + "mtp.pre_fc_norm_hidden.weight", + ] { + if let Some(a) = parameters + .get(name) + .filter(|a| a.layout().shape().len() == 1) + { + let shifted = super::binary::binary( + &ops::astype(a, Dtype::F32, false, stream)?, + &Array::new(&[], Dtype::F32, super::scalar_buffer(&1f32.to_le_bytes())?)?, + super::binary::Binary::Add, + stream, + )?; + let dtype = a.layout().dtype(); + let shifted = ops::astype(&shifted, dtype, false, stream)?; + parameters.insert(name.to_owned(), shifted); + } + } + } + let mut quantized = BTreeMap::new(); + for (key, scales) in ¶meters { + let Some((name, weight_key, bias_key)) = key + .strip_suffix(".scales") + .map(|base| { + ( + base.to_owned(), + format!("{base}.weight"), + format!("{base}.biases"), + ) + }) + .or_else(|| { + key.strip_suffix(".gu_scales").map(|base| { + ( + format!("{base}.gu"), + format!("{base}.gu_weight"), + format!("{base}.gu_biases"), + ) + }) + }) + else { + continue; + }; + let weight = parameters + .get(&weight_key) + .ok_or_else(|| format!("missing {weight_key}"))?; + let biases = parameters + .get(&bias_key) + .ok_or_else(|| format!("missing {bias_key}"))?; + let recipe_name = name.strip_suffix(".gu").unwrap_or(&name); + let input_width = config.input_width(recipe_name); + let columns = weight.layout().dim(-1)?; + let groups = scales.layout().dim(-1)?; + if input_width <= 0 || columns <= 0 || groups <= 0 { + return Err(format!("invalid packed dimensions for {name}")); + } + let (bits, group) = if let Some(f) = fusions.get(recipe_name) { + (f.bits, f.group) + } else if name.starts_with("mtp.") { + ( + u32::try_from(i64::from(columns) * 32 / i64::from(input_width)) + .map_err(|e| e.to_string())?, + input_width as u32 / groups as u32, + ) + } else { + let recipe = raw["quantization"] + .get(&name) + .unwrap_or(&raw["quantization"]); + if recipe + .get("mode") + .and_then(serde_json::Value::as_str) + .unwrap_or("affine") + != "affine" + { + return Err(format!("unsupported quantization for {name}")); + } + ( + recipe["bits"] + .as_u64() + .and_then(|n| u32::try_from(n).ok()) + .ok_or_else(|| format!("missing bits for {name}"))?, + recipe["group_size"] + .as_u64() + .and_then(|n| u32::try_from(n).ok()) + .ok_or_else(|| format!("missing group for {name}"))?, + ) + }; + if !matches!(bits, 2 | 3 | 4 | 5 | 6 | 8) + || !matches!(group, 32 | 64 | 128) + || weight.layout().dtype() != Dtype::U32 + || weight.layout().shape().len() < 2 + || scales.layout().shape() != biases.layout().shape() + || i64::from(weight.layout().dim(-1)?) * 32 + != i64::from(input_width) * i64::from(bits) + || i64::from(scales.layout().dim(-1)?) * i64::from(group) != i64::from(input_width) + { + return Err(format!("affine pack geometry mismatch for {name}")); + } + quantized.insert( + name, + QuantizedLinear { + weight: weight.clone(), + scales: scales.clone(), + biases: biases.clone(), + bits, + group, + }, + ); + } + let mut rope = BTreeMap::new(); + let mut attention = config + .layer_types + .as_ref() + .unwrap() + .iter() + .enumerate() + .filter(|(_, t)| *t != "linear_attention") + .map(|(i, _)| format!("language_model.model.layers.{i}.self_attn")) + .collect::>(); + if has_mtp { + attention.push("mtp.layers.0.self_attn".into()); + } + for name in attention { + rope.insert(name.clone(), config.rope(stream)?); + if config.indexer_n_heads > 0 { + rope.insert(format!("{name}.indexer"), config.rope(stream)?); + } + } + Ok(Self { + parameters, + quantized, + fusions, + rope, + config, + has_mtp, + }) + } + + pub(super) fn bind( + &self, + policy: model::CompilePolicy, + fused_moe_decode: bool, + fused_moe_verify: bool, + ) -> Result, String> { + let mut bind = Bind { + bank: self, + used: BTreeSet::new(), + order: Vec::new(), + fused_moe_decode, + fused_moe_verify, + }; + let embedding = bind.linear("language_model.model.embed_tokens")?; + let layers = self + .config + .layer_types + .as_ref() + .unwrap() + .iter() + .enumerate() + .map(|(i, t)| { + bind.decoder( + &format!("language_model.model.layers.{i}"), + t == "linear_attention", + self.config.ple_layer_ids.contains(&(i + 1)), + ) + }) + .collect::, _>>()?; + let mixer = bind.hyper("language_model.model.hyper_connection_mixer", false)?; + let head = if self.config.tie_word_embeddings { + None + } else { + Some(bind.linear("language_model.lm_head")?) + }; + let mut model = model::TextModel::new(embedding, layers, mixer, head, policy)?; + if self.has_mtp { + model.mtp = Some(mtp::Mtp { + norm_embedding: bind.array("mtp.pre_fc_norm_embedding.weight")?, + norm_hidden: bind.array("mtp.pre_fc_norm_hidden.weight")?, + fc_embedding: bind.linear("mtp.fc_embedding")?, + fc_hidden: bind.linear("mtp.fc_hidden")?, + eps: self.config.rms_norm_eps as f32, + layer: bind.decoder("mtp.layers.0", false, false)?, + mixer: bind.hyper("mtp.hyper_connection_mixer", false)?, + }); + } + let unused = self + .parameters + .keys() + .filter(|n| !bind.used.contains(*n)) + .cloned() + .collect::>(); + if !unused.is_empty() { + return Err(format!( + "unbound checkpoint parameters: {}", + unused.join(", ") + )); + }; + model.parameter_order = bind.order; + Ok(model) + } +} + +struct Bind<'a> { + bank: &'a Bank, + used: BTreeSet, + order: Vec, + fused_moe_decode: bool, + fused_moe_verify: bool, +} + +#[test] +#[ignore = "requires installed DS4_QWEN38_ARTIFACTS and SSD policy; only small norms and four table rows evaluated"] +fn mtplx_installed_module_binding_matches_reference() { + use super::super::gpu::Context; + use super::{allocator, configure_sources, stream::Device}; + use sha2::{Digest, Sha256}; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("set installed artifact path"), + ); + assert!( + !ngram::resident_policy(), + "this check must not load the resident table" + ); + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let hash = |bytes: &[u8]| { + Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::() + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-binding.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 4); + let sidecars = include_str!("../../../../tests/fixtures/mtplx-binding-sidecar.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(sidecars.len(), cases.len()); + let orders = include_str!("../../../../tests/fixtures/mtplx-binding-order.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(orders.len(), cases.len()); + for ((case, sidecar_case), order) in cases.into_iter().zip(sidecars).zip(orders) { + assert_eq!(case["mask"], sidecar_case["mask"]); + assert_eq!(case["mtp"], sidecar_case["mtp"]); + let mask = case["mask"].as_u64().unwrap(); + let mtp = case["mtp"].as_bool().unwrap(); + eprintln!("installed binding mask={mask} mtp={mtp}"); + let mut bank = Bank::load( + &root, + weights::FusionOptions { + gate_up: mask & 1 != 0, + gdn: mask & 2 != 0, + qsa: mask & 4 != 0, + }, + mtp, + &streams, + gpu, + ) + .unwrap(); + assert!( + bank.parameters.values().all(|a| !a.has_data()), + "no eager parameter evaluation" + ); + let mut model = bank + .bind(model::CompilePolicy::from_values(None, None), true, true) + .unwrap(); + assert_eq!(case["mask"], order["mask"]); + assert_eq!(case["mtp"], order["mtp"]); + assert_eq!( + serde_json::json!(model.parameter_order.len()), + order["count"] + ); + assert_eq!( + hash(&serde_json::to_vec(&model.parameter_order).unwrap()), + order["sha256"] + ); + let linear = model + .layers + .iter() + .enumerate() + .filter(|(_, l)| matches!(l.attention, decoder::Attention::Linear(_))) + .map(|(i, _)| i) + .collect::>(); + let ple = model + .layers + .iter() + .enumerate() + .filter(|(_, l)| l.ple.is_some()) + .map(|(i, _)| i) + .collect::>(); + assert_eq!(serde_json::json!(linear), case["linear"]); + assert_eq!(serde_json::json!(ple), case["ple"]); + assert_eq!(model.mtp.is_some(), mtp); + assert_eq!(model.layers.len(), 48); + assert_eq!(model.make_cache(4).len(), 48); + let metadata = bank + .parameters + .iter() + .map(|(name, a)| { + serde_json::json!([name, a.layout().shape(), a.layout().dtype().kernel_name()]) + }) + .collect::>(); + assert_eq!( + metadata.len() as u64, + case["parameter_count"].as_u64().unwrap() + ); + assert_eq!( + hash(&serde_json::to_vec(&metadata).unwrap()), + case["metadata_sha256"] + ); + let recipes = bank + .quantized + .iter() + .map(|(name, q)| { + ( + name.clone(), + serde_json::json!([q.bits, q.group, q.weight.layout().shape()]), + ) + }) + .collect::>(); + assert_eq!(serde_json::to_value(recipes).unwrap(), case["quantized"]); + if let Some(mtp) = &model.mtp { + // Exercise the same ordered-root loader on only the two small + // norms. Full-model materialization is intentionally not this test. + let norms = model + .parameter_order + .iter() + .filter(|name| name.starts_with("mtp.pre_fc_norm_")) + .cloned() + .collect::>(); + bank.materialize(&norms, &streams, gpu).unwrap(); + for (name, norm) in [ + ("mtp.pre_fc_norm_hidden.weight", mtp.norm_hidden), + ("mtp.pre_fc_norm_embedding.weight", mtp.norm_embedding), + ] { + let out = ops::astype(norm, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + let mut bytes = vec![0; out.layout().nbytes()]; + out.buffer().read(out.offset(), &mut bytes).unwrap(); + assert_eq!(hash(&bytes), case["norms"][name]); + } + } + model.post_weight_load(&root, &streams, gpu).unwrap(); + let ids = Array::new( + &[4], + Dtype::I64, + super::scalar_buffer( + &[0i64, 1, 255, 1] + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let mut tables = Vec::new(); + for (i, layer) in model.layers.iter_mut().enumerate() { + let Some(ple) = &mut layer.ple else { continue }; + let table = &mut ple.embedding.table; + let out = table.gather(&ids, &streams, gpu).unwrap(); + let out = ops::astype(&out, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + let mut bytes = vec![0; out.layout().nbytes()]; + out.buffer().read(out.offset(), &mut bytes).unwrap(); + let sidecar = table.sidecar.as_ref().unwrap(); + tables.push( + serde_json::json!({"layer":i, "resident":table.resident.is_some(), + "hot_mb":sidecar.hot_mebibytes(), "prefetch":sidecar.prefetch_enabled(), + "shape":out.layout().shape(), "sha256":hash(&bytes)}), + ); + } + assert_eq!(serde_json::json!(tables), sidecar_case["tables"]); + assert_eq!( + model.set_ar_pipeline_mode(true), + sidecar_case["ar_ready"].as_bool().unwrap() + ); + drop(model); + assert!( + bank.materialize(&["missing.weight".into()], &streams, gpu) + .unwrap_err() + .contains("missing parameter") + ); + assert!( + bank.parameters + .iter() + .filter(|(n, _)| !n.starts_with("mtp.pre_fc_norm_")) + .all(|(_, a)| !a.has_data()) + ); + let mut owned = BoundModel::try_new(bank, |bank| { + bank.bind(model::CompilePolicy::from_values(None, None), true, true) + }) + .unwrap(); + let module_address = std::ptr::from_ref(owned.borrow_dependent()).addr(); + owned.with_dependent_mut(|_, model| model.last_widened = Some(ids)); + let mut moved = Box::new(owned); + assert_eq!( + module_address, + std::ptr::from_ref(moved.borrow_dependent()).addr() + ); + moved.with_dependent_mut(|_, model| { + assert_eq!(model.last_widened.take().unwrap().layout().shape(), [4]); + }); + bank = (*moved).into_owner(); + // Strict binding rejects both missing and extraneous checkpoint entries. + let extra = bank.parameters["language_model.model.layers.0.linear_attn.A_log"].clone(); + bank.parameters.insert("unexpected.weight".into(), extra); + assert!( + bank.bind(model::CompilePolicy::from_values(None, None), true, true) + .err() + .unwrap() + .contains("unbound checkpoint parameters") + ); + bank.parameters.remove("unexpected.weight"); + bank.parameters + .remove("language_model.model.layers.0.linear_attn.norm.weight"); + assert!( + bank.bind(model::CompilePolicy::from_values(None, None), true, true) + .err() + .unwrap() + .contains("missing parameter") + ); + eprintln!( + "binding metadata, module recipes, all-parameter coverage, MTP norms and SSD table lifecycle exact" + ); + } + streams.clear_streams().unwrap(); +} + +impl<'a> Bind<'a> { + fn record(&mut self, name: &str) { + if self.used.insert(name.to_owned()) { + self.order.push(name.to_owned()); + } + } + fn array(&mut self, name: &str) -> Result<&'a Array, String> { + let array = self + .bank + .parameters + .get(name) + .ok_or_else(|| format!("missing parameter {name}"))?; + self.record(name); + Ok(array) + } + fn optional(&mut self, name: &str) -> Result, String> { + if self.bank.parameters.contains_key(name) { + self.array(name).map(Some) + } else { + Ok(None) + } + } + fn quantized(&mut self, name: &str) -> Result<&'a QuantizedLinear, String> { + let layer = self + .bank + .quantized + .get(name) + .ok_or_else(|| format!("missing quantized module {name}"))?; + for part in ["weight", "scales", "biases"] { + let key = name.strip_suffix(".gu").map_or_else( + || format!("{name}.{part}"), + |base| format!("{base}.gu_{part}"), + ); + self.record(&key); + } + Ok(layer) + } + fn linear(&mut self, name: &str) -> Result, String> { + if self.bank.quantized.contains_key(name) { + self.quantized(name).map(Linear::Quantized) + } else { + self.array(&format!("{name}.weight")).map(Linear::Dense) + } + } + fn hyper(&mut self, p: &str, combine: bool) -> Result, String> { + Ok(hyper::GatedResidual { + norm: self.array(&format!("{p}.hc_norm.weight"))?, + down: self.linear(&format!("{p}.input_mix_weight_down"))?, + up: self.linear(&format!("{p}.input_mix_weight_up"))?, + inject: if combine { + Some(self.linear(&format!("{p}.block_inject_weight"))?) + } else { + None + }, + pack: None, + }) + } + fn feed_forward(&mut self, p: &str) -> Result { + let mut down = None; + let input = if self.bank.quantized.contains_key(&format!("{p}.gu")) { + moe::GateUp::Fused(self.quantized(&format!("{p}.gu"))?.clone()) + } else { + let gate = self.quantized(&format!("{p}.gate_proj"))?.clone(); + // Qwen3NextMLP constructs gate/down/up; SwitchGLU gate/up/down. + if p.ends_with(".shared_expert") { + down = Some(self.quantized(&format!("{p}.down_proj"))?.clone()); + } + moe::GateUp::Separate { + gate, + up: self.quantized(&format!("{p}.up_proj"))?.clone(), + } + }; + Ok(moe::FeedForward { + input, + down: match down { + Some(down) => down, + None => self.quantized(&format!("{p}.down_proj"))?.clone(), + }, + }) + } + fn attention(&mut self, p: &str) -> Result, String> { + let c = &self.bank.config; + let fused_name = format!("{p}.qkv_fused"); + let input = if self.bank.fusions.contains_key(&fused_name) { + None // sanitize appends the fused module after the existing children. + } else { + let q = self.linear(&format!("{p}.q_proj"))?; + let qb = self.optional(&format!("{p}.q_proj.bias"))?; + let k = self.linear(&format!("{p}.k_proj"))?; + let kb = self.optional(&format!("{p}.k_proj.bias"))?; + let v = self.linear(&format!("{p}.v_proj"))?; + let vb = self.optional(&format!("{p}.v_proj.bias"))?; + Some(qsa_attention::Input::Separate([q, k, v], [qb, kb, vb])) + }; + let output = self.linear(&format!("{p}.o_proj"))?; + let output_bias = self.optional(&format!("{p}.o_proj.bias"))?; + let q_norm = self.array(&format!("{p}.q_norm.weight"))?; + let k_norm = self.array(&format!("{p}.k_norm.weight"))?; + let r = self.bank.rope.get(p).ok_or("missing attention RoPE")?; + let indexer = if c.indexer_n_heads > 0 { + let ip = format!("{p}.indexer"); + let r = self.bank.rope.get(&ip).ok_or("missing indexer RoPE")?; + Some(qsa_indexer::Indexer { + projection: if self + .bank + .fusions + .get(&fused_name) + .is_some_and(|f| f.splits.len() == 3) + { + None + } else { + Some(self.linear(&format!("{ip}.index_qk_proj"))?) + }, + heads: c.indexer_n_heads, + kv_heads: c.indexer_kv_heads, + head_dim: c.indexer_head_dim, + block_topk: c.indexer_budget / c.indexer_compress_ratio, + ratio: c.indexer_compress_ratio, + q_norm: self.array(&format!("{ip}.q_layernorm.weight"))?, + k_norm: self.array(&format!("{ip}.k_layernorm.weight"))?, + inv_freq: &r.frequency, + eps: c.rms_norm_eps, + scaling: r.scaling, + scratch: 32 * 1024 * 1024, + compiled: None, + }) + } else { + None + }; + let input = match input { + Some(input) => input, + None => qsa_attention::Input::Fused( + self.linear(&fused_name)?, + &self.bank.fusions[&fused_name].splits, + ), + }; + Ok(qsa_attention::Attention { + input, + output, + output_bias, + heads: c.num_attention_heads, + kv_heads: c.num_key_value_heads, + dim: c.head_dim, + eps: c.rms_norm_eps as f32, + scale: (c.head_dim as f64).powf(-0.5), + q_norm, + k_norm, + inv_freq: &r.frequency, + rope_scaling: r.scaling, + mrope_axes: r.axes.as_ref(), + indexer, + }) + } + fn decoder( + &mut self, + p: &str, + linear: bool, + has_ple: bool, + ) -> Result, String> { + let c = &self.bank.config; + let attention = if linear { + let p = format!("{p}.linear_attn"); + let conv = self.array(&format!("{p}.conv1d.weight"))?; + let f = self.bank.fusions.get(&format!("{p}.in_proj_fused")); + let input = if f.is_some() { + None + } else { + Some(gdn::InputProjections::Separate([ + self.quantized(&format!("{p}.in_proj_qkv"))?, + self.quantized(&format!("{p}.in_proj_z"))?, + self.quantized(&format!("{p}.in_proj_b"))?, + self.quantized(&format!("{p}.in_proj_a"))?, + ])) + }; + let dt_bias = self.array(&format!("{p}.dt_bias"))?; + let a_log = self.array(&format!("{p}.A_log"))?; + let norm = self.array(&format!("{p}.norm.weight"))?; + let output = self.quantized(&format!("{p}.out_proj"))?; + let input = match input { + Some(input) => input, + None => gdn::InputProjections::Fused( + self.quantized(&format!("{p}.in_proj_fused"))?, + f.unwrap() + .splits + .as_slice() + .try_into() + .map_err(|_| "invalid GDN splits")?, + ), + }; + decoder::Attention::Linear(gdn::Weights { + input, + output, + conv, + a_log, + dt_bias, + norm, + }) + } else { + decoder::Attention::Qsa(Box::new(self.attention(&format!("{p}.self_attn"))?)) + }; + let mlp = moe::SparseMoe { + router: self.quantized(&format!("{p}.mlp.gate"))?.clone(), + experts: self.feed_forward(&format!("{p}.mlp.switch_mlp"))?, + shared: self.feed_forward(&format!("{p}.mlp.shared_expert"))?, + shared_gate: self + .quantized(&format!("{p}.mlp.shared_expert_gate"))? + .clone(), + topk: c.num_experts_per_tok, + normalize: c.norm_topk_prob, + fused_decode: self.fused_moe_decode, + fused_verify: self.fused_moe_verify, + }; + let attn_hyper = self.hyper(&format!("{p}.attn_hyper_connection"), true)?; + let mlp_hyper = self.hyper(&format!("{p}.mlp_hyper_connection"), true)?; + let ple = if has_ple { + let p = format!("{p}.ple"); + let ep = format!("{p}.ple_embedding"); + let eos = c + .eos_token_id + .as_i64() + .or_else(|| { + c.eos_token_id + .as_array() + .and_then(|a| a.first()) + .and_then(serde_json::Value::as_i64) + }) + .unwrap_or(0); + Some(ple::Ple { + embedding: ngram_stage::Embedding::new( + ngram::GpuHash { + multipliers: self.array(&format!("{ep}.layer_multipliers"))?, + sizes: self.array(&format!("{ep}.ngram_heads_vocab_sizes"))?, + offsets: self.array(&format!("{ep}.ngram_heads_offsets"))?, + eos, + }, + ngram::Table { + resident: None, + sidecar: None, + weight: self + .optional(&format!("{ep}.ngram_embedding.weight"))? + .cloned(), + prefer_lazy: false, + sidecar_mode: c.ngram_sidecar, + dim: 160, + }, + ), + projection: ple::Projection { + key: self.linear(&format!("{p}.key_proj"))?, + value: self.linear(&format!("{p}.value_proj"))?, + norm_key: self.array(&format!("{p}.norm_key.weight"))?, + norm_query: self.array(&format!("{p}.norm_query.weight"))?, + norm_conv: self.array(&format!("{p}.norm_conv.weight"))?, + conv_weight: self.array(&format!("{p}.conv_weight"))?, + }, + }) + } else { + None + }; + Ok(decoder::DecoderLayer { + attention, + mlp, + attn_hyper, + mlp_hyper, + ple, + }) + } +} diff --git a/src/engine/metal/qwen_mtplx/cache.rs b/src/engine/metal/qwen_mtplx/cache.rs new file mode 100644 index 0000000..8b25333 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/cache.rs @@ -0,0 +1,865 @@ +//! Original KVCache used by Qwen's QSACache, with lazy Full/SliceUpdate nodes. +use super::array::{Array, Dtype}; +use super::{ops, stream::Stream}; +use std::{cell::RefCell, rc::Rc}; + +/// Python aliases retain the array object, not a copy of its descriptor. +/// __setitem__ overwrites that object's descriptor; graph inputs still retain +/// the descriptor captured when their primitive was constructed. +pub(super) type ArrayObject = Rc>; + +pub(super) fn object(array: Array) -> ArrayObject { + Rc::new(RefCell::new(array)) +} + +#[derive(Default)] +pub(super) struct KvCache { + pub(super) keys: Option, + pub(super) values: Option, + pub(super) offset: i32, +} + +fn rows(input: &ArrayObject, start: i32, end: i32, stream: Stream) -> Result { + let input = input.borrow(); + let shape = input.layout().shape().to_vec(); + if shape.len() != 4 { + return Err("KV cache requires rank-four tensors".into()); + } + ops::slice( + &input, + &[0, 0, start, 0], + &[shape[0], shape[1], end, shape[3]], + &[1; 4], + stream, + ) + .map(object) +} + +impl KvCache { + pub(super) fn update_and_fetch( + &mut self, + keys: &Array, + values: &Array, + stream: Stream, + ) -> Result<(ArrayObject, ArrayObject), String> { + let ks = keys.layout().shape().to_vec(); + let vs = values.layout().shape().to_vec(); + if ks.len() != 4 || vs.len() != 4 || ks[..3] != vs[..3] || self.offset < 0 { + return Err( + "KV cache requires compatible B,H,S,D inputs and a nonnegative offset".into(), + ); + } + let prev = self.offset; + let end = prev.checked_add(ks[2]).ok_or("KV cache offset overflow")?; + if self + .keys + .as_ref() + .is_none_or(|k| end > k.borrow().layout().shape()[2]) + { + let capacity = ks[2] + .checked_add(255) + .map(|v| v / 256) + .and_then(|v| v.checked_mul(256)) + .ok_or("KV cache growth overflow")?; + let new_k = ops::zeros( + &[ks[0], ks[1], capacity, ks[3]], + keys.layout().dtype(), + stream, + )?; + let new_v = ops::zeros( + &[vs[0], vs[1], capacity, vs[3]], + values.layout().dtype(), + stream, + )?; + if self.keys.is_some() { + if prev % 256 != 0 { + self.keys = Some(rows(self.keys.as_ref().unwrap(), 0, prev, stream)?); + self.values = Some(rows( + self.values.as_ref().ok_or("KV values missing")?, + 0, + prev, + stream, + )?); + } + let grown = ops::concatenate( + &[self.keys.as_ref().unwrap().borrow().clone(), new_k], + 2, + stream, + )?; + self.keys = Some(object(grown)); + let grown = ops::concatenate( + &[ + self.values + .as_ref() + .ok_or("KV values missing")? + .borrow() + .clone(), + new_v, + ], + 2, + stream, + )?; + self.values = Some(object(grown)); + } else { + self.keys = Some(object(new_k)); + self.values = Some(object(new_v)); + } + } + self.offset = end; + let key_object = self.keys.as_ref().unwrap(); + let updated = ops::slice_update( + &key_object.borrow(), + keys, + &[0, 0, prev, 0], + &[ks[0], ks[1], end, ks[3]], + &[1; 4], + stream, + )?; + *key_object.borrow_mut() = updated; + let value_object = self.values.as_ref().ok_or("KV values missing")?; + let updated = ops::slice_update( + &value_object.borrow(), + values, + &[0, 0, prev, 0], + &[vs[0], vs[1], end, vs[3]], + &[1; 4], + stream, + )?; + *value_object.borrow_mut() = updated; + // update_and_fetch always creates slice objects, even at capacity. + Ok(( + rows(key_object, 0, end, stream)?, + rows(value_object, 0, end, stream)?, + )) + } + + pub(super) fn state(&self, stream: Stream) -> Result<(ArrayObject, ArrayObject), String> { + let keys = self.keys.as_ref().ok_or("KV cache is empty")?; + let values = self.values.as_ref().ok_or("KV values missing")?; + if self.offset == keys.borrow().layout().shape()[2] { + Ok((keys.clone(), values.clone())) + } else { + Ok(( + rows(keys, 0, self.offset, stream)?, + rows(values, 0, self.offset, stream)?, + )) + } + } + + pub(super) fn set_state( + &mut self, + keys: ArrayObject, + values: ArrayObject, + ) -> Result<(), String> { + let ks = keys.borrow().layout().shape().to_vec(); + let vs = values.borrow().layout().shape().to_vec(); + if ks.len() != 4 || vs.len() != 4 || ks[..3] != vs[..3] { + return Err("KV cache state requires compatible rank-four tensors".into()); + } + self.offset = ks[2]; + self.keys = Some(keys); + self.values = Some(values); + Ok(()) + } + + pub(super) fn trim(&mut self, n: i32) -> i32 { + let n = self.offset.min(n); + self.offset -= n; + n + } +} + +/// Qwen's positional raw/pooled cache, not an append-only indexer log. +pub(super) struct QsaCache { + pub(super) kv: KvCache, + pub(super) ratio: i32, + pub(super) raw_keys: Option, + pub(super) pooled: Option, + pub(super) pooled_len: i32, + pub(super) pooled_f32_t: Option, + reserved_raw_capacity: i32, + reserved_pooled_capacity: i32, +} + +fn set_slice( + target: &ArrayObject, + update: &Array, + start: &[i32], + end: &[i32], + stream: Stream, +) -> Result<(), String> { + let updated = ops::slice_update( + &target.borrow(), + update, + start, + end, + &vec![1; start.len()], + stream, + )?; + *target.borrow_mut() = updated; + Ok(()) +} + +fn index_capacity(a: &Option) -> i32 { + a.as_ref().map_or(0, |a| a.borrow().layout().shape()[1]) +} + +fn grow_index( + old: &Option, + cap: i32, + dim: i32, + dtype: Dtype, + stream: Stream, +) -> Result { + let grown = object(ops::zeros(&[1, cap, dim], dtype, stream)?); + if let Some(old) = old { + let old = old.borrow(); + set_slice(&grown, &old, &[0, 0, 0], old.layout().shape(), stream)?; + } + Ok(grown) +} + +fn index_view(a: &ArrayObject, end: i32, stream: Stream) -> Result { + let a = a.borrow(); + let dim = a.layout().shape()[2]; + ops::slice(&a, &[0, 0, 0], &[1, end, dim], &[1; 3], stream).map(object) +} + +fn transposed_f32(a: &Array, stream: Stream) -> Result { + ops::expand_dims( + &ops::transpose( + &ops::astype(a, Dtype::F32, false, stream)?, + &[0, 2, 1], + stream, + )?, + &[1], + stream, + ) +} + +impl QsaCache { + pub(super) fn new(ratio: i32) -> Self { + Self { + kv: KvCache::default(), + ratio: ratio.max(1), + raw_keys: None, + pooled: None, + pooled_len: 0, + pooled_f32_t: None, + reserved_raw_capacity: 0, + reserved_pooled_capacity: 0, + } + } + + fn grown_cap(end: i32, current: i32) -> Result { + let aligned = (i64::from(end) + 255) / 256 * 256; + i32::try_from(aligned.max(2 * i64::from(current))) + .map_err(|_| "QSA growth exceeds array dimension range".into()) + } + + pub(super) fn write_raw(&mut self, keys: &Array, stream: Stream) -> Result<(), String> { + let shape = keys.layout().shape().to_vec(); + if shape.len() != 3 || shape[0] != 1 || self.kv.offset < 0 { + return Err("QSA raw keys require [1,S,D] and a nonnegative frontier".into()); + } + let start = self.kv.offset; + let end = start + .checked_add(shape[1]) + .ok_or("QSA raw frontier overflow")?; + let current = index_capacity(&self.raw_keys); + if self.raw_keys.is_none() || end > current { + let cap = Self::grown_cap(end, current)?.max(self.reserved_raw_capacity); + self.raw_keys = Some(grow_index( + &self.raw_keys, + cap, + shape[2], + keys.layout().dtype(), + stream, + )?); + } + set_slice( + self.raw_keys.as_ref().unwrap(), + keys, + &[0, start, 0], + &[1, end, shape[2]], + stream, + ) + } + + pub(super) fn write_pooled( + &mut self, + blocks: &Array, + start: i32, + total: i32, + stream: Stream, + ) -> Result<(), String> { + let shape = blocks.layout().shape().to_vec(); + if shape.len() != 3 + || shape[0] != 1 + || start < 0 + || total < start + || shape[1] != total - start + { + return Err("QSA pooled blocks require [1,total-start,D] and a valid frontier".into()); + } + let current = index_capacity(&self.pooled); + if self.pooled.is_none() || total > current { + let cap = Self::grown_cap(total, current)?.max(self.reserved_pooled_capacity); + self.pooled = Some(grow_index( + &self.pooled, + cap, + shape[2], + blocks.layout().dtype(), + stream, + )?); + } + let pooled = self.pooled.as_ref().unwrap(); + set_slice( + pooled, + blocks, + &[0, start, 0], + &[1, total, shape[2]], + stream, + )?; + let cap = pooled.borrow().layout().shape()[1]; + if self.pooled_f32_t.is_none() { + self.pooled_f32_t = Some(object(transposed_f32(&pooled.borrow(), stream)?)); + } else { + let old_cap = self + .pooled_f32_t + .as_ref() + .unwrap() + .borrow() + .layout() + .shape()[3]; + if old_cap < cap { + let grown = object(ops::zeros(&[1, 1, shape[2], cap], Dtype::F32, stream)?); + set_slice( + &grown, + &self.pooled_f32_t.as_ref().unwrap().borrow(), + &[0; 4], + &[1, 1, shape[2], old_cap], + stream, + )?; + self.pooled_f32_t = Some(grown); + } + set_slice( + self.pooled_f32_t.as_ref().unwrap(), + &transposed_f32(blocks, stream)?, + &[0, 0, 0, start], + &[1, 1, shape[2], total], + stream, + )?; + } + self.pooled_len = total; + Ok(()) + } + + pub(super) fn pooled_f32_view( + &mut self, + nb: i32, + stream: Stream, + ) -> Result { + if self + .pooled_f32_t + .as_ref() + .is_none_or(|a| a.borrow().layout().shape()[3] < nb) + { + self.pooled_f32_t = Some(object(transposed_f32( + &self + .pooled + .as_ref() + .ok_or("QSA mirror requires pooled keys")? + .borrow(), + stream, + )?)); + } + let mirror = self.pooled_f32_t.as_ref().unwrap().borrow(); + let dim = mirror.layout().shape()[2]; + ops::slice(&mirror, &[0; 4], &[1, 1, dim, nb], &[1; 4], stream).map(object) + } + + pub(super) fn reserve_indexer_capacity( + &mut self, + raw: i32, + pooled: i32, + stream: Stream, + ) -> Result<(), String> { + if raw < 0 || pooled < 0 { + return Err("QSA reserved capacities must be non-negative".into()); + } + let raw_existing = index_capacity(&self.raw_keys); + let pooled_existing = index_capacity(&self.pooled); + let raw_target = raw.max(raw_existing).max(self.reserved_raw_capacity); + let pooled_target = pooled + .max(pooled_existing) + .max(self.reserved_pooled_capacity); + if raw_target < self.kv.offset || pooled_target < self.pooled_len { + return Err("QSA reservation cannot truncate the live frontier".into()); + } + self.reserved_raw_capacity = raw_target; + self.reserved_pooled_capacity = pooled_target; + if let Some(a) = &self.raw_keys + && raw_target > raw_existing + { + let (dim, dtype) = { + let a = a.borrow(); + let l = a.layout(); + (l.shape()[2], l.dtype()) + }; + self.raw_keys = Some(grow_index(&self.raw_keys, raw_target, dim, dtype, stream)?); + } + if let Some(a) = &self.pooled + && pooled_target > pooled_existing + { + let (dim, dtype) = { + let a = a.borrow(); + let l = a.layout(); + (l.shape()[2], l.dtype()) + }; + self.pooled = Some(grow_index(&self.pooled, pooled_target, dim, dtype, stream)?); + } + // reserve does not grow or discard the derived mirror in MTPLX. + Ok(()) + } + + pub(super) fn trim(&mut self, n: i32) -> i32 { + let trimmed = self.kv.trim(n); + self.pooled_len = self.pooled_len.min(self.kv.offset.div_euclid(self.ratio)); + trimmed + } + + /// QSAIndexer::_ensure_compiled_backings and its original replay buckets. + pub(super) fn ensure_compiled_backings( + &mut self, + dtype: Dtype, + pos: i32, + rows: i32, + dim: i32, + stream: Stream, + ) -> Result<(ArrayObject, ArrayObject), String> { + if pos < 0 || rows < 0 { + return Err("QSA replay positions must be non-negative".into()); + } + let end = i64::from(pos) + i64::from(rows); + let ratio = i64::from(self.ratio); + let staging = (i64::from(rows) + ratio - 1) / ratio; + let bucket = |n: i64| -> Result { + if n == 0 { + return Ok(0); + } + let n = u32::try_from(n).map_err(|_| "QSA replay capacity overflow")?; + n.max(256) + .checked_next_power_of_two() + .and_then(|n| i32::try_from(n).ok()) + .ok_or_else(|| "QSA replay capacity exceeds array dimension range".into()) + }; + let raw_existing = index_capacity(&self.raw_keys).max(self.reserved_raw_capacity); + let pooled_existing = index_capacity(&self.pooled).max(self.reserved_pooled_capacity); + let raw_cap = bucket(i64::from(raw_existing).max(end).max(staging * ratio))?; + let pooled_cap = bucket( + 1_i64 + .max(end / ratio) + .max(i64::from(pooled_existing)) + .max(staging), + )?; + self.reserve_indexer_capacity(raw_cap, pooled_cap, stream)?; + if self.raw_keys.is_none() { + self.raw_keys = Some(object(ops::zeros( + &[1, self.reserved_raw_capacity, dim], + dtype, + stream, + )?)); + } + if self.pooled.is_none() { + self.pooled = Some(object(ops::zeros( + &[1, self.reserved_pooled_capacity, dim], + dtype, + stream, + )?)); + } + Ok(( + self.raw_keys.as_ref().unwrap().clone(), + self.pooled.as_ref().unwrap().clone(), + )) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn nbytes(&self) -> usize { + // Original public accounting excludes the derived FP32 mirror. + [&self.kv.keys, &self.kv.values, &self.raw_keys, &self.pooled] + .iter() + .filter_map(|a| a.as_ref()) + .map(|a| a.borrow().layout().nbytes()) + .sum() + } + + pub(super) fn state(&self, stream: Stream) -> Result<[Option; 4], String> { + let off = self.kv.offset; + let nb = self.pooled_len.min(off.div_euclid(self.ratio)); + let raw = self + .raw_keys + .as_ref() + .map(|a| index_view(a, off, stream)) + .transpose()?; + let pooled = if nb == 0 { + None + } else { + self.pooled + .as_ref() + .map(|a| index_view(a, nb, stream)) + .transpose()? + }; + let (keys, values) = self.kv.state(stream)?; + Ok([Some(keys), Some(values), raw, pooled]) + } + + pub(super) fn set_state(&mut self, state: &[Option]) -> Result<(), String> { + let [keys, values, raw, pooled] = state else { + return Err("QSACache.state requires four leaves".into()); + }; + self.kv.set_state( + keys.as_ref().ok_or("QSA state keys missing")?.clone(), + values.as_ref().ok_or("QSA state values missing")?.clone(), + )?; + self.raw_keys = raw.clone(); + self.pooled = pooled.clone(); + self.pooled_len = index_capacity(&self.pooled); + self.pooled_f32_t = None; + self.reserved_raw_capacity = index_capacity(&self.raw_keys); + self.reserved_pooled_capacity = index_capacity(&self.pooled); + Ok(()) + } +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX positional cache, mirror and held state aliases"] +fn mtplx_qsa_cache_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-cache-graph.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 16); + for case in &cases { + super::eval::execution_tests::observed(|| { + let ratio = case["ratio"].as_i64().unwrap() as i32; + let dim = case["dim"].as_i64().unwrap() as i32; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let deferred = case["deferred"].as_bool().unwrap(); + let source = |shape: &[i32], salt: u32, strided: bool| { + let mut physical = shape.to_vec(); + let mult = if strided { 2 } else { 1 }; + *physical.last_mut().unwrap() *= mult; + let n = physical.iter().product::(); + let a = Array::new(&[n], Dtype::BF16, pattern(n as u32, salt)).unwrap(); + let a = ops::reshape(&ops::astype(&a, dtype, false, gpu).unwrap(), &physical, gpu) + .unwrap(); + if strided { + let mut steps = vec![1; physical.len()]; + *steps.last_mut().unwrap() = 2; + ops::slice(&a, &vec![0; physical.len()], &physical, &steps, gpu).unwrap() + } else { + a + } + }; + let mut cache = QsaCache::new(ratio); + let mut outputs: Vec = Vec::new(); + let mut snapshots = Vec::new(); + for (step, action) in case["actions"].as_array().unwrap().iter().enumerate() { + let a = action["a"].as_i64().unwrap() as i32; + let b = action["b"].as_i64().unwrap() as i32; + match action["action"].as_str().unwrap() { + "reserve" => cache.reserve_indexer_capacity(a, b, gpu).unwrap(), + "append" => { + let total = cache.kv.offset + a; + cache + .write_raw( + &source(&[1, a, dim], 140 + step as u32 * 3, step % 2 == 1), + gpu, + ) + .unwrap(); + let old = cache.pooled_len.min(total / ratio); + if total / ratio > old { + cache + .write_pooled( + &source( + &[1, total / ratio - old, dim], + 141 + step as u32 * 3, + step % 2 == 1, + ), + old, + total / ratio, + gpu, + ) + .unwrap(); + } + cache + .kv + .update_and_fetch( + &ops::transpose( + &source(&[1, a, 2, 256], 142 + step as u32 * 3, false), + &[0, 2, 1, 3], + gpu, + ) + .unwrap(), + &ops::transpose( + &source(&[1, a, 2, 256], 143 + step as u32 * 3, false), + &[0, 2, 1, 3], + gpu, + ) + .unwrap(), + gpu, + ) + .unwrap(); + } + "snapshot" => snapshots.push(cache.state(gpu).unwrap()), + "trim" => assert_eq!( + i64::from(cache.trim(a)), + action["trimmed"].as_i64().unwrap() + ), + "restore" => cache.set_state(&snapshots[a as usize]).unwrap(), + "view" => { + if cache.pooled.is_some() { + outputs.push(cache.pooled_f32_view(cache.pooled_len, gpu).unwrap()); + } + } + "ensure" => { + let (raw, pooled) = cache + .ensure_compiled_backings(dtype, cache.kv.offset, a, dim, gpu) + .unwrap(); + assert!(Rc::ptr_eq(&raw, cache.raw_keys.as_ref().unwrap())); + assert!(Rc::ptr_eq(&pooled, cache.pooled.as_ref().unwrap())); + } + _ => unreachable!(), + } + let mut current = vec![ + cache.kv.keys.clone(), + cache.kv.values.clone(), + cache.raw_keys.clone(), + cache.pooled.clone(), + cache.pooled_f32_t.clone(), + ]; + let caps = current + .iter() + .zip([2, 2, 1, 1, 3]) + .map(|(v, axis)| v.as_ref().map_or(0, |a| a.borrow().layout().shape()[axis])) + .collect::>(); + assert_eq!( + serde_json::json!(caps), + action["capacities"], + "{} step{step}", + case["kernel"] + ); + assert_eq!( + i64::from(cache.kv.offset), + action["offset"].as_i64().unwrap() + ); + assert_eq!( + i64::from(cache.pooled_len), + action["pooled_len"].as_i64().unwrap() + ); + assert_eq!(cache.nbytes() as u64, action["nbytes"].as_u64().unwrap()); + assert_eq!( + serde_json::json!([ + cache.reserved_raw_capacity, + cache.reserved_pooled_capacity + ]), + action["reserved"] + ); + if cache.kv.keys.is_some() { + current.extend(cache.state(gpu).unwrap()); + } + outputs.extend(current.into_iter().flatten()); + if !deferred { + let roots = outputs + .iter() + .map(|a| a.borrow().clone()) + .collect::>(); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + } + } + let roots = outputs + .iter() + .map(|a| a.borrow().clone()) + .collect::>(); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + assert_eq!(roots.len(), case["shapes"].as_array().unwrap().len()); + let mut readback = Vec::new(); + for (i, out) in roots.iter().enumerate() { + assert_eq!(serde_json::json!(out.layout().shape()), case["shapes"][i]); + let read = ops::contiguous( + &ops::astype(out, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + readback.push(read); + } + let buffers = readback.iter().map(|a| a.buffer()).collect::>(); + let data = buffers + .iter() + .zip(readback.iter()) + .map(|(b, a)| (&**b, a.layout().size() as u32, 4)) + .collect::>(); + verify_typed(case["kernel"].as_str().unwrap(), &data); + }); + } + let mut cache = QsaCache::new(0); + assert_eq!(cache.ratio, 1); + assert!(cache.state(gpu).is_err()); + assert!(cache.set_state(&[]).is_err()); + assert!(cache.reserve_indexer_capacity(-1, 0, gpu).is_err()); + cache.kv.offset = 5; + assert!(cache.reserve_indexer_capacity(4, 0, gpu).is_err()); + cache.pooled_len = 3; + assert!(cache.reserve_indexer_capacity(5, 2, gpu).is_err()); + assert_eq!( + (cache.reserved_raw_capacity, cache.reserved_pooled_capacity), + (0, 0) + ); +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX KVCache growth, trim and state receipts"] +fn mtplx_kv_cache_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{ + allocator, + array::Dtype, + configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-kv-cache-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 12); + for case in cases { + super::eval::execution_tests::observed(|| { + let mut cache = KvCache::default(); + let mut outputs = Vec::new(); + let mut snapshots: Vec<(ArrayObject, ArrayObject)> = Vec::new(); + for (step, action) in case["actions"].as_array().unwrap().iter().enumerate() { + let n = action["n"].as_i64().unwrap() as i32; + match action["action"].as_str().unwrap() { + "trim" => assert_eq!( + i64::from(cache.trim(n)), + action["trimmed"].as_i64().unwrap() + ), + "restore" => cache + .set_state(snapshots[0].0.clone(), snapshots[0].1.clone()) + .unwrap(), + "append" => { + let input = |salt| { + let a = Array::new( + &[1, n, 2, 256], + Dtype::BF16, + pattern((n * 2 * 256) as u32, salt), + ) + .unwrap(); + ops::transpose(&a, &[0, 2, 1, 3], gpu).unwrap() + }; + let state = cache + .update_and_fetch( + &input(104 + step as u32 * 2), + &input(105 + step as u32 * 2), + gpu, + ) + .unwrap(); + let current = [ + state.0.clone(), + state.1.clone(), + cache.keys.as_ref().unwrap().clone(), + cache.values.as_ref().unwrap().clone(), + ]; + if !case["deferred"].as_bool().unwrap() { + ops::evaluate( + &streams, + ¤t + .iter() + .map(|a| a.borrow().clone()) + .collect::>(), + gpu, + false, + ) + .unwrap(); + } + outputs.extend(current); + snapshots.push(state); + assert_eq!( + i64::from(cache.keys.as_ref().unwrap().borrow().layout().shape()[2]), + action["capacity"].as_i64().unwrap() + ); + } + _ => unreachable!(), + } + assert_eq!(i64::from(cache.offset), action["offset"].as_i64().unwrap()); + } + ops::evaluate( + &streams, + &outputs + .iter() + .map(|a| a.borrow().clone()) + .collect::>(), + gpu, + false, + ) + .unwrap(); + { + let state = cache.state(gpu).unwrap(); + assert_eq!(state.0.borrow().layout().shape()[2], cache.offset); + assert_eq!( + Rc::ptr_eq(&state.0, cache.keys.as_ref().unwrap()), + cache.offset == cache.keys.as_ref().unwrap().borrow().layout().shape()[2] + ); + } + let f32 = outputs + .iter() + // Receipt readback, like numpy's logical C-order export. + // Full-slice replacement can retain transposed contiguous KV. + .map(|a| { + ops::contiguous( + &ops::astype(&a.borrow(), Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &f32, gpu, false).unwrap(); + let buffers = f32.iter().map(Array::buffer).collect::>(); + let typed = buffers + .iter() + .zip(&f32) + .map(|(b, a)| (&**b, a.layout().size() as u32, 4)) + .collect::>(); + verify_typed(case["kernel"].as_str().unwrap(), &typed); + }); + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/compile_graph.rs b/src/engine/metal/qwen_mtplx/compile_graph.rs new file mode 100644 index 0000000..fb67710 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/compile_graph.rs @@ -0,0 +1,807 @@ +//! Pinned compile.cpp: DFS/parents, available-scalar coalescing and three +//! depth-one CSE passes, then original fusion boundaries and Compiled lowering. +//! Rebuild descriptors, never mutate captured model data. +use super::array::{Array, Dtype}; +use super::ops::Operation; +use std::collections::{HashMap, HashSet}; +use std::rc::Rc; + +struct Node { + array: Array, + inputs: Vec, +} + +struct Tape { + nodes: HashMap, + order: Vec, + parents: HashMap>, + outputs: HashSet, +} + +impl Tape { + /// compile.cpp::split_one: only parents already in the candidate section + /// move to the new Broadcast descriptor. Other consumers keep the view. + fn split_broadcast(&mut self, id: usize, section: &HashSet) -> Result { + let n = &self.nodes[&id]; + let inputs = n.inputs.clone(); + let args = inputs + .iter() + .map(|id| self.nodes[id].array.clone()) + .collect::>(); + let a = Array::make_shared_operations( + n.array.stream().unwrap(), + &args, + &[n.array.layout().clone()], + n.array.operation().unwrap(), + )? + .remove(0); + let split = a.id(); + self.nodes.insert(split, Node { array: a, inputs }); + let mut moved = Vec::new(); + self.parents + .get_mut(&id) + .unwrap() + .retain(|&(parent, index)| { + if section.contains(&parent) { + self.nodes.get_mut(&parent).unwrap().inputs[index] = split; + moved.push((parent, index)); + false + } else { + true + } + }); + self.parents.insert(split, moved); + Ok(split) + } + + fn collect_fusable( + &mut self, + id: usize, + depth: usize, + stream: super::stream::Stream, + shape: &[i32], + section: &mut HashSet, + candidates: &mut HashSet, + ) -> Result<(), String> { + if section.contains(&id) { + return Ok(()); + } + let a = &self.nodes[&id].array; + let op = a.operation(); + if depth >= 11 + || op + .as_ref() + .is_none_or(|p| super::fused::operator(p).is_none()) + || a.stream() != Some(stream) + || (self.outputs.contains(&id) && a.layout().shape() != shape) + { + candidates.insert(id); + return Ok(()); + } + if depth > 0 && !self.parents[&id].iter().all(|(p, _)| section.contains(p)) { + if matches!(&**op.as_ref().unwrap(), Operation::Broadcast) && candidates.len() < 24 { + let split = self.split_broadcast(id, section)?; + self.collect_fusable(split, depth, stream, shape, section, candidates)?; + } else { + candidates.insert(id); + } + return Ok(()); + } + if self.outputs.contains(&id) { + candidates.insert(id); + } else { + candidates.remove(&id); + } + if candidates.len() >= 24 { + return Ok(()); + } + section.insert(id); + for input in self.nodes[&id].inputs.clone() { + self.collect_fusable(input, depth + 1, stream, shape, section, candidates)?; + } + Ok(()) + } + + fn fused_tape(&self, root: usize, section: &HashSet) -> (Vec, Vec) { + let mut inputs = Vec::new(); + let mut seen_inputs = HashSet::new(); + let mut tape = Vec::new(); + let mut seen = HashSet::new(); + let mut stack = vec![(root, false)]; + while let Some((id, expanded)) = stack.pop() { + if !section.contains(&id) { + if seen_inputs.insert(id) { + inputs.push(id); + } + } else if expanded { + tape.push(id); + } else if seen.insert(id) { + stack.push((id, true)); + stack.extend(self.nodes[&id].inputs.iter().rev().map(|&i| (i, false))); + } + } + (inputs, tape) + } + + fn fuse(&mut self, inputs: &[Array], outputs: &[Array]) -> Result, String> { + let input_ids = inputs.iter().map(Array::id).collect::>(); + let mut output_map = outputs + .iter() + .map(|a| (a.id(), a.clone())) + .collect::>(); + let mut keep = Vec::new(); + let mut global = HashSet::new(); + for root in self.order.clone().into_iter().rev() { + if global.contains(&root) { + continue; + } + let a = &self.nodes[&root].array; + let mut section = HashSet::new(); + if a.operation() + .is_some_and(|p| !matches!(&*p, Operation::Broadcast)) + { + let stream = a.stream().unwrap(); + let shape = a.layout().shape().to_vec(); + self.collect_fusable(root, 0, stream, &shape, &mut section, &mut HashSet::new())?; + } + if section.len() <= 1 { + keep.push(root); + continue; + } + let (inputs, tape) = self.fused_tape(root, §ion); + let mut old_outputs = Vec::new(); + for &id in &tape[..tape.len() - 1] { + if self.outputs.contains(&id) { + old_outputs.push(id); + self.parents + .entry(id) + .or_default() + .retain(|(p, _)| !section.contains(p)); + } else { + self.parents.remove(&id); + } + global.insert(id); + } + old_outputs.push(root); + let layouts = old_outputs + .iter() + .map(|id| self.nodes[id].array.layout().clone()) + .collect::>(); + if layouts + .iter() + .any(|l| l.shape() != layouts.last().unwrap().shape()) + { + return Err("compilation tried to fuse different output shapes".into()); + } + let args = inputs + .iter() + .map(|id| self.nodes[id].array.clone()) + .collect::>(); + let constants = args + .iter() + .map(|a| { + a.layout().size() == 1 + && a.operation().is_none() + && !input_ids.contains(&a.id()) + }) + .collect::>(); + let slots = inputs + .iter() + .chain(&tape) + .enumerate() + .map(|(i, &id)| (id, i)) + .collect::>(); + let statements = tape + .iter() + .map(|id| { + let node = &self.nodes[id]; + super::fused::Statement { + dtype: node.array.layout().dtype(), + operator: super::fused::operator(&node.array.operation().unwrap()).unwrap(), + inputs: node.inputs.iter().map(|i| slots[i]).collect(), + } + }) + .collect(); + let expr = super::fused::Expression::new( + &args, + statements, + old_outputs.iter().map(|id| slots[id]).collect(), + &constants, + )?; + let new = Array::make_operations( + self.nodes[&root].array.stream().unwrap(), + &args, + &layouts, + Operation::Compiled(expr), + )?; + keep.push(new.last().unwrap().id()); + for output in &new { + self.nodes.insert( + output.id(), + Node { + array: output.clone(), + inputs: inputs.clone(), + }, + ); + } + for (position, input) in inputs.iter().enumerate() { + let parents = self.parents.entry(*input).or_default(); + parents.retain(|(p, _)| !section.contains(p)); + parents.extend(new.iter().map(|a| (a.id(), position))); + } + for (&old, new) in old_outputs.iter().zip(new) { + self.merge_one(new.id(), old); + if let Some(output) = output_map.get_mut(&old) { + *output = new; + } + } + } + keep.reverse(); + self.order = keep; + Ok(outputs + .iter() + .map(|a| output_map[&a.id()].clone()) + .collect()) + } + + fn capture(outputs: &[Array], original: &[Array]) -> Result { + let mut tape = Self { + nodes: HashMap::new(), + order: Vec::new(), + parents: HashMap::new(), + outputs: outputs.iter().map(Array::id).collect(), + }; + let forbidden = original.iter().map(Array::id).collect::>(); + let mut seen = HashSet::new(); + let mut stack = outputs + .iter() + .rev() + .map(|a| (a.clone(), false)) + .collect::>(); + while let Some((a, expanded)) = stack.pop() { + let id = a.id(); + if forbidden.contains(&id) { + return Err("compiled function has uncaptured inputs".into()); + } + if seen.contains(&id) { + continue; + } + if expanded { + seen.extend(a.outputs().iter().map(Array::id)); + tape.order.push(id); + continue; + } + let inputs = a.inputs().iter().map(Array::id).collect::>(); + // Reference registers the visited output first, then its siblings, + // before descending into its inputs (not sorted by array id). + let siblings = a.siblings(); + for (position, &input) in inputs.iter().enumerate() { + let parents = tape.parents.entry(input).or_default(); + parents.push((id, position)); + parents.extend(siblings.iter().map(|s| (s.id(), position))); + } + for output in a.outputs() { + tape.nodes.insert( + output.id(), + Node { + array: output, + inputs: inputs.clone(), + }, + ); + } + stack.push((a.clone(), true)); + stack.extend(a.inputs().iter().rev().map(|i| (i.clone(), false))); + } + Ok(tape) + } + + fn merge_one(&mut self, dst: usize, src: usize) { + let Some(parents) = self.parents.remove(&src) else { + return; + }; + for &(parent, index) in &parents { + self.nodes.get_mut(&parent).unwrap().inputs[index] = dst; + } + let pairs = self.parents.entry(dst).or_default(); + pairs.extend(parents); + pairs.retain(|&(parent, _)| parent != src); + } + + fn merge(&mut self, dst: usize, src: usize) { + let dst = self.nodes[&dst].array.outputs(); + let src = self.nodes[&src].array.outputs(); + for (dst, src) in dst.iter().zip(src.iter()) { + self.merge_one(dst.id(), src.id()); + } + } + + fn scalars(&mut self) -> Result<(), String> { + let mut scalars = HashMap::<(u64, Dtype), usize>::new(); + let mut keep = Vec::new(); + for id in self.order.clone() { + let a = &self.nodes[&id].array; + if a.is_available()? && a.layout().shape().is_empty() && a.has_data() { + let dtype = a.layout().dtype(); + let mut bits = [0; 8]; + a.buffer().read(a.offset(), &mut bits[..dtype.itemsize()])?; + let dst = *scalars + .entry((u64::from_le_bytes(bits), dtype)) + .or_insert(id); + if dst != id { + self.merge(dst, id); + continue; + } + } + keep.push(id); + } + self.order = keep; + Ok(()) + } + + fn equivalent(&self, a: usize, b: usize) -> bool { + let a = &self.nodes[&a]; + let b = &self.nodes[&b]; + let (Some(pa), Some(pb)) = (a.array.operation(), b.array.operation()) else { + return false; + }; + // The original explicitly excludes identical primitive pointers and + // does not compare streams at this stage. Fusion checks streams later. + !Rc::ptr_eq(&pa, &pb) + && a.inputs == b.inputs + && equivalent_operation(&pa, &pb, &a.array, &b.array) + } + + fn merge_parents(&mut self, id: usize, order: &HashMap) -> bool { + let Some(parents) = self.parents.get(&id).cloned() else { + return !self.outputs.contains(&id); + }; + let mut mask = vec![false; parents.len()]; + let groups = if parents.len() > 100 { + // Same high-fanout grouping as VecU64Hash, using Rust's native + // hash table. Binary/unary variants are distinguished by the + // final equivalence check, including their primitive parameters. + let mut groups = HashMap::new(); + for (i, &(parent, _)) in parents.iter().enumerate() { + let node = &self.nodes[&parent]; + let op = node.array.operation().unwrap(); + groups + .entry((node.inputs.clone(), std::mem::discriminant(&*op))) + .or_insert_with(Vec::new) + .push(i); + } + groups.into_values().collect::>() + } else { + vec![(0..parents.len()).collect()] + }; + for group in groups { + for (i, &left) in group.iter().enumerate() { + if mask[left] { + continue; + } + for &right in &group[i + 1..] { + if mask[right] { + continue; + } + let (mut dst, mut src) = (left, right); + if order.get(&parents[src].0).copied().unwrap_or(0) + < order.get(&parents[dst].0).copied().unwrap_or(0) + { + std::mem::swap(&mut dst, &mut src); + } + let (dst_id, src_id) = (parents[dst].0, parents[src].0); + if src_id != dst_id + && !self.outputs.contains(&src_id) + && self.equivalent(src_id, dst_id) + { + self.merge(dst_id, src_id); + mask[src] = true; + } + } + } + } + let pairs = self.parents.get_mut(&id).unwrap(); + let mut i = 0; + pairs.retain(|_| { + let keep = !mask[i]; + i += 1; + keep + }); + false + } + + fn simplify(&mut self) -> Result<(), String> { + self.scalars()?; + // Copy/StopGradient are absent from this inference graph API: their + // no-op contract is represented by returning the input descriptor. + let order = self + .order + .iter() + .enumerate() + .map(|(i, &id)| (id, i)) + .collect(); + for _ in 0..3 { + let mut keep = Vec::new(); + for id in self.order.clone() { + let outputs = self.nodes[&id].array.outputs(); + let mut discard = self.merge_parents(id, &order); + for sibling in outputs.iter().filter(|a| a.id() != id) { + discard &= self.merge_parents(sibling.id(), &order); + } + if !discard { + keep.push(id); + } + } + self.order = keep; + } + Ok(()) + } + + fn rebuild(&self, outputs: &[Array]) -> Result, String> { + let mut values = HashMap::::new(); + for &id in &self.order { + let node = &self.nodes[&id]; + let a = &node.array; + let Some(op) = a.operation() else { + values.insert(id, a.clone()); + continue; + }; + let args = node + .inputs + .iter() + .map(|id| { + values + .get(id) + .cloned() + .ok_or("simplified input absent from tape".into()) + }) + .collect::, String>>()?; + let old = a.outputs(); + let layouts = old.iter().map(|o| o.layout().clone()).collect::>(); + let result = Array::make_shared_operations( + a.stream().ok_or("primitive has no stream")?, + &args, + &layouts, + op, + )?; + for (old, new) in old.iter().zip(result) { + values.insert(old.id(), new); + } + } + outputs + .iter() + .map(|a| { + values + .get(&a.id()) + .cloned() + .or_else(|| a.operation().is_none().then(|| a.clone())) + .ok_or("simplified output absent from tape".into()) + }) + .collect() + } +} + +pub(super) fn simplify(outputs: &[Array], original_inputs: &[Array]) -> Result, String> { + let mut tape = Tape::capture(outputs, original_inputs)?; + tape.simplify()?; + tape.rebuild(outputs) +} + +pub(super) fn compile( + outputs: &[Array], + original_inputs: &[Array], + placeholders: &[Array], +) -> Result, String> { + let mut tape = Tape::capture(outputs, original_inputs)?; + tape.simplify()?; + let outputs = tape.fuse(placeholders, outputs)?; + tape.rebuild(&outputs) +} + +fn equivalent_operation(a: &Operation, b: &Operation, x: &Array, y: &Array) -> bool { + use Operation::*; + let same_outputs = || { + let x = x.outputs(); + let y = y.outputs(); + x.len() == y.len() + && x.iter().zip(&y).all(|(a, b)| { + a.layout().shape() == b.layout().shape() && a.layout().dtype() == b.layout().dtype() + }) + }; + match (a, b) { + (Flatten { start: a, end: b }, Flatten { start: c, end: d }) => a == c && b == d, + (Unflatten { axis: a, shape: b }, Unflatten { axis: c, shape: d }) => a == c && b == d, + (Reshape, Reshape) | (Broadcast, Broadcast) | (AsType, AsType) | (View, View) => { + same_outputs() + } + (Transpose(a), Transpose(b)) + | (ExpandDims(a), ExpandDims(b)) + | (Squeeze(a), Squeeze(b)) + | (Sum(a), Sum(b)) + | (Min(a), Min(b)) + | (Max(a), Max(b)) + | (DynamicSliceUpdate(a), DynamicSliceUpdate(b)) => a == b, + (DynamicSlice(a), DynamicSlice(b)) => a == b && same_outputs(), + ( + Slice { + starts: a, + stops: b, + steps: c, + }, + Slice { + starts: x, + stops: y, + steps: z, + }, + ) + | ( + SliceUpdate { + starts: a, + stops: b, + steps: c, + }, + SliceUpdate { + starts: x, + stops: y, + steps: z, + }, + ) => (a, b, c) == (x, y, z), + (Contiguous(a), Contiguous(b)) + | (Softmax(a), Softmax(b)) + | (SearchSorted(a), SearchSorted(b)) + | (CumsumLastF32(a), CumsumLastF32(b)) => a == b, + (RmsNorm(a), RmsNorm(b)) => a == b, + ( + SdpaVector { + scale: a, + causal: b, + }, + SdpaVector { + scale: x, + causal: y, + }, + ) => (a, b) == (x, y), + (QuantizedLinearBf16 { bits: a, group: b }, QuantizedLinearBf16 { bits: x, group: y }) + | (AffineQuantize { bits: a, group: b }, AffineQuantize { bits: x, group: y }) + | (AffineDequantize { bits: a, group: b }, AffineDequantize { bits: x, group: y }) + | ( + GatherQmmBf16 { + bits: a, group: b, .. + }, + GatherQmmBf16 { + bits: x, group: y, .. + }, + ) => (a, b) == (x, y), + ( + Sort { + axis: a, + indices: b, + kth: c, + }, + Sort { + axis: x, + indices: y, + kth: z, + }, + ) => (a, b, c) == (x, y, z), + ( + Split { + indices: a, + axis: b, + }, + Split { + indices: x, + axis: y, + }, + ) => (a, b) == (x, y), + (Unary(a), Unary(b)) => std::mem::discriminant(a) == std::mem::discriminant(b), + (Binary(a), Binary(b)) => std::mem::discriminant(a) == std::mem::discriminant(b), + (Concatenate(a), Concatenate(b)) + | (ArgMax(a), ArgMax(b)) + | (GatherAxis(a), GatherAxis(b)) + | (ScatterAxis(a), ScatterAxis(b)) + | (GatherTake(a), GatherTake(b)) => a == b, + (ArangeI32(a), ArangeI32(b)) => a == b && same_outputs(), + (ArangeF32 { start: a, step: b }, ArangeF32 { start: x, step: y }) => { + (a, b) == (x, y) && same_outputs() + } + (ArangeU32, ArangeU32) | (ArangeI64, ArangeI64) => same_outputs(), + (RandomBits, RandomBits) => same_outputs(), + (Full, Full) + | (DenseMatmul, DenseMatmul) + | (Select, Select) + | (ScatterAddRow, ScatterAddRow) + | (AllBoolContiguous, AllBoolContiguous) + | (LogSumExp, LogSumExp) + | (CummaxLastI64, CummaxLastI64) + | (CumsumLastI32, CumsumLastI32) + | (DepthwiseConv1d, DepthwiseConv1d) + | (PleConv1d, PleConv1d) + | (SiluBf16, SiluBf16) + | (SwiGluBf16, SwiGluBf16) + | (ComputeGBf16, ComputeGBf16) => true, + // CustomKernel does NOT override Primitive::is_equivalent in the + // reference. Identical shader text is not permission to merge it. + _ => false, + } +} + +#[test] +fn mtplx_compile_simplify_preserves_reference_parent_rules() { + use super::{ + binary::{Binary, binary}, + compiled::Replay, + ops, + stream::{Device, Stream}, + unary::{Unary, unary}, + }; + let stream = Stream::new(0, Device::Gpu); + let input = Array::unallocated(&[4], Dtype::F32).unwrap(); + let args = std::slice::from_ref(&input); + let body = |args: &[Array]| { + let a = unary(&args[0], Unary::Square, stream)?; + let b = unary(&args[0], Unary::Square, stream)?; + let c = unary(&a, Unary::Negative, stream)?; + let d = unary(&b, Unary::Negative, stream)?; + Ok(vec![binary(&c, &d, Binary::Add, stream)?]) + }; + let raw = Replay::trace(args, body).unwrap().run(args).unwrap(); + let merged = Replay::trace_simplified(args, body) + .unwrap() + .run(args) + .unwrap(); + assert_ne!(raw[0].inputs()[0].id(), raw[0].inputs()[1].id()); + assert_eq!(merged[0].inputs()[0].id(), merged[0].inputs()[1].id()); + let normalizers = Replay::trace_simplified(args, |args| { + let a = super::normalization::logsumexp_last(&args[0], true, stream)?; + let b = super::normalization::logsumexp_last(&args[0], true, stream)?; + Ok(vec![binary(&a, &b, Binary::Add, stream)?]) + }) + .unwrap() + .run(args) + .unwrap(); + assert_eq!( + normalizers[0].inputs()[0].id(), + normalizers[0].inputs()[1].id() + ); + // An otherwise equivalent later global output must never disappear. + let roots = Replay::trace_simplified(args, |args| { + let a = unary(&args[0], Unary::Square, stream)?; + let b = unary(&args[0], Unary::Square, stream)?; + Ok(vec![a, b]) + }) + .unwrap() + .run(args) + .unwrap(); + assert_ne!(roots[0].id(), roots[1].id()); + // Distinct raw stop parameters remain distinct even if output values and + // shapes are equal. compile_simplify compares Slice's stored parameters. + let slices = Replay::trace_simplified(args, |args| { + let a = ops::slice(&args[0], &[0], &[3], &[2], stream)?; + let b = ops::slice(&args[0], &[0], &[4], &[2], stream)?; + Ok(vec![binary(&a, &b, Binary::Add, stream)?]) + }) + .unwrap() + .run(args) + .unwrap(); + assert_ne!(slices[0].inputs()[0].id(), slices[0].inputs()[1].id()); + // Equivalent Split primitives merge all siblings in canonical order. + let split = Replay::trace_simplified(args, |args| { + let a = ops::split(&args[0], &[2], 0, stream)?; + let b = ops::split(&args[0], &[2], 0, stream)?; + Ok(vec![ + binary(&a[1], &b[1], Binary::Add, stream)?, + binary(&a[0], &b[0], Binary::Multiply, stream)?, + ]) + }) + .unwrap() + .run(args) + .unwrap(); + for root in &split { + assert_eq!(root.inputs()[0].id(), root.inputs()[1].id()); + } + // Same immutable primitive pointer must remain separate (reference rule). + let shared = Replay::trace_simplified(args, |args| { + let a = unary(&args[0], Unary::Square, stream)?; + let b = Array::make_shared_operations( + stream, + args, + &[a.layout().clone()], + a.operation().unwrap(), + )? + .remove(0); + Ok(vec![binary(&a, &b, Binary::Add, stream)?]) + }) + .unwrap() + .run(args) + .unwrap(); + assert_ne!(shared[0].inputs()[0].id(), shared[0].inputs()[1].id()); + // Exercise the original >100-parent grouping path. + let fanout = Replay::trace_simplified(args, |args| { + let mut nodes = (0..110) + .map(|_| unary(&args[0], Unary::Square, stream)) + .collect::, _>>()?; + let mut result = nodes.pop().unwrap(); + for node in nodes { + result = binary(&result, &node, Binary::Add, stream)?; + } + Ok(vec![result]) + }) + .unwrap() + .run(args) + .unwrap(); + let mut root = fanout[0].clone(); + let square = root.inputs()[1].id(); + for _ in 0..109 { + assert_eq!(root.inputs()[1].id(), square); + let next = root.inputs()[0].clone(); + root = next; + } + assert_eq!(root.id(), square); + assert!(Replay::trace_simplified(args, |_| Ok(vec![input.clone()])).is_err()); +} + +#[test] +#[ignore = "requires Metal buffers and external supervisor; scalar ownership only, no GPU dispatch"] +fn mtplx_compile_scalar_bits_and_custom_kernel_identity() { + use super::{ + super::gpu::Context, + configure_sources, ops, + stream::{Device, Stream}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let stream = Stream::new(0, Device::Gpu); + let scalar = |shape: &[i32], dtype: Dtype, bytes: &[u8]| { + Array::new(shape, dtype, super::scalar_buffer(bytes).unwrap()).unwrap() + }; + // Available scalar identity is raw bits AND dtype, not float equality: + // equal NaN payloads merge, signed zero and distinct dtypes do not. + for (left, right, ld, rd, rank, same) in [ + ( + 0x7fc00001u32, + 0x7fc00001u32, + Dtype::F32, + Dtype::F32, + 0, + true, + ), + (0, 0x80000000, Dtype::F32, Dtype::F32, 0, false), + (1, 1, Dtype::U32, Dtype::I32, 0, false), + (1, 1, Dtype::U32, Dtype::U32, 1, false), + ] { + let shape = if rank == 0 { &[][..] } else { &[1][..] }; + let a = scalar(shape, ld, &left.to_le_bytes()); + let b = scalar(shape, rd, &right.to_le_bytes()); + let roots = [ + ops::full(&[2], &a, ld, stream).unwrap(), + ops::full(&[2], &b, rd, stream).unwrap(), + ]; + let mut tape = Tape::capture(&roots, &[]).unwrap(); + tape.scalars().unwrap(); + let leaves = tape + .order + .iter() + .filter(|id| tape.nodes[id].array.operation().is_none()) + .count(); + assert_eq!(leaves, if same { 1 } else { 2 }); + } + // CustomKernel inherits the reference's default false equivalence. + let input = scalar(&[1], Dtype::F32, &1f32.to_le_bytes()); + let make = || { + Array::make_operation(stream, &input, input.layout().clone(), Operation::HyperV3R1).unwrap() + }; + let a = make(); + let b = make(); + assert!(!equivalent_operation( + &a.operation().unwrap(), + &b.operation().unwrap(), + &a, + &b + )); + // Canonical source descriptors survive simplification unchanged. + let x = ops::full(&[2], &input, Dtype::F32, stream).unwrap(); + let before = x.inputs()[0].id(); + let optimized = simplify(std::slice::from_ref(&x), &[]).unwrap(); + assert_eq!(x.inputs()[0].id(), before); + assert_ne!(optimized[0].id(), x.id()); +} diff --git a/src/engine/metal/qwen_mtplx/compiled.rs b/src/engine/metal/qwen_mtplx/compiled.rs new file mode 100644 index 0000000..c532f4d --- /dev/null +++ b/src/engine/metal/qwen_mtplx/compiled.rs @@ -0,0 +1,537 @@ +//! Captured/generated compiled primitives and shape-fixed graph replacement. +//! Evaluation, broadcasting and donation follow common/compiled.cpp. +use super::super::gpu::Buffer; +use super::array::Array; +use super::{bytes, dispatch_geometry, tensor, views}; + +/// Shape-fixed compile_replace. Model runs use trace_compiled for the preceding +/// simplify/fuse passes; already-lowered captured QSA graphs use plain trace. +pub(super) struct Replay { + inputs: Vec, + nodes: Vec, + outputs: Vec, + values: usize, +} + +#[test] +fn mtplx_replay_replaces_descriptors_without_rebuilding_primitives() { + use super::{ + array::Dtype, + eval::Status, + ops, + stream::{Device, Stream}, + }; + use std::rc::Rc; + let stream = Stream::new(0, Device::Gpu); + let first = Array::unallocated(&[4], Dtype::F32).unwrap(); + let second = Array::unallocated(&[4], Dtype::F32).unwrap(); + let inputs = std::slice::from_ref(&first); + let graph = Replay::trace(inputs, |args| { + assert!(args[0].is_tracer()); + let mut outputs = ops::split(&args[0], &[2], 0, stream)?; + outputs.swap(0, 1); // Root order must not reorder primitive siblings. + outputs.push(args[0].clone()); + Ok(outputs) + }) + .unwrap(); + let a = graph.run(inputs).unwrap(); + let b = graph.run(std::slice::from_ref(&second)).unwrap(); + assert_eq!(a[2].id(), first.id()); + assert_eq!(b[2].id(), second.id()); + assert_ne!(a[0].id(), b[0].id()); + assert_eq!(b[0].outputs()[1].id(), b[0].id()); + assert_eq!(b[0].inputs()[0].id(), second.id()); + assert_eq!(b[0].status(), Status::Unscheduled); + assert!(!b[0].is_tracer()); + assert!(Rc::ptr_eq( + &a[0].operation().unwrap(), + &b[0].operation().unwrap() + )); + assert!(graph.run(&[]).is_err()); + assert!( + graph + .run(&[Array::unallocated(&[2, 2], Dtype::F32).unwrap()]) + .is_err() + ); + assert!( + graph + .run(&[Array::unallocated(&[4], Dtype::I32).unwrap()]) + .is_err() + ); + assert!(Replay::trace(inputs, |_| Ok(vec![first.clone()])).is_err()); +} + +enum ReplayNode { + Constant(usize, Array), + Primitive { + stream: super::stream::Stream, + operation: std::rc::Rc, + inputs: Vec, + outputs: Vec, + layouts: Vec, + }, +} + +enum Lowering { + Captured, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + Simplify, + Fuse, +} + +impl Replay { + pub(super) fn trace( + inputs: &[Array], + body: impl FnOnce(&[Array]) -> Result, String>, + ) -> Result { + Self::trace_impl(inputs, body, Lowering::Captured) + } + + /// The model-run compiler's three simplify passes. Fusion lowering still + /// follows this stage; already-lowered QSA bodies use plain trace. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn trace_simplified( + inputs: &[Array], + body: impl FnOnce(&[Array]) -> Result, String>, + ) -> Result { + Self::trace_impl(inputs, body, Lowering::Simplify) + } + + pub(super) fn trace_compiled( + inputs: &[Array], + body: impl FnOnce(&[Array]) -> Result, String>, + ) -> Result { + Self::trace_impl(inputs, body, Lowering::Fuse) + } + + fn trace_impl( + inputs: &[Array], + body: impl FnOnce(&[Array]) -> Result, String>, + lowering: Lowering, + ) -> Result { + use std::collections::{HashMap, HashSet}; + let placeholders = inputs + .iter() + .map(|a| { + let l = a.layout(); + let p = Array::unallocated(l.shape(), l.dtype())?; + p.set_tracer(true); + Ok(p) + }) + .collect::, String>>()?; + let outputs = body(&placeholders)?; + let outputs = match lowering { + Lowering::Captured => outputs, + Lowering::Simplify => super::compile_graph::simplify(&outputs, inputs)?, + Lowering::Fuse => super::compile_graph::compile(&outputs, inputs, &placeholders)?, + }; + let original = inputs.iter().map(Array::id).collect::>(); + let mut slots = placeholders + .iter() + .enumerate() + .map(|(i, a)| (a.id(), i)) + .collect::>(); + let mut nodes = Vec::new(); + let mut stack = outputs + .iter() + .rev() + .map(|a| (a.clone(), false)) + .collect::>(); + while let Some((a, expanded)) = stack.pop() { + if original.contains(&a.id()) { + return Err("compiled function has uncaptured inputs".into()); + } + if slots.contains_key(&a.id()) { + continue; + } + let Some(operation) = a + .operation() + .filter(|op| !matches!(&**op, super::ops::Operation::Load(_))) + else { + let slot = slots.len(); + slots.insert(a.id(), slot); + nodes.push(ReplayNode::Constant(slot, a)); + continue; + }; + if !expanded { + stack.push((a.clone(), true)); + stack.extend(a.inputs().iter().rev().map(|i| (i.clone(), false))); + } else { + let inputs = a + .inputs() + .iter() + .map(|i| { + slots + .get(&i.id()) + .copied() + .ok_or("compiled input absent from tape") + }) + .collect::, _>>()?; + let outputs = a.outputs(); + let layouts = outputs.iter().map(|o| o.layout().clone()).collect(); + let outputs = outputs + .iter() + .map(|o| { + let slot = slots.len(); + slots.insert(o.id(), slot); + slot + }) + .collect(); + nodes.push(ReplayNode::Primitive { + stream: a.stream().ok_or("compiled primitive has no stream")?, + operation, + inputs, + outputs, + layouts, + }); + } + } + Ok(Self { + inputs: inputs.iter().map(|a| a.layout().clone()).collect(), + outputs: outputs.iter().map(|a| slots[&a.id()]).collect(), + values: slots.len(), + nodes, + }) + } + + pub(super) fn run(&self, inputs: &[Array]) -> Result, String> { + if inputs.len() != self.inputs.len() + || inputs + .iter() + .zip(&self.inputs) + .any(|(a, l)| a.layout().shape() != l.shape() || a.layout().dtype() != l.dtype()) + { + return Err("compiled replay input signature mismatch".into()); + } + let mut values = vec![None; self.values]; + for (slot, input) in values.iter_mut().zip(inputs) { + *slot = Some(input.clone()); + } + for node in &self.nodes { + match node { + ReplayNode::Constant(slot, a) => values[*slot] = Some(a.clone()), + ReplayNode::Primitive { + stream, + operation, + inputs, + outputs, + layouts, + } => { + let args = inputs + .iter() + .map(|&i| values[i].as_ref().unwrap().clone()) + .collect::>(); + let result = + Array::make_shared_operations(*stream, &args, layouts, operation.clone())?; + for (&slot, a) in outputs.iter().zip(result) { + values[slot] = Some(a); + } + } + } + } + Ok(self + .outputs + .iter() + .map(|&i| values[i].as_ref().unwrap().clone()) + .collect()) + } + + /// Same dependency fingerprint as the captured original DOT graphs. + /// Constants are omitted, ordered primitive inputs/siblings are not. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn contract( + &self, + names: &[&str], + mut label: impl FnMut(&super::ops::Operation) -> L, + roots: usize, + ) -> serde_json::Value { + use sha2::{Digest, Sha256}; + assert_eq!(names.len(), self.inputs.len()); + let mut leaves = vec![None; self.values]; + for (i, n) in names.iter().enumerate() { + leaves[i] = Some((*n).to_owned()); + } + let mut hashes = Vec::new(); + for node in &self.nodes { + if let ReplayNode::Primitive { + operation, + inputs, + outputs, + .. + } = node + { + let parents = inputs + .iter() + .filter_map(|&i| leaves[i].as_ref()) + .collect::>(); + let data = + serde_json::to_vec(&serde_json::json!([label(operation), parents])).unwrap(); + let hash = Sha256::digest(data) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + for (i, &slot) in outputs.iter().enumerate() { + leaves[slot] = Some(format!("{hash}:{i}")); + } + hashes.push(hash); + } + } + hashes.sort(); + serde_json::json!([ + hashes, + self.outputs[..roots] + .iter() + .map(|&i| &leaves[i]) + .collect::>() + ]) + } +} + +pub(super) fn evaluate(inputs: &[Array], output: &Array, prefix: &str) -> Result<(), String> { + evaluate_many(inputs, std::slice::from_ref(output), prefix, |_| false) +} + +/// common/compiled.cpp and metal/compiled.cpp, shared by captured and newly +/// fused primitives. Rank-zero scalars and embedded constants are distinct. +pub(super) fn evaluate_many( + inputs: &[Array], + outputs: &[Array], + prefix: &str, + constant: impl Fn(usize) -> bool, +) -> Result<(), String> { + let output = outputs.first().ok_or("compiled primitive has no outputs")?; + if outputs + .iter() + .any(|o| o.layout().shape() != output.layout().shape()) + { + return Err("compiled output shapes differ".into()); + } + let canonical = output.layout(); + let mut all_row = true; + let mut all_col = true; + let mut all_contiguous = true; + let mut negative = false; + let mut strides = vec![canonical.strides().to_vec()]; + let mut nonscalars = 0; + for (i, input) in inputs.iter().enumerate() { + let layout = input.layout(); + if layout.shape().is_empty() { + continue; + } + nonscalars += 1; + let equal = layout.shape() == canonical.shape(); + all_row &= equal && layout.flags().row_contiguous; + all_col &= equal && layout.flags().col_contiguous; + all_contiguous &= equal && layout.flags().contiguous; + negative |= layout.strides().iter().any(|&s| s < 0); + if constant(i) { + continue; + } + let padding = canonical + .shape() + .len() + .checked_sub(layout.shape().len()) + .ok_or("compiled input rank exceeds output")?; + let mut broadcast = Vec::new(); + for (i, &dim) in canonical.shape().iter().enumerate() { + if i < padding || layout.shape()[i - padding] == 1 { + broadcast.push(if dim == 1 { canonical.strides()[i] } else { 0 }); + } else if dim == layout.shape()[i - padding] { + broadcast.push(layout.strides()[i - padding]); + } else { + return Err("compiled input cannot broadcast to output".into()); + } + } + strides.push(broadcast); + } + let contiguous = !negative + && match nonscalars { + 0 => canonical.shape().is_empty(), + 1 => all_contiguous, + _ => all_row || all_col, + }; + let (shape, strides) = if contiguous { + (canonical.shape().to_vec(), Vec::new()) + } else { + views::collapse_joint( + canonical.shape(), + &strides.iter().map(Vec::as_slice).collect::>(), + ) + }; + let ndim = shape.len(); + let large = negative + || if contiguous { + inputs.iter().any(|a| a.data_size() > u32::MAX as usize) + } else { + canonical.size() > u32::MAX as usize + }; + // Kernel selection precedes output allocation in the pinned evaluator. + let work = if contiguous { + if output.data_size() < 65536 { + 1 + } else { + (8 / output.itemsize()).max(1) + } + } else if ndim > 3 { + if large { 4 } else { 2 } + } else { + 1 + }; + let mut name = if contiguous { + format!( + "{prefix}_contiguous{}", + if work > 1 && !large { "_n" } else { "" } + ) + } else { + format!( + "{prefix}_strided_{}", + if ndim >= 8 { + "dynamic".to_owned() + } else { + ndim.to_string() + } + ) + }; + if large { + name.push_str("_large"); + } + let max = views::kernel_max_threads(&name)?; + let input_buffers = inputs.iter().map(Array::buffer).collect::>(); + let mut bindings = inputs + .iter() + .zip(&input_buffers) + .enumerate() + .filter(|(i, _)| !constant(*i)) + .enumerate() + .map(|(i, (_, (a, b)))| { + tensor(i as u32, b) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }) + .collect::>(); + let input_strides = strides + .iter() + .skip(1) + .flatten() + .copied() + .collect::>(); + if !contiguous && !input_strides.is_empty() { + bindings.push(bytes(bindings.len() as u32, input_strides.as_slice())); + } + let out_size = canonical.size(); + drop(canonical); + let mut next = 0; + let mut representative = None; + for (i, input) in inputs.iter().enumerate() { + if next == outputs.len() { + break; + } + let l = input.layout(); + let o = &outputs[next]; + let size_ok = if contiguous { + !l.shape().is_empty() + } else { + l.flags().row_contiguous && l.size() == out_size + }; + if input.itemsize() == o.itemsize() && size_ok && input.is_donatable() && !constant(i) { + let out_strides = o.layout().strides().to_vec(); + o.copy_shared_buffer( + input, + if contiguous { + l.strides() + } else { + &out_strides + }, + l.flags(), + input.data_size(), + 0, + )?; + next += 1; + } + if contiguous + && representative + .as_ref() + .is_none_or(|(s, _, _): &(Vec, _, _)| s.is_empty()) + && l.size() == out_size + { + representative = Some((l.strides().to_vec(), l.flags(), input.data_size())); + } + } + for o in &outputs[next..] { + if contiguous { + let (strides, flags, size) = representative + .as_ref() + .ok_or("compiled output has no representative input")?; + o.set_strided_data( + Buffer::mtplx_bytes((size * o.itemsize()) as u64)?, + *size, + strides, + *flags, + 0, + )?; + } else { + let nbytes = o.layout().nbytes(); + o.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + } + if out_size == 0 { + return Ok(()); + } + let targets = outputs.iter().map(Array::buffer).collect::>(); + for (o, target) in outputs.iter().zip(&targets) { + bindings.push( + tensor(bindings.len() as u32, target) + .at_byte_offset(o.offset()) + .output(o.data_size()), + ); + } + if contiguous { + let size32 = output.data_size() as i32; + let size64 = output.data_size() as i64; + bindings.push(if large { + bytes(bindings.len() as u32, &size64) + } else { + bytes(bindings.len() as u32, &size32) + }); + let n = output.data_size().div_ceil(work); + let grid = if large { + views::large_copy_grid(&output.layout(), work)? + } else { + [n as u32, 1, 1] + }; + dispatch_geometry( + &name, + &bindings, + &[], + grid, + [n.min(max as usize) as u32, 1, 1], + true, + ) + } else { + let rank = ndim as i32; + bindings.push(bytes(bindings.len() as u32, shape.as_slice())); + if ndim >= 8 { + bindings.push(bytes(bindings.len() as u32, &rank)); + } + let dim0 = shape.last().copied().unwrap_or(1) as usize; + let dim1 = shape.iter().rev().nth(1).copied().unwrap_or(1) as usize; + let grid = [dim0.div_ceil(work), dim1, out_size / (dim0 * dim1)] + .map(|d| u32::try_from(d).map_err(|_| "compiled grid overflow")); + let grid = [grid[0]?, grid[1]?, grid[2]?]; + let pow2 = if max == 1024 { + 10 + } else if max > 512 { + 9 + } else { + return Err("[Metal::compiled] Must use > 512 sized block".into()); + }; + dispatch_geometry( + &name, + &bindings, + &[], + grid, + super::block_dims_pow2(grid, pow2), + true, + ) + } +} diff --git a/src/engine/metal/qwen_mtplx/context_copy.rs b/src/engine/metal/qwen_mtplx/context_copy.rs new file mode 100644 index 0000000..a56aaee --- /dev/null +++ b/src/engine/metal/qwen_mtplx/context_copy.rs @@ -0,0 +1,222 @@ +//! MTPLX context_copy.py prompt-only proposal index and probation/backoff policy. +use std::collections::HashMap; + +fn integer(name: &str, default: usize, minimum: usize) -> usize { + std::env::var(name) + .unwrap_or_default() + .trim() + .replace('_', "") + .parse::() + .unwrap_or(default as i128) + .max(minimum as i128) + .min(usize::MAX as i128) as usize +} + +fn enabled(name: &str, default: bool) -> bool { + let value = std::env::var(name).unwrap_or_default(); + if default { + !matches!(value.trim(), "0" | "false" | "off") + } else { + matches!(value.trim(), "1" | "true" | "on") + } +} + +struct Index { + width: usize, + candidates: usize, + grams: HashMap, Vec>, +} + +impl Index { + fn new(prompt: &[i64], width: usize, candidates: usize) -> Self { + let mut grams: HashMap, Vec> = HashMap::new(); + for end in width..=prompt.len() { + grams + .entry(prompt[end - width..end].to_vec()) + .or_default() + .push(end); + } + Self { + width, + candidates, + grams, + } + } + + fn positions<'a>( + &'a self, + history: &'a [i64], + limit: usize, + ) -> impl Iterator + 'a { + let positions = if history.len() > self.width { + self.grams + .get(&history[history.len() - self.width..]) + .map(Vec::as_slice) + .unwrap_or(&[]) + } else { + &[] + }; + positions + .iter() + .rev() + .take(self.candidates) + .copied() + .filter(move |&pos| pos < history.len() && pos < limit) + } +} + +pub(super) struct ContextCopy { + pub(super) active: bool, + prompt: Vec, + exact: Index, + max_extension: usize, + min_extension: usize, + fuzzy: Option<(Index, usize)>, + fixed: Option, + cap: usize, + probation: usize, + ema: f64, + seen: usize, + suspend_until: usize, + backoff: usize, +} + +impl ContextCopy { + pub(super) fn new(prompt: &[i32], penalties: bool) -> Self { + let prompt = prompt.iter().map(|&id| i64::from(id)).collect::>(); + let width = integer("MTPLX_CONTEXT_COPY_NGMIN", 6, 2); + let maximum = integer("MTPLX_CONTEXT_COPY_NGMAX", 10, width); + let ramp = enabled("MTPLX_RAMP_ENABLED", false); + let fixed = ramp + .then(|| integer("MTPLX_RAMP_BLOCK", 48, 0)) + .filter(|&n| n > 0); + let cap = integer("MTPLX_CONTEXT_COPY_K", 24, 4).max(fixed.unwrap_or(0)); + let fuzzy = (ramp && enabled("MTPLX_RAMP_FUZZY", true)).then(|| { + ( + Index::new( + &prompt, + integer("MTPLX_RAMP_ANCHOR_LEN", 3, 1).min(width - 1), + integer("MTPLX_RAMP_MAX_FUZZY_CANDIDATES", 8, 1).saturating_mul(8), + ), + integer("MTPLX_RAMP_SIMILARITY_SPAN", 24, 1), + ) + }); + Self { + active: !penalties + && enabled("MTPLX_CONTEXT_COPY", true) + && enabled("MTPLX_CONTEXT_COPY_BATCHED", true), + exact: Index::new(&prompt, width, 32), + prompt, + max_extension: maximum - width, + min_extension: integer("MTPLX_CONTEXT_COPY_MINEXT", 0, 0), + fuzzy, + fixed, + cap, + probation: cap.min(integer("MTPLX_CONTEXT_COPY_PROBATION_K", 8, 2)), + ema: 0.5, + seen: 0, + suspend_until: 0, + backoff: 64, + } + } + + fn find(&self, history: &[i64]) -> Option<(usize, usize)> { + let mut best = None; + for pos in self.exact.positions(history, self.prompt.len()) { + let mut extension = 0; + while extension < self.max_extension + && pos > self.exact.width + extension + && history[pos - self.exact.width - 1 - extension] + == history[history.len() - self.exact.width - 1 - extension] + { + extension += 1; + } + if best.is_none_or(|(_, old)| extension > old) { + best = Some((pos, extension)); + if extension == self.max_extension { + break; + } + } + } + if best.is_some() { + return best; + } + let (index, span) = self.fuzzy.as_ref()?; + let mut similarity = -1.0; + for pos in index.positions(history, self.prompt.len()) { + let total = (*span).min(pos).min(history.len()); + let hits = (1..=total) + .filter(|&d| self.prompt[pos - d] == history[history.len() - d]) + .count(); + let score = if total == 0 { + 0.0 + } else { + hits as f64 / total as f64 + }; + if score > similarity { + best = Some((pos, 0)); + similarity = score; + } + } + best + } + + pub(super) fn propose(&self, tokens: &[i64], remaining: usize) -> Option<(Vec, usize)> { + if !self.active || tokens.len() < self.suspend_until { + return None; + } + let history = [self.prompt.as_slice(), tokens].concat(); + let (pos, extension) = self.find(&history)?; + if extension < self.min_extension { + return None; + } + let cap = if self.seen >= 2 && self.ema >= 0.5 { + self.cap + } else { + self.probation + }; + let length = self + .fixed + .unwrap_or_else(|| [8, 12, 16, 24, 32][extension.min(4)].min(cap.max(4))); + let end = pos + .saturating_add(length.min(remaining.max(1))) + .min(self.prompt.len()); + (end > pos).then(|| (self.prompt[pos..end].to_vec(), extension)) + } + + pub(super) fn record(&mut self, accepted: usize, proposed: usize, tokens: usize) { + let ratio = accepted as f64 / proposed as f64; + self.ema = 0.7 * self.ema + 0.3 * ratio; + self.seen += 1; + if ratio >= 0.5 { + self.backoff = 64; + } + if self.seen >= 3 && self.ema < 0.35 { + self.suspend_until = tokens.saturating_add(self.backoff); + self.backoff = (self.backoff * 2).min(4096); + self.ema = 0.5; + self.seen = 0; + } + } +} + +#[test] +fn prompt_copy_match_and_backoff_preserve_reference_policy() { + let prompt = (0..60).collect::>(); + let mut copy = ContextCopy::new(&prompt, false); + let generated = (10..20).collect::>(); + assert_eq!(copy.propose(&generated, 100), Some(((20..28).collect(), 4))); + copy.record(8, 8, 18); + copy.record(8, 8, 26); + assert_eq!(copy.propose(&generated, 100), Some(((20..44).collect(), 4))); + assert_eq!(copy.propose(&generated, 2), Some((vec![20, 21], 4))); + for _ in 0..4 { + copy.record(0, 8, 30); + } + assert_eq!(copy.suspend_until, 94); + assert!(copy.propose(&generated, 100).is_none()); + assert!( + copy.find(&[copy.prompt.as_slice(), &(54..60).collect::>()].concat()) + .is_none() + ); +} diff --git a/src/engine/metal/qwen_mtplx/decoder.rs b/src/engine/metal/qwen_mtplx/decoder.rs new file mode 100644 index 0000000..cf1fb65 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/decoder.rs @@ -0,0 +1,1001 @@ +//! qwen4_exp.DecoderLayer, composed from the canonical graph operators. +use super::array::Array; +use super::binary::{Binary, binary}; +use super::stream::{Stream, Streams}; +use super::{cache::QsaCache, gdn, hyper, moe, ngram_stage, ops, ple, qsa_attention}; + +pub(super) enum Attention<'a> { + Linear(gdn::Weights<'a>), + Qsa(Box>), +} + +pub(super) enum AttentionCache { + Linear(gdn::Cache), + Qsa(QsaCache), +} + +pub(super) struct Cache { + pub(super) attention: AttentionCache, + pub(super) ple: ple::Cache, + pub(super) capture_ple: Option<(Array, Array)>, +} + +/// generation._tree_mx_arrays walks __dict__, not cache.state. Preserve the +/// raw backing arrays (including QSA capacity and its derived mirror), in +/// original attribute order, and deduplicate aliases without making views. +pub(super) fn cache_roots(cache: &[Option]) -> Vec { + let mut roots = Vec::new(); + for cache in cache.iter().flatten() { + match &cache.attention { + AttentionCache::Linear(gdn) => { + roots.extend( + [ + &gdn.left_padding, + &gdn.lengths, + &gdn.conv, + &gdn.delta, + &cache.ple.conv, + &cache.ple.history, + ] + .into_iter() + .filter_map(|a| a.clone()), + ); + if let Some((hidden, ids)) = &cache.capture_ple { + roots.extend([hidden.clone(), ids.clone()]); + } + if let Some(rows) = &gdn.capture { + roots.extend(rows.iter().cloned()); + } + } + AttentionCache::Qsa(qsa) => { + roots.extend( + [ + &qsa.kv.keys, + &qsa.kv.values, + &qsa.raw_keys, + &qsa.pooled, + &qsa.pooled_f32_t, + ] + .into_iter() + .filter_map(|a| a.as_ref().map(|a| a.borrow().clone())), + ); + } + } + } + let mut seen = std::collections::HashSet::new(); + roots.retain(|a| seen.insert(a.id())); + roots +} + +pub(super) struct DecoderLayer<'a> { + pub(super) attention: Attention<'a>, + pub(super) mlp: moe::SparseMoe, + pub(super) attn_hyper: hyper::GatedResidual<'a>, + pub(super) mlp_hyper: hyper::GatedResidual<'a>, + pub(super) ple: Option>, +} + +pub(super) struct Options { + pub(super) hyper_fused: bool, + pub(super) hyper_v3: bool, + pub(super) gdn: gdn::Options, + pub(super) qsa: qsa_attention::Options, + pub(super) stage: ngram_stage::StageOptions, +} + +/// Keep multiply and add as separate BF16 nodes, in the reference order. +/// The final model mixer has no combine output and cannot serve as a layer HC. +fn combine(read: hyper::Read, block: &Array, stream: Stream) -> Result { + let (hidden, inject) = read + .combine + .ok_or("decoder HC requires inject projection")?; + let product = binary( + &ops::expand_dims(block, &[-2], stream)?, + &ops::expand_dims(&inject, &[-1], stream)?, + Binary::Multiply, + stream, + )?; + binary( + &hidden, + &ops::reshape(&product, hidden.layout().shape(), stream)?, + Binary::Add, + stream, + ) +} + +impl DecoderLayer<'_> { + #[allow(clippy::too_many_arguments)] + pub(super) fn call( + &mut self, + hidden: &Array, + input_ids: Option<&Array>, + ssm_mask: Option<&Array>, + mut cache: Option<&mut Cache>, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + // Reject a mismatched cache before PLE can mutate its history/conv slots. + match (&self.attention, cache.as_ref().map(|c| &c.attention)) { + (Attention::Linear(_), None | Some(AttentionCache::Linear(_))) + | (Attention::Qsa(_), Some(AttentionCache::Qsa(_))) => {} + (Attention::Qsa(_), None) => return Err("QSA decoder requires a cache".into()), + _ => return Err("decoder attention/cache type mismatch".into()), + } + if self.attn_hyper.inject.is_none() || self.mlp_hyper.inject.is_none() { + return Err("decoder HC requires inject projection".into()); + } + let hidden = match &mut self.ple { + Some(ple) => binary( + hidden, + &ple.forward( + hidden, + input_ids.ok_or("PLE decoder requires input IDs")?, + cache.as_mut().map(|c| &mut c.ple), + &options.stage, + streams, + stream, + )?, + Binary::Add, + stream, + )?, + None => hidden.clone(), + }; + let read = self.attn_hyper.forward( + &hidden, + options.hyper_fused, + options.hyper_v3, + streams, + stream, + )?; + let block = match (&mut self.attention, cache.map(|c| &mut c.attention)) { + (Attention::Linear(weights), cache) => { + let cache = match cache { + Some(AttentionCache::Linear(cache)) => Some(cache), + None => None, + _ => unreachable!("validated above"), + }; + gdn::forward( + weights, + &read.mixed, + ssm_mask, + cache, + options.gdn, + streams, + stream, + )? + } + (Attention::Qsa(attention), Some(AttentionCache::Qsa(cache))) => { + attention.call(&read.mixed, cache, &options.qsa, vision, streams, stream)? + } + _ => unreachable!("validated above"), + }; + let hidden = combine(read, &block, stream)?; + let read = self.mlp_hyper.forward( + &hidden, + options.hyper_fused, + options.hyper_v3, + streams, + stream, + )?; + let block = self.mlp.apply(&read.mixed, streams, stream)?; + combine(read, &block, stream) + } +} + +#[test] +fn mtplx_decoder_residual_preserves_graph_order() { + use super::{array::Dtype, eval::Status, stream::Device}; + let stream = Stream::new(0, Device::Gpu); + let hidden = Array::unallocated(&[1, 3, 10240], Dtype::BF16).unwrap(); + let block = Array::unallocated(&[1, 3, 2560], Dtype::BF16).unwrap(); + let inject = Array::unallocated(&[1, 3, 4], Dtype::BF16).unwrap(); + let result = combine( + hyper::Read { + mixed: block.clone(), + combine: Some((hidden.clone(), inject)), + }, + &block, + stream, + ) + .unwrap(); + assert_eq!(result.layout().shape(), hidden.layout().shape()); + assert_eq!(result.layout().dtype(), Dtype::BF16); + assert_eq!(result.status(), Status::Unscheduled); + assert!(matches!( + &*result.operation().unwrap(), + ops::Operation::Binary(Binary::Add) + )); + assert_eq!(result.inputs()[0].id(), hidden.id()); + let reshaped = result.inputs()[1].clone(); + let product = reshaped.inputs()[0].clone(); + assert!(matches!( + &*product.operation().unwrap(), + ops::Operation::Binary(Binary::Multiply) + )); + assert_eq!(product.layout().shape(), [1, 3, 4, 2560]); + assert!( + combine( + hyper::Read { + mixed: block.clone(), + combine: None + }, + &block, + stream + ) + .is_err() + ); +} + +#[test] +#[ignore = "requires Apple Metal and external test-supervisor; complete decoder/cache smoke"] +fn mtplx_decoder_connected_attention_and_moe_advance_caches() { + use super::super::gpu::Context; + use super::{ + QsaIndexerOptions, allocator, + array::Dtype, + configure_sources, + mlp::{Linear, QuantizedLinear}, + ngram::{GpuHash, Table}, + ngram_stage::Embedding, + stream::Device, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let zero = |shape: &[i32], dtype| ops::zeros(shape, dtype, gpu).unwrap(); + let constant = |shape: &[i32], bits: u16| { + let value = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&bits.to_le_bytes()).unwrap(), + ) + .unwrap(); + ops::full(shape, &value, Dtype::BF16, gpu).unwrap() + }; + let quantized = |n, k| QuantizedLinear { + weight: zero(&[n, k / 8], Dtype::U32), + scales: zero(&[n, k / 64], Dtype::BF16), + biases: zero(&[n, k / 64], Dtype::BF16), + bits: 4, + group: 64, + }; + let hc_norm = constant(&[10240], 0x3f80); + let hc_down = zero(&[320, 10240], Dtype::BF16); + let hc_up = zero(&[10240, 320], Dtype::BF16); + let hc_inject = zero(&[4, 10240], Dtype::BF16); + let hc = || hyper::GatedResidual { + norm: &hc_norm, + down: Linear::Dense(&hc_down), + up: Linear::Dense(&hc_up), + inject: Some(Linear::Dense(&hc_inject)), + pack: None, + }; + let mlp = || { + let mut gate_up = quantized(2 * 128, 2560); + let mut down = quantized(2 * 2560, 64); + for (layer, shape) in [(&mut gate_up, [2, 128, 2560]), (&mut down, [2, 2560, 64])] { + layer.weight = + ops::reshape(&layer.weight, &[shape[0], shape[1], shape[2] / 8], gpu).unwrap(); + layer.scales = + ops::reshape(&layer.scales, &[shape[0], shape[1], shape[2] / 64], gpu).unwrap(); + layer.biases = + ops::reshape(&layer.biases, &[shape[0], shape[1], shape[2] / 64], gpu).unwrap(); + } + moe::SparseMoe { + experts: moe::FeedForward { + input: moe::GateUp::Fused(gate_up), + down, + }, + shared: moe::FeedForward { + input: moe::GateUp::Fused(quantized(128, 2560)), + down: quantized(2560, 64), + }, + router: quantized(2, 2560), + shared_gate: quantized(1, 2560), + topk: 1, + normalize: true, + fused_decode: false, + fused_verify: false, + } + }; + let gdn_input = quantized(16480, 2560); + let gdn_output = quantized(2560, 6144); + let conv = zero(&[10240, 4, 1], Dtype::BF16); + let a_log = zero(&[48], Dtype::BF16); + let dt_bias = zero(&[48], Dtype::BF16); + let norm = constant(&[128], 0x3f80); + let qkv = quantized(13312, 2560); + let out = quantized(2560, 6144); + let output_bias = constant(&[2560], 0x3e80); // 0.25: nonzero residual contribution. + let qnorm = constant(&[256], 0x3f80); + let freq = constant(&[32], 0x3f80); + let qsa = || { + Attention::Qsa(Box::new(qsa_attention::Attention { + input: qsa_attention::Input::Fused(Linear::Quantized(&qkv), &[12288, 12800]), + output: Linear::Quantized(&out), + output_bias: Some(&output_bias), + heads: 24, + kv_heads: 2, + dim: 256, + eps: 1e-6, + scale: 0.0625, + q_norm: &qnorm, + k_norm: &qnorm, + inv_freq: &freq, + rope_scaling: 1., + mrope_axes: None, + indexer: None, + })) + }; + let mut identity = quantized(2560, 2560); + let mut packed = vec![0u32; 2560 * 320]; + for i in 0..2560 { + packed[i * 320 + i / 8] = 1 << (4 * (i % 8)); + } + identity.weight = Array::new( + &[2560, 320], + Dtype::U32, + super::scalar_buffer( + &packed + .into_iter() + .flat_map(u32::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + identity.scales = constant(&[2560, 40], 0x3f80); + let mtp_embedding_norm = constant(&[2560], 0x3f80); + let integer = |shape: &[i32], value: i64| { + let scalar = Array::new( + &[], + Dtype::I64, + super::scalar_buffer(&value.to_le_bytes()).unwrap(), + ) + .unwrap(); + ops::full(shape, &scalar, Dtype::I64, gpu).unwrap() + }; + let multipliers = integer(&[3], 1); + let sizes = integer(&[16], 17); + let offsets = integer(&[16], 0); + let ple_key = quantized(10240, 2560); + let ple_value = constant(&[2560, 2560], 0x39cd); // BF16 1/2560 + let mut options = Options { + hyper_fused: false, + hyper_v3: false, + gdn: gdn::Options { + step: true, + conv_verify: true, + ..Default::default() + }, + qsa: qsa_attention::Options { + indexer: QsaIndexerOptions { + fused: false, + compiled: false, + prefill: false, + phase_prefill: false, + prefill_min_rows: 1, + prefill_compile_rows: 1, + prefill_min_context: 0, + prefill_workspace: 32 * 1024 * 1024, + tile_rows: 64, + flash: false, + gather_decode: false, + gather: false, + gather_max_rows: 4, + gather_min_context: 0, + tf32: false, + }, + flash_min_context: 0, + prefill_gather: false, + gather_tile_rows: 64, + }, + stage: ngram_stage::StageOptions::default(), + }; + for (linear, with_ple, allow_hyper_fused) in [ + (true, false, true), + (false, false, true), + (true, true, true), + (false, true, true), + (true, false, false), + ] { + let mut layer = DecoderLayer { + attention: if linear { + Attention::Linear(gdn::Weights { + input: gdn::InputProjections::Fused(&gdn_input, [10240, 16384, 16432]), + output: &gdn_output, + conv: &conv, + a_log: &a_log, + dt_bias: &dt_bias, + norm: &norm, + }) + } else { + qsa() + }, + mlp: mlp(), + attn_hyper: hc(), + mlp_hyper: hc(), + ple: with_ple.then(|| ple::Ple { + embedding: Embedding::new( + GpuHash { + multipliers: &multipliers, + sizes: &sizes, + offsets: &offsets, + eos: 248044, + }, + Table { + resident: None, + sidecar: None, + weight: Some(constant(&[17, 160], 0x3e00)), + prefer_lazy: false, + sidecar_mode: false, + dim: 160, + }, + ), + projection: ple::Projection { + key: Linear::Quantized(&ple_key), + value: Linear::Dense(&ple_value), + norm_key: &hc_norm, + norm_query: &hc_norm, + norm_conv: &hc_norm, + conv_weight: &conv, + }, + }), + }; + let mut cache = Cache { + attention: if linear { + AttentionCache::Linear(gdn::Cache::default()) + } else { + AttentionCache::Qsa(QsaCache::new(4)) + }, + ple: ple::Cache::default(), + capture_ple: None, + }; + let mut offset = 0; + for rows in [17, 4, 1] { + eprintln!("decoder linear={linear} ple={with_ple} rows={rows} offset={offset}"); + options.hyper_fused = allow_hyper_fused && rows <= 4; + let input = constant(&[1, rows, 10240], 0x3e00); // 0.125 + let ids = integer(&[1, rows], i64::from(offset + 1)); + let output = layer + .call( + &input, + Some(&ids), + None, + Some(&mut cache), + &options, + None, + &streams, + gpu, + ) + .unwrap(); + let mut outputs = vec![output.clone()]; + if with_ple { + assert_eq!( + cache.ple.conv.as_ref().unwrap().layout().shape(), + [1, 9, 10240] + ); + assert_eq!(cache.ple.history.as_ref().unwrap().layout().shape(), [1, 2]); + outputs.extend([ + cache.ple.conv.clone().unwrap(), + cache.ple.history.clone().unwrap(), + ]); + } + offset += rows; + match &cache.attention { + AttentionCache::Linear(c) => { + assert_eq!(c.conv.as_ref().unwrap().layout().shape(), [1, 3, 10240]); + assert_eq!( + c.delta.as_ref().unwrap().layout().shape(), + [1, 48, 128, 128] + ); + outputs.extend([c.conv.clone().unwrap(), c.delta.clone().unwrap()]); + } + AttentionCache::Qsa(c) => { + assert_eq!(c.kv.offset, offset); + outputs.extend([ + c.kv.keys.as_ref().unwrap().borrow().clone(), + c.kv.values.as_ref().unwrap().borrow().clone(), + ]); + } + } + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + let mut bytes = vec![0; output.layout().nbytes()]; + output.buffer().read(output.offset(), &mut bytes).unwrap(); + // PLE adds 0.0625; QSA's output bias adds 0.25. MoE adds zero. + let expected: u16 = match (linear, with_ple) { + (true, false) => 0x3e00, + (false, false) => 0x3ec0, + (true, true) => 0x3e40, + (false, true) => 0x3ee0, + }; + assert!( + bytes.chunks_exact(2).all(|b| b == expected.to_le_bytes()), + "linear={linear} ple={with_ple} rows={rows}" + ); + } + // Reuse the real decoder fixture for the outer model, not a callback. + use super::model::{CompilePolicy, OutputOptions, TextModel}; + let mut embed = quantized(32, 2560); + embed.biases = constant(&[32, 40], 0x3e00); + let untied_head = constant(&[8, 2560], 0x3d80); // 0.0625 + let mut mixer = hc(); + mixer.inject = None; + let mut model = TextModel::new( + Linear::Quantized(&embed), + vec![layer], + mixer, + None, + CompilePolicy::from_values(Some("1"), None), + ) + .unwrap(); + assert_eq!(model.set_ar_pipeline_mode(true), !with_ple); + let mut caches = model.make_cache(4); + let mut offset = 0; + for (rows, keep, emit, capture) in [ + (17, 0, false, false), + (4, 2, true, false), + (1, 0, true, false), + (1, -1, true, true), + (4, 0, true, true), + (1, 0, true, false), + ] { + eprintln!( + "model linear={linear} ple={with_ple} rows={rows} capture={capture} emit={emit}" + ); + options.hyper_fused = allow_hyper_fused && rows <= 4; + options.gdn.capture = capture; + let ids = integer(&[1, rows], 1); + let result = model + .call( + &ids, + Some(&mut caches), + None, + OutputOptions { + emit_logits: emit, + logits_keep: keep, + return_hidden: capture || !emit, + }, + &options, + None, + &streams, + gpu, + ) + .unwrap(); + assert_eq!(result.logits.is_some(), emit); + assert_eq!(result.hidden.is_some(), capture || !emit); + let reference = if linear && !with_ple && rows <= 4 { + let expected = include_str!("../../../../tests/fixtures/mtplx-gdn-runs.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .find(|r| { + r["rows"] == rows + && r["capture"] == capture + && r["hyper_fused"] == options.hyper_fused + }) + .unwrap(); + let actual = model.run_contract(rows, capture); + eprintln!( + "GDN run contract rows={rows} capture={capture} hyper_fused={}: {actual}", + options.hyper_fused + ); + assert_eq!( + actual["contract"], expected["contract"], + "GDN run topology rows={rows} capture={capture}; ops={}", + actual["ops"] + ); + Some(expected) + } else { + None + }; + let hidden = model.last_widened.as_ref().unwrap(); + if let Some(returned) = &result.hidden { + assert_eq!(returned.id(), hidden.id()); + } + let mut outputs = vec![hidden.clone()]; + outputs.extend(result.logits.iter().cloned()); + let cache = caches[0].as_ref().unwrap(); + if with_ple { + assert_eq!(cache.capture_ple.is_some(), capture || offset > 22); + outputs.extend(cache.ple.conv.iter().cloned()); + outputs.extend(cache.ple.history.iter().cloned()); + } + offset += rows; + match &cache.attention { + AttentionCache::Linear(c) => { + outputs.extend(c.conv.iter().cloned()); + outputs.extend(c.delta.iter().cloned()); + if capture { + assert_eq!(c.capture.as_ref().unwrap()[0].layout().shape()[1], rows); + } + } + AttentionCache::Qsa(c) => assert_eq!(c.kv.offset, offset), + } + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + if let Some(reference) = reference { + use sha2::{Digest, Sha256}; + let AttentionCache::Linear(c) = &cache.attention else { + unreachable!() + }; + // Original _compiled_run_fn returns hidden, states, then all + // six capture arrays. Compare values, not only graph topology. + let mut leaves = vec![ + hidden.clone(), + c.conv.clone().unwrap(), + c.delta.clone().unwrap(), + ]; + if capture { + leaves.extend(c.capture.as_ref().unwrap().iter().cloned()); + } + assert_eq!(leaves.len(), reference["sha256"].as_array().unwrap().len()); + for (i, a) in leaves.iter().enumerate() { + assert_eq!( + serde_json::json!(a.layout().shape()), + reference["shapes"][i] + ); + let a = ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + assert_eq!( + Sha256::digest(&bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(), + reference["sha256"][i], + "GDN run output {i}: rows={rows} capture={capture} hyper_fused={}", + options.hyper_fused + ); + } + } + let mut bytes = vec![0; hidden.layout().nbytes()]; + hidden.buffer().read(hidden.offset(), &mut bytes).unwrap(); + let expected: u16 = match (linear, with_ple) { + (true, false) => 0x3e00, + (false, false) => 0x3ec0, + (true, true) => 0x3e40, + (false, true) => 0x3ee0, + }; + assert!(bytes.chunks_exact(2).all(|b| b == expected.to_le_bytes())); + if let Some(logits) = result.logits { + assert_eq!( + logits.layout().shape(), + [ + 1, + if keep == 0 { + rows + } else { + keep.max(1).min(rows) + }, + 32 + ] + ); + let mut bytes = vec![0; logits.layout().nbytes()]; + logits.buffer().read(logits.offset(), &mut bytes).unwrap(); + assert!(bytes.chunks_exact(2).all(|b| b == 0x4320u16.to_le_bytes())); // 160 + } + } + assert_eq!( + model.replay_count(), + if linear && !with_ple { 4 } else { 0 } + ); + eprintln!("capture-commit linear={linear} ple={with_ple}"); + TextModel::clear_verify_capture(&mut caches); + let entry = caches[0].as_ref().unwrap(); + let snapshots = vec![match &entry.attention { + AttentionCache::Linear(c) => Some(vec![ + c.conv.clone(), + c.delta.clone(), + entry.ple.conv.clone(), + entry.ple.history.clone(), + ]), + AttentionCache::Qsa(_) => None, + }]; + let ids = Array::new( + &[1, 4], + Dtype::I64, + super::scalar_buffer( + &[3i64, 4, 5, 6] + .into_iter() + .flat_map(i64::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + options.gdn.capture = true; + model + .call( + &ids, + Some(&mut caches), + None, + OutputOptions { + emit_logits: false, + logits_keep: 0, + return_hidden: false, + }, + &options, + None, + &streams, + gpu, + ) + .unwrap(); + let before = identity_of_cache(caches[0].as_ref().unwrap()); + assert!( + !model + .commit_verified_window( + &mut caches, + Some(&snapshots), + 0, + 4, + &options, + None, + &streams, + gpu + ) + .unwrap() + ); + if linear { + assert!( + !model + .commit_verified_window(&mut caches, None, 2, 4, &options, None, &streams, gpu) + .unwrap() + ); + } + assert_eq!(identity_of_cache(caches[0].as_ref().unwrap()), before); + options.gdn.capture = false; + assert!( + model + .commit_verified_window( + &mut caches, + Some(&snapshots), + 2, + 4, + &options, + None, + &streams, + gpu + ) + .unwrap() + ); + let entry = caches[0].as_ref().unwrap(); + let mut outputs = Vec::new(); + match &entry.attention { + AttentionCache::Linear(c) => { + outputs.extend(c.conv.iter().cloned()); + outputs.extend(c.delta.iter().cloned()); + if with_ple { + assert!(entry.capture_ple.is_none()); + } else { + assert!(c.capture.is_none()); + } + } + AttentionCache::Qsa(c) => assert_eq!(c.kv.offset, offset + 2), + } + outputs.extend(entry.ple.conv.iter().cloned()); + outputs.extend(entry.ple.history.iter().cloned()); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + if linear && with_ple { + assert_eq!( + ops::read_i64(entry.ple.history.as_ref().unwrap(), &streams, gpu).unwrap(), + [3, 4] + ); + } + TextModel::clear_verify_capture(&mut caches); + assert!(caches[0].as_ref().unwrap().capture_ple.is_none()); + if let AttentionCache::Linear(c) = &caches[0].as_ref().unwrap().attention { + assert!(c.capture.is_none()); + } + model.head = Some(Linear::Dense(&untied_head)); + let override_embedding = constant(&[1, 1, 2560], 0x3e80); // 0.25 + let result = model + .call( + &integer(&[1, 1], 9), + Some(&mut caches), + Some(&override_embedding), + OutputOptions { + emit_logits: true, + logits_keep: 0, + return_hidden: true, + }, + &options, + None, + &streams, + gpu, + ) + .unwrap(); + let hidden = result.hidden.unwrap(); + let logits = result.logits.unwrap(); + ops::evaluate(&streams, &[hidden.clone(), logits.clone()], gpu, false).unwrap(); + assert_eq!(logits.layout().shape(), [1, 1, 8]); + let expected: u16 = match (linear, with_ple) { + (true, false) => 0x3e80, + (false, false) => 0x3f00, + (true, true) => 0x3ea0, + (false, true) => 0x3f10, + }; + for (array, expected) in [(hidden, expected), (logits, 0x42a0u16)] { + let mut bytes = vec![0; array.layout().nbytes()]; + array.buffer().read(array.offset(), &mut bytes).unwrap(); + assert!(bytes.chunks_exact(2).all(|b| b == expected.to_le_bytes())); + } + if !linear && !with_ple { + let mut mixer = hc(); + mixer.inject = None; + model.mtp = Some(super::mtp::Mtp { + norm_hidden: &hc_norm, + norm_embedding: &mtp_embedding_norm, + fc_hidden: Linear::Quantized(&identity), + fc_embedding: Linear::Quantized(&identity), + eps: 1e-6, + layer: DecoderLayer { + attention: qsa(), + mlp: mlp(), + attn_hyper: hc(), + mlp_hyper: hc(), + ple: None, + }, + mixer, + }); + let mut draft_cache = model.make_mtp_cache(0); + let trunk_hidden = model.last_widened.as_ref().unwrap().id(); + let trunk_cache = identity_of_cache(caches[0].as_ref().unwrap()); + let from_values = |values: [f32; 4]| { + let bytes = values + .into_iter() + .flat_map(|v| { + let bits = v.to_bits(); + let bf = ((bits + 0x7fff + ((bits >> 16) & 1)) >> 16) as u16; + std::iter::repeat_n(bf.to_le_bytes(), 2560).flatten() + }) + .collect::>(); + Array::new( + &[1, 1, 10240], + Dtype::BF16, + super::scalar_buffer(&bytes).unwrap(), + ) + .unwrap() + }; + let bf = |v: f32| { + let bits = v.to_bits(); + f32::from_bits((bits + 0x7fff + ((bits >> 16) & 1)) & 0xffff0000) + }; + let mut expected = [1., 2., 3., 4.]; + let mut widened = from_values(expected); + for depth in 0..3 { + eprintln!("MTP recursive depth={depth}"); + let result = model + .mtp_forward( + &widened, + &integer(&[1, 1], 7), + Some(&mut draft_cache), + true, + &options, + None, + &streams, + gpu, + ) + .unwrap(); + let hidden = result.hidden.unwrap(); + let logits = result.logits.unwrap(); + ops::evaluate(&streams, &[hidden.clone(), logits.clone()], gpu, false).unwrap(); + let rms = (expected.iter().map(|v| v * v).sum::() / 4. + 1e-6).sqrt(); + expected = expected.map(|v| bf(bf(bf(v / rms) + 1.) + 0.25)); + let mut bytes = vec![0; 10240 * 2]; + hidden.buffer().read(hidden.offset(), &mut bytes).unwrap(); + for (stream_bytes, expected) in bytes.chunks_exact(2560 * 2).zip(expected) { + assert!( + stream_bytes + .chunks_exact(2) + .all(|b| b == ((expected.to_bits() >> 16) as u16).to_le_bytes()), + "MTP depth={depth} expected={expected}" + ); + } + assert_eq!(hidden.layout().shape(), [1, 1, 10240]); + assert_eq!(logits.layout().shape(), [1, 1, 8]); + let mut bytes = vec![0; 16]; + logits.buffer().read(logits.offset(), &mut bytes).unwrap(); + assert!(bytes.chunks_exact(2).all(|b| b == 0x42a0u16.to_le_bytes())); + let AttentionCache::Qsa(cache) = &draft_cache[0].as_ref().unwrap().attention else { + unreachable!() + }; + assert_eq!(cache.kv.offset, depth + 1); + widened = hidden; + } + for (supplied, rows) in [(false, 2), (true, 3)] { + eprintln!("MTP cache-only supplied_embedding={supplied} rows={rows}"); + let input = constant(&[1, rows, 2560], 0xbe00); // -0.125 distinguishes override from token lookup. + let batch = ops::broadcast_to(&widened, &[1, rows, 10240], gpu).unwrap(); + let hidden = model + .mtp_update_cache( + &batch, + &integer(&[1, rows], 7), + Some(&mut draft_cache), + supplied.then_some(&input), + &options, + None, + &streams, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&hidden), gpu, false).unwrap(); + let rms = (expected.iter().map(|v| v * v).sum::() / 4. + 1e-6).sqrt(); + expected = + expected.map(|v| bf(bf(bf(v / rms) + if supplied { -1. } else { 1. }) + 0.25)); + let mut bytes = vec![0; hidden.layout().nbytes()]; + hidden.buffer().read(hidden.offset(), &mut bytes).unwrap(); + for (stream_bytes, expected) in bytes + .chunks_exact(2560 * 2) + .zip(expected.into_iter().cycle()) + { + assert!( + stream_bytes + .chunks_exact(2) + .all(|b| b == ((expected.to_bits() >> 16) as u16).to_le_bytes()) + ); + } + widened = ops::slice(&hidden, &[0, rows - 1, 0], &[1, rows, 10240], &[1; 3], gpu) + .unwrap(); + } + let AttentionCache::Qsa(cache) = &draft_cache[0].as_ref().unwrap().attention else { + unreachable!() + }; + assert_eq!(cache.kv.offset, 8); + let before = identity_of_cache(draft_cache[0].as_ref().unwrap()); + assert!( + model + .mtp_forward( + &widened, + &integer(&[1, 1], 7), + Some(&mut []), + false, + &options, + None, + &streams, + gpu + ) + .is_err() + ); + assert_eq!(identity_of_cache(draft_cache[0].as_ref().unwrap()), before); + let result = model + .mtp_forward( + &widened, + &integer(&[1, 1], 7), + Some(&mut draft_cache), + false, + &options, + None, + &streams, + gpu, + ) + .unwrap(); + assert!(result.hidden.is_none()); + ops::evaluate(&streams, &[result.logits.unwrap()], gpu, false).unwrap(); + assert_eq!(model.last_widened.as_ref().unwrap().id(), trunk_hidden); + assert_eq!(identity_of_cache(caches[0].as_ref().unwrap()), trunk_cache); + } + } +} + +#[cfg(test)] +fn identity_of_cache(cache: &Cache) -> Vec { + match &cache.attention { + AttentionCache::Linear(c) => vec![ + c.conv.as_ref().unwrap().id(), + c.delta.as_ref().unwrap().id(), + ], + AttentionCache::Qsa(c) => vec![ + c.kv.offset as usize, + c.kv.keys.as_ref().map_or(0, |a| a.borrow().id()), + c.kv.values.as_ref().map_or(0, |a| a.borrow().id()), + ], + } +} diff --git a/src/engine/metal/qwen_mtplx/dense.rs b/src/engine/metal/qwen_mtplx/dense.rs new file mode 100644 index 0000000..a0c4dbe --- /dev/null +++ b/src/engine/metal/qwen_mtplx/dense.rs @@ -0,0 +1,970 @@ +//! Floating Matmul on the evaluation M5 Max: projections and attention batches. +//! Original broadcasting, batch collapse, transpose preparation and dispatch. +//! Original vector/empty/dtype rules; not complex/other-device matrix arithmetic. +use super::super::gpu::{Buffer, MetalConstant}; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, dispatch_geometry, dispatch_specialized, encoder, ops, tensor, views}; + +pub(super) fn matmul(a: &Array, b: &Array, stream: Stream) -> Result { + let ashape = a.layout().shape().to_vec(); + let bshape = b.layout().shape().to_vec(); + let dtype = a.layout().dtype().promote(b.layout().dtype()); + if stream.device() != Device::Gpu + || ashape.is_empty() + || bshape.is_empty() + || !matches!(dtype, Dtype::BF16 | Dtype::F16 | Dtype::F32) + { + return Err("matmul requires nonscalar GPU inputs promoting to BF16/F16/F32".into()); + } + let a = if ashape.len() == 1 { + ops::expand_dims(a, &[0], stream)? + } else { + a.clone() + }; + let b = if bshape.len() == 1 { + ops::expand_dims(b, &[1], stream)? + } else { + b.clone() + }; + if a.layout().dim(-1)? != b.layout().dim(-2)? { + return Err("matmul inner dimensions differ".into()); + } + let n = b.layout().dim(-1)?; + let a = ops::astype(&a, dtype, false, stream)?; + let b = ops::astype(&b, dtype, false, stream)?; + let flattened = ashape.len() > 2 && bshape.len() <= 2; + let inputs = if flattened { + let rows = ashape[..ashape.len() - 1] + .iter() + .try_fold(1i32, |n, &d| n.checked_mul(d)) + .ok_or("matmul flattened dimension overflow")?; + vec![ + Array::make_operation( + stream, + &a, + Layout::new(&[rows, *ashape.last().unwrap()], dtype)?, + ops::Operation::Flatten { + start: 0, + end: ashape.len() - 2, + }, + )?, + b, + ] + } else if ashape.len() > 2 || bshape.len() > 2 { + let rank = a.layout().shape().len().max(b.layout().shape().len()); + ops::broadcast_arrays(&[a, b], &[rank - 2, rank - 1], stream)? + } else { + vec![a, b] + }; + let mut shape = inputs[0].layout().shape().to_vec(); + *shape.last_mut().unwrap() = n; + let mut out = Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new(&shape, dtype)?, + ops::Operation::DenseMatmul, + )?; + if flattened { + let mut shape = ashape.clone(); + *shape.last_mut().unwrap() = n; + out = Array::make_operation( + stream, + &out, + Layout::new(&shape, dtype)?, + ops::Operation::Unflatten { + axis: 0, + shape: ashape[..ashape.len() - 1].to_vec(), + }, + )?; + } + let mut axes = Vec::new(); + if ashape.len() == 1 { + axes.push(out.layout().shape().len() as i32 - 2); + } + if bshape.len() == 1 { + axes.push(out.layout().shape().len() as i32 - 1); + } + if axes.is_empty() { + Ok(out) + } else { + ops::squeeze(&out, Some(&axes), stream) + } +} + +pub(super) fn linear(input: &Array, weight: &Array, stream: Stream) -> Result { + // nn.Linear delegates to the same Matmul factory (including vectors, + // promotion, empty matrices and leading-axis flatten/unflatten). + matmul(input, &ops::transpose(weight, &[1, 0], stream)?, stream) +} + +fn prepare( + input: &Array, + vector: bool, + copies: &mut Vec, +) -> Result<(bool, i32, Array), String> { + let layout = input.layout(); + let rank = layout.shape().len(); + let [rows, cols]: [i32; 2] = layout.shape()[rank - 2..] + .try_into() + .map_err(|_| "dense matmul rank")?; + let [sx, sy]: [i64; 2] = layout.strides()[rank - 2..] + .try_into() + .map_err(|_| "dense matmul strides")?; + if sy == 1 && (!vector || sx == i64::from(cols)) { + return Ok(( + false, + i32::try_from(sx).map_err(|_| "dense leading dimension overflow")?, + input.clone(), + )); + } + if sx == 1 && (!vector || sy == i64::from(rows)) { + return Ok(( + true, + i32::try_from(sy).map_err(|_| "dense leading dimension overflow")?, + input.clone(), + )); + } + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, ©)?; + copies.push(copy.clone()); + Ok((false, cols, copy)) +} + +pub(super) fn tf32_enabled() -> bool { + static ENABLED: std::sync::OnceLock = std::sync::OnceLock::new(); + *ENABLED.get_or_init(|| { + let value = unsafe { libc::getenv(c"MLX_ENABLE_TF32".as_ptr()) }; + value.is_null() || unsafe { libc::atoi(value) != 0 } + }) +} + +fn dot(a: &Array, b: &Array, out: &Array, k: u32) -> Result<(), String> { + let blocks = k.div_ceil(32 * 512); + let partials = Array::new( + &[blocks as i32], + Dtype::F32, + Buffer::mtplx_bytes(u64::from(blocks) * 4)?, + )?; + dispatch_geometry( + &format!( + "dot_product_{}_it32_tg512_sg16", + a.layout().dtype().kernel_name() + ), + &[ + tensor(0, &a.buffer()) + .at_byte_offset(a.offset()) + .input(a.data_size()), + tensor(1, &b.buffer()) + .at_byte_offset(b.offset()) + .input(b.data_size()), + tensor(2, &partials.buffer()).output(blocks as usize), + bytes(3, &k), + ], + &[], + [blocks * 512, 1, 1], + [512, 1, 1], + true, + )?; + let temp = Array::new(out.layout().shape(), Dtype::F32, Buffer::mtplx_bytes(4)?)?; + super::reduce::all(&partials, &temp)?; + views::copy_gpu(&temp, out, false)?; + for a in [&partials, &temp] { + encoder::add_temporaries(std::slice::from_ref(&*a.buffer())); + } + Ok(()) +} + +pub(super) fn evaluate(a: &Array, b: &Array, out: &Array) -> Result<(), String> { + let dtype = out.layout().dtype(); + let dtype_name = dtype.kernel_name(); + if a.layout().size() == 0 || b.layout().size() == 0 { + let zero = Array::new( + &[], + dtype, + super::scalar_buffer(&vec![0; dtype.itemsize()])?, + )?; + views::full(&zero, out)?; + encoder::add_temporaries(std::slice::from_ref(&*zero.buffer())); + return Ok(()); + } + let mut m = a.layout().dim(-2)? as u32; + let n = b.layout().dim(-1)? as u32; + let k = a.layout().dim(-1)? as u32; + let nbytes = out.layout().nbytes(); + out.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let mut copies = Vec::new(); + let (ta, lda, a) = prepare(a, m == 1, &mut copies)?; + let (tb, ldb, b) = prepare(b, n == 1, &mut copies)?; + let (mut batch_shape, mut strides) = { + let al = a.layout(); + let bl = b.layout(); + let rank = al.shape().len(); + views::collapse_joint( + &al.shape()[..rank - 2], + &[&al.strides()[..rank - 2], &bl.strides()[..rank - 2]], + ) + }; + if batch_shape.is_empty() { + batch_shape.push(1); + strides = vec![vec![0], vec![0]]; + } + let mut batch = u32::try_from(out.layout().size() / (m as usize * n as usize)) + .map_err(|_| "matmul batch overflow")?; + if batch > 1 + && !ta + && batch_shape.len() == 1 + && a.layout().stride(-2)? == i64::from(k) + && strides[0][0] == i64::from(m) * i64::from(k) + && strides[1][0] == 0 + { + m = m + .checked_mul(batch_shape[0] as u32) + .filter(|&v| v <= i32::MAX as u32) + .ok_or("flattened matmul M overflow")?; + batch = 1; + batch_shape = vec![1]; + strides = vec![vec![0], vec![0]]; + } + let [a_batch, b_batch]: [Vec; 2] = strides.try_into().unwrap(); + let batch_ndim = batch_shape.len() as i32; + if m == 1 + && n == 1 + && batch == 1 + && a.layout().flags().row_contiguous + && b.layout().flags().row_contiguous + { + dot(&a, &b, out, k)?; + for copy in copies { + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + } + return Ok(()); + } + let ab = a.buffer(); + let bb = b.buffer(); + let ob = out.buffer(); + let ai = |index| { + tensor(index, &ab) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }; + let bi = |index| { + tensor(index, &bb) + .at_byte_offset(b.offset()) + .input(b.data_size()) + }; + let output = |index| tensor(index, &ob).output(out.data_size()); + let constants = |pairs: &[(u32, bool)]| { + pairs + .iter() + .map(|&(index, value)| MetalConstant { + index, + value: u32::from(value), + kind: 0, + }) + .collect::>() + }; + let passes = m.div_ceil(5); + if !ta + && tb + && dtype != Dtype::F32 + && n > 1 + && (2..=15).contains(&m) + && k.is_multiple_of(4) + && a.offset().is_multiple_of(8) + && b.offset().is_multiple_of(8) + && lda % 4 == 0 + && ldb % 4 == 0 + && a_batch.iter().chain(&b_batch).all(|s| s % 4 == 0) + { + let vectors = m.div_ceil(passes); + let lanes = if passes == 1 || n <= 64 { 32 } else { 16 }; + dispatch_specialized( + &format!("gemv_wide_{dtype_name}_nv{vectors}_kl{lanes}"), + &[ + bi(0), + ai(1), + output(3), + bytes(4, &k), + bytes(5, &n), + bytes(6, &m), + bytes(7, &ldb), + bytes(8, &lda), + bytes(11, &batch_ndim), + bytes(12, batch_shape.as_slice()), + bytes(13, a_batch.as_slice()), + bytes(14, b_batch.as_slice()), + ], + &constants(&[(0, batch_ndim != 1), (1, false)]), + [if n >= 65536 { 1 } else { passes }, n.div_ceil(4), batch], + [32, lanes / 8, 1], + )?; + } else if m.min(n) == 1 { + let b_matrix = n != 1; + let transposed = if b_matrix { !tb } else { ta }; + let length = if b_matrix { n } else { m }; + let ld = if b_matrix { ldb } else { lda }; + let (mat_batch, vec_batch) = if b_matrix { + (&b_batch, &a_batch) + } else { + (&a_batch, &b_batch) + }; + let (mut bm, mut bn, mut sm, mut sn, mut tm, mut tn) = (1, 1, 1, 32, 4, 4); + let per_group; + if transposed { + (sm, sn) = if k >= 8192 && length >= 2048 { + (4, 8) + } else { + (8, 4) + }; + bn = if length >= 2048 { + 16 + } else if length >= 512 { + 4 + } else { + 2 + }; + if length < tn { + tn = 1; + } + per_group = bn * sn * tn; + } else { + bm = if length >= 4096 { 8 } else { 4 }; + if k <= 64 { + bm = 1; + sm = 8; + sn = 4; + } else if u64::from(k) >= 16 * u64::from(length) { + bm = 1; + bn = 8; + } + if length < tm { + tm = 1; + } + per_group = bm * sm * tm; + } + dispatch_specialized( + &format!( + "gemv_{}{dtype_name}_bm{bm}_bn{bn}_sm{sm}_sn{sn}_tm{tm}_tn{tn}_nc{}_axpby0", + if transposed { "t_" } else { "" }, + u8::from(batch_ndim != 1) + ), + &[ + if b_matrix { bi(0) } else { ai(0) }, + if b_matrix { ai(1) } else { bi(1) }, + output(3), + bytes(4, &k), + bytes(5, &length), + bytes(6, &ld), + bytes(9, &batch_ndim), + bytes(10, batch_shape.as_slice()), + bytes(11, vec_batch.as_slice()), + bytes(12, mat_batch.as_slice()), + ], + &[], + [length.div_ceil(per_group), 1, batch], + [32, bn, bm], + )?; + } else { + let trans = format!( + "{}{}", + if ta { 't' } else { 'n' }, + if tb { 't' } else { 'n' } + ); + // M5 Max (architecture suffix s), matching the runtime's cached flag. + let nax = tf32_enabled() || dtype != Dtype::F32; + let split = batch == 1 + && if nax { + u64::from(k) >= 3 * u64::from(m.max(n)) || (m.max(n) <= 1024 && k > 2 * m.max(n)) + } else { + u64::from(m.div_ceil(16)) * u64::from(n.div_ceil(16)) <= 2048 + && k / 16 >= 8 + && k >= m.max(n) + }; + if split { + let (bm, bn, bk, wm, wn) = if !nax { + ( + if m < 40 { 16 } else { 32 }, + if n < 40 { 16 } else { 32 }, + 16, + 2, + 2, + ) + } else if (u64::from(m) + u64::from(n)) / 2 < 512 || k <= 4096 { + (64, 64, 256, 2, 2) + } else { + (128, 128, 512, 4, 4) + }; + let simd_parts = (k / 16 / (m.div_ceil(32) * n.div_ceil(32))) + .next_power_of_two() + .clamp(2, 32); + let part_size = if !nax { + (k / 16 / simd_parts) * 16 + } else if k <= 1024 { + k / 2 + } else if k <= 2048 { + 1024 + } else if k <= 4096 { + 2048 + } else { + 4096 + }; + let parts = if nax { + k.div_ceil(part_size) + } else { + simd_parts + }; + let stride = m + .checked_mul(n) + .filter(|&v| v <= i32::MAX as u32) + .ok_or("dense split output overflow")?; + let intermediate = Buffer::mtplx_bytes(u64::from(parts) * u64::from(stride) * 4)?; + let (tn, tm) = (n.div_ceil(bn), m.div_ceil(bm)); + let swizzle = u32::from(nax && tm > 3); + let params = [ + m, + n, + k, + lda as u32, + ldb as u32, + n, + tn, + tm, + parts, + stride, + part_size, + swizzle, + part_size / bk, + ]; + let name = if nax { + format!( + "steel_gemm_splitk_nax_{trans}_{dtype_name}_float32_bm{bm}_bn{bn}_bk{bk}_wm{wm}_wn{wn}" + ) + } else { + format!( + "steel_gemm_splitk_{trans}_{dtype_name}_float32_bm{bm}_bn{bn}_bk{bk}_wm{wm}_wn{wn}_MN_{}aligned_K_{}aligned", + if m.is_multiple_of(bm) && n.is_multiple_of(bn) { + 't' + } else { + 'n' + }, + if k.is_multiple_of(bk) { 't' } else { 'n' } + ) + }; + dispatch_specialized( + &name, + &[ + ai(0), + bi(1), + tensor(2, &intermediate).output(parts as usize * stride as usize), + bytes(3, ¶ms), + ], + &if nax { + constants(&[(200, m.is_multiple_of(bm)), (201, n.is_multiple_of(bn))]) + } else { + vec![] + }, + if nax { + [ + tn * (1 << swizzle) * tm.div_ceil(1 << swizzle) * parts, + 1, + 1, + ] + } else { + [tn, tm, parts] + }, + [32, wn, wm], + )?; + dispatch_geometry( + &format!("steel_gemm_splitk_accum_{dtype_name}_float32"), + &[ + tensor(0, &intermediate).input(parts as usize * stride as usize), + output(1), + bytes(2, &parts), + bytes(3, &stride), + bytes(4, &n), + ], + &[], + [n, m, 1], + super::block_dims([n, m, 1]), + true, + )?; + encoder::add_temporaries(std::slice::from_ref(&intermediate)); + } else { + let bk = if !nax { + 16 + } else if k >= 8192 && u64::from(k) > u64::from(m) + u64::from(n) { + 64 + } else { + 256 + }; + let (bn, wn, swizzle) = if nax { (128, 4, 2) } else { (64, 2, 0) }; + let (tn, tm) = (n.div_ceil(bn), m.div_ceil(64)); + let params = super::QsaGemmParams { + matrix: [ + m as i32, n as i32, k as i32, lda, ldb, n as i32, tn as i32, tm as i32, + ], + batch_strides: [ + *a_batch.last().unwrap(), + *b_batch.last().unwrap(), + i64::from(m) * i64::from(n), + ], + swizzle, + k_iterations: (k / bk) as i32, + batch_ndim, + padding: 0, + }; + let mut bindings = vec![ai(0), bi(1), output(3), bytes(4, ¶ms)]; + let batch_strides = a_batch.iter().chain(&b_batch).copied().collect::>(); + if batch_ndim > 1 { + bindings.extend([ + bytes(6, batch_shape.as_slice()), + bytes(7, batch_strides.as_slice()), + ]); + } + dispatch_specialized( + &format!( + "steel_gemm_fused_{}{trans}_{dtype_name}_{dtype_name}_bm64_bn{bn}_bk{bk}_wm2_wn{wn}", + if nax { "nax_" } else { "" } + ), + &bindings, + &constants(&[ + (10, batch_ndim > 1), + (100, false), + (110, false), + (200, m.is_multiple_of(64)), + (201, n.is_multiple_of(bn)), + (202, k.is_multiple_of(bk)), + ]), + [tn * (1 << swizzle), tm.div_ceil(1 << swizzle), batch], + [32, wn, 2], + )?; + } + } + for copy in copies { + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + } + Ok(()) +} + +#[test] +#[ignore = "requires Apple M5 Max; actual BF16 batched matmul reference"] +fn mtplx_dense_attention_batches_match_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let swap = |a: &Array| { + let mut axes = (0..a.layout().shape().len() as i32).collect::>(); + let rank = axes.len(); + axes.swap(rank - 2, rank - 1); + ops::transpose(a, &axes, gpu).unwrap() + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-dense-batch.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 34); + let mut checked = 0; + for deferred in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let kind = case["kind"].as_str().unwrap(); + let rows = case["rows"].as_i64().unwrap() as i32; + let (k, n) = (64, 37); + let (a, b) = match kind { + "qk" | "pv" => { + let batch = case["batch"].as_i64().unwrap() as i32; + let total = case["total"].as_i64().unwrap() as i32; + if kind == "qk" { + let q = ops::transpose( + &bf16(&[batch, rows, 24, 256], 91), + &[0, 2, 1, 3], + gpu, + ) + .unwrap(); + ( + ops::reshape(&q, &[batch, 2, 12, rows, 256], gpu).unwrap(), + swap(&bf16(&[batch, 2, 1, total, 256], 92)), + ) + } else { + ( + bf16(&[batch, 2, 12, rows, total], 91), + bf16(&[batch, 2, 1, total, 256], 92), + ) + } + } + "cross" => (bf16(&[2, 1, rows, k], 91), swap(&bf16(&[1, 3, n, k], 92))), + "transpose" => (swap(&bf16(&[3, k, rows], 91)), bf16(&[3, k, n], 92)), + "copy" => ( + ops::slice( + &bf16(&[3, rows, k * 2], 91), + &[0, 0, 1], + &[3, rows, k * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + ops::slice( + &bf16(&[3, k, n * 2], 92), + &[0, 0, 1], + &[3, k, n * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + ), + "collapse" | "flatten" => { + let b = swap(&bf16(&[n, k], 92)); + ( + bf16(&[3, rows, k], 91), + if kind == "collapse" { + ops::expand_dims(&b, &[0], gpu).unwrap() + } else { + b + }, + ) + } + "offset" => { + let a = ops::slice( + &bf16(&[3 * rows * k + 1], 91), + &[1], + &[3 * rows * k + 1], + &[1], + gpu, + ) + .unwrap(); + let b = ops::slice( + &bf16(&[3 * n * k + 1], 92), + &[1], + &[3 * n * k + 1], + &[1], + gpu, + ) + .unwrap(); + ( + ops::reshape(&a, &[3, rows, k], gpu).unwrap(), + swap(&ops::reshape(&b, &[3, n, k], gpu).unwrap()), + ) + } + _ => panic!("unknown matmul case"), + }; + if !deferred { + ops::evaluate(&streams, &[a.clone(), b.clone()], gpu, false).unwrap(); + } + let output = matmul(&a, &b, gpu).unwrap(); + drop((a, b)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + if matches!(kind, "qk" | "pv" | "cross") { + assert!( + !calls.iter().any(|r| r.0.starts_with("steel_gemm_splitk_")), + "split-K is disabled for true batches" + ); + } + verify( + case["kernel"].as_str().unwrap(), + &[(&output.buffer(), output.layout().size() as u32)], + ); + checked += 1; + }); + } + } + assert_eq!(checked, 68); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple M5 Max; canonical QSA F32 graph with the original TF32 setting"] +fn mtplx_qsa_score_array_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let mut checked = 0; + for row in include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| { + r["kernel"].as_str().unwrap().starts_with("qsa_f32_score_") + && r["tf32"].as_bool() == Some(tf32_enabled()) + }) + { + super::eval::execution_tests::observed(|| { + let n = |k: &str| row[k].as_u64().unwrap() as u32; + let backing = |count: u32, salt: u32, bf16: bool, shape: &[i32], strides: &[i64]| { + let (dtype, buffer) = if bf16 { + (Dtype::BF16, pattern(count, salt)) + } else { + let data = (0..count) + .flat_map(|i| { + let base = ((i * 17 + salt * 13) % 257) as i32 - 128; + (base as f32 / 128.0 + (i % 7) as f32 / 65536.0).to_le_bytes() + }) + .collect::>(); + (Dtype::F32, super::scalar_buffer(&data).unwrap()) + }; + let a = Array::unallocated(shape, dtype).unwrap(); + let (no_broadcast, rc, cc) = a.layout().contiguity(strides).unwrap(); + let flags = super::array::Flags { + contiguous: no_broadcast == count as usize, + row_contiguous: rc, + col_contiguous: cc, + }; + a.set_strided_data(buffer, count as usize, strides, flags, 0) + .unwrap(); + a + }; + let strides = |key: &str| { + row[key] + .as_array() + .unwrap() + .iter() + .map(|s| s.as_i64().unwrap()) + .collect::>() + }; + let mut qs = vec![0]; + qs.extend(strides("q_strides")); + let mut ps = vec![0, 0]; + ps.extend(strides("pooled_strides")); + let q = backing( + n("q_count"), + 94, + row["bf16"].as_bool().unwrap(), + &[1, n("rows") as i32, 4, 128], + &qs, + ); + let p = backing( + n("pooled_count"), + 95, + false, + &[1, 1, 128, n("blocks") as i32], + &ps, + ); + let out = super::attention::qsa_scores(&q, &p, 128, gpu).unwrap(); + drop((q, p)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + verify_typed( + row["kernel"].as_str().unwrap(), + &[(&out.buffer(), n("rows") * n("blocks"), 4)], + ); + checked += 1; + }); + } + assert_eq!(checked, 192); +} + +#[test] +#[ignore = "requires Apple M5 Max; floating Matmul factory and original dispatch"] +fn mtplx_dense_float_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let dtype = |tag: &str| match tag { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => panic!("dtype"), + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-dense-float.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["tf32"].as_bool() == Some(tf32_enabled())) + .collect::>(); + assert_eq!(cases.len(), 114); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [m, n, k] = ["m", "n", "k"].map(|s| case[s].as_i64().unwrap() as i32); + let kind = case["kind"].as_str().unwrap(); + let (ta, tb) = (case["ta"].as_bool().unwrap(), case["tb"].as_bool().unwrap()); + let source = |shape: &[i32], salt: u32, typ: Dtype| { + let mut physical = shape.to_vec(); + if kind == "copy" { + *physical.last_mut().unwrap() *= 2; + } + let count = physical.iter().product::() + i32::from(kind == "offset"); + let mut a = ops::astype( + &Array::new(&[count], Dtype::BF16, pattern(count as u32, salt)).unwrap(), + typ, + false, + gpu, + ) + .unwrap(); + if typ == Dtype::F32 { + let data = (0..count) + .flat_map(|i| ((i % 7) as f32 / 65536.).to_le_bytes()) + .collect::>(); + let perturb = + Array::new(&[count], Dtype::F32, super::scalar_buffer(&data).unwrap()) + .unwrap(); + a = super::binary::binary(&a, &perturb, super::binary::Binary::Add, gpu) + .unwrap(); + } + if kind == "offset" { + a = ops::slice(&a, &[1], &[count], &[1], gpu).unwrap(); + } + a = ops::reshape(&a, &physical, gpu).unwrap(); + if kind == "copy" { + let mut steps = vec![1; physical.len()]; + *steps.last_mut().unwrap() = 2; + a = ops::slice(&a, &vec![0; physical.len()], &physical, &steps, gpu) + .unwrap(); + } + a + }; + let mut ashape = if kind == "cross" { + vec![2, 1] + } else if ["copy", "offset", "collapse", "flatten"].contains(&kind) { + vec![3] + } else { + vec![] + }; + let mut bshape = if kind == "cross" { + vec![1, 3] + } else if ["copy", "offset"].contains(&kind) { + vec![3] + } else if kind == "collapse" { + vec![1] + } else { + vec![] + }; + ashape.extend(if ta { [k, m] } else { [m, k] }); + bshape.extend(if tb { [n, k] } else { [k, n] }); + let mut a = source(&ashape, 171, dtype(case["a_dtype"].as_str().unwrap())); + let mut b = source(&bshape, 172, dtype(case["b_dtype"].as_str().unwrap())); + let transpose = |a: &Array| { + let mut axes = (0..a.layout().shape().len() as i32).collect::>(); + let n = axes.len(); + axes.swap(n - 2, n - 1); + ops::transpose(a, &axes, gpu).unwrap() + }; + if ta { + a = transpose(&a); + } + if tb { + b = transpose(&b); + } + if ["left-vector", "vectors"].contains(&kind) { + a = ops::reshape(&a, &[k], gpu).unwrap(); + } + if ["right-vector", "vectors"].contains(&kind) { + b = ops::reshape(&b, &[k], gpu).unwrap(); + } + if prepared { + ops::evaluate(&streams, &[a.clone(), b.clone()], gpu, false).unwrap(); + } + let out = matmul(&a, &b, gpu).unwrap(); + drop((a, b)); + let shape = case["output_shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(out.layout().shape(), shape); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap() + }); + if out.layout().dtype() == Dtype::F32 { + assert!(!calls.iter().any(|c| c.0.starts_with("gemv_wide_"))); + if !tf32_enabled() { + assert!(!calls.iter().any(|c| c.0.contains("_nax_"))); + } + let contract = match (case["profile"].as_u64().unwrap(), tf32_enabled()) { + (4, true) => Some(( + "steel_gemm_splitk_nax_nn_float32_float32_bm64_bn64_bk256_wm2_wn2", + [3, 1, 1], + [32, 2, 2], + )), + (4, false) => Some(( + "steel_gemm_splitk_nn_float32_float32_bm16_bn16_bk16_wm2_wn2_MN_naligned_K_naligned", + [2, 1, 8], + [32, 2, 2], + )), + (12, true) => Some(( + "steel_gemm_splitk_nax_nn_float32_float32_bm64_bn64_bk256_wm2_wn2", + [2, 1, 1], + [32, 2, 2], + )), + (12, false) => Some(( + "steel_gemm_splitk_nn_float32_float32_bm32_bn32_bk16_wm2_wn2_MN_naligned_K_taligned", + [2, 2, 2], + [32, 2, 2], + )), + (24, true) => Some(( + "steel_gemm_fused_nax_nt_float32_float32_bm64_bn128_bk256_wm2_wn4", + [4, 1, 6], + [32, 4, 2], + )), + (24, false) => Some(( + "steel_gemm_fused_nt_float32_float32_bm64_bn64_bk16_wm2_wn2", + [1, 1, 6], + [32, 2, 2], + )), + (19, _) => Some(( + "gemv_float32_bm4_bn1_sm1_sn32_tm4_tn4_nc0_axpby0", + [2, 1, 1], + [32, 1, 4], + )), + _ => None, + }; + if let Some((name, grid, threads)) = contract { + assert_eq!( + calls + .iter() + .filter(|c| c.0 == name && c.1 == grid && c.2 == threads && !c.3) + .count(), + 1, + "{}: {calls:?}", + case["kernel"] + ); + } + } + if kind == "vectors" { + assert!( + calls + .iter() + .any(|c| c.0.starts_with("dot_product_") && c.2 == [512, 1, 1] && c.3) + ); + } + let out = ops::astype(&out, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&out.buffer(), out.layout().size() as u32, 4)], + ); + }); + } + } +} diff --git a/src/engine/metal/qwen_mtplx/encoder.rs b/src/engine/metal/qwen_mtplx/encoder.rs new file mode 100644 index 0000000..62149fd --- /dev/null +++ b/src/engine/metal/qwen_mtplx/encoder.rs @@ -0,0 +1,1410 @@ +//! CommandEncoder dependency and submission rules from MTPLX's pinned runtime +//! (backend/metal/device.cpp). Native code only performs Metal API operations. +//! This is still test-bound; complete model/stream routing remains open. +use super::*; +use std::collections::{HashMap, HashSet}; +use std::ffi::CStr; +use std::ops::{Deref, DerefMut}; +use std::sync::{Arc, Mutex, OnceLock}; + +#[derive(Clone, Copy)] +pub(super) enum Access { + Input(usize), + Output(usize), + Raw, +} + +impl Binding<'_> { + /// Byte offset relative to the bound backing, like set_input/output_array. + /// Geometry validation belongs to the array; native binding checks the base. + pub(super) fn at_byte_offset(mut self, offset: u64) -> Self { + assert!(self.allocation.is_some()); + self.raw.offset = offset; + self + } + + pub(super) fn input(mut self, elements: usize) -> Self { + assert!(self.allocation.is_some()); + self.access = Some(Access::Input(elements)); + self + } + + pub(super) fn output(mut self, elements: usize) -> Self { + assert!(self.allocation.is_some()); + self.access = Some(Access::Output(elements)); + self + } + + pub(super) fn raw_buffer(mut self) -> Self { + assert!(self.allocation.is_some()); + self.access = Some(Access::Raw); + self + } +} + +thread_local! { + static ACTIVE: RefCell>>> = const { RefCell::new(None) }; +} + +/// One encoding-thread stream. The scope owns its queue across operations and +/// routes the existing operators/allocations, without adding dispatch boundaries. +pub(in super::super) struct Scope(Rc>); + +impl Scope { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn new() -> Result { + if ACTIVE.with(|active| active.borrow().is_some()) { + return Err("MTPLX encoder scope is already active".into()); + } + let encoder = Rc::new(RefCell::new(Encoder::new(allocator::Allocator::new()?)?)); + Self::activate(encoder) + } + + pub(super) fn activate(encoder: Rc>) -> Result { + if ACTIVE.with(|active| active.borrow().is_some()) { + return Err("MTPLX encoder scope is already active".into()); + } + ACTIVE.with(|active| *active.borrow_mut() = Some(encoder.clone())); + Ok(Self(encoder)) + } + + pub(in super::super) fn synchronize(&self) -> Result<(), String> { + self.0.borrow_mut().synchronize() + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn commits(&self) -> usize { + self.0.borrow().commits + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(in super::super) fn primitive_commits(&self) -> usize { + self.0.borrow().primitive_commits + } +} + +impl Drop for Scope { + fn drop(&mut self) { + let owner = ACTIVE.with(|active| active.borrow_mut().take()).unwrap(); + assert!(Rc::ptr_eq(&owner, &self.0)); + // The final Rc drains Encoder after routing is removed. Never leave an + // expired thread-local owner, including during unwinding. + } +} + +pub(super) fn with_active(operation: impl FnOnce(&mut Encoder) -> T) -> Option { + let owner = ACTIVE.with(|active| active.borrow().clone()); + owner.map(|owner| operation(&mut owner.borrow_mut())) +} + +pub(in super::super) fn active_allocator() -> Option> { + with_active(|encoder| encoder.allocator.clone()) +} + +/// Both CPU and GPU evaluators retain inputs and siblings by Data identity, +/// excluding the primary output (including an input donated to that output). +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) fn primitive_buffers<'a>( + inputs: &[&'a Buffer], + outputs: &'a [Buffer], + primary: usize, +) -> Result, String> { + let selected = outputs + .get(primary) + .ok_or("invalid evaluator primary output")?; + Ok(data_buffers( + inputs.iter().copied().chain(outputs.iter()), + Some(selected), + )) +} + +pub(super) fn data_buffers<'a>( + buffers: impl Iterator, + primary: Option<&Buffer>, +) -> Vec<&'a Buffer> { + let mut seen = HashSet::new(); + if let Some(primary) = primary { + seen.insert(primary.data_identity()); + } + buffers + .filter(|buffer| seen.insert(buffer.data_identity())) + .collect() +} + +pub(super) fn add_temporaries(buffers: &[Buffer]) { + with_active(|encoder| { + for buffer in buffers { + encoder.add_temporary(buffer); + } + }); +} + +/// Concatenate's disjoint slice writers share an output allocation. Keep their +/// dependency join outside the dispatch borrow, including on early return. +pub(super) struct ConcurrentScope(Option>>); + +pub(super) fn concurrent_scope() -> ConcurrentScope { + let owner = ACTIVE.with(|active| active.borrow().clone()); + if let Some(owner) = &owner { + owner.borrow_mut().dependencies.concurrent = true; + } + ConcurrentScope(owner) +} + +impl Drop for ConcurrentScope { + fn drop(&mut self) { + if let Some(owner) = &self.0 { + owner.borrow_mut().dependencies.end_concurrent(); + } + } +} + +#[derive(Default)] +struct Dependencies { + prev_inputs: HashSet, + prev_outputs: HashSet, + next_inputs: HashSet, + next_outputs: HashSet, + concurrent_outputs: HashSet, + all_inputs: HashSet, + all_outputs: HashSet, + needs_barrier: bool, + concurrent: bool, + ops: i32, + // The original adds array.data_size(), measured in ELEMENTS, not bytes. + data_size: usize, +} + +impl Dependencies { + fn bind(&mut self, resource: usize, access: Access) { + match access { + Access::Raw => { + self.all_inputs.insert(resource); + self.all_outputs.insert(resource); + } + Access::Input(elements) | Access::Output(elements) => { + if self.all_inputs.insert(resource) { + self.data_size = self.data_size.wrapping_add(elements); + } + self.next_inputs.insert(resource); + self.needs_barrier |= self.prev_outputs.contains(&resource); + if matches!(access, Access::Output(_)) { + self.register_output(resource); + } + } + } + } + + fn register_output(&mut self, resource: usize) { + self.all_outputs.insert(resource); + if self.concurrent { + self.concurrent_outputs.insert(resource); + } else { + self.next_outputs.insert(resource); + self.needs_barrier |= self.prev_inputs.contains(&resource); + } + } + + fn dispatched(&mut self) { + if self.needs_barrier { + self.needs_barrier = false; + std::mem::swap(&mut self.prev_inputs, &mut self.next_inputs); + std::mem::swap(&mut self.prev_outputs, &mut self.next_outputs); + } else { + self.prev_inputs.extend(self.next_inputs.iter()); + self.prev_outputs.extend(self.next_outputs.iter()); + } + self.next_inputs.clear(); + self.next_outputs.clear(); + self.ops += 1; + } + + fn end_concurrent(&mut self) { + self.concurrent = false; + self.prev_outputs.extend(self.concurrent_outputs.drain()); + } + + fn end_encoding(&mut self) { + self.needs_barrier = false; + self.concurrent = false; + self.prev_inputs.clear(); + self.next_inputs.clear(); + self.prev_outputs.clear(); + self.next_outputs.clear(); + self.concurrent_outputs.clear(); + self.all_inputs.clear(); + // all_outputs is moved to the completion handler, like the reference. + assert!(self.all_outputs.is_empty()); + } + + fn needs_commit(&self, [ops, mb]: [i32; 2]) -> bool { + self.ops > ops || (self.data_size >> 20) > mb as usize + } + + fn committed(&mut self) { + self.ops = 0; + self.data_size = 0; + } +} + +struct Native(NonNull); + +impl Native { + fn new(pointer: *mut c_void, what: &str) -> Result { + NonNull::new(pointer) + .map(Self) + .ok_or_else(|| format!("failed to create MTPLX {what}")) + } + + fn raw(&self) -> *mut c_void { + self.0.as_ptr() + } +} + +impl Drop for Native { + fn drop(&mut self) { + unsafe { ds4_gpu_mtplx_object_free(self.raw()) }; + } +} + +struct Fence(Native); +// SAFETY: only immutable handles/ownership cross threads. Fence encoding is +// confined to Encoder's thread; completion callbacks only drop retained handles. +unsafe impl Send for Fence {} +unsafe impl Sync for Fence {} + +type Producers = Arc>>>; +pub(super) type SharedError = Arc>>; + +pub(super) struct Event { + native: Native, + pub(super) error: Mutex>, +} + +// SAFETY: SharedEvent CPU operations are thread-safe native APIs; error pointer +// replacement is mutex protected. No mutable encoder crosses a thread boundary. +unsafe impl Send for Event {} +unsafe impl Sync for Event {} + +impl Event { + pub(super) fn new() -> Result, String> { + Ok(Arc::new(Self { + native: Native::new(unsafe { ds4_gpu_mtplx_event_create() }, "shared event")?, + error: Mutex::new(None), + })) + } + + pub(super) fn check_error(&self) -> Result<(), String> { + let error = self.error.lock().unwrap().clone(); + if let Some(error) = error { + return error.lock().unwrap().take().map_or(Ok(()), Err); + } + Ok(()) + } + + pub(super) fn signal(&self, value: u64) { + unsafe { ds4_gpu_mtplx_event_signal(self.native.raw(), value) }; + } + + pub(super) fn wait(&self, value: u64) -> Result<(), String> { + self.check_error()?; + self.wait_raw(value); + self.check_error() + } + + pub(super) fn wait_raw(&self, value: u64) { + unsafe { ds4_gpu_mtplx_event_wait(self.native.raw(), value) }; + } + + pub(super) fn is_signaled(&self, value: u64) -> bool { + unsafe { ds4_gpu_mtplx_event_value(self.native.raw()) >= value } + } +} + +fn finish_submission( + error: &SharedError, + waited: &[Arc], + signaled: &[(Arc, u64)], + failure: Option, + completion: Option>, +) { + if let Some(completion) = completion { + completion(); + } + for event in waited { + let source = event.error.lock().unwrap().clone(); + // Snapshot first, then release the source lock before replacing ours. + // Different queues may complete on different Metal callback threads. + let message = source + .filter(|source| !Arc::ptr_eq(source, error)) + .and_then(|source| source.lock().unwrap().clone()); + if let Some(message) = message { + *error.lock().unwrap() = Some(message); + break; + } + } + if let Some(failure) = &failure { + error + .lock() + .unwrap() + .get_or_insert_with(|| format!("[METAL] Command buffer execution failed: {failure}.")); + } + let has_error = error.lock().unwrap().is_some(); + if has_error { + for (event, _) in signaled { + *event.error.lock().unwrap() = Some(error.clone()); + } + } + // A GPU error skips Metal's encoded signal. Unblock downstream queues only + // after associating their events with the shared, consumable error state. + if failure.is_some() { + for (event, value) in signaled { + event.signal(*value); + } + } +} + +fn remove_completed(producers: &Producers, outputs: &HashSet, fence: &Arc) { + let mut producers = producers.lock().unwrap(); + for resource in outputs { + if producers + .get(resource) + .is_some_and(|f| Arc::ptr_eq(f, fence)) + { + producers.remove(resource); + } + } +} + +fn on_completed(command: &Native, callback: impl FnOnce(Option) + Send + 'static) { + type Callback = Box) + Send>; + unsafe extern "C" fn completed(context: *mut c_void, error: *const c_char) { + let callback = unsafe { Box::from_raw(context.cast::()) }; + let error = (!error.is_null()).then(|| { + unsafe { CStr::from_ptr(error) } + .to_string_lossy() + .into_owned() + }); + callback(error); + } + let callback: Callback = Box::new(callback); + unsafe { + ds4_gpu_mtplx_command_completed( + command.raw(), + Box::into_raw(Box::new(callback)).cast(), + completed, + ) + }; +} + +pub(super) fn arch_suffix() -> Option { + static ARCH: OnceLock> = OnceLock::new(); + *ARCH.get_or_init(|| { + let mut suffix = unsafe { ds4_gpu_mtplx_arch_suffix() }; + let arch = unsafe { libc::getenv(c"MLX_METAL_GPU_ARCH".as_ptr()) }; + if !arch.is_null() + && let Some(last) = unsafe { CStr::from_ptr(arch) }.to_bytes().last() + { + suffix = u32::from(*last); + } + char::from_u32(suffix) + }) +} + +fn limits() -> [i32; 2] { + static LIMITS: OnceLock<[i32; 2]> = OnceLock::new(); + *LIMITS.get_or_init(|| { + let defaults = match arch_suffix() { + Some('p') => [20, 40], + Some('s' | 'd') => [50, 50], + _ => [40, 40], + }; + std::array::from_fn(|i| { + let name = [c"MLX_MAX_OPS_PER_BUFFER", c"MLX_MAX_MB_PER_BUFFER"][i]; + let value = unsafe { libc::getenv(name.as_ptr()) }; + let default = defaults[i]; + if value.is_null() { + default + } else { + unsafe { libc::atoi(value) } + } + }) + }) +} + +pub(super) struct Encoder { + command: Option, + queue: Native, + encoding: Option<(Native, Arc)>, + allocator: Arc, + attached: usize, + dependencies: Dependencies, + temporaries: Vec<(usize, BufferDataHold)>, + producers: Producers, + error: SharedError, + wait_events: Vec>, + signal_events: Vec<(Arc, u64)>, + limits: [i32; 2], + // Diagnostic counts, never used for scheduling. + barriers: usize, + waits: usize, + commits: usize, + primitive_commits: usize, +} + +impl Encoder { + pub(super) fn new(allocator: Arc) -> Result { + let queue = Native::new(unsafe { ds4_gpu_mtplx_queue_create() }, "command queue")?; + let mut attached = 0; + unsafe { + allocator + .residency + .attach_new_sets(queue.raw(), &mut attached) + }; + let command = Native::new( + unsafe { ds4_gpu_mtplx_command_create(queue.raw()) }, + "command buffer", + )?; + Ok(Self { + queue, + command: Some(command), + encoding: None, + allocator, + attached, + dependencies: Dependencies::default(), + temporaries: Vec::new(), + producers: Arc::default(), + error: Arc::default(), + wait_events: Vec::new(), + signal_events: Vec::new(), + limits: limits(), + barriers: 0, + waits: 0, + commits: 0, + primitive_commits: 0, + }) + } + + fn check_error(&self) -> Result<(), String> { + self.error.lock().unwrap().take().map_or(Ok(()), Err) + } + + fn get_encoder(&mut self) -> Result<*mut c_void, String> { + if self.encoding.is_none() { + self.check_error()?; + let command = self + .command + .as_ref() + .ok_or("MTPLX command buffer unavailable")?; + let encoder = Native::new( + unsafe { ds4_gpu_mtplx_encoder_create(command.raw()) }, + "concurrent encoder", + )?; + let fence = match Native::new(unsafe { ds4_gpu_mtplx_fence_create() }, "fence") { + Ok(fence) => Arc::new(Fence(fence)), + Err(error) => { + unsafe { ds4_gpu_mtplx_encoder_end(encoder.raw()) }; + return Err(error); + } + }; + self.encoding = Some((encoder, fence)); + } + Ok(self.encoding.as_ref().unwrap().0.raw()) + } + + pub(super) fn dispatch( + &mut self, + name: &str, + bindings: &[Binding<'_>], + constants: &[MetalConstant], + grid: [u32; 3], + threads: [u32; 3], + individual_threads: bool, + ) -> Result<(), String> { + if bindings + .iter() + .any(|b| b.allocation.is_some() && b.access.is_none()) + { + return Err("MTPLX encoder requires explicit input/output/raw binding roles".into()); + } + let encoder = self.get_encoder()?; + for binding in bindings { + if let Some(access) = binding.access { + let resource = + unsafe { ds4_gpu_mtplx_tensor_allocation(binding.raw.tensor) } as usize; + self.dependencies.bind(resource, access); + } + } + let barrier = self.dependencies.needs_barrier; + let result = dispatch_geometry_on( + name, + bindings, + constants, + grid, + threads, + individual_threads, + Some((self.command.as_ref().unwrap().raw(), encoder, barrier)), + ); + match result { + Ok(()) => { + self.barriers += usize::from(barrier); + self.dependencies.dispatched(); + Ok(()) + } + Err(error) => Err(error), + } + } + + pub(super) fn barrier(&mut self) -> Result<(), String> { + let encoder = self.get_encoder()?; + unsafe { ds4_gpu_mtplx_encoder_barrier(encoder) }; + self.barriers += 1; + // Explicit barriers do not change the reference's access bookkeeping. + Ok(()) + } + + pub(super) fn register_output(&mut self, buffer: &Buffer) { + let resource = unsafe { ds4_gpu_mtplx_tensor_allocation(buffer.raw()) } as usize; + self.dependencies.register_output(resource); + } + + pub(super) fn hold_until_completed(&self, hold: impl Send + 'static) -> Result<(), String> { + let command = self + .command + .as_ref() + .ok_or("MTPLX command buffer unavailable")?; + on_completed(command, move |_| drop(hold)); + Ok(()) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn start_concurrent(&mut self) -> Concurrent<'_> { + self.dependencies.concurrent = true; + Concurrent(self) + } + + fn add_temporary(&mut self, buffer: &Buffer) { + let resource = unsafe { ds4_gpu_mtplx_tensor_allocation(buffer.raw()) } as usize; + self.temporaries.push((resource, buffer.hold_data())); + } + + /// Evaluator input/sibling Data is completion-owned, not backend scratch. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn defer_data(&self, buffers: &[&Buffer]) -> bool { + let Some(command) = &self.command else { + return false; + }; + let data = buffers + .iter() + .map(|buffer| buffer.hold_data()) + .collect::>(); + on_completed(command, move |_| drop(data)); + true + } + + /// gpu::eval runs this once after the whole primitive, not per dispatch. + pub(super) fn eval_primitive(&mut self, buffers: &[&Buffer]) -> Result<(), String> { + let data = buffers + .iter() + .map(|buffer| buffer.hold_data()) + .collect::>(); + if self.needs_commit() { + self.end_encoding(); + let completion = scheduler::global().activity.start(); + self.commit_with(Some(Box::new(move || { + // Reference task completion is announced before capture release. + drop(completion); + drop(data); + })))?; + self.primitive_commits += 1; + } else { + let command = self + .command + .as_ref() + .ok_or("MTPLX command buffer unavailable")?; + on_completed(command, move |_| drop(data)); + } + Ok(()) + } + + /// The fixed indexer tape has one open GPU stream. The general evaluator + /// must finalize all its open streams before using the same pressure gate. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn check_backpressure(&mut self) -> Result<(), String> { + let activity = &scheduler::global().activity; + if activity.needs_throttle(self.allocator.stats().active, self.allocator.memory_limit()) { + self.end_encoding(); + self.commit()?; + activity.wait_for_one(); + while self.allocator.stats().active > self.allocator.memory_limit() + && activity.count() > 0 + { + activity.wait_for_one(); + } + } + Ok(()) + } + + fn end_encoding(&mut self) { + let Some((encoder, fence)) = self.encoding.take() else { + return; + }; + for (resource, _) in &self.temporaries { + self.dependencies.all_inputs.remove(resource); + self.dependencies.all_outputs.remove(resource); + } + let mut waiting_on = HashMap::new(); + { + let mut producers = self.producers.lock().unwrap(); + for resource in &self.dependencies.all_inputs { + if let Some(prior) = producers.get(resource) + && let std::collections::hash_map::Entry::Vacant(entry) = + waiting_on.entry(Arc::as_ptr(prior) as usize) + { + unsafe { ds4_gpu_mtplx_encoder_fence(encoder.raw(), prior.0.raw(), 0) }; + self.waits += 1; + entry.insert(prior.clone()); + } + } + for resource in &self.dependencies.all_outputs { + producers.insert(*resource, fence.clone()); + } + } + unsafe { ds4_gpu_mtplx_encoder_fence(encoder.raw(), fence.0.raw(), 1) }; + let producers = self.producers.clone(); + let outputs = std::mem::take(&mut self.dependencies.all_outputs); + let temporaries = std::mem::take(&mut self.temporaries); + on_completed(self.command.as_ref().unwrap(), move |_| { + remove_completed(&producers, &outputs, &fence); + drop((temporaries, waiting_on)); + }); + unsafe { ds4_gpu_mtplx_encoder_end(encoder.raw()) }; + self.dependencies.end_encoding(); + } + + fn needs_commit(&self) -> bool { + self.dependencies.needs_commit(self.limits) + } + + pub(super) fn wait_event(&mut self, event: Arc, value: u64) -> Result<(), String> { + self.end_encoding(); + let command = self + .command + .as_ref() + .ok_or("MTPLX command buffer unavailable")?; + unsafe { ds4_gpu_mtplx_command_event(command.raw(), event.native.raw(), value, 0) }; + self.wait_events.push(event); + Ok(()) + } + + pub(super) fn signal_event(&mut self, event: Arc, value: u64) -> Result<(), String> { + self.end_encoding(); + let command = self + .command + .as_ref() + .ok_or("MTPLX command buffer unavailable")?; + unsafe { ds4_gpu_mtplx_command_event(command.raw(), event.native.raw(), value, 1) }; + self.signal_events.push((event, value)); + Ok(()) + } + + fn commit(&mut self) -> Result { + self.commit_with(None) + } + + fn commit_with( + &mut self, + completion: Option>, + ) -> Result { + // Reference callers end_encoding before commit; do not silently add an + // encoder boundary here, since that would change scheduling semantics. + if self.encoding.is_some() { + return Err("MTPLX commit requires end_encoding".into()); + } + unsafe { + self.allocator + .residency + .attach_new_sets(self.queue.raw(), &mut self.attached) + }; + let command = self + .command + .take() + .ok_or("MTPLX command buffer unavailable")?; + let error = self.error.clone(); + let waited = std::mem::take(&mut self.wait_events); + let signaled = std::mem::take(&mut self.signal_events); + on_completed(&command, move |failure| { + finish_submission(&error, &waited, &signaled, failure, completion); + }); + unsafe { ds4_gpu_mtplx_command_commit(command.raw()) }; + self.commits += 1; + match Native::new( + unsafe { ds4_gpu_mtplx_command_create(self.queue.raw()) }, + "command buffer", + ) { + Ok(next) => self.command = Some(next), + Err(error) => { + // A submitted unretained buffer must drain even if allocating + // its replacement fails. Never reuse the submitted buffer. + unsafe { ds4_gpu_mtplx_command_wait(command.raw()) }; + return Err(error); + } + } + self.dependencies.committed(); + Ok(command) + } + + pub(super) fn synchronize(&mut self) -> Result<(), String> { + self.drain()?; + self.check_error() + } + + pub(super) fn finalize(&mut self) -> Result<(), String> { + self.end_encoding(); + self.commit().map(drop) + } + + fn drain(&mut self) -> Result<(), String> { + self.end_encoding(); + let submitted = self.commit()?; + unsafe { ds4_gpu_mtplx_command_wait(submitted.raw()) }; + Ok(()) + } +} + +impl Drop for Encoder { + fn drop(&mut self) { + // Drain before queue, allocator and completion-owned state are released. + // Like the reference destructor, do not rethrow an asynchronous GPU error. + let _ = self.drain(); + } +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +struct Concurrent<'a>(&'a mut Encoder); +impl Deref for Concurrent<'_> { + type Target = Encoder; + fn deref(&self) -> &Encoder { + self.0 + } +} +impl DerefMut for Concurrent<'_> { + fn deref_mut(&mut self) -> &mut Encoder { + self.0 + } +} +impl Drop for Concurrent<'_> { + fn drop(&mut self) { + self.0.dependencies.end_concurrent(); + } +} + +#[test] +fn mtplx_encoder_barrier_epochs_and_commit_thresholds() { + let mut d = Dependencies::default(); + d.bind(1, Access::Input(8)); + d.bind(2, Access::Output(8)); + assert!(!d.needs_barrier); + d.dispatched(); + assert_eq!(d.data_size, 16); + d.bind(2, Access::Input(800)); // Same physical resource counts only once. + d.bind(3, Access::Output(8)); + assert!(d.needs_barrier, "read after write"); + d.dispatched(); + assert_eq!(d.prev_inputs, HashSet::from([2, 3])); + assert_eq!(d.prev_outputs, HashSet::from([3])); + assert_eq!(d.data_size, 24); + d.bind(1, Access::Output(8)); + assert!(!d.needs_barrier, "resource 1 is outside the current epoch"); + d.dispatched(); + d.bind(2, Access::Output(8)); + assert!(d.needs_barrier, "write after read"); + d.dispatched(); + + let mut raw = Dependencies::default(); + raw.bind(9, Access::Raw); + raw.dispatched(); + raw.bind(9, Access::Input(1024)); + assert!(!raw.needs_barrier); + assert_eq!(raw.data_size, 0, "set_buffer already inserted all_inputs"); + assert_eq!(raw.all_outputs, HashSet::from([9])); + + let mut concurrent = Dependencies { + concurrent: true, + ..Default::default() + }; + for _ in 0..2 { + concurrent.bind(1, Access::Input(8)); + concurrent.bind(2, Access::Output(8)); + assert!(!concurrent.needs_barrier, "concurrent outputs are deferred"); + concurrent.dispatched(); + } + assert!(concurrent.prev_outputs.is_empty()); + concurrent.end_concurrent(); + concurrent.bind(2, Access::Input(8)); + assert!(concurrent.needs_barrier); + concurrent.dispatched(); + + let mut threshold = Dependencies { + ops: 50, + data_size: (51 << 20) - 1, + ..Default::default() + }; + assert!( + !threshold.needs_commit([50, 50]), + "strict >, truncated Mi elements" + ); + threshold.data_size += 1; + assert!(threshold.needs_commit([50, 50])); + threshold.data_size = 0; + threshold.ops += 1; + assert!(threshold.needs_commit([50, 50])); + threshold.end_encoding(); + assert_eq!( + threshold.ops, 51, + "encoder end does not reset command counters" + ); + threshold.committed(); + assert_eq!((threshold.ops, threshold.data_size), (0, 0)); + assert!(threshold.needs_commit([-1, -1]), "signed op threshold"); + assert!( + !threshold.needs_commit([50, -1]), + "reference size_t conversion" + ); + d.all_outputs.clear(); // Moved into the completion handler in the real encoder. + let counted = d.data_size; + let ops = d.ops; + d.end_encoding(); + d.bind(1, Access::Input(8)); + assert_eq!(d.data_size, counted + 8, "unique inputs reset per encoder"); + assert_eq!( + d.ops, ops, + "command counters persist across encoder boundaries" + ); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_encoder_commits_after_primitives_and_balances_completion() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + crate::engine::reset_gpu_busy_stats(); + crate::engine::gpu_canary_probe().unwrap(); + assert_eq!(crate::engine::gpu_busy_stats().command_buffers, 0); + let scope = Scope::new().unwrap(); + scope.0.borrow_mut().limits = [1, i32::MAX]; + let input = Buffer::mtplx_bytes(16).unwrap(); + let middle = Buffer::mtplx_bytes(16).unwrap(); + let output = Buffer::mtplx_bytes(16).unwrap(); + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let copy = |from: &Buffer, to: &Buffer| { + qsa_copy_typed( + Some(from), + to, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + .unwrap(); + }; + copy(&input, &middle); + with_active(|encoder| encoder.eval_primitive(&[&input])) + .unwrap() + .unwrap(); + assert_eq!(scope.commits(), 0, "the threshold is strict, not >="); + copy(&middle, &output); + assert_eq!( + scope.commits(), + 0, + "dispatch must not commit a partial primitive" + ); + with_active(|encoder| encoder.eval_primitive(&[&middle])) + .unwrap() + .unwrap(); + assert_eq!(scope.primitive_commits(), 1); + assert_eq!(scope.commits(), 1); + scope.synchronize().unwrap(); + let busy = crate::engine::gpu_busy_stats(); + assert_eq!(busy.command_buffers, scope.commits() as u64); + assert!(busy.busy_seconds > 0.0); + assert!(busy.max_busy_seconds > 0.0); + assert_eq!(scheduler::global().activity.count(), 0); + assert!(input.unique_data()); + assert!(middle.unique_data()); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + + // One primitive may encode several dependent kernels before the check. + copy(&input, &middle); + copy(&middle, &output); + copy(&output, &middle); + assert_eq!(scope.commits(), 2); + with_active(|encoder| encoder.eval_primitive(&[&input, &output])) + .unwrap() + .unwrap(); + assert_eq!(scope.primitive_commits(), 2); + scope.synchronize().unwrap(); + assert_eq!( + crate::engine::gpu_busy_stats().command_buffers, + scope.commits() as u64, + "record every MTPLX command once, without counting its later waits" + ); + assert_eq!(scheduler::global().activity.count(), 0); + middle.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + + // Fail before callback transfer, without submitting invalid GPU work. + let mut encoder = scope.0.borrow_mut(); + let command = encoder.command.take(); + encoder.dependencies.ops = 2; + assert_eq!( + encoder.eval_primitive(&[]), + Err("MTPLX command buffer unavailable".into()) + ); + assert_eq!(scheduler::global().activity.count(), 0); + encoder.command = command; + encoder.dependencies.committed(); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_encoder_scope_routes_operators_and_allocator() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let scope = Scope::new().unwrap(); + assert!( + Scope::new().is_err(), + "nested scopes cannot replace the live stream" + ); + let allocator = active_allocator().unwrap(); + let input = Buffer::mtplx_bytes(3 * 64 * 4).unwrap(); + input.write(0, &[0x80, 0x3f].repeat(3 * 64 * 2)).unwrap(); + let output = Buffer::mtplx_bytes(3 * 64 * 2).unwrap(); + let activated = gate_up_bf16(&input, &output, [3, 64]).unwrap(); + { + let encoder = scope.0.borrow(); + assert_eq!(encoder.dependencies.ops, 2); + assert_eq!(encoder.barriers, 1); + assert_eq!( + encoder.dependencies.data_size, + 11 * 64, + "slice span (2*rows-1)*width plus two contiguous outputs, not full allocation bytes" + ); + assert_eq!(encoder.commits, 0, "scope must not invent operator commits"); + } + let bytes = [&input, &output, &activated] + .iter() + .map(|buffer| buffer.allocation_bytes() as usize) + .sum::(); + assert_eq!( + allocator.stats().active, + bytes, + "all operator storage uses the pooled allocator" + ); + scope.synchronize().unwrap(); + drop((input, output, activated)); + assert_eq!(allocator.stats().active, 0); + let failed_copy = || -> Result<(), String> { + let _concurrent = concurrent_scope(); + assert!(scope.0.borrow().dependencies.concurrent); + Err("synthetic concatenate encoding failure".into()) + }; + assert!(failed_copy().is_err()); + assert!( + !scope.0.borrow().dependencies.concurrent, + "an early return must restore the dependency join" + ); + let source = Buffer::mtplx_bytes(32).unwrap(); + let target = Buffer::mtplx_bytes(64).unwrap(); + source.write(0, &[0x80, 0x3f].repeat(16)).unwrap(); + assert!(qsa_dynamic_copy_rows([&source, &target], [8; 2], [1, 8], [None; 2], [7, 32]).is_err()); + qsa_dynamic_copy_rows([&source, &target], [8; 2], [1, 8], [None; 2], [16, 32]).unwrap(); + assert_eq!( + scope.0.borrow().dependencies.data_size, + 48, + "copy counts bound array data_size, not the eight copied elements" + ); + scope.synchronize().unwrap(); + let mut copied = [0; 16]; + target.read(0, &mut copied).unwrap(); + assert_eq!(copied.as_slice(), [0x80, 0x3f].repeat(8)); + drop((source, target)); + assert!( + allocator.stats().cached > 0, + "completed storage returns to the same cache" + ); + drop(scope); + assert!( + active_allocator().is_none(), + "scope teardown removes routing" + ); + let outside = Buffer::mtplx_bytes(128).unwrap(); + assert_eq!( + allocator.stats().active, + 0, + "legacy work must not inherit the allocator" + ); + drop(outside); +} + +#[test] +#[ignore = "requires Apple Metal; empty original-kernel grids and nil bindings"] +fn mtplx_empty_bindings_preserve_nil_dependencies_without_dummy_storage() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + { + let scope = Scope::new().unwrap(); + let allocator = active_allocator().unwrap(); + let real = Buffer::mtplx_bytes(16).unwrap(); + let before = allocator.stats(); + let empty = Buffer::mtplx_bytes(0).unwrap(); + let another = Buffer::mtplx_bytes(0).unwrap(); + let nthreads = 0_u32; + for binding in [tensor(0, &empty).output(0), tensor(0, &another).input(0)] { + scope + .0 + .borrow_mut() + .dispatch( + "input_coherent", + &[binding, bytes(1, &nthreads)], + &[], + [0, 1, 1], + [1024, 1, 1], + false, + ) + .unwrap(); + } + { + let encoder = scope.0.borrow(); + assert_eq!(encoder.dependencies.data_size, 0); + assert_eq!(encoder.dependencies.ops, 2); + assert_eq!(encoder.dependencies.all_inputs, HashSet::from([0])); + assert_eq!(encoder.dependencies.all_outputs, HashSet::from([0])); + assert_eq!( + encoder.barriers, 1, + "null resources participate in RAW dependencies" + ); + } + assert_eq!(allocator.stats(), before); + // A zero-length slice can also retain a non-null allocation and point + // exactly one past its end. Do not substitute null Data for that view. + let tail = real.view(16, 0).unwrap(); + assert_eq!(tail.data_identity(), real.data_identity()); + assert_eq!(tail.allocation_bytes(), 16); + scope + .0 + .borrow_mut() + .dispatch( + "input_coherent", + &[tensor(0, &tail).input(0), bytes(1, &nthreads)], + &[], + [0, 1, 1], + [1024, 1, 1], + false, + ) + .unwrap(); + assert_eq!(scope.0.borrow().dependencies.data_size, 0); + drop((empty, another, tail)); + scope.synchronize().unwrap(); + assert_eq!(allocator.stats(), before); + } + // Also cover the native fallback owner path, which has an Objective-C + // resource set. nil is a valid Metal binding but not an NSSet element. + let empty = Buffer::mtplx_bytes(0).unwrap(); + let nthreads = 0_u32; + let bindings = [tensor(0, &empty).input(0).raw, bytes(1, &nthreads).raw]; + assert_ne!( + unsafe { + ds4_gpu_mtplx_dispatch( + c"input_coherent".as_ptr(), + bindings.as_ptr(), + 2, + std::ptr::null(), + 0, + [0, 1, 1].as_ptr(), + [1024, 1, 1].as_ptr(), + 0, + std::ptr::null_mut(), + None, + ) + }, + 0 + ); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_encoder_untracked_dependencies_across_encoders_and_commands() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = allocator::Allocator::new().unwrap(); + allocator.set_wired_limit(8 << 20).unwrap(); + let mut enc = Encoder::new(allocator.clone()).unwrap(); + assert_ne!(enc.queue.raw(), unsafe { ds4_gpu_mtplx_command_queue() }); + assert_eq!(enc.attached, allocator.residency.num_sets()); + const N: u32 = 4096; + let a = allocator.allocate((N * 2) as usize).unwrap().unwrap(); + let x = allocator.allocate((N * 2) as usize).unwrap().unwrap(); + let y = allocator.allocate((N * 2) as usize).unwrap().unwrap(); + let expected = (0..N) + .flat_map(|i| (0x3f00_u16 + (i % 128) as u16).to_le_bytes()) + .collect::>(); + a.write(0, &expected).unwrap(); + let copy = |enc: &mut Encoder, source: &Buffer, output: &Buffer, count: u32| { + enc.dispatch( + "v_copybfloat16bfloat16", + &[ + tensor(0, source).input(count as usize), + tensor(1, output).output(count as usize), + bytes(2, &count), + ], + &[], + [count, 1, 1], + [count.min(1024), 1, 1], + true, + ) + .unwrap(); + }; + assert!( + enc.dispatch( + "v_copybfloat16bfloat16", + &[tensor(0, &a), tensor(1, &x), bytes(2, &N)], + &[], + [N, 1, 1], + [1024, 1, 1], + true + ) + .is_err() + ); + assert!( + enc.encoding.is_none(), + "unclassified bindings cannot silently use serial semantics" + ); + { + let mut concurrent = enc.start_concurrent(); + for offset in [0, N] { + let input = a.view(u64::from(offset), u64::from(N)).unwrap(); + let output = x.view(u64::from(offset), u64::from(N)).unwrap(); + copy(&mut concurrent, &input, &output, N / 2); + } + } + assert_eq!(enc.barriers, 0); + copy(&mut enc, &x, &y, N); + assert_eq!( + enc.barriers, 1, + "join concurrent writers before their reader" + ); + let previous = enc.dependencies.prev_outputs.clone(); + enc.barrier().unwrap(); + assert_eq!( + enc.dependencies.prev_outputs, previous, + "explicit barrier preserves bookkeeping" + ); + assert_eq!(enc.barriers, 2); + enc.end_encoding(); + assert_eq!(enc.waits, 0); + assert_eq!(enc.dependencies.ops, 3); + copy(&mut enc, &y, &x, N); + enc.end_encoding(); + assert_eq!(enc.waits, 1, "two prior resources share one fence wait"); + assert_eq!(enc.dependencies.ops, 4); + let submitted = enc.commit().unwrap(); // Deliberately no CPU wait. + assert_eq!(enc.dependencies.ops, 0); + assert!(!enc.needs_commit()); + for _ in 0..6 { + copy(&mut enc, &x, &y, N); + copy(&mut enc, &y, &x, N); + enc.end_encoding(); + drop(enc.commit().unwrap()); + } + enc.synchronize().unwrap(); + drop(submitted); + assert!(enc.producers.lock().unwrap().is_empty()); + let mut actual = vec![0; expected.len()]; + x.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + + // Completion must not erase a newer writer's entry. Exercise the exact + // callback helper deterministically, independent of GPU completion timing. + let old = Arc::new(Fence( + Native::new(unsafe { ds4_gpu_mtplx_fence_create() }, "fence").unwrap(), + )); + let new = Arc::new(Fence( + Native::new(unsafe { ds4_gpu_mtplx_fence_create() }, "fence").unwrap(), + )); + let producers: Producers = Arc::default(); + producers.lock().unwrap().insert(123, new.clone()); + remove_completed(&producers, &HashSet::from([123]), &old); + assert!(Arc::ptr_eq( + producers.lock().unwrap().get(&123).unwrap(), + &new + )); + remove_completed(&producers, &HashSet::from([123]), &new); + assert!(producers.lock().unwrap().is_empty()); + + // Temporaries do not enter the inter-encoder producer map. They stay alive + // through completion even after their descriptors and binding views drop. + let temporary = allocator.allocate((N * 2) as usize).unwrap().unwrap(); + let resource = unsafe { ds4_gpu_mtplx_tensor_allocation(temporary.raw()) } as usize; + copy(&mut enc, &a, &temporary, N); + enc.add_temporary(&temporary); + drop(temporary); + enc.end_encoding(); + assert!(!enc.producers.lock().unwrap().contains_key(&resource)); + enc.synchronize().unwrap(); + + // Raw buffers match set_buffer: cross-encoder input AND output, without + // automatic intra-encoder barriers or data_size accounting. + enc.dispatch( + "v_copybfloat16bfloat16", + &[ + tensor(0, &a).raw_buffer(), + tensor(1, &x).raw_buffer(), + bytes(2, &N), + ], + &[], + [N, 1, 1], + [1024, 1, 1], + true, + ) + .unwrap(); + assert_eq!(enc.dependencies.data_size, 0); + enc.end_encoding(); + assert_eq!(enc.producers.lock().unwrap().len(), 2); + enc.synchronize().unwrap(); + assert!(enc.producers.lock().unwrap().is_empty()); + + // Destruction must submit and wait with the allocator alive. + copy(&mut enc, &a, &y, N); + drop(enc); + y.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_encoder_shared_events_and_error_completion_order() { + use std::sync::atomic::{AtomicUsize, Ordering}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = allocator::Allocator::new().unwrap(); + allocator.set_wired_limit(8 << 20).unwrap(); + let input = allocator.allocate(128).unwrap().unwrap(); + let middle = allocator.allocate(128).unwrap().unwrap(); + let output = allocator.allocate(128).unwrap().unwrap(); + let expected = [0x80, 0x3f].repeat(64); + input.write(0, &expected).unwrap(); + let mut producer = Encoder::new(allocator.clone()).unwrap(); + let mut consumer = Encoder::new(allocator).unwrap(); + let ready = Event::new().unwrap(); + let done = Event::new().unwrap(); + assert!(!ready.is_signaled(1)); + assert!(!done.is_signaled(2)); + let copy = |enc: &mut Encoder, src: &Buffer, dst: &Buffer| { + enc.dispatch( + "v_copybfloat16bfloat16", + &[ + tensor(0, src).input(64), + tensor(1, dst).output(64), + bytes(2, &64_u32), + ], + &[], + [2, 1, 1], + [32, 1, 1], + false, + ) + .unwrap(); + }; + copy(&mut producer, &input, &middle); + producer.signal_event(ready.clone(), 1).unwrap(); + assert!( + producer.encoding.is_none(), + "signal ends the active encoder" + ); + let completed = Arc::new(AtomicUsize::new(0)); + let count = completed.clone(); + drop( + producer + .commit_with(Some(Box::new(move || { + count.fetch_add(1, Ordering::SeqCst); + }))) + .unwrap(), + ); + consumer.wait_event(ready.clone(), 1).unwrap(); + copy(&mut consumer, &middle, &output); + consumer.signal_event(done.clone(), 2).unwrap(); + consumer.synchronize().unwrap(); + producer.synchronize().unwrap(); + assert_eq!(completed.load(Ordering::SeqCst), 1); + assert!(ready.is_signaled(1)); + assert!(done.is_signaled(2)); + done.wait(2).unwrap(); + let mut actual = vec![0; 128]; + output.read(0, &mut actual).unwrap(); + assert_eq!( + actual, expected, + "untracked buffer crosses queues via shared event" + ); + + // Invoke the real completion policy with a synthetic status error; never + // deliberately hang/fault the GPU to exercise downstream unblocking. + let first = Event::new().unwrap(); + let second = Event::new().unwrap(); + let failed = Event::new().unwrap(); + let error: SharedError = Arc::new(Mutex::new(Some("local".into()))); + *first.error.lock().unwrap() = Some(Arc::new(Mutex::new(Some("first upstream".into())))); + *second.error.lock().unwrap() = Some(Arc::new(Mutex::new(Some("second upstream".into())))); + let observed = error.clone(); + finish_submission( + &error, + &[first, second], + &[(failed.clone(), 3)], + Some("GPU failure".into()), + Some(Box::new(move || { + assert_eq!(observed.lock().unwrap().as_deref(), Some("local")) + })), + ); + assert!( + failed.is_signaled(3), + "GPU error manually signals downstream event" + ); + assert_eq!(error.lock().unwrap().as_deref(), Some("first upstream")); + assert_eq!(failed.wait(3).unwrap_err(), "first upstream"); + assert!( + error.lock().unwrap().is_none(), + "event consumes the shared encoder error" + ); + failed.check_error().unwrap(); + + // A self-referencing waited event is skipped, not recursively locked. A + // non-GPU upstream error poisons signals but does not signal them on CPU. + let self_event = Event::new().unwrap(); + *self_event.error.lock().unwrap() = Some(error.clone()); + let downstream = Event::new().unwrap(); + *error.lock().unwrap() = Some("existing".into()); + finish_submission( + &error, + &[self_event], + &[(downstream.clone(), 4)], + None, + None, + ); + assert!(!downstream.is_signaled(4)); + assert_eq!(downstream.check_error().unwrap_err(), "existing"); + finish_submission(&error, &[], &[], Some("synthetic".into()), None); + assert_eq!( + error.lock().unwrap().as_deref(), + Some("[METAL] Command buffer execution failed: synthetic.") + ); + let retained_error = producer.error.clone(); + *retained_error.lock().unwrap() = Some("destructor must preserve this".into()); + drop(producer); + assert_eq!( + retained_error.lock().unwrap().as_deref(), + Some("destructor must preserve this") + ); +} diff --git a/src/engine/metal/qwen_mtplx/eval.rs b/src/engine/metal/qwen_mtplx/eval.rs new file mode 100644 index 0000000..dd33758 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/eval.rs @@ -0,0 +1,1024 @@ +//! Graph traversal from transforms.cpp::eval_impl in MTPLX's pinned runtime. +//! Compiled QSA replay uses the same planner. The eval/async_eval control plane +//! routes supplied primitives and array-owned storage. The production model +//! does not yet use this module. +use super::encoder; +use super::graph_sync::{GraphEvent, GraphFence}; +use super::stream::{Device, Stream, Streams}; +use std::collections::{BTreeSet, HashMap}; +use std::sync::OnceLock; + +#[cfg(test)] +pub(super) mod execution_tests { + use super::super::super::gpu::{Buffer, Context}; + use super::super::{ + allocator, + array::{Array as Handle, Dtype, Layout}, + configure_sources, qsa_copy_typed, + }; + use super::*; + + // Only these tiny unit graphs have a total deadlock bound, not model runs. + pub(in super::super) fn observed(check: impl FnOnce()) { + std::thread::scope(|scope| { + let (done, receiver) = std::sync::mpsc::channel::<()>(); + scope.spawn(move || { + if matches!( + receiver.recv_timeout(std::time::Duration::from_secs(10)), + Err(std::sync::mpsc::RecvTimeoutError::Timeout) + ) { + eprintln!("MTPLX evaluator test made no completion within 10s"); + std::process::abort(); + } + }); + check(); + drop(done); + }); + } + + fn one(stream: Stream, inputs: &[Handle]) -> Handle { + let shape = inputs + .first() + .map_or_else(|| vec![0], |input| input.layout().shape().to_vec()); + Handle::make_arrays(stream, inputs, &[Layout::new(&shape, Dtype::BF16).unwrap()]) + .unwrap() + .pop() + .unwrap() + } + + fn constant() -> Handle { + let buffer = Buffer::mtplx_bytes(16).unwrap(); + buffer.write(0, &[0x80, 0x3f].repeat(8)).unwrap(); + Handle::new(&[8], Dtype::BF16, buffer).unwrap() + } + + fn copy(input: &Handle) -> Result { + let buffer = Buffer::mtplx_bytes(16)?; + qsa_copy_typed( + Some(&input.buffer()), + &buffer, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + )?; + Ok(buffer) + } + + fn check_value(value: &Handle) { + let mut actual = [0_u8; 16]; + value.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), &[0x80, 0x3f].repeat(8)); + } + + #[test] + #[ignore = "requires Apple Metal; tiny supervised CPU/GPU evaluator graph"] + fn mtplx_eval_runs_cpu_gpu_siblings_and_async_continuations() { + observed(|| { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let first = streams.default_stream(Device::Gpu).unwrap(); + let second = streams.new_stream(Device::Gpu).unwrap(); + let alias = one(cpu, &[constant()]); + let pair = Handle::make_arrays( + first, + std::slice::from_ref(&alias), + &vec![Layout::new(&[8], Dtype::BF16).unwrap(); 2], + ) + .unwrap(); + let next = one(second, std::slice::from_ref(&pair[1])); + let end = one(cpu, std::slice::from_ref(&next)); + let mut visited = Vec::new(); + evaluate( + &streams, + &[pair[0].clone(), end.clone()], + cpu, + true, + |array, stream, inputs, outputs| { + visited.push(array.id()); + assert!(!array.is_tracer()); + for output in outputs { + output.set_data(if stream.device() == Device::Cpu { + inputs[0].buffer().view(0, 16)? + } else { + copy(&inputs[0])? + })?; + } + Ok(()) + }, + ) + .unwrap(); + assert_eq!(visited, [alias.id(), pair[1].id(), next.id(), end.id()]); + for array in [&alias, &pair[0], &pair[1], &next, &end] { + assert_eq!(array.status(), Status::Evaluated); + assert!(array.stream().is_none()); + assert!(array.inputs().is_empty()); + } + evaluate( + &streams, + &[pair[0].clone(), end.clone()], + cpu, + false, + |_, _, _, _| panic!("already scheduled graph was executed twice"), + ) + .unwrap(); + check_value(&pair[0]); + check_value(&end); + for stream in [first, second] { + assert_eq!( + streams + .with_gpu(stream, |scope| Ok(scope.commits())) + .unwrap(), + 1 + ); + } + + // Hold first producer pending to force the across-async-eval wait. + let gate = encoder::Event::new().unwrap(); + streams.wait_event(first, gate.clone(), 1).unwrap(); + let pending = one(first, std::slice::from_ref(&pair[0])); + evaluate( + &streams, + std::slice::from_ref(&pending), + cpu, + true, + |_, _, input, output| { + output[0].set_data(copy(&input[0])?)?; + Ok(()) + }, + ) + .unwrap(); + assert!(!pending.event().is_signaled()); + let consumer = one(second, std::slice::from_ref(&pending)); + evaluate( + &streams, + std::slice::from_ref(&consumer), + cpu, + true, + |_, _, input, output| { + output[0].set_data(copy(&input[0])?)?; + Ok(()) + }, + ) + .unwrap(); + assert!(!consumer.event().is_signaled()); + let before = streams + .with_gpu(second, |scope| Ok(scope.commits())) + .unwrap(); + evaluate( + &streams, + std::slice::from_ref(&consumer), + cpu, + true, + |_, _, _, _| panic!("async_eval of scheduled arrays must be a no-op"), + ) + .unwrap(); + assert_eq!( + before, + streams + .with_gpu(second, |scope| Ok(scope.commits())) + .unwrap() + ); + gate.signal(1); + evaluate( + &streams, + std::slice::from_ref(&consumer), + cpu, + false, + |_, _, _, _| panic!("sync eval must wait, not reevaluate"), + ) + .unwrap(); + assert_eq!(consumer.status(), Status::Available); + assert!(!consumer.event().valid()); + check_value(&consumer); + + let empty = one(first, &[]); + let empty_cpu = one(cpu, std::slice::from_ref(&empty)); + evaluate( + &streams, + std::slice::from_ref(&empty_cpu), + cpu, + false, + |array, _, inputs, output| { + output[0].set_data(if array.id() == empty.id() { + Buffer::mtplx_bytes(0)? + } else { + inputs[0].buffer().view(0, 0)? + })?; + Ok(()) + }, + ) + .unwrap(); + assert_eq!(empty_cpu.buffer().allocation_bytes(), 0); + empty_cpu.buffer().read(0, &mut []).unwrap(); + streams.clear_streams().unwrap(); + }); + } + + #[test] + #[ignore = "requires Apple Metal; supervised evaluator failure and retry"] + fn mtplx_eval_drains_failure_preserves_cause_and_retries_only_failed_nodes() { + observed(|| { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for panic in [false, true] { + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let first = streams.default_stream(Device::Gpu).unwrap(); + let second = streams.new_stream(Device::Gpu).unwrap(); + let good = one(first, &[constant()]); + let fail = one(second, std::slice::from_ref(&good)); + let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + evaluate( + &streams, + std::slice::from_ref(&fail), + first, + true, + |array, _, inputs, output| { + if array.id() == fail.id() { + if panic { + panic!("original primitive panic"); + } + return Err("original primitive error".into()); + } + output[0].set_data(copy(&inputs[0])?)?; + Ok(()) + }, + ) + })); + if panic { + assert_eq!( + result.unwrap_err().downcast_ref::<&str>(), + Some(&"original primitive panic") + ); + } else { + assert_eq!(result.unwrap(), Err("original primitive error".into())); + } + assert_eq!(good.status(), Status::Evaluated); + assert_eq!(fail.status(), Status::Unscheduled); + assert!(good.event().is_signaled()); + assert!( + fail.event().is_signaled(), + "failed primitive's event was not signaled" + ); + check_value(&good); + for stream in [first, second] { + assert_eq!( + streams + .with_gpu(stream, |scope| Ok(scope.commits())) + .unwrap(), + 1 + ); + } + evaluate( + &streams, + std::slice::from_ref(&fail), + first, + false, + |array, _, inputs, output| { + assert_eq!(array.id(), fail.id()); + output[0].set_data(copy(&inputs[0])?)?; + Ok(()) + }, + ) + .unwrap(); + check_value(&fail); + assert!(!good.event().valid(), "signaled input event must detach"); + streams.clear_streams().unwrap(); + } + }); + } + + #[test] + #[ignore = "requires Apple Metal; evaluator tracer donation and retained topology"] + fn mtplx_eval_retains_tracer_topology_without_input_donation() { + observed(|| { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let input = constant(); + let weak = input.downgrade(); + let out = one(gpu, &[input]); + out.set_tracer(true); + evaluate( + &streams, + std::slice::from_ref(&out), + gpu, + false, + |array, _, inputs, output| { + assert!(array.is_tracer()); + assert!( + !inputs[0].is_donatable(), + "tracing holds an additional descriptor" + ); + assert!( + inputs[0].buffer().unique_data(), + "tracing must not hold extra Data" + ); + output[0].set_data(copy(&inputs[0])?)?; + Ok(()) + }, + ) + .unwrap(); + assert_eq!(out.stream(), Some(gpu)); + assert_eq!(out.inputs().len(), 1); + assert!(weak.upgrade().is_some()); + check_value(&out); + let commits = streams.with_gpu(gpu, |scope| Ok(scope.commits())).unwrap(); + evaluate(&streams, &[], gpu, true, |_, _, _, _| { + panic!("empty eval invoked a primitive") + }) + .unwrap(); + assert_eq!( + commits, + streams.with_gpu(gpu, |scope| Ok(scope.commits())).unwrap() + ); + // A later non-tracing traversal must detach the already evaluated + // input before execution, without reevaluating it. + out.set_tracer(false); + let next = one(gpu, std::slice::from_ref(&out)); + evaluate( + &streams, + std::slice::from_ref(&next), + gpu, + false, + |array, _, inputs, output| { + assert_eq!(array.id(), next.id()); + assert!(weak.upgrade().is_none()); + assert!(out.stream().is_none()); + output[0].set_data(copy(&inputs[0])?)?; + Ok(()) + }, + ) + .unwrap(); + streams.clear_streams().unwrap(); + }); + } + + #[test] + #[ignore = "requires Apple Metal; graph ownership and last-consumer release"] + fn mtplx_eval_releases_intermediates_and_preserves_descriptor_donation() { + observed(|| { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let constant = constant(); + let constant_weak = constant.downgrade(); + let intermediate = one(gpu, &[constant]); + let intermediate_id = intermediate.id(); + let intermediate_weak = intermediate.downgrade(); + let pair = Handle::make_arrays( + gpu, + &[intermediate], + &vec![Layout::new(&[8], Dtype::BF16).unwrap(); 2], + ) + .unwrap(); + let sibling_weak = pair[0].downgrade(); + let retained = pair[1].clone(); + let out = one(gpu, &pair); + drop(pair); + let mut visited = Vec::new(); + evaluate( + &streams, + std::slice::from_ref(&out), + gpu, + false, + |array, _, inputs, outputs| { + visited.push(array.id()); + if array.id() == intermediate_id { + assert!( + inputs[0].is_donatable(), + "planner must not add descriptor or Data owners" + ); + } else { + assert!( + constant_weak.upgrade().is_none(), + "completed input descriptor retained by value arena" + ); + } + for output in outputs { + output.set_data(copy(&inputs[0])?)?; + } + Ok(()) + }, + ) + .unwrap(); + assert_eq!(visited.len(), 3); + assert!(constant_weak.upgrade().is_none()); + assert!(intermediate_weak.upgrade().is_none()); + assert!( + sibling_weak.upgrade().is_none(), + "unselected sibling not retained by graph" + ); + assert!(out.inputs().is_empty()); + check_value(&retained); + check_value(&out); + streams.clear_streams().unwrap(); + }); + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(super) enum Status { + Unscheduled, + Evaluated, + Available, +} + +#[derive(Clone)] +pub(super) struct Array { + pub(super) status: Status, + pub(super) primitive: Option, + pub(super) inputs: Vec, + pub(super) siblings: Vec, + /// Effective array::is_tracer(), including the caller's tracing context. + pub(super) tracer: bool, +} + +impl Default for Array { + fn default() -> Self { + Self { + status: Status::Available, + primitive: None, + inputs: Vec::new(), + siblings: Vec::new(), + tracer: false, + } + } +} + +#[derive(Default)] +pub(super) struct Graph { + pub(super) arrays: Vec, +} + +#[derive(Debug)] +pub(super) struct Tape { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) synchronizer: usize, + /// Execution order, including the final Synchronizer. Entries identify the + /// selected output, not just its producer: that choice affects Data holds. + pub(super) order: Vec, + /// Producer stream and whether any consumer crosses a device boundary. + pub(super) needs_fence: HashMap, +} + +pub(super) fn bfs_max_width() -> usize { + static WIDTH: OnceLock = OnceLock::new(); + *WIDTH.get_or_init(|| { + let value = unsafe { libc::getenv(c"MLX_BFS_MAX_WIDTH".as_ptr()) }; + // Match get_var/atoi and the signed-to-size_t comparison in eval_impl. + if value.is_null() { + 20 + } else { + unsafe { libc::atoi(value) as usize } + } + }) +} + +/// Execute a lazy graph owned by its arrays, not a caller-owned value arena. +/// The planner borrows topology through weak handles; only the reference tape, +/// inputs, siblings and caller roots contribute descriptor ownership. +pub(super) fn evaluate( + streams: &Streams, + outputs: &[super::array::Array], + default_stream: Stream, + asynchronous: bool, + mut primitive: impl FnMut( + &super::array::Array, + Stream, + &[super::array::Array], + &[super::array::Array], + ) -> Result<(), String>, +) -> Result<(), String> { + use super::array::Array as Handle; + if outputs.is_empty() { + return Ok(()); + } + if outputs.iter().all(|a| a.status() != Status::Unscheduled) { + if !asynchronous { + for output in outputs { + output.wait()?; + } + } + return Ok(()); + } + let stream = outputs + .iter() + .find_map(|a| { + (a.status() == Status::Unscheduled) + .then(|| a.stream()) + .flatten() + }) + .unwrap_or(default_stream); + let synchronizer = Handle::make_arrays( + stream, + outputs, + &[super::array::Layout::new(&[], super::array::Dtype::Bool)?], + )? + .pop() + .unwrap(); + let mut event = GraphEvent::new(stream)?; + event.set_value(1); + synchronizer.attach_event(event.clone()); + let mut events = HashMap::from([(stream, event)]); + let mut fences = HashMap::::new(); + let (mut graph, handles, ids) = snapshot(&synchronizer); + // Planning detaches evaluated non-tracers immediately, including on error. + let tape = graph.plan_from_with_detach( + ids[&synchronizer.id()], + asynchronous, + bfs_max_width(), + |id| { + if let Some(array) = handles[id].upgrade() { + array.detach(); + } + }, + )?; + let needs_fence = ids + .iter() + .filter_map(|(&identity, index)| { + tape.needs_fence.get(index).map(|&fence| (identity, fence)) + }) + .collect::>(); + let mut tape = tape + .order + .into_iter() + .map(|id| { + handles[id] + .upgrade() + .expect("unscheduled tape array lost its owner") + }) + .collect::>(); + drop(graph); + drop(handles); + drop(ids); + let mut open = BTreeSet::new(); + let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + while let Some(array) = tape.pop_front() { + let stream = array.stream().ok_or("tape array has no primitive")?; + open.insert(stream); + if asynchronous { + let event = match events.entry(stream) { + std::collections::hash_map::Entry::Occupied(e) => e.into_mut(), + std::collections::hash_map::Entry::Vacant(e) => { + e.insert(GraphEvent::new(stream)?) + } + }; + event.set_value(1); + array.attach_event(event.clone()); + for sibling in array.siblings().iter() { + sibling.attach_event(event.clone()); + } + } + for input in array.inputs().iter() { + if let Some(&(producer, _)) = needs_fence.get(&input.id()) { + if !input.has_data() { + return Err("missing evaluated input".into()); + } + fences + .get(&producer) + .ok_or("missing producer fence")? + .wait(streams, stream, &input.buffer())?; + } else if input.event().valid() { + let event = input.event(); + if event.is_signaled() { + input.detach_event()?; + } else if event.stream()? != stream { + event.wait_on(streams, stream)?; + } + } + } + let mut run = || -> Result<(), String> { + let outputs = array.outputs(); + let inputs = array.inputs(); + if array.id() != synchronizer.id() { + if inputs.iter().any(|input| !input.has_data()) { + return Err("missing evaluated input".into()); + } + // Reference gpu/cpu::eval keeps descriptor copies, not extra + // Data owners, only during a tracer's primitive callback. + { + let _tracer_inputs = array.is_tracer().then(|| inputs.clone()); + primitive(&array, stream, &inputs, &outputs)?; + } + if outputs.iter().any(|output| !output.has_data()) { + return Err("primitive did not materialize every output".into()); + } + } + let storage = inputs + .iter() + .chain(outputs.iter()) + .filter(|array| array.has_data()) + .map(Handle::buffer) + .collect::>(); + let primary = array.has_data().then(|| array.buffer()); + let buffers = encoder::data_buffers( + storage.iter().map(|buffer| &**buffer), + primary.as_deref(), + ); + match stream.device() { + Device::Gpu => { + encoder::with_active(|encoder| encoder.eval_primitive(&buffers)).unwrap()? + } + Device::Cpu => streams.with_cpu(stream, |encoder, scheduler| { + encoder.finish_buffers(scheduler, &buffers) + })?, + } + Ok(()) + }; + match stream.device() { + Device::Gpu => streams.with_gpu(stream, |_| run())?, + Device::Cpu => run()?, + } + streams.check_backpressure(&open)?; + for output in std::iter::once(&array).chain(array.siblings().iter()) { + output.set_status(Status::Evaluated); + if let Some(&(_, cross_device)) = needs_fence.get(&output.id()) { + let fence = match fences.entry(stream) { + std::collections::hash_map::Entry::Occupied(e) => e.into_mut(), + std::collections::hash_map::Entry::Vacant(e) => { + e.insert(GraphFence::new(streams)?) + } + }; + if !output.has_data() { + return Err("missing evaluated output".into()); + } + fence.update_array(streams, stream, output, cross_device)?; + } + } + if !array.is_tracer() { + array.detach(); + } + } + Ok::<_, String>(()) + })); + if !matches!(result, Ok(Ok(()))) { + for event in events.values() { + if let Ok(stream) = event.stream() + && event.signal(streams, stream).is_ok() + { + open.insert(stream); + } + } + for &stream in &open { + let _ = streams.synchronize(stream); + } + } + match result { + Ok(result) => result?, + Err(panic) => std::panic::resume_unwind(panic), + } + for stream in open { + if let Some(event) = events.get(&stream) { + event.signal(streams, stream)?; + } + streams.finalize(stream)?; + } + if !asynchronous { + synchronizer.wait()?; + } + Ok(()) +} + +fn snapshot( + root: &super::array::Array, +) -> (Graph, Vec, HashMap) { + fn register( + array: &super::array::Array, + handles: &mut Vec, + ids: &mut HashMap, + ) -> usize { + *ids.entry(array.id()).or_insert_with(|| { + let id = handles.len(); + handles.push(array.downgrade()); + id + }) + } + let mut handles = Vec::new(); + let mut ids = HashMap::new(); + register(root, &mut handles, &mut ids); + let mut graph = Graph::default(); + while graph.arrays.len() < handles.len() { + let array = handles[graph.arrays.len()] + .upgrade() + .expect("root graph lost its owner"); + graph.arrays.push(Array { + status: array.status(), + primitive: array.stream(), + tracer: array.is_tracer(), + inputs: array + .inputs() + .iter() + .map(|input| register(input, &mut handles, &mut ids)) + .collect(), + siblings: array + .siblings() + .iter() + .map(|sibling| register(sibling, &mut handles, &mut ids)) + .collect(), + }); + } + (graph, handles, ids) +} + +impl Graph { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn add(&mut self, stream: Stream, inputs: &[usize], count: usize) -> usize { + assert!(count > 0, "primitive must have an output"); + let first = self.arrays.len(); + assert!(inputs.iter().all(|&input| input < first)); + self.arrays.extend((first..first + count).map(|id| Array { + status: Status::Unscheduled, + primitive: Some(stream), + inputs: inputs.to_vec(), + siblings: (first..first + count).filter(|&sib| sib != id).collect(), + tracer: false, + })); + first + } + + /// array::detach clears every sibling's primitive, inputs and sibling list. + fn detach(&mut self, id: usize) { + let siblings = std::mem::take(&mut self.arrays[id].siblings); + for output in siblings.into_iter().chain([id]) { + let array = &mut self.arrays[output]; + array.primitive = None; + array.inputs.clear(); + array.siblings.clear(); + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn plan( + &mut self, + outputs: &[usize], + default_stream: Stream, + asynchronous: bool, + max_width: usize, + ) -> Result { + let synchronizer = self.add_synchronizer(outputs, default_stream); + let result = self.plan_from(synchronizer, asynchronous, max_width); + if result.is_err() { + // The reference's local Synchronizer also disappears on a traversal + // exception. Detach side effects on already evaluated inputs remain. + self.arrays.pop(); + } + result + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn add_synchronizer(&mut self, outputs: &[usize], default_stream: Stream) -> usize { + let stream = outputs + .iter() + .map(|&id| &self.arrays[id]) + .find_map(|a| { + (a.status == Status::Unscheduled) + .then_some(a.primitive) + .flatten() + }) + .unwrap_or(default_stream); + self.add(stream, outputs, 1) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn plan_from( + &mut self, + synchronizer: usize, + asynchronous: bool, + max_width: usize, + ) -> Result { + self.plan_from_with_detach(synchronizer, asynchronous, max_width, |_| {}) + } + + fn plan_from_with_detach( + &mut self, + synchronizer: usize, + asynchronous: bool, + max_width: usize, + mut detach: impl FnMut(usize), + ) -> Result { + let mut needs_fence = HashMap::::new(); + let mut degree = HashMap::::new(); + let mut dfs = vec![(synchronizer, 0)]; + while let Some((id, at)) = dfs.last_mut() { + let array = &self.arrays[*id]; + if *at < array.inputs.len() { + let input_id = array.inputs[*at]; + *at += 1; + let input = &self.arrays[input_id]; + if input.status == Status::Unscheduled { + if asynchronous && input.tracer { + return Err( + "[async_eval] Not allowed inside a graph transformation.".into() + ); + } + let producer = input.primitive.ok_or_else(|| { + if input.tracer { + "[eval] Attempting to eval an array during function transformations like compile or vmap is not allowed.".into() + } else { + "[eval] Attempting to eval an array without a primitive.\nIf you are compiling a function, make sure all the inputs and outputs are captured:\nhttps://ml-explore.github.io/mlx/build/html/usage/compile.html#pure-functions.\nIf you are not using compile, this may be a bug. Please file an issue here:\nhttps://github.com/ml-explore/mlx/issues.".to_owned() + } + })?; + let consumer = array + .primitive + .ok_or("graph input owner has no primitive")?; + if consumer != producer { + let cross_device = consumer.device() != producer.device(); + needs_fence + .entry(input_id) + .and_modify(|(_, cross)| *cross |= cross_device) + .or_insert((producer, cross_device)); + } + } + if let Some(n) = degree.get_mut(&input_id) { + *n += 1; + for sibling in &input.siblings { + *degree.entry(*sibling).or_default() += 1; + } + } else { + degree.insert(input_id, 1); + for sibling in &input.siblings { + degree.entry(*sibling).or_insert(1); + } + dfs.push((input_id, 0)); + } + } else { + if array.status != Status::Unscheduled && !array.tracer && array.primitive.is_some() + { + self.detach(*id); + detach(*id); + } + dfs.pop(); + } + } + + let mut tape = vec![synchronizer]; + let mut cursor = 0; + while !degree.is_empty() && (cursor < tape.len() || !dfs.is_empty()) { + let (id, at) = if cursor < tape.len() { + let id = tape[cursor]; + cursor += 1; + (id, 0) + } else { + dfs.pop().unwrap() + }; + for at in at..self.arrays[id].inputs.len() { + let input_id = self.arrays[id].inputs[at]; + let input = &self.arrays[input_id]; + if input.status != Status::Unscheduled { + continue; + } + if tape.len() - cursor >= max_width { + dfs.push((id, at)); + break; + } + let n = degree + .get_mut(&input_id) + .expect("missing graph input degree"); + *n -= 1; + if *n != 0 { + for sibling in &input.siblings { + *degree.get_mut(sibling).expect("missing sibling degree") -= 1; + } + } else { + degree.remove(&input_id); + for sibling in &input.siblings { + degree.remove(sibling); + } + tape.push(input_id); + } + } + } + tape.reverse(); + Ok(Tape { + synchronizer, + order: tape, + needs_fence, + }) + } +} + +#[test] +fn mtplx_eval_tape_preserves_bfs_width_and_sibling_choice() { + use super::stream::Device; + let stream = Stream::new(0, Device::Gpu); + let mut graph = Graph::default(); + graph.arrays.push(Array::default()); // constant 0 + let left = graph.add(stream, &[0], 1); // 1 + let right = graph.add(stream, &[0], 1); // 2 + let pair = graph.add(stream, &[left, right], 2); // 3, 4 + let a = graph.add(stream, &[pair, left], 1); // 5 + let b = graph.add(stream, &[pair + 1, right], 1); // 6 + let c = graph.add(stream, &[a, b, pair], 1); // 7 + let arrays = graph.arrays.clone(); + // At width 20, b's input 4 releases the shared degree. At width 1, the + // deferred direct root 3 does it. Sorting producers alone loses that choice. + for (width, expected) in [ + (20, vec![2, 1, 4, 6, 5, 7, 8]), + (1, vec![2, 1, 3, 6, 5, 7, 8]), + ] { + graph.arrays = arrays.clone(); + let plan = graph.plan(&[c, pair], stream, false, width).unwrap(); + assert_eq!(plan.synchronizer, 8); + assert_eq!(plan.order, expected, "BFS width {width}"); + assert!(plan.needs_fence.is_empty()); + } + // Independent deep branches distinguish breadth-first from width-limited + // traversal; a shared producer is not necessary for that ordering change. + let mut graph = Graph::default(); + let a = graph.add(stream, &[], 1); + let b = graph.add(stream, &[a], 1); + let c = graph.add(stream, &[], 1); + let d = graph.add(stream, &[c], 1); + let arrays = graph.arrays.clone(); + assert_eq!( + graph.plan(&[b, d], stream, false, 20).unwrap().order, + [2, 0, 3, 1, 4] + ); + graph.arrays = arrays; + assert_eq!( + graph.plan(&[b, d], stream, false, 1).unwrap().order, + [2, 3, 0, 1, 4] + ); +} + +#[test] +fn mtplx_eval_tape_tracks_stream_fences_per_leaf_and_cross_device_union() { + use super::stream::Device; + let gpu = Stream::new(0, Device::Gpu); + let other = Stream::new(1, Device::Gpu); + let cpu = Stream::new(2, Device::Cpu); + let mut graph = Graph::default(); + graph.arrays.push(Array::default()); + let pair = graph.add(gpu, &[0], 2); + let same_device = graph.add(other, &[pair, pair + 1], 1); + let cross_device = graph.add(cpu, &[pair], 1); + let out = graph.add(other, &[same_device, cross_device], 1); + let plan = graph.plan(&[0, out], gpu, false, 20).unwrap(); + assert_eq!(graph.arrays[plan.synchronizer].primitive, Some(other)); + assert_eq!(plan.needs_fence.len(), 3); + assert_eq!(plan.needs_fence[&pair], (gpu, true)); + assert_eq!(plan.needs_fence[&(pair + 1)], (gpu, false)); + assert_eq!(plan.needs_fence[&cross_device], (cpu, true)); + assert!(!plan.needs_fence.contains_key(&same_device)); + assert_eq!( + plan.order, + [pair, cross_device, same_device, out, plan.synchronizer] + ); +} + +#[test] +fn mtplx_eval_tape_preserves_scheduled_detach_and_tracer_errors() { + use super::stream::Device; + let gpu = Stream::new(0, Device::Gpu); + let cpu = Stream::new(1, Device::Cpu); + let mut graph = Graph::default(); + let ancestor = graph.add(gpu, &[], 1); + let pair = graph.add(gpu, &[ancestor], 2); + graph.arrays[pair].status = Status::Evaluated; + graph.arrays[pair + 1].status = Status::Evaluated; + let output = graph.add(cpu, &[pair, pair + 1], 1); + let plan = graph.plan(&[output], gpu, false, 20).unwrap(); + assert_eq!(plan.order, [output, plan.synchronizer]); + for id in [pair, pair + 1] { + assert!(graph.arrays[id].primitive.is_none()); + assert!(graph.arrays[id].inputs.is_empty()); + assert!(graph.arrays[id].siblings.is_empty()); + assert_eq!(graph.arrays[id].status, Status::Evaluated); + } + + let mut graph = Graph::default(); + let a = graph.add(gpu, &[], 1); + graph.arrays[a].tracer = true; + let error = graph.plan(&[a], cpu, true, 20).unwrap_err(); + assert_eq!( + error, + "[async_eval] Not allowed inside a graph transformation." + ); + assert_eq!(graph.arrays.len(), 1); + assert_eq!(graph.plan(&[a], cpu, false, 20).unwrap().order, [a, 1]); + graph.arrays[a].primitive = None; + assert!( + graph + .plan(&[a], cpu, false, 20) + .unwrap_err() + .contains("during function transformations") + ); + graph.arrays[a].tracer = false; + assert!( + graph + .plan(&[a], cpu, false, 20) + .unwrap_err() + .contains("without a primitive") + ); + + graph.arrays[a].status = Status::Available; + let plan = graph.plan(&[a], cpu, true, 20).unwrap(); + assert_eq!(plan.order, [plan.synchronizer]); + assert_eq!(graph.arrays[plan.synchronizer].primitive, Some(cpu)); +} diff --git a/src/engine/metal/qwen_mtplx/execution.rs b/src/engine/metal/qwen_mtplx/execution.rs new file mode 100644 index 0000000..19fc5b1 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/execution.rs @@ -0,0 +1,1707 @@ +//! Persistent canonical Qwen execution: one graph implementation for callers. +//! Generation policy and the product executor adapter are not implemented here. +use super::super::gpu::Context; +use super::array::{Array, Dtype}; +use super::binding::{Bank, BoundModel}; +use super::decoder::{Cache, Options}; +use super::model::{CompilePolicy, Output, OutputOptions}; +use super::stream::{Device, Stream, Streams}; +use super::{ + QsaIndexerOptions, allocator, ar, configure_sources, dense, gdn, ngram_stage, ops, prefill, + qsa_attention, sparse_attention, weights, +}; +use std::path::Path; +use std::time::{Duration, Instant}; + +/// DS4's EWMA duty cycle, applied only at complete model-work boundaries. +/// Full power neither reads the clock here nor drains the MTPLX pipeline. +pub(super) struct Throttle { + percent: u8, + average: f64, + pub(super) pauses: u64, + pub(super) sleep: Duration, +} + +impl Throttle { + pub(super) fn new(percent: u8) -> Result { + if percent > 100 { + return Err("GPU power must be between 1 and 100 percent".into()); + } + Ok(Self { + percent: if percent == 0 { 100 } else { percent }, + average: 0.0, + pauses: 0, + sleep: Duration::ZERO, + }) + } + + pub(super) fn begin(&self) -> Option { + (self.percent < 100).then(Instant::now) + } + + pub(super) fn pause( + &mut self, + streams: &Streams, + stream: Stream, + started: Option, + ) -> Result { + self.pause_with(streams, stream, started, std::thread::sleep) + } + + fn pause_with( + &mut self, + streams: &Streams, + stream: Stream, + started: Option, + sleep: impl FnOnce(Duration), + ) -> Result { + if self.percent >= 100 { + return Ok(0.0); + } + let started = started.ok_or("throttled model step has no start time")?; + let pausing = Instant::now(); + // AR lookahead and deferred MTP work can still be submitted. Sleeping + // without draining this stream would leave the GPU running throughout. + streams.synchronize(stream)?; + let delay = + super::super::throttle_delay(&mut self.average, started.elapsed(), self.percent) + .expect("validated throttled power"); + let sleeping = Instant::now(); + sleep(delay); + self.sleep += sleeping.elapsed(); + self.pauses += 1; + Ok(pausing.elapsed().as_secs_f64()) + } +} + +#[test] +#[ignore = "requires Apple Metal; run under test-supervisor"] +fn qwen_power_throttle_drains_before_sleep_and_bypasses_at_full_power() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let event = super::encoder::Event::new().unwrap(); + streams.signal_event(stream, event.clone(), 1).unwrap(); + let commits = || { + streams + .with_gpu(stream, |scope| Ok(scope.commits())) + .unwrap() + }; + assert_eq!(commits(), 0); + assert!(!event.is_signaled(1)); + for percent in [0, 100] { + let mut throttle = Throttle::new(percent).unwrap(); + assert!(throttle.begin().is_none()); + assert_eq!( + throttle + .pause_with(&streams, stream, None, |_| panic!("full power slept")) + .unwrap(), + 0.0 + ); + assert_eq!(throttle.pauses, 0); + assert_eq!(throttle.sleep, Duration::ZERO); + assert_eq!(commits(), 0, "full power submitted extra commands"); + assert!( + !event.is_signaled(1), + "full power synchronized pending commands" + ); + } + let mut throttle = Throttle::new(75).unwrap(); + let started = Instant::now() - Duration::from_millis(30); + throttle + .pause_with(&streams, stream, Some(started), |delay| { + assert!(event.is_signaled(1), "sleep began before GPU completion"); + assert_eq!(commits(), 1); + assert!(delay >= Duration::from_millis(10)); + std::thread::sleep(delay); + }) + .unwrap(); + assert_eq!(throttle.pauses, 1); + assert!(throttle.sleep >= Duration::from_millis(10)); + let pauses = throttle.pauses; + assert!( + throttle + .pause_with( + &streams, + Stream::new(u32::MAX, Device::Gpu), + throttle.begin(), + |_| panic!("failed drain must not sleep") + ) + .is_err() + ); + assert_eq!(throttle.pauses, pauses); + assert!(Throttle::new(101).is_err()); +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn flag(name: &str) -> bool { + matches!( + std::env::var(name) + .unwrap_or_default() + .trim() + .to_ascii_lowercase() + .as_str(), + "1" | "true" | "yes" | "on" + ) +} + +impl Options { + /// Original environment gates; AUTO prefill is resolved on the active GPU. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn from_env(phase_prefill: bool, capture: bool) -> Result { + Self::from_lookup(phase_prefill, capture, |name| std::env::var(name).ok()) + } + + fn from_lookup( + phase_prefill: bool, + capture: bool, + get: impl Fn(&str) -> Option, + ) -> Result { + let flag = |name| super::policy::truthy(get(name).as_deref()); + let integer = |name, default, minimum| { + let value = super::policy::integer(get(name).as_deref(), default, minimum)?; + u32::try_from(value) + .map_err(|_| format!("{name} exceeds the supported kernel integer range")) + }; + let prefill = match get("MTPLX_QSA_PREFILL") + .unwrap_or_default() + .trim() + .to_ascii_lowercase() + .as_str() + { + "1" | "true" | "yes" | "on" => true, + "0" | "false" | "no" | "off" => false, + _ => sparse_attention::nax_available(), + }; + Ok(Self { + hyper_fused: flag("MTPLX_FUSED_HC"), + hyper_v3: flag("MTPLX_FUSED_HC_V3"), + gdn: gdn::Options { + step: flag("MTPLX_FUSED_GDN_STEP"), + conv_single: flag("MTPLX_FUSED_GDN_CONVNORM"), + conv_verify: flag("MTPLX_FUSED_CONVNORM_VERIFY"), + output: flag("MTPLX_FUSED_GDN_OUT"), + capture, + }, + qsa: qsa_attention::Options { + indexer: QsaIndexerOptions { + fused: flag("MTPLX_FUSED_QSA_INDEXER"), + compiled: flag("MTPLX_COMPILED_QSA_INDEXER"), + prefill, + phase_prefill, + prefill_min_rows: integer("MTPLX_QSA_PREFILL_MIN_ROWS", 32, 2)?, + prefill_compile_rows: integer("MTPLX_QSA_PREFILL_COMPILE_ROWS", 2048, 2)?, + prefill_min_context: integer("MTPLX_QSA_PREFILL_MIN_CONTEXT", 32768, 2049)?, + prefill_workspace: u64::from(integer("MTPLX_QSA_PREFILL_SCORE_MB", 128, 1)?) + * 1024 + * 1024, + tile_rows: integer("MTPLX_QSA_SCORE_TILE_ROWS", 0, 0)?, + flash: flag("MTPLX_QSA_FLASH"), + gather_decode: flag("MTPLX_QSA_GATHER_DECODE"), + gather: flag("MTPLX_QSA_GATHER"), + gather_max_rows: integer("MTPLX_QSA_GATHER_MAX_ROWS", 8, 2)?, + gather_min_context: integer("MTPLX_QSA_GATHER_MIN_CONTEXT", 16384, 0)?, + tf32: sparse_attention::nax_available() && dense::tf32_enabled(), + }, + flash_min_context: integer("MTPLX_QSA_PREFILL_FLASH_MIN_CONTEXT", 32768, 2049)?, + prefill_gather: flag("MTPLX_QSA_PREFILL_GATHER"), + gather_tile_rows: i32::try_from(integer("MTPLX_QSA_PREFILL_GATHER_TILE", 64, 8)?) + .map_err(|_| "QSA gather tile exceeds i32")?, + }, + stage: ngram_stage::StageOptions::from_env(), + }) + } +} + +pub(super) struct Execution { + pub(super) model: BoundModel, + pub(super) cache: Vec>, + pub(super) mtp_cache: [Option; 1], + pub(super) streams: Streams, + pub(super) stream: Stream, + pub(super) boundary_policy: Option, + pub(super) boundaries: Vec, + pub(super) prefill_throttle: Throttle, + pub(super) decode_throttle: Throttle, + runtime_overrides: super::policy::Overrides, + _context: Context, +} + +impl Execution { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn load( + root: &Path, + mtp: bool, + lazy: bool, + power_percent: u8, + ) -> Result { + Self::load_with_overrides( + root, + mtp, + lazy, + power_percent, + super::policy::Overrides::new(), + ) + } + + pub(super) fn open( + settings: &crate::settings::EngineSettings, + ) -> Result<(Self, super::session_cache::TurnOptions<'static>), String> { + let mtp = settings.speculative.glm_mtp; + let overrides = super::policy::server_overrides(mtp, |name| std::env::var(name).ok()); + let (options, boundaries) = + super::policy::turn_options(settings, |name| super::policy::value(&overrides, name))?; + let mut execution = Self::load_with_overrides( + &settings.artifacts.model, + mtp, + false, + settings.execution.power_percent, + overrides, + )?; + execution.boundary_policy = boundaries; + Ok((execution, options)) + } + + pub(super) fn runtime_value(&self, name: &str) -> Option { + super::policy::value(&self.runtime_overrides, name) + } + + pub(super) fn graph_options(&self, prefill: bool, capture: bool) -> Result { + Options::from_lookup(prefill, capture, |name| self.runtime_value(name)) + } + + fn load_with_overrides( + root: &Path, + mtp: bool, + lazy: bool, + power_percent: u8, + runtime_overrides: super::policy::Overrides, + ) -> Result { + let get = |name| super::policy::value(&runtime_overrides, name); + let flag = |name| super::policy::truthy(get(name).as_deref()); + let prefill_throttle = Throttle::new(power_percent)?; + let decode_throttle = Throttle::new(power_percent)?; + configure_sources()?; + let context = Context::open_qwen(0)?; + let streams = Streams::new(Some(allocator::Allocator::new()?)); + let stream = streams.default_stream(Device::Gpu)?; + let bank = Bank::load( + root, + weights::FusionOptions { + gate_up: flag("MTPLX_FUSED_GATE_UP"), + gdn: flag("MTPLX_FUSED_GDN_INPROJ"), + qsa: flag("MTPLX_FUSED_QSA_QKV"), + }, + mtp, + &streams, + stream, + )?; + let mut model = BoundModel::try_new(bank, |bank| { + bank.bind( + CompilePolicy::from_values( + get("MTPLX_COMPILED_GDN").as_deref(), + get("MTPLX_QWEN4EXP_COMPILE").as_deref(), + ), + flag("MTPLX_FUSED_MOE_DECODE"), + flag("MTPLX_FUSED_MOE_VERIFY"), + ) + })?; + if !lazy { + model.with_dependent(|bank, model| { + // load_model materializes the trunk, not the later lazy MTP head. + let trunk = model + .parameter_order + .iter() + .filter(|n| !n.starts_with("mtp.")) + .cloned() + .collect::>(); + bank.materialize(&trunk, &streams, stream) + })?; + } + model.with_dependent_mut(|_, model| model.post_weight_load(root, &streams, stream))?; + let cache = model.borrow_dependent().make_cache(4); + let mtp_cache = model.borrow_dependent().make_mtp_cache(4); + Ok(Self { + model, + cache, + mtp_cache, + streams, + stream, + boundary_policy: None, + boundaries: Vec::new(), + prefill_throttle, + decode_throttle, + runtime_overrides, + _context: context, + }) + } + + pub(super) fn forward( + &mut self, + ids: &[i32], + phase_prefill: bool, + capture: bool, + ) -> Result { + let ids = self.input(ids)?; + let options = self.graph_options(phase_prefill, capture)?; + self.model.with_dependent_mut(|_, model| { + model.call( + &ids, + Some(&mut self.cache), + None, + OutputOptions { + emit_logits: true, + logits_keep: 0, + return_hidden: true, + }, + &options, + None, + &self.streams, + self.stream, + ) + }) + } + + /// Cold text _prefill. Session restore and optional owner-level cleanup / + /// repaging policies are not selected by this model-level entry point. + pub(super) fn prefill_prompt( + &mut self, + ids: &[i32], + options: &prefill::Options, + observe: impl FnMut(prefill::Progress) -> Result<(), String>, + ) -> Result { + let graph_options = self.graph_options(true, false)?; + let policy = self.boundary_policy; + let spans = prefill::spans( + ids.len().saturating_sub(1), + options.chunk_size, + policy.map_or(0, |p| p.tail_interval), + &[], + ); + let mut state = (&mut self.model, &mut self.cache, &mut self.boundaries); + prefill::run( + &mut state, + ids, + options, + &spans, + &self.streams, + self.stream, + &mut self.prefill_throttle, + |(model, cache, boundaries)| { + **cache = model.borrow_dependent().make_cache(4); + boundaries.clear(); + Ok(()) + }, + |(model, cache, _), ids, output, cache_only| { + let result = model.with_dependent_mut(|_, model| { + model.call( + ids, + Some(cache), + None, + output, + &graph_options, + None, + &self.streams, + self.stream, + ) + })?; + let roots = if cache_only { + super::decoder::cache_roots(cache) + } else { + Vec::new() + }; + Ok((result, roots)) + }, + observe, + |(model, cache, boundaries), tokens, hidden| { + if let Some(policy) = policy { + super::session_cache::capture_boundary( + boundaries, + cache, + |i| model.borrow_dependent().layers[i].ple.is_some(), + tokens, + hidden, + policy, + &self.streams, + self.stream, + )?; + } + Ok(()) + }, + ) + } + + pub(super) fn prefill_mtp_history( + &mut self, + ids: &[i32], + options: &prefill::Options, + history_window: Option, + absolute_positions: bool, + observe: impl FnMut(prefill::Progress) -> Result<(), String>, + on_chunk: impl FnMut(prefill::Chunk) -> Result<(), String>, + ) -> Result { + let graph_options = self.graph_options(true, false)?; + let policy = self.boundary_policy; + let spans = prefill::spans( + ids.len().saturating_sub(1), + options.chunk_size, + policy.map_or(0, |p| p.tail_interval), + &[], + ); + let mut state = ( + &mut self.model, + &mut self.cache, + &mut self.mtp_cache, + &mut self.boundaries, + ); + prefill::committed( + &mut state, + ids, + options, + &spans, + history_window, + absolute_positions, + &self.streams, + self.stream, + &mut self.prefill_throttle, + |(model, cache, mtp_cache, boundaries)| { + **cache = model.borrow_dependent().make_cache(4); + **mtp_cache = model.borrow_dependent().make_mtp_cache(4); + boundaries.clear(); + Ok(()) + }, + |(model, cache, _, _), ids, output, cache_only| { + let result = model.with_dependent_mut(|_, model| { + model.call( + ids, + Some(cache), + None, + output, + &graph_options, + None, + &self.streams, + self.stream, + ) + })?; + Ok(( + result, + if cache_only { + super::decoder::cache_roots(cache) + } else { + Vec::new() + }, + )) + }, + |(model, _, mtp_cache, _), hidden, ids, _position| { + // Qwen's original mtp_update_cache accepts but ignores the + // explicit position; QSA derives positions from its cache. + let ids = prefill::ids_array(ids)?; + model.with_dependent_mut(|_, model| { + model.mtp_update_cache( + hidden, + &ids, + Some(&mut mtp_cache[..]), + None, + &graph_options, + None, + &self.streams, + self.stream, + ) + }) + }, + observe, + on_chunk, + |(model, cache, _, boundaries), tokens, hidden| { + if let Some(policy) = policy { + super::session_cache::capture_boundary( + boundaries, + cache, + |i| model.borrow_dependent().layers[i].ple.is_some(), + tokens, + hidden, + policy, + &self.streams, + self.stream, + )?; + } + Ok(()) + }, + ) + } + + fn input(&self, ids: &[i32]) -> Result { + let rows = i32::try_from(ids.len()).map_err(|_| "Qwen input length exceeds i32")?; + let vocab = self + .model + .borrow_dependent() + .embedding + .weight() + .layout() + .dim(0)?; + if ids.is_empty() || ids.iter().any(|id| *id < 0 || *id >= vocab) { + return Err("Qwen input must contain valid vocabulary token IDs".into()); + } + Array::new( + &[1, rows], + Dtype::I32, + super::scalar_buffer( + &ids.iter() + .flat_map(|id| id.to_le_bytes()) + .collect::>(), + )?, + ) + } + + /// _prefill_restored_prompt_suffix on an already restored/live text cache. + /// No cache initialization: resetting here would silently turn a warm chat + /// into a cold request. Boundary banking/vision remain owner-level routes. + #[allow(clippy::too_many_arguments)] + pub(super) fn prefill_restored_suffix( + &mut self, + suffix: &[i32], + previous_hidden: Option<&Array>, + committed_history: bool, + options: &prefill::Options, + fused_max: usize, + cached_tokens: usize, + mut observe: impl FnMut(prefill::Progress) -> Result<(), String>, + mut on_chunk: impl FnMut(prefill::Chunk) -> Result<(), String>, + ) -> Result<(prefill::Prepared, f64), String> { + if suffix.is_empty() { + return Err("suffix must not be empty".into()); + } + observe(prefill::Progress::CheckAbort)?; + let mtp_enabled = options.return_hidden && self.model.borrow_dependent().mtp.is_some(); + let use_history = mtp_enabled && committed_history && self.mtp_cache[0].is_some(); + let graph = self.graph_options(true, false)?; + let mut history_seconds = 0.0; + let mut append = |execution: &mut Self, + hidden: &Array, + ids: &[i32], + observe: &mut dyn FnMut(prefill::Progress) -> Result<(), String>| + -> Result<(), String> { + if use_history && !ids.is_empty() { + let power_started = execution.prefill_throttle.begin(); + let started = Instant::now(); + let updated = execution.append_mtp_history(hidden, ids, true)?; + ops::evaluate(&execution.streams, &[updated], execution.stream, false)?; + history_seconds += started.elapsed().as_secs_f64(); + observe(prefill::Progress::HistoryAppend)?; + observe(prefill::Progress::CheckAbort)?; + history_seconds += execution.prefill_throttle.pause( + &execution.streams, + execution.stream, + power_started, + )?; + } + Ok(()) + }; + if let Some(hidden) = previous_hidden { + append(self, hidden, &suffix[..1], &mut observe)?; + } + let fused = suffix.len() <= fused_max; + let mut spans = Vec::new(); + let body_array = if !fused && suffix.len() > 1 { + Some(self.input(&suffix[..suffix.len() - 1])?) + } else { + None + }; + if !fused && suffix.len() > 1 { + let body = suffix.len() - 1; + // The native policy selects sustained prefill for both cold and + // restored requests. Refine its final body chunk on the same + // recurrent boundary grid as _prefill_restored_prompt_suffix. + spans.extend( + prefill::spans( + body, + options.chunk_size, + self.boundary_policy.map_or(0, |p| p.tail_interval), + &[], + ) + .into_iter() + .map(|(start, end)| (start, end, false)), + ); + } + spans.push((if fused { 0 } else { suffix.len() - 1 }, suffix.len(), true)); + let mut elapsed = 0.0; + let mut final_output = None; + // MTPLX counts the fused call or body chunks; the separate final-token + // call reports progress but does not increment prefill_chunks. + let chunks = if fused { 1 } else { spans.len() - 1 }; + for (start, end, tail) in spans { + let power_started = self.prefill_throttle.begin(); + let tail_started = (!fused && tail).then(Instant::now); + if !fused { + observe(prefill::Progress::CheckAbort)?; + } + let input = if tail { + self.input(&suffix[start..end])? + } else { + // Original creates the body once and slices its chunk views. + ops::slice( + body_array.as_ref().unwrap(), + &[0, start as i32], + &[1, end as i32], + &[1, 1], + self.stream, + )? + }; + let emit = tail + || (!use_history + && if options.external_cache_only { + options.external_emit_logits + } else { + !options.final_logits_only + }); + let output_options = OutputOptions { + emit_logits: emit, + logits_keep: if tail && options.final_logits_only { + 1 + } else { + 0 + }, + return_hidden: if tail { mtp_enabled } else { use_history }, + }; + let started = tail_started.unwrap_or_else(Instant::now); + let mut output = self.model.with_dependent_mut(|_, model| { + model.call( + &input, + Some(&mut self.cache), + None, + output_options, + &graph, + None, + &self.streams, + self.stream, + ) + })?; + if !tail && !use_history && options.external_cache_only { + output.logits = None; + } + let roots = if output.logits.is_none() && output.hidden.is_none() { + super::decoder::cache_roots(&self.cache) + } else { + output + .logits + .iter() + .chain(output.hidden.iter()) + .cloned() + .collect() + }; + ops::evaluate(&self.streams, &roots, self.stream, false)?; + let seconds = started.elapsed().as_secs_f64(); + elapsed += seconds; + // As in the original, callback failures do not abort inference. + let _ = on_chunk(prefill::Chunk { + tokens: cached_tokens + end, + total: cached_tokens + suffix.len(), + size: end - start, + seconds, + }); + observe(prefill::Progress::Settled { + tokens: cached_tokens + end, + total: cached_tokens + suffix.len(), + })?; + observe(prefill::Progress::CheckAbort)?; + elapsed += self + .prefill_throttle + .pause(&self.streams, self.stream, power_started)?; + if !tail && let Some(policy) = self.boundary_policy { + // Like the original, optional boundary capture cannot fail + // the request; a missing boundary merely prevents its reuse. + let _ = super::session_cache::capture_boundary( + &mut self.boundaries, + &self.cache, + |i| self.model.borrow_dependent().layers[i].ple.is_some(), + cached_tokens + end, + output.hidden.as_ref(), + policy, + &self.streams, + self.stream, + ); + } + if let Some(hidden) = &output.hidden { + let history_end = if tail { end - 1 } else { end }; + if history_end > start { + let h = ops::slice( + hidden, + &[0, 0, 0], + &[1, (history_end - start) as i32, hidden.layout().dim(-1)?], + &[1, 1, 1], + self.stream, + )?; + append(self, &h, &suffix[start + 1..history_end + 1], &mut observe)?; + } + } + if !tail { + observe(prefill::Progress::CheckAbort)?; + } + if tail { + final_output = Some(output); + } + } + let output = final_output.ok_or("restored suffix omitted tail")?; + let logits = ar::last_row( + &output.logits.ok_or("restored suffix omitted logits")?, + self.stream, + )?; + let hidden = output + .hidden + .map(|h| { + let rows = h.layout().dim(1)?; + ops::slice( + &h, + &[0, rows - 1, 0], + &[1, rows, h.layout().dim(-1)?], + &[1, 1, 1], + self.stream, + ) + }) + .transpose()?; + Ok(( + prefill::Prepared { + logits, + hidden, + eval_seconds: elapsed, + chunks, + }, + history_seconds, + )) + } + + pub(super) fn draft(&mut self, hidden: &Array, ids: &[i32]) -> Result { + let ids = self.input(ids)?; + let options = self.graph_options(false, false)?; + self.model.with_dependent_mut(|_, model| { + model.mtp_forward( + hidden, + &ids, + Some(&mut self.mtp_cache), + true, + &options, + None, + &self.streams, + self.stream, + ) + }) + } + + pub(super) fn append_mtp_history( + &mut self, + hidden: &Array, + ids: &[i32], + phase_prefill: bool, + ) -> Result { + let ids = self.input(ids)?; + let options = self.graph_options(phase_prefill, false)?; + self.model.with_dependent_mut(|_, model| { + model.mtp_update_cache( + hidden, + &ids, + Some(&mut self.mtp_cache), + None, + &options, + None, + &self.streams, + self.stream, + ) + }) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn logits_f32(&self, out: &Output) -> Result, String> { + self.values_f32(out.logits.as_ref().ok_or("Qwen forward omitted logits")?) + } + + /// Decode a restored/prefilled [1, vocabulary] row on the actual model and + /// existing caches. Request/session policy remains outside this model owner. + pub(super) fn decode_ar( + &mut self, + logits: &Array, + sampler: &super::sampling::SamplerConfig, + options: &ar::Options<'_>, + emit: impl FnMut(i64) -> Result<(), String>, + finish_decode: impl FnOnce(f64) -> Result<(), String>, + ) -> Result { + let graph_options = self.graph_options(false, false)?; + let lane = options.pipeline_eligible(sampler) + && self + .model + .with_dependent_mut(|_, model| model.set_ar_pipeline_mode(true)); + let mut result = ar::decode( + logits, + sampler, + options, + lane, + &self.streams, + self.stream, + &mut self.decode_throttle, + |ids, hidden| { + self.model.with_dependent_mut(|_, model| { + model.call( + ids, + Some(&mut self.cache), + None, + OutputOptions { + emit_logits: true, + logits_keep: 0, + return_hidden: hidden, + }, + &graph_options, + None, + &self.streams, + self.stream, + ) + }) + }, + emit, + ); + if lane { + self.model + .with_dependent_mut(|_, model| model.set_ar_pipeline_mode(false)); + } + if let Ok(decoded) = &mut result { + finish_decode(decoded.elapsed_seconds)?; + ar::capture_final_state( + decoded, + options, + &self.streams, + self.stream, + |ids, hidden| { + self.model.with_dependent_mut(|_, model| { + model.call( + ids, + Some(&mut self.cache), + None, + OutputOptions { + emit_logits: true, + logits_keep: 0, + return_hidden: hidden, + }, + &graph_options, + None, + &self.streams, + self.stream, + ) + }) + }, + ); + } + result + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn values_f32(&self, array: &Array) -> Result, String> { + let logits = ops::astype(array, Dtype::F32, false, self.stream)?; + ops::evaluate( + &self.streams, + std::slice::from_ref(&logits), + self.stream, + false, + )?; + let mut bytes = vec![0; logits.layout().nbytes()]; + logits.buffer().read(logits.offset(), &mut bytes)?; + Ok(bytes + .chunks_exact(4) + .map(|b| f32::from_le_bytes(b.try_into().unwrap())) + .collect()) + } +} + +impl Drop for Execution { + fn drop(&mut self) { + if let Err(error) = self.streams.clear_streams() { + eprintln!("Qwen stream cleanup failed: {error}"); + } + } +} + +#[test] +#[ignore = "full installed MTP model; external guard and DS4_QWEN38_MTP_PREFILL_REFERENCE required"] +fn mtplx_full_installed_mtp_prefill_matches_reference() { + use super::super::qwen_mtplx_tests::hex_digest; + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use std::sync::{ + Arc, + atomic::{AtomicBool, AtomicU8, Ordering}, + }; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("installed model"), + ); + let reference = std::fs::read_to_string( + std::env::var_os("DS4_QWEN38_MTP_PREFILL_REFERENCE") + .expect("original MTP prefill reference"), + ) + .unwrap(); + let receipts = reference + .lines() + .filter_map(|l| serde_json::from_str::(l).ok()) + .collect::>(); + assert!( + receipts + .iter() + .any(|r| r["event"] == "mtp_prefill_reference_end") + ); + for receipt in receipts + .iter() + .filter(|r| r["event"] == "reference_environment") + { + for (key, value) in receipt["overrides"].as_object().unwrap() { + assert_eq!(std::env::var(key).unwrap(), value.as_str().unwrap()); + } + } + assert!(!super::ngram::resident_policy(), "SSD-only safety run"); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Startup as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let outcome = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + eprintln!("MTP prefill: loading installed trunk/head under external guard"); + let mut execution = Execution::load(&root, true, false, 100).unwrap(); + let fingerprint = |execution: &Execution, array: &Array| { + let values = execution.values_f32(array).unwrap(); + assert!(values.iter().all(|v| v.is_finite())); + serde_json::json!({"shape":array.layout().shape(), "sha256":hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}) + }; + let offset = |execution: &Execution| { + let super::decoder::AttentionCache::Qsa(cache) = + &execution.mtp_cache[0].as_ref().unwrap().attention + else { + panic!("MTP QSA cache"); + }; + i64::from(cache.kv.offset) + }; + let cases = receipts + .iter() + .filter(|r| r["event"] == "mtp_prefill_reference") + .collect::>(); + assert_eq!(cases.len(), 2); + for receipt in cases { + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + let ids = receipt["token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>(); + let prepared = execution + .prefill_mtp_history( + &ids, + &prefill::Options { + chunk_size: Some(receipt["chunk_size"].as_u64().unwrap() as usize), + final_logits_only: receipt["final_only"].as_bool().unwrap(), + external_cache_only: false, + external_emit_logits: true, + return_hidden: true, + }, + receipt["window"].as_u64().map(|n| n as usize), + false, + |event| { + if let prefill::Progress::Settled { tokens, total } = event { + eprintln!("MTP prefill settled {tokens}/{total}"); + } + Ok(()) + }, + |chunk| { + eprintln!( + "MTP chunk {}+{}: {:.3}s", + chunk.tokens - chunk.size, + chunk.size, + chunk.seconds + ); + Ok(()) + }, + ) + .unwrap(); + assert_eq!( + fingerprint(&execution, &prepared.target.logits), + receipt["logits"] + ); + let hidden = prepared.target.hidden.as_ref().unwrap(); + assert_eq!(fingerprint(&execution, hidden), receipt["hidden"]); + assert_eq!( + serde_json::json!(prepared.history_position_base), + receipt["base"] + ); + assert_eq!(serde_json::json!(offset(&execution)), receipt["offset"]); + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + let token = i32::try_from(receipt["token"].as_i64().unwrap()).unwrap(); + let draft = execution.draft(hidden, &[token]).unwrap(); + assert_eq!( + fingerprint(&execution, draft.logits.as_ref().unwrap()), + receipt["draft_logits"] + ); + assert_eq!( + fingerprint(&execution, draft.hidden.as_ref().unwrap()), + receipt["draft_hidden"] + ); + assert_eq!( + serde_json::json!(offset(&execution)), + receipt["draft_offset"] + ); + println!( + "{}", + serde_json::json!({"event":"canonical_mtp_prefill", "window":receipt["window"], "target_seconds":prepared.target.eval_seconds, "history_seconds":prepared.history_seconds, "chunks":prepared.target.chunks, "offset":offset(&execution)}) + ); + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(panic) = outcome { + std::panic::resume_unwind(panic); + } +} + +#[test] +#[ignore = "full installed model; external guard and DS4_QWEN38_AR_REFERENCE required"] +fn mtplx_full_installed_ar_matches_reference() { + use super::super::qwen_mtplx_tests::hex_digest; + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use std::sync::{ + Arc, + atomic::{AtomicBool, AtomicU8, Ordering}, + }; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("installed model path"), + ); + let reference = std::fs::read_to_string( + std::env::var_os("DS4_QWEN38_AR_REFERENCE").expect("original AR reference"), + ) + .unwrap(); + let receipts = reference + .lines() + .filter_map(|line| serde_json::from_str::(line).ok()) + .collect::>(); + let prepared_ref = receipts + .iter() + .find(|v| v["event"] == "ar_prefill_reference") + .expect("completed prefill oracle"); + let end = receipts + .iter() + .find(|v| v["event"] == "ar_reference_end") + .expect("completed generate_ar oracle"); + assert_eq!(end["finish_reason"], "stop"); + for receipt in receipts + .iter() + .filter(|r| r["event"] == "reference_environment") + { + for (key, value) in receipt["overrides"].as_object().unwrap() { + assert_eq!(std::env::var(key).unwrap(), value.as_str().unwrap()); + } + } + assert!(!super::ngram::resident_policy(), "SSD-only safety run"); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Startup as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let outcome = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + eprintln!("AR: loading installed trunk under external guard"); + let mut execution = Execution::load(&root, false, false, 100).unwrap(); + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + let ids = prepared_ref["token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>(); + let prefill_options = prefill::Options { + chunk_size: prepared_ref["chunk_size"].as_u64().map(|n| n as usize), + final_logits_only: prepared_ref["final_logits_only"].as_bool().unwrap(), + external_cache_only: false, + external_emit_logits: true, + return_hidden: false, + }; + let prepared = execution + .prefill_prompt(&ids, &prefill_options, |event| { + if let prefill::Progress::Settled { tokens, total } = event { + eprintln!("AR prefill completed {tokens}/{total}"); + } + Ok(()) + }) + .unwrap(); + let fingerprint = |array: &Array| { + let values = execution.values_f32(array).unwrap(); + assert!(values.iter().all(|v| v.is_finite())); + serde_json::json!({"shape":array.layout().shape(), "sha256":hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}) + }; + assert_eq!(fingerprint(&prepared.logits), prepared_ref["logits"]); + assert_eq!( + serde_json::json!(prepared.hidden.is_some()), + prepared_ref["hidden"] + ); + assert_eq!(serde_json::json!(prepared.chunks), prepared_ref["chunks"]); + println!( + "{}", + serde_json::json!({"event":"canonical_ar_prefill", "seconds":prepared.eval_seconds, "chunks":prepared.chunks}) + ); + // The oracle fingerprints _prefill once, drops that cache, then calls + // generate_ar, which prefills again. Match both passes before decoding; + // the first pass is a diagnostic prefill, not a complete chat warmup. + drop(prepared); + let prepared = execution + .prefill_prompt(&ids, &prefill_options, |event| { + if let prefill::Progress::Settled { tokens, total } = event { + eprintln!("AR repeated prefill completed {tokens}/{total}"); + } + Ok(()) + }) + .unwrap(); + let expected = end["tokens"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let stops = end["stops"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let expected_wire = expected + .iter() + .filter(|id| !stops.contains(id)) + .copied() + .collect::>(); + let mut emitted = Vec::new(); + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + let result = execution + .decode_ar( + &prepared.logits, + &super::sampling::SamplerConfig { + temperature: end["temperature"].as_f64().unwrap(), + top_p: end["top_p"].as_f64().unwrap(), + top_k: end["top_k"].as_i64().unwrap() as i32, + ..Default::default() + }, + &ar::Options { + max_tokens: usize::MAX, + seed: end["seed"].as_u64().unwrap(), + stop_tokens: &stops, + pipeline: flag("MTPLX_AR_PIPELINE"), + sync_eval: !flag("MTPLX_ASYNC_AR") + || !std::env::var("MTPLX_EVAL_AUDIT") + .unwrap_or_default() + .is_empty(), + return_hidden: false, + capture_final_state: true, + }, + |id| { + assert_eq!( + expected_wire.get(emitted.len()), + Some(&id), + "sampled AR token" + ); + emitted.push(id); + eprintln!("sampled AR token {}: {id}", emitted.len()); + Ok(()) + }, + |_| Ok(()), + ) + .unwrap(); + assert_eq!(result.tokens, expected); + assert_eq!(emitted, expected_wire); + assert_eq!(serde_json::json!(result.verify_calls), end["verify_calls"]); + assert!(result.final_state_error.is_none()); + let final_logits = result + .final_logits + .as_ref() + .expect("complete final-state capture"); + let values = execution.values_f32(final_logits).unwrap(); + assert_eq!( + serde_json::json!({"shape":final_logits.layout().shape(), "sha256":hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}), + end["final_logits"] + ); + println!( + "{}", + serde_json::json!({"event":"canonical_ar_end", "tokens":result.tokens, "verify_calls":result.verify_calls, + "decode_elapsed_seconds":result.elapsed_seconds, "prefill_seconds":prepared.eval_seconds, "finish_reason":"stop", "pipeline":result.pipeline}) + ); + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(panic) = outcome { + std::panic::resume_unwind(panic); + } +} + +#[test] +#[ignore = "full installed model; requires external memory guard and DS4_QWEN38_FORWARD_REFERENCE"] +fn mtplx_full_installed_ping_forward_matches_reference() { + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use sha2::{Digest, Sha256}; + use std::sync::{ + Arc, + atomic::{AtomicBool, AtomicU8, Ordering}, + }; + use std::time::Instant; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("installed model path"), + ); + let reference = std::fs::read_to_string( + std::env::var_os("DS4_QWEN38_FORWARD_REFERENCE").expect("original full forward receipt"), + ) + .unwrap(); + let receipts = reference + .lines() + .filter_map(|line| serde_json::from_str::(line).ok()) + .collect::>(); + let reference = receipts + .iter() + .find(|r| r["event"] == "forward_reference") + .expect("successful original forward"); + let mtp = reference["mtp"].as_bool().unwrap(); + if mtp { + assert!( + receipts.iter().any(|r| r["event"] == "mtp_reference_end"), + "incomplete MTP reference" + ); + assert_eq!( + receipts + .iter() + .filter(|r| r["event"] == "mtp_reference") + .map(|r| r["op"].as_str().unwrap()) + .collect::>(), + [ + "trunk", + "history", + "draft", + "draft", + "draft", + "verify", + "commit", + "history_commit", + "continuation", + "draft_continuation" + ] + ); + } + for receipt in receipts + .iter() + .filter(|r| r["event"] == "reference_environment") + { + for (name, value) in receipt["overrides"].as_object().unwrap() { + assert_eq!( + std::env::var(name).unwrap(), + value.as_str().unwrap(), + "reference environment {name}" + ); + } + } + assert!(!super::ngram::resident_policy(), "SSD-only safety run"); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Startup as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let outcome = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + eprintln!("canonical: loading full trunk under external guard"); + let started = Instant::now(); + let mut execution = Execution::load(&root, mtp, false, 100).unwrap(); + let load = started.elapsed(); + eprintln!( + "canonical: trunk loaded in {:.3}s; starting ping prefill", + load.as_secs_f64() + ); + assert!( + execution + .model + .borrow_owner() + .parameters + .iter() + .filter(|(name, _)| !name.starts_with("mtp.")) + .all(|(_, array)| array.has_data()) + ); + let ids = reference["token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>(); + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + let started = Instant::now(); + let output = execution.forward(&ids, true, false).unwrap(); + let values = execution.logits_f32(&output).unwrap(); + let elapsed = started.elapsed(); + let shape = output.logits.as_ref().unwrap().layout().shape().to_vec(); + assert_eq!(serde_json::json!(shape), reference["shape"]); + assert!(values.iter().all(|v| v.is_finite())); + let rows = values.chunks_exact(shape[2] as usize).collect::>(); + let hashes = rows + .iter() + .map(|row| { + let bytes = row.iter().flat_map(|v| v.to_le_bytes()).collect::>(); + Sha256::digest(&bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::() + }) + .collect::>(); + let argmax = rows + .iter() + .map(|row| { + row.iter() + .enumerate() + .max_by(|a, b| a.1.total_cmp(b.1).then_with(|| b.0.cmp(&a.0))) + .unwrap() + .0 + }) + .collect::>(); + println!( + "{}", + serde_json::json!({"event":"canonical_forward", "shape":shape, "token_ids":ids, "row_sha256":hashes, "argmax":argmax, "load_seconds":load.as_secs_f64(), "forward_seconds":elapsed.as_secs_f64(), "mtp":mtp, "power_percent":100}) + ); + assert_eq!(serde_json::json!(hashes), reference["row_sha256"]); + assert_eq!(serde_json::json!(argmax), reference["argmax"]); + if mtp { + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + verify_mtp_round(&mut execution, output.hidden.as_ref().unwrap(), &receipts); + } + if let Some(end) = receipts + .iter() + .find(|r| r["event"] == "decode_reference_end") + { + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + let mut token = *argmax.last().unwrap(); + let mut generated = Vec::new(); + for receipt in receipts.iter().filter(|r| r["event"] == "decode_reference") { + assert_eq!(receipt["token_id"], token); + generated.push(token); + assert_eq!(receipt["step"], generated.len()); + let started = Instant::now(); + let output = execution + .forward(&[i32::try_from(token).unwrap()], false, false) + .unwrap(); + let values = execution.logits_f32(&output).unwrap(); + let elapsed = started.elapsed(); + assert_eq!( + serde_json::json!(output.logits.as_ref().unwrap().layout().shape()), + receipt["shape"] + ); + assert!(values.iter().all(|v| v.is_finite())); + token = values + .iter() + .enumerate() + .max_by(|a, b| a.1.total_cmp(b.1).then_with(|| b.0.cmp(&a.0))) + .unwrap() + .0; + let bytes = values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(); + let hash = Sha256::digest(&bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + println!( + "{}", + serde_json::json!({"event":"canonical_decode", "step":generated.len(), "argmax":token, "row_sha256":hash, "forward_seconds":elapsed.as_secs_f64()}) + ); + assert_eq!( + hash, + receipt["row_sha256"], + "decode step {}", + generated.len() + ); + assert_eq!(token, receipt["argmax"]); + } + assert_eq!(end["finish_reason"], "eos"); + assert_eq!(end["token_ids"], serde_json::json!(generated)); + assert_eq!(end["eos_token"], token); + assert!( + end["eos_token_ids"] + .as_array() + .unwrap() + .contains(&serde_json::json!(token)) + ); + println!( + "{}", + serde_json::json!({"event":"canonical_decode_end", "token_ids":generated, "eos_token":token, "finish_reason":"eos"}) + ); + // Also run the connected ordinary AR driver, not a manual argmax + // loop. The original receipts are numerical evidence, not a + // substitute for generate_ar's separate orchestration fixtures. + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + execution.cache = execution.model.borrow_dependent().make_cache(4); + let fresh = execution.forward(&ids, true, false).unwrap(); + let row = ar::last_row(fresh.logits.as_ref().unwrap(), execution.stream).unwrap(); + ops::evaluate( + &execution.streams, + std::slice::from_ref(&row), + execution.stream, + false, + ) + .unwrap(); + let stops = end["eos_token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let mut emitted = Vec::new(); + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + let ar_result = execution + .decode_ar( + &row, + &super::sampling::SamplerConfig { + temperature: 0.0, + ..Default::default() + }, + &ar::Options { + max_tokens: usize::MAX, + seed: 0, + stop_tokens: &stops, + pipeline: false, + sync_eval: true, + return_hidden: false, + capture_final_state: false, + }, + |id| { + assert_eq!( + generated.get(emitted.len()), + Some(&(id as usize)), + "connected AR token" + ); + emitted.push(id); + eprintln!("connected AR token {}: {id}", emitted.len()); + Ok(()) + }, + |_| Ok(()), + ) + .unwrap(); + assert_eq!( + emitted, + generated.iter().map(|v| *v as i64).collect::>() + ); + emitted.push(token as i64); + assert_eq!(ar_result.tokens, emitted); + assert_eq!(ar_result.verify_calls, generated.len()); + assert!(!ar_result.pipeline); + } else { + assert!( + !receipts.iter().any(|r| r["event"] == "decode_reference"), + "incomplete decode reference" + ); + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(panic) = outcome { + std::panic::resume_unwind(panic); + } +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn verify_mtp_round( + execution: &mut Execution, + body_hidden: &Array, + receipts: &[serde_json::Value], +) { + use super::decoder::AttentionCache; + use super::model::{ArraySnapshot, TextModel}; + use serde_json::{Value, json}; + use sha2::{Digest, Sha256}; + let mut draft_hidden = None::; + let mut verified_hidden = None::; + let mut snapshots = None::>>; + let mut base_offset = 0; + let mut keep = 0; + let mut next = 0; + let mut first = 0; + let mut drafts = Vec::new(); + let mut choices = Vec::new(); + let argmax = |row: &[f32]| { + row.iter() + .enumerate() + .max_by(|a, b| a.1.total_cmp(b.1).then_with(|| b.0.cmp(&a.0))) + .unwrap() + .0 as i32 + }; + for receipt in receipts.iter().filter(|r| r["event"] == "mtp_reference") { + let op = receipt["op"].as_str().unwrap(); + let ids = receipt["token_ids"] + .as_array() + .map(|ids| { + ids.iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>() + }) + .unwrap_or_default(); + eprintln!("canonical MTP: {op}"); + let mut logits = None; + let mut hidden = None; + match op { + "trunk" => { + let out = execution.forward(&ids, true, false).unwrap(); + draft_hidden = out.hidden.clone(); + first = argmax(&execution.logits_f32(&out).unwrap()); + next = first; + logits = out.logits; + hidden = out.hidden; + } + "history" => { + hidden = Some( + execution + .append_mtp_history(body_hidden, &ids, true) + .unwrap(), + ); + base_offset = ids.len() as i32; + } + "draft" | "draft_continuation" => { + assert_eq!(ids, [next]); + let out = execution + .draft(draft_hidden.as_ref().unwrap(), &ids) + .unwrap(); + next = argmax(&execution.logits_f32(&out).unwrap()); + if op == "draft" { + drafts.push(next); + } + draft_hidden = out.hidden.clone(); + logits = out.logits; + hidden = out.hidden; + } + "verify" => { + assert_eq!(ids, [vec![first], drafts.clone()].concat()); + snapshots = Some( + execution + .cache + .iter() + .map(|entry| { + let entry = entry.as_ref().unwrap(); + match &entry.attention { + AttentionCache::Linear(c) => Some(vec![ + c.conv.clone(), + c.delta.clone(), + entry.ple.conv.clone(), + entry.ple.history.clone(), + ]), + AttentionCache::Qsa(_) => None, + } + }) + .collect(), + ); + let out = execution.forward(&ids, false, true).unwrap(); + choices = execution + .logits_f32(&out) + .unwrap() + .chunks_exact(out.logits.as_ref().unwrap().layout().dim(-1).unwrap() as usize) + .map(argmax) + .collect(); + verified_hidden = out.hidden.clone(); + logits = out.logits; + hidden = out.hidden; + } + "commit" => { + keep = 1 + drafts + .iter() + .zip(&choices) + .take_while(|(a, b)| a == b) + .count() as i32; + assert_eq!(receipt["keep"], keep); + let verified = drafts.len() as i32 + 1; + assert_eq!(receipt["verified"], verified); + let options = Options::from_env(false, false).unwrap(); + assert!( + execution + .model + .with_dependent_mut(|_, model| model.commit_verified_window( + &mut execution.cache, + snapshots.as_deref(), + keep, + verified, + &options, + None, + &execution.streams, + execution.stream + )) + .unwrap() + ); + let AttentionCache::Qsa(c) = + &mut execution.mtp_cache[0].as_mut().unwrap().attention + else { + panic!("MTP QSA cache") + }; + c.trim(c.kv.offset - (base_offset + 1)); + next = choices[(keep - 1) as usize]; + } + "history_commit" => { + let h = verified_hidden.as_ref().unwrap(); + let prefix = ops::slice( + h, + &[0, 0, 0], + &[1, keep - 1, 10240], + &[1, 1, 1], + execution.stream, + ) + .unwrap(); + assert_eq!( + ids, + [vec![first], drafts.clone()].concat()[1..keep as usize] + ); + if !ids.is_empty() { + hidden = Some(execution.append_mtp_history(&prefix, &ids, false).unwrap()); + } + } + "continuation" => { + assert_eq!(ids, [next]); + let out = execution.forward(&ids, false, false).unwrap(); + next = argmax(&execution.logits_f32(&out).unwrap()); + draft_hidden = out.hidden.clone(); + logits = out.logits; + hidden = out.hidden; + } + _ => panic!("unexpected MTP reference operation {op}"), + } + for (name, array) in [("logits", logits), ("hidden", hidden)] { + if let Some(array) = array { + let values = execution.values_f32(&array).unwrap(); + assert!(values.iter().all(|v| v.is_finite())); + let bytes = values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(); + let sha256 = Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(); + let actual = json!({"shape":array.layout().shape(), "sha256":sha256}); + println!( + "{}", + json!({"event":"canonical_mtp", "op":op,"tensor":name,"value":actual}) + ); + assert_eq!(actual, receipt[name], "MTP {op} {name}"); + } else { + assert_eq!(receipt[name], Value::Null); + } + } + if let Some(offset) = receipt["offset"].as_i64() { + let AttentionCache::Qsa(c) = &execution.mtp_cache[0].as_ref().unwrap().attention else { + panic!("MTP QSA cache") + }; + assert_eq!(i64::from(c.kv.offset), offset, "MTP {op} offset"); + } + } + TextModel::clear_verify_capture(&mut execution.cache); + let end = receipts + .iter() + .find(|r| r["event"] == "mtp_reference_end") + .unwrap(); + assert_eq!(end["keep"], keep); + assert_eq!(end["verified"], drafts.len() + 1); + println!( + "{}", + json!({"event":"canonical_mtp_end", "keep":keep,"verified":drafts.len()+1}) + ); +} diff --git a/src/engine/metal/qwen_mtplx/fused.rs b/src/engine/metal/qwen_mtplx/fused.rs new file mode 100644 index 0000000..7966649 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/fused.rs @@ -0,0 +1,831 @@ +//! Runtime-generated Compiled Metal expressions from the pinned +//! metal/compiled.cpp emitter. The shared functor/header source is unchanged. +use super::array::{Array, Dtype}; +use super::{compiled, ops::Operation}; +use sha2::{Digest, Sha256}; +use std::fmt::Write; + +#[derive(Debug)] +struct Input { + dtype: Dtype, + scalar: bool, + constant: Option, +} + +#[derive(Debug)] +pub(super) struct Statement { + pub(super) dtype: Dtype, + /// Reference primitive name; Broadcast/AsType emit a static cast. + pub(super) operator: &'static str, + pub(super) inputs: Vec, +} + +pub(super) struct Expression { + inputs: Vec, + statements: Vec, + outputs: Vec, + prefix: String, +} + +pub(super) fn operator(op: &Operation) -> Option<&'static str> { + use super::{binary::Binary as B, unary::Unary as U}; + Some(match op { + Operation::Broadcast => "Broadcast", + Operation::AsType => "AsType", + Operation::Select => "Select", + Operation::Unary(op) => match op { + U::LogicalNot => "LogicalNot", + U::Abs => "Abs", + U::Sign => "Sign", + U::Negative => "Negative", + U::Square => "Square", + U::Exp => "Exp", + U::Log => "Log", + U::Sigmoid => "Sigmoid", + U::Tanh => "Tanh", + U::Sqrt => "Sqrt", + U::Rsqrt => "Rsqrt", + U::Sin => "Sin", + U::Cos => "Cos", + }, + Operation::Binary(op) => match op { + B::Equal => "Equal", + B::GreaterEqual => "GreaterEqual", + B::Greater => "Greater", + B::Less => "Less", + B::LessEqual => "LessEqual", + B::LogicalAnd => "LogicalAnd", + B::LogicalOr => "LogicalOr", + B::BitwiseAnd => "BitwiseAnd", + B::BitwiseOr => "BitwiseOr", + B::BitwiseXor => "BitwiseXor", + B::Remainder => "Remainder", + B::Add => "Add", + B::Subtract => "Subtract", + B::Multiply => "Multiply", + B::Divide => "Divide", + B::Maximum => "Maximum", + B::Minimum => "Minimum", + B::LogAddExp => "LogAddExp", + B::Power => "Power", + }, + _ => return None, + }) +} + +fn dtype(d: Dtype) -> &'static str { + match d { + Dtype::Bool => "bool", + Dtype::U8 => "uint8_t", + Dtype::U16 => "uint16_t", + Dtype::U32 => "uint32_t", + Dtype::U64 => "uint64_t", + Dtype::I8 => "int8_t", + Dtype::I16 => "int16_t", + Dtype::I32 => "int32_t", + Dtype::I64 => "int64_t", + Dtype::F16 => "float16_t", + Dtype::BF16 => "bfloat16_t", + Dtype::F32 => "float", + Dtype::F64 => "double", + Dtype::C64 => "complex64_t", + } +} + +// ostream defaultfloat with digits10+1 (7 for F32/F16/BF16, 16 for F64). +fn float_constant(value: f64, precision: usize) -> String { + if value.is_nan() { + return "NAN".into(); + } + if value.is_infinite() { + return if value.is_sign_negative() { + "-INFINITY" + } else { + "INFINITY" + } + .into(); + } + let scientific = format!("{:.*e}", precision - 1, value); + let (mantissa, exponent) = scientific.split_once('e').unwrap(); + let exponent: i32 = exponent.parse().unwrap(); + let trim = |s: String| { + if s.contains('.') { + s.trim_end_matches('0').trim_end_matches('.').to_owned() + } else { + s + } + }; + if exponent < -4 || exponent >= precision as i32 { + format!("{}e{:+03}", trim(mantissa.to_owned()), exponent) + } else { + trim(format!( + "{:.*}", + (precision as i32 - 1 - exponent).max(0) as usize, + value + )) + } +} + +fn constant(a: &Array) -> Result { + a.wait()?; + if !a.has_data() { + return Err("compiled constant is unavailable".into()); + } + let mut bits = [0u8; 8]; + a.buffer().read(a.offset(), &mut bits[..a.itemsize()])?; + let u16v = u16::from_le_bytes(bits[..2].try_into().unwrap()); + let u32v = u32::from_le_bytes(bits[..4].try_into().unwrap()); + Ok(match a.layout().dtype() { + Dtype::Bool => (bits[0] != 0).to_string(), + Dtype::U8 => bits[0].to_string(), + Dtype::I8 => (bits[0] as i8).to_string(), + Dtype::U16 => u16v.to_string(), + Dtype::I16 => (u16v as i16).to_string(), + Dtype::U32 => u32v.to_string(), + Dtype::I32 => (u32v as i32).to_string(), + Dtype::U64 => u64::from_le_bytes(bits).to_string(), + Dtype::I64 => i64::from_le_bytes(bits).to_string(), + Dtype::BF16 => float_constant(f32::from_bits(u32::from(u16v) << 16) as f64, 7), + Dtype::F16 => float_constant(super::super::half_to_f32(u16v) as f64, 7), + Dtype::F32 => float_constant(f32::from_bits(u32v) as f64, 7), + Dtype::F64 => float_constant(f64::from_le_bytes(bits), 16), + Dtype::C64 => format!( + "complex64_t({}, {})", + float_constant(f32::from_bits(u32v) as f64, 7), + float_constant(f32::from_le_bytes(bits[4..].try_into().unwrap()) as f64, 7) + ), + }) +} + +struct Names { + slots: Vec>, + count: usize, +} +impl Names { + fn get(&mut self, slot: usize) -> String { + self.slots[slot] + .get_or_insert_with(|| { + self.count += 1; + let mut n = self.count; + let mut letters = Vec::new(); + while n > 0 { + letters.push(b'A' + ((n - 1) % 26) as u8); + n = (n - 1) / 26; + } + letters.reverse(); + String::from_utf8(letters).unwrap() + }) + .clone() + } +} + +impl Expression { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn name(&self) -> String { + std::iter::once("Compiled") + .chain(self.statements.iter().map(|s| s.operator)) + .collect() + } + + pub(super) fn new( + inputs: &[Array], + statements: Vec, + outputs: Vec, + constants: &[bool], + ) -> Result { + if inputs.len() != constants.len() || statements.is_empty() || outputs.is_empty() { + return Err("invalid compiled expression arity".into()); + } + for (i, s) in statements.iter().enumerate() { + if s.inputs.is_empty() || s.inputs.iter().any(|&j| j >= inputs.len() + i) { + return Err("compiled expression is not topological".into()); + } + } + if outputs + .iter() + .any(|&o| o < inputs.len() || o >= inputs.len() + statements.len()) + { + return Err("invalid compiled expression output".into()); + } + let inputs = inputs + .iter() + .zip(constants) + .map(|(a, &embed)| { + Ok(Input { + dtype: a.layout().dtype(), + scalar: a.layout().shape().is_empty(), + constant: if embed { Some(constant(a)?) } else { None }, + }) + }) + .collect::, String>>()?; + // Symbol renaming only; expression spelling and argument ordering + // follow the original emitter. Hash includes embedded constant text. + let hash = Sha256::digest(format!("{inputs:?}{statements:?}{outputs:?}")); + let hash = hash.iter().map(|b| format!("{b:02x}")).collect::(); + let prefix = format!("kernel_qwen_mtplx_compiled_{hash}"); + Ok(Self { + inputs, + statements, + outputs, + prefix, + }) + } + + pub(super) fn evaluate(&self, inputs: &[Array], outputs: &[Array]) -> Result<(), String> { + super::compile_custom(&format!("{}_contiguous", self.prefix), || self.source())?; + compiled::evaluate_many(inputs, outputs, &self.prefix, |i| { + self.inputs[i].constant.is_some() + }) + } + + fn value_dtype(&self, slot: usize) -> Dtype { + if slot < self.inputs.len() { + self.inputs[slot].dtype + } else { + self.statements[slot - self.inputs.len()].dtype + } + } + + pub(super) fn source(&self) -> Result { + let mut source = + include_str!("../../../../metal/mtplx-qsa-compiled-header.metal").to_owned(); + let work = (8 / self.value_dtype(self.outputs[0]).itemsize()).max(1); + source.push_str(&self.kernel(true, 0, false, false, 1)?); + if work > 1 { + source.push_str(&self.kernel(true, 0, false, false, work)?); + } + source.push_str(&self.kernel(true, 0, false, true, work)?); + for rank in 1..8 { + source.push_str(&self.kernel( + false, + rank, + false, + false, + if rank > 3 { 2 } else { 1 }, + )?); + source.push_str(&self.kernel( + false, + rank, + false, + true, + if rank > 3 { 4 } else { 1 }, + )?); + } + source.push_str(&self.kernel(false, 0, true, false, 2)?); + source.push_str(&self.kernel(false, 0, true, true, 4)?); + Ok(source) + } + + fn kernel( + &self, + contiguous: bool, + rank: usize, + dynamic: bool, + large: bool, + work: usize, + ) -> Result { + let suffix = if contiguous { + format!("contiguous{}", if work > 1 && !large { "_n" } else { "" }) + } else { + format!( + "strided_{}", + if dynamic { + "dynamic".to_owned() + } else { + rank.to_string() + } + ) + }; + let name = format!( + "{}_{}{}", + self.prefix, + suffix, + if large { "_large" } else { "" } + ); + let mut os = format!("[[host_name(\"{name}\")]]\n[[kernel]] void {name}(\n"); + let mut names = Names { + slots: vec![None; self.inputs.len() + self.statements.len()], + count: 0, + }; + let mut count = 0; + let mut indices = false; + for (i, input) in self.inputs.iter().enumerate() { + if input.constant.is_some() { + continue; + } + if !input.scalar && !contiguous { + indices = true; + } + writeln!( + os, + " device const {}* {} [[buffer({count})]],", + dtype(input.dtype), + names.get(i) + ) + .unwrap(); + count += 1; + } + let index_type = if large { "int64_t" } else { "uint" }; + if indices { + writeln!( + os, + " constant const int64_t* in_strides [[buffer({count})]]," + ) + .unwrap(); + count += 1; + } + for &o in &self.outputs { + writeln!( + os, + " device {}* {} [[buffer({count})]],", + dtype(self.value_dtype(o)), + names.get(o) + ) + .unwrap(); + count += 1; + } + if contiguous { + writeln!( + os, + " constant const {index_type}& size [[buffer({count})]]," + ) + .unwrap(); + } else { + writeln!( + os, + " constant const int* output_shape [[buffer({count})]]," + ) + .unwrap(); + } + count += 1; + if dynamic { + writeln!(os, " constant const int& ndim [[buffer({count})]],").unwrap(); + count += 1; + } + if count > 31 { + return Err("compiled expression exceeds Metal's 31 argument buffers".into()); + } + os.push_str( + " uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n", + ); + writeln!(os, " constexpr int N_ = {work};").unwrap(); + if contiguous && large { + os.push_str(" int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y));\n"); + } else if contiguous { + os.push_str(" uint index = N_ * pos.x;\n"); + } else if work > 1 { + writeln!( + os, + " int xshape = output_shape[{}];", + if dynamic { + "ndim - 1".to_owned() + } else { + (rank - 1).to_string() + } + ) + .unwrap(); + writeln!(os, " {index_type} index = N_ * pos.x + xshape * (pos.y + {index_type}(grid.y) * pos.z);").unwrap(); + } else { + writeln!( + os, + " {index_type} index = pos.x + grid.x * (pos.y + {index_type}(grid.y) * pos.z);" + ) + .unwrap(); + } + if work > 1 && contiguous { + os.push_str(" for (int i = 0; i < N_ && index < size; ++i) {\n"); + } + let mut nc = Vec::new(); + for (i, input) in self.inputs.iter().enumerate() { + let n = names.get(i); + if let Some(c) = &input.constant { + writeln!( + os, + " auto tmp_{n} = static_cast<{}>({c});", + dtype(input.dtype) + ) + .unwrap(); + } else if input.scalar { + writeln!(os, " {} tmp_{n} = {n}[0];", dtype(input.dtype)).unwrap(); + } else if contiguous { + writeln!(os, " {} tmp_{n} = {n}[index];", dtype(input.dtype)).unwrap(); + } else { + nc.push(i); + } + } + for (i, &slot) in nc.iter().enumerate() { + let n = names.get(slot); + write!(os, " {index_type} index_{n} = ").unwrap(); + match rank { + 1 => writeln!(os, "elem_to_loc_1<{index_type}>(pos.x, in_strides[{}]);", i * rank).unwrap(), + 2 => writeln!(os, "elem_to_loc_2<{index_type}>({{pos.x, pos.y}}, in_strides + {});", i * rank).unwrap(), + 3 => writeln!(os, "elem_to_loc_3<{index_type}>(pos, in_strides + {});", i * rank).unwrap(), + _ if !dynamic => writeln!(os, "N_ * pos.x * {index_type}(in_strides[{}]) + pos.y * {index_type}(in_strides[{}]);", (i+1)*rank-1, (i+1)*rank-2).unwrap(), + _ => writeln!(os, "N_ * pos.x * {index_type}(in_strides[ndim * {i} + ndim - 1]) + pos.y * {index_type}(in_strides[ndim * {i} + ndim - 2]);").unwrap(), + } + } + if !nc.is_empty() && (rank > 3 || dynamic) { + os.push_str(" uint zpos = pos.z;\n"); + writeln!( + os, + " for (int d = {}; d >= 0; --d) {{", + if dynamic { + "ndim - 3".to_owned() + } else { + (rank - 3).to_string() + } + ) + .unwrap(); + os.push_str(" uint l = zpos % output_shape[d];\n"); + for (i, &slot) in nc.iter().enumerate() { + let n = names.get(slot); + if dynamic { + writeln!( + os, + " index_{n} += l * {index_type}(in_strides[{i} * ndim + d]);" + ) + .unwrap(); + } else { + writeln!( + os, + " index_{n} += l * {index_type}(in_strides[{} + d]);", + i * rank + ) + .unwrap(); + } + } + os.push_str(" zpos /= output_shape[d];\n }\n"); + } + if work > 1 && !contiguous { + os.push_str(" for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n"); + } + for &slot in &nc { + let n = names.get(slot); + writeln!( + os, + " {} tmp_{n} = {n}[index_{n}];", + dtype(self.inputs[slot].dtype) + ) + .unwrap(); + } + for (i, s) in self.statements.iter().enumerate() { + let n = names.get(self.inputs.len() + i); + write!(os, " {} tmp_{n} = ", dtype(s.dtype)).unwrap(); + if matches!(s.operator, "Broadcast" | "AsType") { + writeln!( + os, + "cast_to<{}>(tmp_{});", + dtype(s.dtype), + names.get(s.inputs[0]) + ) + .unwrap(); + } else { + let args = s + .inputs + .iter() + .map(|&s| format!("tmp_{}", names.get(s))) + .collect::>() + .join(", "); + writeln!(os, "{}()({args});", s.operator).unwrap(); + } + } + for &slot in &self.outputs { + let n = names.get(slot); + writeln!(os, " {n}[index] = tmp_{n};").unwrap(); + } + if work > 1 { + for (i, &slot) in nc.iter().enumerate() { + let n = names.get(slot); + if dynamic { + writeln!(os, " index_{n} += in_strides[{i} * ndim + ndim - 1];").unwrap(); + } else { + writeln!(os, " index_{n} += in_strides[{}];", i * rank + rank - 1).unwrap(); + } + } + os.push_str(" index++;\n }\n"); + } + os.push_str("}\n"); + Ok(os) + } +} + +#[test] +fn mtplx_compiled_constant_spelling() { + for (value, text) in [ + (0., "0"), + (-0., "-0"), + (0.1, "0.1"), + (1e-4, "0.0001"), + (1e-5, "1e-05"), + (1e7, "1e+07"), + (1234567., "1234567"), + (12345678., "1.234568e+07"), + (f64::NAN, "NAN"), + (f64::INFINITY, "INFINITY"), + (f64::NEG_INFINITY, "-INFINITY"), + ] { + assert_eq!(float_constant(value, 7), text); + } + assert_eq!(float_constant(1.2345678901234567, 16), "1.234567890123457"); +} + +#[test] +fn mtplx_compiled_emitter_matches_all_pinned_silu_bodies() { + // The pinned shapeless SiLU has two explicit Broadcast primitives; + // compare the emitter, independently of shape-fixed trace selection. + let input = Array::unallocated(&[8], Dtype::BF16).unwrap(); + let s = |operator, inputs| Statement { + dtype: Dtype::BF16, + operator, + inputs, + }; + let expression = Expression::new( + &[input], + vec![ + s("Sigmoid", vec![0]), + s("Broadcast", vec![0, 1]), + s("Broadcast", vec![1, 0]), + s("Multiply", vec![2, 3]), + ], + vec![4], + &[false], + ) + .unwrap(); + let source = expression.source().unwrap(); + let reference = include_str!("../../../../metal/mtplx_qwen.metal"); + let mut compared = 0; + for section in reference + .split("[[host_name(\"kernel_qwen_mtplx_silu_bf16_") + .skip(1) + { + let suffix = section.split_once('"').unwrap().0; + let original = format!("[[host_name(\"kernel_qwen_mtplx_silu_bf16_{section}"); + let original = &original[..original.find("\n}\n").unwrap() + 3]; + let symbol = original + .split_once("void ") + .unwrap() + .1 + .split_once('(') + .unwrap() + .0; + let expected = original + .replace(symbol, &format!("{}_{suffix}", expression.prefix)) + .replace( + &format!("kernel_qwen_mtplx_silu_bf16_{suffix}"), + &format!("{}_{suffix}", expression.prefix), + ); + let marker = format!("[[host_name(\"{}_{suffix}\")]]", expression.prefix); + let start = source.find(&marker).unwrap(); + let generated = &source[start..]; + let generated = &generated[..generated.find("\n}\n").unwrap() + 3]; + assert_eq!(generated, expected, "{suffix}"); + compared += 1; + } + assert_eq!(compared, 19); +} + +#[test] +fn mtplx_compile_fusion_preserves_parent_and_output_boundaries() { + use super::{ + binary::{Binary, binary}, + compiled::Replay, + ops, + stream::{Device, Stream}, + unary::{Unary, unary}, + }; + let gpu = Stream::new(0, Device::Gpu); + let other = Stream::new(1, Device::Gpu); + let x = Array::unallocated(&[4], Dtype::F32).unwrap(); + let scalar = Array::unallocated(&[], Dtype::F32).unwrap(); + let inputs = [x, scalar]; + let results = Replay::trace_compiled(&inputs, |a| { + let square = unary(&a[0], Unary::Square, gpu)?; + let sum = binary(&square, &a[1], Binary::Add, gpu)?; + Ok(vec![square, sum.clone(), sum]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + assert!(matches!( + &*results[0].operation().unwrap(), + Operation::Compiled(_) + )); + assert_eq!(results[0].outputs().len(), 2); + assert_eq!(results[1].id(), results[2].id()); + assert!(std::rc::Rc::ptr_eq( + &results[0].operation().unwrap(), + &results[1].operation().unwrap() + )); + // Mixed-parent Broadcast is split; the outside consumer retains its view. + let results = Replay::trace_compiled(&inputs, |a| { + let broadcast = ops::broadcast_to(&a[1], &[4], gpu)?; + let sum = binary(&a[0], &broadcast, Binary::Add, gpu)?; + Ok(vec![ops::reshape(&broadcast, &[2, 2], gpu)?, sum]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + assert!(matches!( + &*results[0].inputs()[0].operation().unwrap(), + Operation::Broadcast + )); + assert!(results[1].inputs().iter().any(|a| a.id() == inputs[1].id())); + // A non-Broadcast intermediate with outside parents cannot be split. + let results = Replay::trace_compiled(&inputs, |a| { + let square = unary(&a[0], Unary::Square, gpu)?; + Ok(vec![ + ops::reshape(&square, &[2, 2], gpu)?, + binary(&square, &a[1], Binary::Add, gpu)?, + ]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + assert_eq!(results[0].inputs()[0].id(), results[1].inputs()[0].id()); + // Stream mismatch is a fusion boundary even though CSE ignores streams. + let results = Replay::trace_compiled(&inputs, |a| { + let square = unary(&a[0], Unary::Square, gpu)?; + let negative = unary(&square, Unary::Negative, other)?; + Ok(vec![binary(&negative, &a[1], Binary::Add, other)?]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + assert_eq!(results[0].inputs()[0].stream(), Some(gpu)); + // A 25-node chain splits at the original depth=11 boundary: 11+11+3. + let results = Replay::trace_compiled(&inputs, |a| { + let mut x = a[0].clone(); + for _ in 0..25 { + x = unary(&x, Unary::Negative, gpu)?; + } + Ok(vec![x]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + let mut x = results[0].clone(); + let mut lengths = Vec::new(); + while let Some(op) = x.operation() { + let Operation::Compiled(expression) = &*op else { + panic!("unfused chain"); + }; + lengths.push(expression.statements.len()); + let next = x.inputs()[0].clone(); + x = next; + } + assert_eq!(lengths, [11, 11, 3]); + // Broadcast-only outputs remain views rather than materialized kernels. + let result = Replay::trace_compiled(&inputs, |a| { + Ok(vec![ops::broadcast_to(&a[1], &[4096], gpu)?]) + }) + .unwrap() + .run(&inputs) + .unwrap(); + assert!(matches!( + &*result[0].operation().unwrap(), + Operation::Broadcast + )); +} + +#[test] +#[ignore = "requires Metal and external supervisor; generated fusion vs pinned SiLU plus multi-output/scalar dispatch"] +fn mtplx_compiled_fusion_gpu_matches_reference() { + use super::{ + super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }, + allocator, + compiled::Replay, + configure_sources, gdn, mlp, ops, + stream::{Device, Streams}, + }; + use super::{ + binary::{Binary, binary}, + unary::{Unary, unary}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + for rank in [1, 4, 8] { + for reverse in [false, true] { + eprintln!("compiled SiLU rank={rank} reverse={reverse}"); + let shape = vec![2; rank]; + let input = Array::new(&shape, Dtype::BF16, pattern(1 << rank, 37)).unwrap(); + let axes = (0..rank as i32) + .step_by(2) + .chain((1..rank as i32).step_by(2)) + .collect::>(); + let input = ops::transpose(&input, &axes, gpu).unwrap(); + let input = if reverse { + ops::slice( + &input, + &vec![1; rank], + &vec![-3; rank], + &vec![-1; rank], + gpu, + ) + .unwrap() + } else { + input + }; + ops::evaluate(&streams, std::slice::from_ref(&input), gpu, false).unwrap(); + let expected = mlp::silu(&input, gpu).unwrap(); + let graph = Replay::trace_compiled(std::slice::from_ref(&input), |a| { + Ok(vec![mlp::silu(&a[0], gpu)?]) + }) + .unwrap(); + let actual = graph.run(std::slice::from_ref(&input)).unwrap().remove(0); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&actual), gpu, false).unwrap() + }); + assert_eq!(calls.len(), 1); + assert!(calls[0].0.starts_with("kernel_qwen_mtplx_compiled_")); + let actual = ops::contiguous(&actual, false, gpu).unwrap(); + let expected = ops::contiguous(&expected, false, gpu).unwrap(); + ops::evaluate(&streams, &[actual.clone(), expected.clone()], gpu, false).unwrap(); + let mut a = vec![0; actual.layout().nbytes()]; + let mut b = vec![0; expected.layout().nbytes()]; + actual.buffer().read(actual.offset(), &mut a).unwrap(); + expected.buffer().read(expected.offset(), &mut b).unwrap(); + assert_eq!(a, b); + } + } + for rows in [1, 4, 17] { + eprintln!("compiled nested compute_g rows={rows}"); + let args = [ + Array::new(&[48], Dtype::BF16, pattern(48, 62)).unwrap(), + Array::new(&[1, rows, 48], Dtype::BF16, pattern(rows as u32 * 48, 60)).unwrap(), + Array::new(&[48], Dtype::BF16, pattern(48, 63)).unwrap(), + ]; + let expected = gdn::compute_g(&args[0], &args[1], &args[2], gpu).unwrap(); + let graph = Replay::trace_compiled(&args, |a| { + Ok(vec![gdn::compute_g(&a[0], &a[1], &a[2], gpu)?]) + }) + .unwrap(); + let actual = graph.run(&args).unwrap().remove(0); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&actual), gpu, false).unwrap() + }); + assert_eq!(calls.len(), 1, "{calls:?}"); + assert!(calls[0].0.starts_with("kernel_qwen_mtplx_compiled_")); + ops::evaluate(&streams, std::slice::from_ref(&expected), gpu, false).unwrap(); + let mut a = vec![0; actual.layout().nbytes()]; + let mut b = vec![0; expected.layout().nbytes()]; + actual.buffer().read(actual.offset(), &mut a).unwrap(); + expected.buffer().read(expected.offset(), &mut b).unwrap(); + assert_eq!(a, b, "nested compute_g rows={rows}"); + } + for n in [8, 65536] { + for embedded in [false, true] { + eprintln!("compiled multiple outputs n={n} embedded={embedded}"); + let data = (0..n) + .flat_map(|i| ((i % 8) as f32).to_le_bytes()) + .collect::>(); + let input = Array::new(&[n], Dtype::F32, super::scalar_buffer(&data).unwrap()).unwrap(); + let scalar = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&2f32.to_le_bytes()).unwrap(), + ) + .unwrap(); + let args = if embedded { + vec![input] + } else { + vec![input, scalar.clone()] + }; + let graph = Replay::trace_compiled(&args, |a| { + let square = unary(&a[0], Unary::Square, gpu)?; + let sum = binary( + &square, + if embedded { &scalar } else { &a[1] }, + Binary::Add, + gpu, + )?; + Ok(vec![square, sum]) + }) + .unwrap(); + let roots = graph.run(&args).unwrap(); + // The pinned evaluator selects its pipeline before allocating + // outputs (metal/compiled.cpp:384,419). Fresh ArrayDesc data_size + // is zero, even when the logical shape exceeds 65536 elements. + assert!(roots.iter().all(|a| a.data_size() == 0)); + let (_, calls) = + capture_dispatches(|| ops::evaluate(&streams, &roots, gpu, false).unwrap()); + assert_eq!(calls.len(), 1, "{calls:?}"); + assert!(calls[0].0.ends_with("_contiguous"), "{calls:?}"); + assert_eq!(calls[0].1, [n as u32, 1, 1]); + for (j, root) in roots.iter().enumerate() { + let mut bytes = vec![0; root.layout().nbytes()]; + root.buffer().read(root.offset(), &mut bytes).unwrap(); + for (i, b) in bytes.chunks_exact(4).enumerate() { + assert_eq!( + f32::from_le_bytes(b.try_into().unwrap()), + ((i % 8) * (i % 8)) as f32 + (j * 2) as f32 + ); + } + } + } + } +} diff --git a/src/engine/metal/qwen_mtplx/gdn.rs b/src/engine/metal/qwen_mtplx/gdn.rs new file mode 100644 index 0000000..d430963 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/gdn.rs @@ -0,0 +1,2003 @@ +//! Qwen GDN graph composition: fused live-state decode, fused-conv verify and +//! masked/unmasked delta update and Conv1d prefill with ragged cache lengths. +//! GatedDeltaNet branch selection and ArraysCache advancement use this graph; +//! model-level capture commit/repair and product integration remain separate. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::mlp::QuantizedLinear; +use super::stream::{Device, Stream}; +use super::{dispatch_geometry, encoder, ops, tensor, views}; + +pub(super) enum InputProjections<'a> { + Fused(&'a QuantizedLinear, [i32; 3]), + Separate([&'a QuantizedLinear; 4]), +} + +impl InputProjections<'_> { + /// GatedDeltaNet's projection branch, including z's head reshape before + /// constructing b/a in the separate case. Fused projections use Split siblings. + pub(super) fn apply(&self, input: &Array, stream: Stream) -> Result<[Array; 4], String> { + let shape = input.layout().shape().to_vec(); + if shape.len() != 3 { + return Err("GDN projection requires batch/sequence/hidden dimensions".into()); + } + let z_shape = [shape[0], shape[1], 48, 128]; + match self { + Self::Fused(projection, splits) => { + let projected = projection.apply(input, stream)?; + let [qkv, z, b, a]: [Array; 4] = ops::split(&projected, splits, -1, stream)? + .try_into() + .map_err(|_| "GDN projection must produce four outputs")?; + Ok([qkv, ops::reshape(&z, &z_shape, stream)?, b, a]) + } + Self::Separate(projections) => { + let [qkv, z, b, a] = projections; + let qkv = qkv.apply(input, stream)?; + let z = ops::reshape(&z.apply(input, stream)?, &z_shape, stream)?; + Ok([qkv, z, b.apply(input, stream)?, a.apply(input, stream)?]) + } + } + } +} + +pub(super) struct Weights<'a> { + pub(super) input: InputProjections<'a>, + pub(super) output: &'a QuantizedLinear, + pub(super) conv: &'a Array, + pub(super) a_log: &'a Array, + pub(super) dt_bias: &'a Array, + pub(super) norm: &'a Array, +} + +#[derive(Default)] +pub(super) struct Cache { + pub(super) conv: Option, + pub(super) delta: Option, + pub(super) lengths: Option, + pub(super) left_padding: Option, + pub(super) capture: Option<[Array; 6]>, +} + +impl Cache { + /// First pass of Qwen4ExpTextModel.commit_verified_window. The outer model + /// must validate every layer before any layer replays or trims its cache. + pub(super) fn validate_verified_window( + &self, + snapshot: Option<&[Option]>, + verified: i32, + ) -> Result<(), String> { + let snapshot = snapshot.ok_or("snapshot_missing")?; + let rows = self.capture.as_ref().ok_or("gdn_rows_missing")?; + let width = rows[0].layout().shape()[1]; + if width != verified { + return Err(format!("gdn_rows_width_{width}_vs_{verified}")); + } + if snapshot.len() < 2 || snapshot[1].is_none() { + return Err("gdn_snapshot_short".into()); + } + Ok(()) + } + + /// GDN branch of the second pass, after model-wide validation. Only the + /// kept recurrence is replayed; no projection, convolution or eval here. + pub(super) fn replay_verified_prefix( + &mut self, + snapshot: &[Option], + keep: i32, + a_log: &Array, + dt_bias: &Array, + stream: Stream, + ) -> Result<(), String> { + let captured = self.capture.as_ref().ok_or("gdn_rows_missing")?; + if keep < 1 || keep > captured[0].layout().shape()[1] { + return Err("invalid verified prefix length".into()); + } + let state = snapshot + .get(1) + .and_then(Option::as_ref) + .ok_or("gdn_snapshot_short")?; + let qkv_shape = captured[0].layout().shape().to_vec(); + let conv = match &snapshot[0] { + Some(conv) => conv.clone(), + None => { + let zero = Array::new( + &[], + captured[0].layout().dtype(), + super::scalar_buffer(&[0, 0])?, + )?; + ops::broadcast_to(&zero, &[qkv_shape[0], 3, qkv_shape[2]], stream)? + } + }; + let prefix = |array: &Array| { + let mut stop = array.layout().shape().to_vec(); + stop[1] = keep; + ops::slice( + array, + &vec![0; stop.len()], + &stop, + &vec![1; stop.len()], + stream, + ) + }; + let [qkv, q, k, v, a, b] = captured; + let updated = delta_update( + [&prefix(q)?, &prefix(k)?, &prefix(v)?], + [&prefix(a)?, &prefix(b)?, a_log, dt_bias], + Some(state), + None, + stream, + )?; + let window = ops::concatenate(&[conv, prefix(qkv)?], 1, stream)?; + let tail = ops::slice( + &window, + &[0, -3, 0], + &[qkv_shape[0], keep + 3, qkv_shape[2]], + &[1, 1, 1], + stream, + )?; + self.conv = Some(ops::contiguous(&tail, false, stream)?); + self.delta = Some(updated.delta); + self.capture = None; + Ok(()) + } + + fn advance(&mut self, rows: i32, stream: Stream) -> Result<(), String> { + for array in [&mut self.lengths, &mut self.left_padding] + .into_iter() + .flatten() + { + if array.layout().dtype() != Dtype::I32 { + return Err("GDN cache metadata requires INT32 arrays".into()); + } + let n = Array::new( + &[], + array.layout().dtype(), + super::scalar_buffer(&rows.to_le_bytes())?, + )?; + *array = super::binary::binary(array, &n, super::binary::Binary::Subtract, stream)?; + } + Ok(()) + } +} + +#[derive(Clone, Copy, Default)] +pub(super) struct Options { + pub(super) step: bool, + pub(super) conv_single: bool, + pub(super) conv_verify: bool, + pub(super) output: bool, + pub(super) capture: bool, +} + +/// Installed inference geometry and sigmoid norm. GatedDeltaNet.__call__'s +/// branch order, mutations and graph construction, including absent caches. +pub(super) fn forward( + weights: &Weights<'_>, + input: &Array, + mask: Option<&Array>, + mut cache: Option<&mut Cache>, + options: Options, + streams: &super::stream::Streams, + stream: Stream, +) -> Result { + let shape = input.layout().shape().to_vec(); + if shape.len() != 3 || shape[0] < 1 || shape[1] < 1 || shape[2] != 2560 { + return Err("GDN requires [B,S,2560] input".into()); + } + let (batch, rows) = (shape[0], shape[1]); + let [qkv, z, b, a] = weights.input.apply(input, stream)?; + let conv = if let Some(conv) = cache.as_ref().and_then(|c| c.conv.as_ref()) { + conv.clone() + } else { + let scalar = Array::new(&[], Dtype::BF16, super::scalar_buffer(&[0, 0])?)?; + ops::broadcast_to(&scalar, &[batch, 3, 10240], stream)? + }; + let qkv = if let Some(mask) = mask { + if mask.layout().shape() != [batch, rows] { + return Err("GDN mask shape mismatch".into()); + } + let zero = Array::new(&[], Dtype::BF16, super::scalar_buffer(&[0, 0])?)?; + super::indexing::select(&ops::expand_dims(mask, &[-1], stream)?, &qkv, &zero, stream)? + } else { + qkv + }; + let dense_cached = + batch == 1 && mask.is_none() && cache.as_ref().is_some_and(|c| c.lengths.is_none()); + if rows == 1 + && dense_cached + && options.step + && !options.capture + && let Some(delta) = cache.as_ref().and_then(|c| c.delta.as_ref()) + && delta.layout().dtype() == Dtype::F32 + { + let [gated, next_conv, next_delta] = fused_step( + [ + &ops::reshape(&qkv, &[-1], stream)?, + &ops::reshape(&z, &[-1], stream)?, + &ops::reshape(&a, &[-1], stream)?, + &ops::reshape(&b, &[-1], stream)?, + &ops::reshape(&conv, &[3, 10240], stream)?, + weights.conv, + weights.a_log, + weights.dt_bias, + delta, + weights.norm, + ], + stream, + )?; + let cache = cache.as_deref_mut().unwrap(); + cache.conv = Some(ops::reshape(&next_conv, &[batch, 3, 10240], stream)?); + cache.delta = Some(ops::reshape(&next_delta, &[batch, 48, 128, 128], stream)?); + cache.advance(rows, stream)?; + return weights + .output + .apply(&ops::reshape(&gated, &[batch, rows, -1], stream)?, stream); + } + let fused_conv = dense_cached + && ((rows == 1 && options.conv_single) || ((2..=6).contains(&rows) && options.conv_verify)) + && supports_conv(streams, stream, rows > 1); + let [q, k, v] = if fused_conv { + let qkv_shape = if rows == 1 { vec![-1] } else { vec![rows, -1] }; + let [q, k, v, next_conv] = fused_conv_norm( + &ops::reshape(&qkv, &qkv_shape, stream)?, + &ops::reshape(&conv, &[3, 10240], stream)?, + weights.conv, + stream, + )?; + cache.as_deref_mut().unwrap().conv = + Some(ops::reshape(&next_conv, &[batch, 3, 10240], stream)?); + [ + ops::reshape(&q, &[batch, rows, 16, 128], stream)?, + ops::reshape(&k, &[batch, rows, 16, 128], stream)?, + ops::reshape(&v, &[batch, rows, 48, 128], stream)?, + ] + } else { + conv_fallback(weights, &qkv, &conv, cache.as_deref_mut(), stream)? + }; + if options.capture + && let Some(cache) = cache.as_deref_mut() + { + cache.capture = Some([qkv, q.clone(), k.clone(), v.clone(), a.clone(), b.clone()]); + } + let recurrent = delta_update( + [&q, &k, &v], + [&a, &b, weights.a_log, weights.dt_bias], + cache.as_ref().and_then(|c| c.delta.as_ref()), + mask, + stream, + )?; + if let Some(cache) = cache { + cache.delta = Some(recurrent.delta); + cache.advance(rows, stream)?; + } + if batch == 1 + && rows == 1 + && options.output + && weights.output.bits == 4 + && matches!(weights.output.group, 32 | 64) + { + let output = fused_output( + [ + &ops::reshape(&recurrent.hidden, &[-1], stream)?, + &ops::reshape(&z, &[-1], stream)?, + weights.norm, + &weights.output.weight, + &weights.output.scales, + &weights.output.biases, + ], + weights.output.group, + stream, + )?; + return ops::reshape(&output, &[batch, rows, -1], stream); + } + let normed = super::normalization::sigmoid_rms_norm( + &recurrent.hidden, + weights.norm, + Some(&z), + 1e-6, + stream, + )?; + weights + .output + .apply(&ops::reshape(&normed, &[batch, rows, -1], stream)?, stream) +} + +fn supports_conv(streams: &super::stream::Streams, stream: Stream, multi: bool) -> bool { + static SINGLE: std::sync::OnceLock = std::sync::OnceLock::new(); + static MULTI: std::sync::OnceLock = std::sync::OnceLock::new(); + *(if multi { &MULTI } else { &SINGLE }).get_or_init(|| { + let probe = || -> Result<(), String> { + let zero = |shape: &[i32]| { + let scalar = Array::new(&[], Dtype::BF16, super::scalar_buffer(&[0, 0])?)?; + ops::broadcast_to(&scalar, shape, stream) + }; + let x = zero(if multi { &[2, 10240] } else { &[10240] })?; + let outputs = fused_conv_norm(&x, &zero(&[3, 10240])?, &zero(&[10240, 4])?, stream)?; + ops::evaluate(streams, &outputs, stream, false) + }; + if let Err(error) = probe() { + eprintln!("MTPLX fused GDN conv disabled on this GPU (multi={multi}): {error}"); + false + } else { + true + } + }) +} + +pub(super) fn fused_output( + inputs: [&Array; 6], + group: u32, + stream: Stream, +) -> Result { + let dtype = inputs[0].layout().dtype(); + if !matches!(dtype, Dtype::BF16 | Dtype::F32) + || !matches!(group, 32 | 64) + || inputs[1].layout().dtype() != Dtype::BF16 + || inputs[2].layout().dtype() != Dtype::BF16 + || inputs[3].layout().dtype() != Dtype::U32 + || inputs[4].layout().dtype() != Dtype::BF16 + || inputs[5].layout().dtype() != Dtype::BF16 + || inputs + .iter() + .zip([ + 6144, + 6144, + 128, + 2560 * 768, + 2560 * 6144 / group as usize, + 2560 * 6144 / group as usize, + ]) + .any(|(a, n)| a.layout().size() != n) + { + return Err( + "fused GDN output requires installed BF16 quantization and BF16/FP32 hidden".into(), + ); + } + Array::make_operation_with_inputs( + stream, + &inputs.map(Clone::clone), + Layout::new(&[2560], dtype)?, + ops::Operation::GdnOutput(group), + ) +} + +pub(super) fn output_evaluate( + inputs: &[Array], + outputs: &[Array], + group: u32, +) -> Result<(), String> { + let name = format!( + "kernel_qwen_mtplx_gdn_out_fused_gs{group}_{}", + if inputs[0].layout().dtype() == Dtype::F32 { + "f32" + } else { + "bf16" + } + ); + custom_evaluate(inputs, outputs, |bindings| { + dispatch_geometry(&name, bindings, &[], [80 * 1024, 1, 1], [1024, 1, 1], true) + }) +} + +/// Original gdn_step_fused.py wrapper and its three-output custom primitive. +pub(super) fn fused_step(inputs: [&Array; 10], stream: Stream) -> Result<[Array; 3], String> { + let sizes = [10240, 6144, 48, 48, 30720, 40960, 48, 48, 786432, 128]; + if stream.device() != Device::Gpu + || inputs.iter().enumerate().any(|(i, a)| { + let layout = a.layout(); + layout.size() != sizes[i] + || layout.dtype() != if i == 8 { Dtype::F32 } else { Dtype::BF16 } + }) + { + return Err("fused GDN step requires installed BF16 geometry and FP32 delta state".into()); + } + let [qkv, z, a, b, conv, cw, a_log, dt_bias, delta, norm] = inputs; + let cw = ops::reshape(cw, &[10240, 4], stream)?; + let inputs = [ + qkv.clone(), + z.clone(), + a.clone(), + b.clone(), + ops::reshape(conv, &[-1], stream)?, + ops::reshape(&cw, &[-1], stream)?, + a_log.clone(), + dt_bias.clone(), + ops::reshape(delta, &[-1], stream)?, + norm.clone(), + ]; + Array::make_operations( + stream, + &inputs, + &[ + Layout::new(&[6144], Dtype::BF16)?, + Layout::new(&[3, 10240], Dtype::BF16)?, + Layout::new(&[48, 128, 128], Dtype::F32)?, + ], + ops::Operation::GdnStepBf16, + )? + .try_into() + .map_err(|_| "GDN step must produce three outputs".into()) +} + +pub(super) fn step_evaluate(inputs: &[Array], outputs: &[Array]) -> Result<(), String> { + custom_evaluate(inputs, outputs, dispatch_step) +} + +pub(super) fn custom_evaluate( + inputs: &[Array], + outputs: &[Array], + dispatch: impl FnOnce(&[super::Binding<'_>]) -> Result<(), String>, +) -> Result<(), String> { + // CustomKernel allocates every output first; no donation, then General + // copies of non-row-contiguous inputs in their original argument order. + for output in outputs { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + let mut copies = Vec::new(); + let prepared = inputs + .iter() + .map(|input| { + let layout = input.layout(); + if layout.flags().row_contiguous { + return Ok(input.clone()); + } + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, ©)?; + copies.push(copy.clone()); + Ok(copy) + }) + .collect::, String>>()?; + let input_buffers = prepared.iter().map(Array::buffer).collect::>(); + let output_buffers = outputs.iter().map(Array::buffer).collect::>(); + let bindings = prepared + .iter() + .zip(&input_buffers) + .enumerate() + .map(|(i, (a, b))| { + tensor(i as u32, b) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }) + .chain( + outputs + .iter() + .zip(&output_buffers) + .enumerate() + .map(|(i, (a, b))| { + tensor((i + inputs.len()) as u32, b) + .at_byte_offset(a.offset()) + .output(a.data_size()) + }), + ) + .collect::>(); + let result = dispatch(&bindings); + for copy in &copies { + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + } + result +} + +pub(super) fn dispatch_step(bindings: &[super::Binding<'_>]) -> Result<(), String> { + // The Python custom-kernel grid counts THREADS, not threadgroups. + dispatch_geometry( + "kernel_qwen_mtplx_gdn_step_fused_f32_state_bf16", + bindings, + &[], + [256, 1, 48], + [256, 1, 1], + true, + ) +} + +/// Fused single/verify-row conv wrappers, not the general Conv1d fallback. +pub(super) fn fused_conv_norm( + qkv: &Array, + conv: &Array, + weight: &Array, + stream: Stream, +) -> Result<[Array; 4], String> { + let shape = qkv.layout().shape().to_vec(); + let rows = match shape.as_slice() { + [10240] => 1, + [s, 10240] if (2..=6).contains(s) => *s as u32, + _ => return Err("fused conv norm requires one decode row or 2..6 verify rows".into()), + }; + if stream.device() != Device::Gpu + || [qkv, conv, weight] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16) + || conv.layout().shape() != [3, 10240] + || weight.layout().size() != 40960 + { + return Err("invalid fused conv norm dtype/state/weight".into()); + } + let cw = ops::reshape(weight, &[10240, 4], stream)?; + let inputs = [ + if rows == 1 { + qkv.clone() + } else { + ops::reshape(qkv, &[-1], stream)? + }, + ops::reshape(conv, &[-1], stream)?, + ops::reshape(&cw, &[-1], stream)?, + ]; + let layout = |width| { + Layout::new( + &if rows == 1 { + vec![width] + } else { + vec![rows as i32, width] + }, + Dtype::BF16, + ) + }; + Array::make_operations( + stream, + &inputs, + &[ + layout(2048)?, + layout(2048)?, + layout(6144)?, + Layout::new(&[3, 10240], Dtype::BF16)?, + ], + ops::Operation::GdnConvNorm(rows), + )? + .try_into() + .map_err(|_| "conv norm requires four outputs".into()) +} + +pub(super) fn conv_norm_evaluate( + inputs: &[Array], + outputs: &[Array], + rows: u32, +) -> Result<(), String> { + let name = if rows == 1 { + "kernel_qwen_mtplx_gdn_conv_norm_bf16".into() + } else { + format!("kernel_qwen_mtplx_gdn_conv_norm_rows_s{rows}_bf16") + }; + custom_evaluate(inputs, outputs, |bindings| { + dispatch_geometry(&name, bindings, &[], [10240, 1, 1], [1024, 1, 1], true) + }) +} + +pub(super) fn compute_g( + a_log: &Array, + a: &Array, + dt_bias: &Array, + stream: Stream, +) -> Result { + let shape = a.layout().shape().to_vec(); + if stream.device() != Device::Gpu + || shape.last() != Some(&48) + || a_log.layout().shape() != [48] + || dt_bias.layout().shape() != [48] + || [a_log, a, dt_bias] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16) + { + return Err("compute_g requires BF16 per-head inputs".into()); + } + if [a_log, a, dt_bias].iter().any(|a| a.is_tracer()) { + use super::{ + binary::{Binary, binary}, + unary::{Unary, unary}, + }; + let decay = unary( + &unary( + &ops::astype(a_log, Dtype::F32, false, stream)?, + Unary::Exp, + stream, + )?, + Unary::Negative, + stream, + )?; + let bias = binary(a, dt_bias, Binary::Add, stream)?; + let zero = Array::new(&[], Dtype::BF16, super::scalar_buffer(&[0, 0])?)?; + let softplus = binary(&bias, &zero, Binary::LogAddExp, stream)?; + return unary( + &binary(&decay, &softplus, Binary::Multiply, stream)?, + Unary::Exp, + stream, + ); + } + Array::make_operation_with_inputs( + stream, + &[a_log.clone(), a.clone(), dt_bias.clone()], + Layout::new(&shape, Dtype::F32)?, + ops::Operation::ComputeGBf16, + ) +} + +pub(super) struct DeltaOutput { + pub(super) hidden: Array, + pub(super) delta: Array, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) g: Array, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) beta: Array, +} + +pub(super) fn delta_update( + qkv: [&Array; 3], + gates: [&Array; 4], + state: Option<&Array>, + mask: Option<&Array>, + stream: Stream, +) -> Result { + let [q, _, v] = qkv; + let [a, b, a_log, dt_bias] = gates; + let beta = super::unary::unary(b, super::unary::Unary::Sigmoid, stream)?; + let g = compute_g(a_log, a, dt_bias, stream)?; + let initial_state = if state.is_none() { + let qshape = q.layout().shape().to_vec(); + let vshape = v.layout().shape().to_vec(); + if qshape.len() != 4 || vshape.len() != 4 { + return Err("delta update requires rank-4 Q/V".into()); + } + let zero = Array::new(&[], Dtype::F32, super::scalar_buffer(&0_f32.to_le_bytes())?)?; + Some(ops::broadcast_to( + &zero, + &[qshape[0], vshape[2], vshape[3], qshape[3]], + stream, + )?) + } else { + None + }; + let [hidden, delta] = delta_kernel( + qkv, + [&g, &beta], + state.or(initial_state.as_ref()).unwrap(), + mask, + stream, + )?; + Ok(DeltaOutput { + hidden, + delta, + g, + beta, + }) +} + +/// Inference custom kernel from the pinned gated_delta.py; masks preserve state. +pub(super) fn delta_kernel( + qkv: [&Array; 3], + gates: [&Array; 2], + state: &Array, + mask: Option<&Array>, + stream: Stream, +) -> Result<[Array; 2], String> { + let [q, k, v] = qkv; + let [g, beta] = gates; + let shape = q.layout().shape().to_vec(); + if shape.len() != 4 || shape[0] <= 0 || shape[1] <= 0 || shape[2..] != [16, 128] { + return Err("delta kernel requires [B,T,16,128] Q/K".into()); + } + let (batch, rows) = (shape[0], shape[1]); + let hidden_shape = [batch, rows, 48, 128]; + if stream.device() != Device::Gpu + || k.layout().shape() != shape + || v.layout().shape() != hidden_shape + || [q, k, v, beta] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16) + || g.layout().dtype() != Dtype::F32 + || state.layout().dtype() != Dtype::F32 + || g.layout().shape() != [batch, rows, 48] + || beta.layout().shape() != [batch, rows, 48] + || state.layout().shape() != [batch, 48, 128, 128] + || mask.is_some_and(|m| { + m.layout().shape() != [batch, rows] || m.layout().dtype() != Dtype::Bool + }) + { + return Err("invalid delta kernel dtype/shape".into()); + } + let length = Array::new(&[], Dtype::I32, super::scalar_buffer(&rows.to_le_bytes())?)?; + let mut inputs = vec![ + q.clone(), + k.clone(), + v.clone(), + g.clone(), + beta.clone(), + state.clone(), + length, + ]; + if let Some(mask) = mask { + inputs.push(mask.clone()); + } + Array::make_operations( + stream, + &inputs, + &[ + Layout::new(&hidden_shape, Dtype::BF16)?, + Layout::new(state.layout().shape(), Dtype::F32)?, + ], + ops::Operation::GatedDeltaBf16(mask.is_some()), + )? + .try_into() + .map_err(|_| "delta kernel requires two outputs".into()) +} + +pub(super) fn delta_evaluate( + inputs: &[Array], + outputs: &[Array], + masked: bool, +) -> Result<(), String> { + let batch = inputs[0].layout().shape()[0] as u32; + custom_evaluate(inputs, outputs, |bindings| { + dispatch_geometry( + if masked { + "kernel_qwen_mtplx_gated_delta_masked_bf16" + } else { + "kernel_qwen_mtplx_gated_delta_bf16" + }, + bindings, + &[], + [32, 128, batch.checked_mul(48).ok_or("delta grid overflow")?], + [32, 4, 1], + true, + ) + }) +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) struct VerifyOutput { + pub(super) hidden: Array, + pub(super) conv: Array, + pub(super) delta: Array, + /// Exact capture-commit inputs, retained only when capture is active. + pub(super) capture: Option<[Array; 6]>, // qkv, q, k, v, a, b +} + +/// Installed GDN's conv1d branch: groups=C=O, stride/dilations=1, padding=0. +/// Other Convolution branches (including dilated PLE) are not substituted here. +fn depthwise_conv1d(input: &Array, weight: &Array, stream: Stream) -> Result { + let src = input.layout(); + let wt = weight.layout(); + if src.shape().len() != 3 + || wt.shape().len() != 3 + || !matches!(src.dtype(), Dtype::BF16 | Dtype::F16 | Dtype::F32) + || src.shape()[2] == 0 + || wt.shape()[0] != src.shape()[2] + || wt.shape()[2] != 1 + || wt.shape()[1] <= 0 + || wt.shape()[1] > src.shape()[1] + { + return Err("depthwise Conv1d requires [B,T,C] and [C,K,1], 0 Result<(), String> { + let prepared = prepare_conv_inputs(inputs, output)?; + conv1d_dispatch(&prepared, output) +} + +/// Both installed GDN and PLE convolutions use this original allocation/copy order. +pub(super) fn prepare_conv_inputs(inputs: &[Array], output: &Array) -> Result, String> { + // conv.cpp allocates out before copying input, then weight, in that order. + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + inputs + .iter() + .map(|input| { + let layout = input.layout(); + if layout.flags().row_contiguous { + return Ok(input.clone()); + } + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, ©)?; + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + Ok(copy) + }) + .collect::, String>>() +} + +fn conv1d_dispatch(prepared: &[Array], output: &Array) -> Result<(), String> { + let [input, weight] = prepared else { + return Err("invalid conv arity".into()); + }; + let layout = input.layout(); + let large = layout.size() > i32::MAX as usize || input.data_size() > i32::MAX as usize; + let strides = layout.strides().to_vec(); + let small_strides = strides.iter().map(|&s| s as i32).collect::>(); + let grid = [ + layout.shape()[2] as u32, + output.layout().shape()[1] as u32, + layout.shape()[0] as u32, + ]; + let width = weight.layout().shape()[1]; + let name = format!( + "depthwise_conv_1d_{}{}", + layout.dtype().kernel_name(), + if large { "_large" } else { "" } + ); + drop(layout); + let x = input.buffer(); + let w = weight.buffer(); + let out = output.buffer(); + let bindings = [ + tensor(0, &x) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &w) + .at_byte_offset(weight.offset()) + .input(weight.data_size()), + tensor(2, &out) + .at_byte_offset(output.offset()) + .output(output.data_size()), + if large { + super::bytes(3, strides.as_slice()) + } else { + super::bytes(3, small_strides.as_slice()) + }, + super::bytes(4, &width), + ]; + dispatch_geometry(&name, &bindings, &[], grid, super::block_dims(grid), true) +} + +/// Reduce::Sum's contiguous last-axis branches used by GDN l2norm and PLE. +/// The remaining reduction plans are explicitly outside this primitive. +fn l2norm(input: &Array, stream: Stream) -> Result { + use super::binary::{Binary, binary}; + use super::unary::{Unary, unary}; + let xf = ops::astype(input, Dtype::F32, false, stream)?; + let square = binary(&xf, &xf, Binary::Multiply, stream)?; + let shape = square.layout().shape().to_vec(); + if shape.last() != Some(&128) { + return Err("installed GDN l2norm requires head width 128".into()); + } + let sum = super::reduce::sum(&square, &[-1], true, stream)?; + let eps = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&1e-6_f32.to_le_bytes())?, + )?; + let scale = unary( + &binary(&sum, &eps, Binary::Add, stream)?, + Unary::Rsqrt, + stream, + )?; + ops::astype( + &binary(&xf, &scale, Binary::Multiply, stream)?, + input.layout().dtype(), + false, + stream, + ) +} + +/// GatedDeltaNet's fallback after projection, zero-state creation and masking. +fn conv_fallback( + weights: &Weights<'_>, + qkv: &Array, + conv: &Array, + cache: Option<&mut Cache>, + stream: Stream, +) -> Result<[Array; 3], String> { + let shape = qkv.layout().shape().to_vec(); + let (batch, rows) = (shape[0], shape[1]); + let window = ops::concatenate(&[conv.clone(), qkv.clone()], 1, stream)?; + if let Some(cache) = cache { + let conv = if let Some(lengths) = &cache.lengths { + use super::binary::{Binary, binary}; + if lengths.layout().shape() != [batch] || lengths.layout().dtype() != Dtype::I32 { + return Err("GDN cache lengths require one INT32 value per batch".into()); + } + let zero = Array::new(&[], Dtype::I32, super::scalar_buffer(&0_i32.to_le_bytes())?)?; + let upper = Array::new(&[], Dtype::I32, super::scalar_buffer(&rows.to_le_bytes())?)?; + let ends = binary( + &binary(lengths, &zero, Binary::Maximum, stream)?, + &upper, + Binary::Minimum, + stream, + )?; + let ends = ops::expand_dims(&ends, &[-1], stream)?; + let range = super::indexing::arange_i32(3, stream)?; + let positions = binary(&ends, &range, Binary::Add, stream)?; + let positions = ops::expand_dims(&positions, &[-1], stream)?; + super::indexing::take_along_axis(&window, &positions, 1, stream)? + } else { + ops::contiguous( + &ops::slice( + &window, + &[0, -3, 0], + &[batch, rows + 3, 10240], + &[1, 1, 1], + stream, + )?, + false, + stream, + )? + }; + cache.conv = Some(conv); + } + let activated = super::mlp::silu(&depthwise_conv1d(&window, weights.conv, stream)?, stream)?; + let [q, k, v]: [Array; 3] = ops::split(&activated, &[2048, 4096], -1, stream)? + .try_into() + .map_err(|_| "invalid GDN split")?; + let q = ops::reshape(&q, &[batch, rows, 16, 128], stream)?; + let k = ops::reshape(&k, &[batch, rows, 16, 128], stream)?; + let v = ops::reshape(&v, &[batch, rows, 48, 128], stream)?; + // Python array.__rmul__ keeps the array FIRST even for inv_scale * array + // (pinned python/src/array.cpp:631). Preserve this order for compile_fuse. + let scale = 128_f32.powf(-0.5).to_bits(); + let scale = ((scale + 0x7fff + ((scale >> 16) & 1)) >> 16) as u16; + let scale = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&scale.to_le_bytes())?, + )?; + let q = super::binary::binary( + &l2norm(&q, stream)?, + &scale, + super::binary::Binary::Multiply, + stream, + )?; + let k = l2norm(&k, stream)?; + Ok([q, k, v]) +} + +#[test] +#[ignore = "requires Apple Metal; complete GDN Conv1d prefill and fused verify graphs"] +fn mtplx_graph_gdn_prefill_and_verify_match_model_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, pattern_f32, verify_typed}, + }; + use super::{allocator, configure_sources, mlp::fixture_linear, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let in_proj = fixture_linear(16480, 2560, 4, 64, 26); + let out_proj = fixture_linear(2560, 6144, 4, 64, 28); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let cw = bf16(&[10240, 4, 1], 8); + let a_log = bf16(&[48], 12); + let dt = bf16(&[48], 13); + let norm = bf16(&[128], 14); + let initial_conv = bf16(&[1, 3, 10240], 7); + let initial_delta = + Array::new(&[1, 48, 128, 128], Dtype::F32, pattern_f32(786432, 15)).unwrap(); + let weights = Weights { + input: InputProjections::Fused(&in_proj, [10240, 16384, 16432]), + output: &out_proj, + conv: &cw, + a_log: &a_log, + dt_bias: &dt, + norm: &norm, + }; + let fixtures = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("gdn_staged_")) + .collect::>(); + assert_eq!(fixtures.len(), 130); + let mut without_capture = Vec::new(); + for capture in [false, true] { + let mut cache = Cache::default(); + for (case, row) in fixtures.iter().enumerate() { + super::eval::execution_tests::observed(|| { + let rows = row["rows"].as_u64().unwrap() as i32; + let step = row["step"].as_u64().unwrap() as u32; + let initial = row["initial"].as_bool().unwrap(); + if step == 0 { + cache = Cache { + conv: initial.then(|| initial_conv.clone()), + delta: initial.then(|| initial_delta.clone()), + ..Cache::default() + }; + } + let input = bf16(&[1, rows, 2560], 30 + step); + let mask = (row["masked"] == true).then(|| { + Array::new( + &[1, rows], + Dtype::Bool, + super::scalar_buffer( + &(0..rows).map(|n| u8::from(n % 3 != 0)).collect::>(), + ) + .unwrap(), + ) + .unwrap() + }); + let lengths = row["length"].as_i64().map(|n| { + Array::new( + &[1], + Dtype::I32, + super::scalar_buffer(&(n as i32).to_le_bytes()).unwrap(), + ) + .unwrap() + }); + cache.lengths = lengths.clone(); + let enabled = row["fused"] == true; + let hidden = forward( + &weights, + &input, + mask.as_ref(), + Some(&mut cache), + Options { + step: false, + conv_single: enabled, + conv_verify: enabled, + output: enabled, + capture, + }, + &streams, + gpu, + ) + .unwrap(); + let next = VerifyOutput { + hidden, + conv: cache.conv.as_ref().unwrap().clone(), + delta: cache.delta.as_ref().unwrap().clone(), + capture: cache.capture.clone(), + }; + drop(input); + let (result, dispatches) = capture_dispatches(|| { + ops::evaluate( + &streams, + &[next.hidden.clone(), next.conv.clone(), next.delta.clone()], + gpu, + false, + ) + }); + result.unwrap(); + let selects = dispatches + .iter() + .filter(|r| r.0.contains("_Select")) + .collect::>(); + assert_eq!(selects.len(), usize::from(mask.is_some())); + if let Some(select) = selects.first() { + let name = if rows == 1 { + "g1_Selectbfloat16" + } else { + "g2_Selectbfloat16" + }; + assert_eq!( + **select, + ( + name.into(), + [10240, rows as u32, 1], + super::block_dims([10240, rows as u32, 1]), + true + ) + ); + } + let gathers = dispatches + .iter() + .filter(|r| r.0.contains("gather_axis")) + .collect::>(); + assert_eq!(gathers.len(), usize::from(lengths.is_some())); + if let Some(gather) = gathers.first() { + assert_eq!( + **gather, + ( + "kernel_qwen_mtplx_gather_axis_bf16_idxi32_int_10".into(), + [10240, 3, 1], + super::block_dims([10240, 3, 1]), + true + ) + ); + } + if row["used_fused"] == false { + let conv = dispatches + .iter() + .filter(|r| r.0.starts_with("depthwise_conv_1d_")) + .collect::>(); + assert_eq!(conv.len(), 1); + assert_eq!( + *conv[0], + ( + "depthwise_conv_1d_bfloat16".into(), + [10240, rows as u32, 1], + super::block_dims([10240, rows as u32, 1]), + true + ) + ); + let sums = dispatches + .iter() + .filter(|r| r.0.starts_with("row_reduce_")) + .collect::>(); + assert_eq!(sums.len(), 2); + for sum in sums { + let (name, groups) = if rows == 1 { + ("row_reduce_looped_1_reduce_sumfloat32", 16) + } else { + ("row_reduce_simple_sumfloat32", rows as u32 * 4) + }; + assert_eq!(*sum, (name.into(), [32, groups, 1], [32, 1, 1], true)); + } + } + let values = [&next.hidden, &next.conv, &next.delta].map(|a| { + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + bytes + }); + if let Some([_, q, k, v, _, _]) = &next.capture { + assert_eq!(values, without_capture[case]); + // The fallback V is a strided view. Pack only for the + // fixture reader, AFTER observing the actual forward. + let v = ops::contiguous(v, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&v), gpu, false).unwrap(); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&next.hidden.buffer(), rows as u32 * 2560, 2), + (&next.conv.buffer(), 30720, 2), + (&next.delta.buffer(), 786432, 4), + (&q.buffer(), rows as u32 * 2048, 2), + (&k.buffer(), rows as u32 * 2048, 2), + (&v.buffer(), rows as u32 * 6144, 2), + ], + ); + } else { + // Compare all three outputs byte-for-byte with the + // captured run, whose six outputs have actual receipts. + without_capture.push(values); + } + if let Some(lengths) = &cache.lengths { + ops::evaluate(&streams, std::slice::from_ref(lengths), gpu, false).unwrap(); + let mut bytes = [0; 4]; + lengths.buffer().read(lengths.offset(), &mut bytes).unwrap(); + assert_eq!( + i32::from_le_bytes(bytes), + row["length"].as_i64().unwrap() as i32 - rows + ); + } + }); + } + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX GDN forward and cache receipts"] +fn mtplx_graph_gdn_forward_matches_model_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, pattern_f32, verify_typed}, + }; + use super::{allocator, configure_sources, mlp::fixture_linear, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fused = fixture_linear(16480, 2560, 4, 64, 26); + let separate: [_; 4] = std::array::from_fn(|i| { + fixture_linear([10240, 6144, 48, 48][i], 2560, 4, 64, 64 + i as u32 * 2) + }); + let mixed: [_; 4] = std::array::from_fn(|i| { + let [bits, group] = [[4, 64], [8, 32], [8, 64], [4, 32]][i]; + fixture_linear( + [10240, 6144, 48, 48][i], + 2560, + bits, + group, + 64 + i as u32 * 2, + ) + }); + let out = fixture_linear(2560, 6144, 4, 64, 28); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let cw = bf16(&[10240, 4, 1], 8); + let a_log = bf16(&[48], 12); + let dt_bias = bf16(&[48], 13); + let norm = bf16(&[128], 14); + let initial_conv = bf16(&[1, 3, 10240], 7); + let initial_delta = Array::new( + &[1, 48, 128, 128], + Dtype::F32, + pattern_f32(48 * 128 * 128, 15), + ) + .unwrap(); + let receipts = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gdn_forward_")) + .map(|row| (row["kernel"].as_str().unwrap().to_owned(), row)) + .collect::>(); + assert_eq!(receipts.len(), 264); + for layout in ["fused", "separate", "mixed"] { + let input = match layout { + "fused" => InputProjections::Fused(&fused, [10240, 16384, 16432]), + "separate" => InputProjections::Separate(separate.each_ref()), + _ => InputProjections::Separate(mixed.each_ref()), + }; + let weights = Weights { + input, + output: &out, + conv: &cw, + a_log: &a_log, + dt_bias: &dt_bias, + norm: &norm, + }; + let cases = (0..4) + .flat_map(|initial| (0..6).map(move |mode| (1, initial, mode))) + .chain([2, 6, 7, 33, 2048].into_iter().flat_map(|rows| { + (0..2).flat_map(move |initial| (0..2).map(move |mode| (rows, initial, mode))) + })) + .collect::>(); + if layout == "fused" { + let fixtures = include_str!("../../../../tests/fixtures/mtplx-gdn-lifecycle.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 24); + let mut cache = Cache::default(); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let [batch, rows, step] = + ["batch", "rows", "step"].map(|key| row[key].as_i64().unwrap() as i32); + let mode = row["mode"].as_str().unwrap(); + if step == 0 { + cache = Cache::default(); + if mode == "metadata" { + let metadata = |values: [i32; 2]| { + Array::new( + &[batch], + Dtype::I32, + super::scalar_buffer( + &values[..batch as usize] + .iter() + .flat_map(|value| value.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + cache.lengths = Some(metadata([rows + 1, rows - 1])); + cache.left_padding = Some(metadata([1, 0])); + } + } + let old_capture = cache + .capture + .as_ref() + .map(|arrays| arrays.each_ref().map(Array::id)); + let mask = (mode == "metadata").then(|| { + Array::new( + &[batch, rows], + Dtype::Bool, + super::scalar_buffer( + &(0..batch * rows) + .map(|n| u8::from(n % 3 != 0)) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }); + let hidden = forward( + &weights, + &bf16(&[batch, rows, 2560], 30 + step as u32), + mask.as_ref(), + (mode != "none").then_some(&mut cache), + Options { + step: true, + conv_single: true, + conv_verify: true, + output: true, + capture: step == 0, + }, + &streams, + gpu, + ) + .unwrap(); + if step == 0 { + assert_eq!(cache.capture.is_some(), mode != "none"); + } else { + assert_eq!(row["capture_preserved"].as_bool(), Some(true)); + assert_eq!( + cache + .capture + .as_ref() + .map(|arrays| arrays.each_ref().map(Array::id)), + old_capture + ); + } + let mut roots = vec![hidden]; + if mode != "none" { + roots.extend([ + cache.conv.as_ref().unwrap().clone(), + cache.delta.as_ref().unwrap().clone(), + ]); + } + if mode == "metadata" { + for value in [&cache.lengths, &cache.left_padding] { + roots.push( + ops::astype(value.as_ref().unwrap(), Dtype::F32, false, gpu) + .unwrap(), + ); + } + } + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + let buffers = roots.iter().map(Array::buffer).collect::>(); + let outputs = roots + .iter() + .zip(&buffers) + .map(|(array, buffer)| { + ( + &**buffer, + array.layout().size() as u32, + if array.layout().dtype() == Dtype::BF16 { + 2 + } else { + 4 + }, + ) + }) + .collect::>(); + verify_typed(row["kernel"].as_str().unwrap(), &outputs); + }); + } + } + if layout == "fused" { + let fixtures = include_str!("../../../../tests/fixtures/mtplx-gdn-commit.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 26); + for row in fixtures { + for deferred in [false, true] { + super::eval::execution_tests::observed(|| { + let rows = row["rows"].as_i64().unwrap() as i32; + let keep = row["keep"].as_i64().unwrap() as i32; + let snapshot = [ + row["conv_present"] + .as_bool() + .unwrap() + .then(|| initial_conv.clone()), + Some(initial_delta.clone()), + ]; + let mut cache = Cache { + conv: snapshot[0].clone(), + delta: snapshot[1].clone(), + ..Cache::default() + }; + let options = Options { + step: true, + conv_single: true, + conv_verify: true, + output: true, + capture: true, + }; + let _ = forward( + &weights, + &bf16(&[1, rows, 2560], 30), + None, + Some(&mut cache), + options, + &streams, + gpu, + ) + .unwrap(); + let mut verify_roots = vec![ + cache.conv.as_ref().unwrap().clone(), + cache.delta.as_ref().unwrap().clone(), + ]; + verify_roots.extend(cache.capture.as_ref().unwrap().iter().cloned()); + ops::evaluate(&streams, &verify_roots, gpu, false).unwrap(); + drop(verify_roots); + let metadata = |value: i32| { + Array::new( + &[1], + Dtype::I32, + super::scalar_buffer(&value.to_le_bytes()).unwrap(), + ) + .unwrap() + }; + cache.lengths = Some(metadata(17)); + cache.left_padding = Some(metadata(-3)); + let identities = || { + [ + cache.conv.as_ref().unwrap().id(), + cache.delta.as_ref().unwrap().id(), + cache.capture.as_ref().unwrap()[0].id(), + ] + }; + let before = identities(); + assert_eq!( + cache.validate_verified_window(None, rows).unwrap_err(), + "snapshot_missing" + ); + assert_eq!( + cache + .validate_verified_window(Some(&snapshot[..1]), rows) + .unwrap_err(), + "gdn_snapshot_short" + ); + assert_eq!( + cache + .validate_verified_window(Some(&[None, None]), rows) + .unwrap_err(), + "gdn_snapshot_short" + ); + assert_eq!( + cache + .validate_verified_window(Some(&snapshot), rows + 1) + .unwrap_err(), + format!("gdn_rows_width_{rows}_vs_{}", rows + 1) + ); + assert_eq!(before, identities()); + for invalid_keep in [0, rows + 1] { + assert!( + cache + .replay_verified_prefix( + &snapshot, + invalid_keep, + &a_log, + &dt_bias, + gpu + ) + .is_err() + ); + assert_eq!( + before, + [ + cache.conv.as_ref().unwrap().id(), + cache.delta.as_ref().unwrap().id(), + cache.capture.as_ref().unwrap()[0].id() + ] + ); + } + cache + .validate_verified_window(Some(&snapshot), rows) + .unwrap(); + let metadata_ids = [ + cache.lengths.as_ref().unwrap().id(), + cache.left_padding.as_ref().unwrap().id(), + ]; + let (_, submissions) = capture_dispatches(|| { + cache + .replay_verified_prefix(&snapshot, keep, &a_log, &dt_bias, gpu) + .unwrap() + }); + assert!( + submissions.is_empty(), + "commit must only build a lazy graph" + ); + assert!(cache.capture.is_none()); + assert_eq!( + metadata_ids, + [ + cache.lengths.as_ref().unwrap().id(), + cache.left_padding.as_ref().unwrap().id() + ], + "commit does not advance or rewind metadata" + ); + let mut roots = vec![ + cache.conv.as_ref().unwrap().clone(), + cache.delta.as_ref().unwrap().clone(), + ]; + if !deferred { + let (_, dispatches) = capture_dispatches(|| { + ops::evaluate(&streams, &roots, gpu, false).unwrap() + }); + assert_eq!( + dispatches + .iter() + .filter(|r| r.0.contains("gated_delta_")) + .count(), + 1 + ); + assert!(!dispatches.iter().any(|r| { + ["qmv", "qmm", "gemv", "gemm", "conv", "gdn_step"] + .iter() + .any(|name| r.0.contains(name)) + })); + } + let hidden = forward( + &weights, + &bf16(&[1, 1, 2560], 31), + None, + Some(&mut cache), + Options { + capture: false, + ..options + }, + &streams, + gpu, + ) + .unwrap(); + // Python's saved metadata objects observe __isub__'s + // descriptor overwrite in the subsequent forward. + // Read the current cache, not a pre-forward Rust clone. + for value in [&cache.lengths, &cache.left_padding] { + roots.push( + ops::astype(value.as_ref().unwrap(), Dtype::F32, false, gpu) + .unwrap(), + ); + } + roots.extend([ + hidden, + cache.conv.as_ref().unwrap().clone(), + cache.delta.as_ref().unwrap().clone(), + ]); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + let buffers = roots.iter().map(Array::buffer).collect::>(); + let outputs = roots + .iter() + .zip(&buffers) + .map(|(array, buffer)| { + ( + &**buffer, + array.layout().size() as u32, + if array.layout().dtype() == Dtype::BF16 { + 2 + } else { + 4 + }, + ) + }) + .collect::>(); + verify_typed(row["kernel"].as_str().unwrap(), &outputs); + let before = [ + cache.conv.as_ref().unwrap().id(), + cache.delta.as_ref().unwrap().id(), + ]; + assert_eq!( + cache + .validate_verified_window(Some(&snapshot), 1) + .unwrap_err(), + "gdn_rows_missing" + ); + assert_eq!( + before, + [ + cache.conv.as_ref().unwrap().id(), + cache.delta.as_ref().unwrap().id() + ] + ); + }); + } + } + } + assert_eq!(cases.len(), 44); + for (rows, initial, mode) in cases { + for deferred in [false, true] { + super::eval::execution_tests::observed(|| { + let mut states: Vec = Vec::new(); + let mut dispatches = Vec::new(); + let mut cache = Cache { + conv: matches!(initial, 1 | 3).then(|| initial_conv.clone()), + delta: matches!(initial, 1 | 2).then(|| initial_delta.clone()), + lengths: (mode == 4).then(|| { + Array::new( + &[1], + Dtype::I32, + super::scalar_buffer(&1_i32.to_le_bytes()).unwrap(), + ) + .unwrap() + }), + ..Cache::default() + }; + let enabled = mode != 0; + let options = Options { + step: enabled, + conv_single: enabled && mode != 5, + conv_verify: enabled && mode != 5, + output: enabled && mode != 5, + capture: mode == 2, + }; + let mask = (mode == 3).then(|| { + Array::new( + &[1, rows], + Dtype::Bool, + super::scalar_buffer( + &(0..rows).map(|n| u8::from(n % 3 != 0)).collect::>(), + ) + .unwrap(), + ) + .unwrap() + }); + for step in 0..2 { + let input = bf16(&[1, rows, 2560], 30 + step); + let hidden = forward( + &weights, + &input, + mask.as_ref(), + Some(&mut cache), + options, + &streams, + gpu, + ) + .unwrap(); + let next = VerifyOutput { + hidden, + conv: cache.conv.as_ref().unwrap().clone(), + delta: cache.delta.as_ref().unwrap().clone(), + capture: cache.capture.clone(), + }; + drop(input); + if !deferred { + let (_, calls) = capture_dispatches(|| { + ops::evaluate( + &streams, + &[next.hidden.clone(), next.conv.clone(), next.delta.clone()], + gpu, + false, + ) + .unwrap() + }); + dispatches.extend(calls); + } + states.push(next); + } + if deferred { + let last = states.last().unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate( + &streams, + &[ + states[0].hidden.clone(), + last.hidden.clone(), + last.conv.clone(), + last.delta.clone(), + ], + gpu, + false, + ) + .unwrap() + }); + dispatches.extend(calls); + } + let mut expected = [0; 2]; + for (step, state) in states.iter().enumerate() { + let name = format!( + "gdn_forward_{layout}_r{rows}_initial{initial}_mode{mode}_step{step}" + ); + let receipt = &receipts[&name]; + for (count, key) in expected.iter_mut().zip(["used_step", "used_conv"]) { + *count += usize::from(receipt[key].as_bool().unwrap()); + } + assert_eq!(state.conv.layout().shape(), [1, 3, 10240]); + assert_eq!(state.delta.layout().shape(), [1, 48, 128, 128]); + verify_typed( + &name, + &[ + (&state.hidden.buffer(), rows as u32 * 2560, 2), + (&state.conv.buffer(), 3 * 10240, 2), + (&state.delta.buffer(), 48 * 128 * 128, 4), + ], + ); + } + for (expected, kernel) in expected + .into_iter() + .zip(["gdn_step_fused", "gdn_conv_norm"]) + { + assert_eq!( + dispatches + .iter() + .filter(|call| call.0.contains(kernel)) + .count(), + expected, + "{layout} rows={rows} initial={initial} mode={mode} deferred={deferred} {kernel}" + ); + } + }); + } + } + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; 80 actual delta-update receipts and six conv-normalization kernels"] +fn mtplx_graph_gdn_staged_primitives_match_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{ + capture_dispatches, pattern, pattern_f32, pattern_scaled, verify, verify_typed, + }, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt, scale| { + Array::new( + shape, + Dtype::BF16, + pattern_scaled(shape.iter().map(|&d| d as u32).product(), salt, scale), + ) + .unwrap() + }; + for rows in 1..=6 { + super::eval::execution_tests::observed(|| { + let shape = if rows == 1 { + vec![10240] + } else { + vec![rows, 10240] + }; + let x = bf16(&shape, 6, 1.); + let conv = bf16(&[3, 10240], 7, 1.); + let weight = bf16(&[10240, 4, 1], 8, 1.); + let output = fused_conv_norm(&x, &conv, &weight, gpu).unwrap(); + let (_, receipts) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output[3]), gpu, false).unwrap(); + }); + let dispatches = receipts + .iter() + .filter(|r| r.0.contains("gdn_conv_norm")) + .collect::>(); + assert_eq!(dispatches.len(), 1); + assert_eq!( + (dispatches[0].1, dispatches[0].2, dispatches[0].3), + ([10240, 1, 1], [1024, 1, 1], true) + ); + verify( + &format!("gdn_s{rows}"), + &[ + (&output[0].buffer(), rows as u32 * 2048), + (&output[1].buffer(), rows as u32 * 2048), + (&output[2].buffer(), rows as u32 * 6144), + (&output[3].buffer(), 30720), + ], + ); + }); + } + for group in [32, 64] { + for dtype in [Dtype::BF16, Dtype::F32] { + super::eval::execution_tests::observed(|| { + let x = Array::new( + &[6144], + dtype, + if dtype == Dtype::BF16 { + pattern(6144, 18) + } else { + pattern_f32(6144, 18) + }, + ) + .unwrap(); + let z = bf16(&[6144], 9, 1.); + let norm = bf16(&[128], 14, 1.); + let words = (0_u32..2560 * 768) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let weight = Array::new( + &[2560, 768], + Dtype::U32, + super::scalar_buffer(&words).unwrap(), + ) + .unwrap(); + let scales = bf16(&[2560, 6144 / group as i32], 16, 1.); + let biases = bf16(&[2560, 6144 / group as i32], 17, 1.); + let output = + fused_output([&x, &z, &norm, &weight, &scales, &biases], group, gpu).unwrap(); + let (_, dispatches) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + let tag = if dtype == Dtype::BF16 { "bf16" } else { "f32" }; + assert_eq!( + dispatches, + [( + format!("kernel_qwen_mtplx_gdn_out_fused_gs{group}_{tag}"), + [81920, 1, 1], + [1024, 1, 1], + true + )] + ); + verify_typed( + &format!("gdn_out_gs{group}_{tag}"), + &[( + &output.buffer(), + 2560, + if dtype == Dtype::BF16 { 2 } else { 4 }, + )], + ); + }); + } + } + let fixtures = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("delta_update_")) + .collect::>(); + assert_eq!(fixtures.len(), 80); + let mut state = None; + for row in fixtures { + super::eval::execution_tests::observed(|| { + let [rows, stride, step] = + ["rows", "stride", "step"].map(|k| row[k].as_u64().unwrap() as i32); + if step == 0 { + state = row["initial"].as_bool().unwrap().then(|| { + Array::new(&[1, 48, 128, 128], Dtype::F32, pattern_f32(786432, 15)).unwrap() + }); + } + let q = bf16(&[1, rows, 16, 128], 58 + step as u32, 1. / 16.); + let k = bf16(&[1, rows, 16, 128], 59 + step as u32, 1. / 16.); + let v = bf16(&[1, rows, 48, 128], 60 + step as u32, 1.); + let source = bf16(&[1, rows, stride], 60 + step as u32, 1.); + let (a, b) = if stride == 48 { + (source.clone(), bf16(&[1, rows, 48], 61 + step as u32, 1.)) + } else { + ( + ops::slice(&source, &[0, 0, 16432], &[1, rows, 16480], &[1, 1, 1], gpu) + .unwrap(), + ops::slice(&source, &[0, 0, 16384], &[1, rows, 16432], &[1, 1, 1], gpu) + .unwrap(), + ) + }; + let a_log = Array::new(&[48], Dtype::BF16, pattern(48, 62)).unwrap(); + let dt = Array::new(&[48], Dtype::BF16, pattern(48, 63)).unwrap(); + let masked = row["masked"].as_bool().unwrap(); + let mask = Buffer::mtplx_bytes(rows as u64).unwrap(); + mask.write( + 0, + &(0..rows).map(|i| u8::from(i % 3 != 0)).collect::>(), + ) + .unwrap(); + let mask = Array::new(&[1, rows], Dtype::Bool, mask).unwrap(); + let output = delta_update( + [&q, &k, &v], + [&a, &b, &a_log, &dt], + state.as_ref(), + masked.then_some(&mask), + gpu, + ) + .unwrap(); + let (_, receipts) = capture_dispatches(|| { + ops::evaluate( + &streams, + &[ + output.hidden.clone(), + output.delta.clone(), + output.g.clone(), + output.beta.clone(), + ], + gpu, + false, + ) + .unwrap(); + }); + let dispatches = receipts + .iter() + .filter(|r| r.0.contains("gated_delta_")) + .collect::>(); + assert_eq!(dispatches.len(), 1); + assert_eq!( + (dispatches[0].1, dispatches[0].2, dispatches[0].3), + ([32, 128, 48], [32, 4, 1], true) + ); + // A_log/dt_bias [48] and a [1,T,48] enter Compiled directly in + // the actual reference graph: even T=1 is strided (collapsed rank 1). + let gates = receipts + .iter() + .filter(|r| r.0.contains("compute_g_")) + .collect::>(); + assert_eq!(gates.len(), 1); + assert_eq!( + gates[0].0, + format!( + "kernel_qwen_mtplx_compute_g_bf16_strided_{}", + if rows == 1 { 1 } else { 2 } + ) + ); + assert_eq!((gates[0].1, gates[0].3), ([48, rows as u32, 1], true)); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&output.hidden.buffer(), rows as u32 * 6144, 2), + (&output.delta.buffer(), 786432, 4), + (&output.g.buffer(), rows as u32 * 48, 4), + (&output.beta.buffer(), rows as u32 * 48, 2), + ], + ); + state = Some(output.delta); + }); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; GDN custom primitive strided copies and sibling roots"] +fn mtplx_graph_gdn_step_preserves_views_and_siblings() { + super::eval::execution_tests::observed(|| { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, pattern_f32, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + // Every input has a nonzero offset and stride 2. Preserve that view + // until the custom primitive's own reference General-copy boundary. + let strided = |n: u32, salt, dtype: Dtype| { + let storage = if dtype == Dtype::F32 { + pattern_f32(n, salt) + } else { + pattern(n, salt) + }; + let mut raw = vec![0; n as usize * dtype.itemsize()]; + storage.read(0, &mut raw).unwrap(); + let mut packed = vec![0; dtype.itemsize()]; + for value in raw.chunks_exact(dtype.itemsize()) { + packed.extend_from_slice(value); + packed.extend(std::iter::repeat_n(0, dtype.itemsize())); + } + let storage = Buffer::mtplx_bytes(packed.len() as u64).unwrap(); + storage.write(0, &packed).unwrap(); + let base = Array::new(&[(2 * n + 1) as i32], dtype, storage).unwrap(); + ops::slice(&base, &[1], &[(2 * n + 1) as i32], &[2], gpu).unwrap() + }; + let mut conv = strided(30720, 7, Dtype::BF16); + let mut delta = strided(786432, 15, Dtype::F32); + let z = strided(6144, 9, Dtype::BF16); + let a = strided(48, 10, Dtype::BF16); + let b = strided(48, 11, Dtype::BF16); + let cw = strided(40960, 8, Dtype::BF16); + let a_log = strided(48, 12, Dtype::BF16); + let dt_bias = strided(48, 13, Dtype::BF16); + let norm = strided(128, 14, Dtype::BF16); + for step in 0..2 { + let qkv = strided(10240, 6 + step, Dtype::BF16); + let [y, ns, nd] = fused_step( + [ + &qkv, &z, &a, &b, &conv, &cw, &a_log, &dt_bias, &delta, &norm, + ], + gpu, + ) + .unwrap(); + // Evaluate from the last sibling, not always the hidden output. + let (_, dispatches) = super::super::qwen_mtplx_tests::capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&nd), gpu, false).unwrap(); + }); + super::super::qwen_mtplx_tests::assert_gdn_step_dispatch(&dispatches); + verify_typed( + &format!("gdn_step_{step}"), + &[ + (&y.buffer(), 6144, 2), + (&ns.buffer(), 30720, 2), + (&nd.buffer(), 786432, 4), + ], + ); + conv = ns; + delta = nd; + } + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/graph_sync.rs b/src/engine/metal/qwen_mtplx/graph_sync.rs new file mode 100644 index 0000000..1d002fd --- /dev/null +++ b/src/engine/metal/qwen_mtplx/graph_sync.rs @@ -0,0 +1,495 @@ +//! Evaluator events and inter-stream fences from the pinned Metal backend. +//! MTLFence inside an encoder is a separate mechanism (encoder.rs). +use super::encoder::{self, Event}; +use super::stream::{Device, Stream, Streams}; +use super::*; +use std::ptr::NonNull; +use std::sync::atomic::{AtomicU32, Ordering}; +use std::sync::{Arc, OnceLock}; + +/// Copies share the native event/error, but preserve their own value snapshot. +#[derive(Clone, Default)] +pub(super) struct GraphEvent { + state: Option<(Stream, Arc)>, + value: u64, +} + +impl GraphEvent { + pub(super) fn new(stream: Stream) -> Result { + Ok(Self { + state: Some((stream, Event::new()?)), + value: 0, + }) + } + + pub(super) fn valid(&self) -> bool { + self.state.is_some() + } + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn value(&self) -> u64 { + self.value + } + pub(super) fn set_value(&mut self, value: u64) { + self.value = value; + } + + pub(super) fn stream(&self) -> Result { + self.state + .as_ref() + .map(|(stream, _)| *stream) + .ok_or_else(|| "[Event::stream] Cannot access stream on invalid event.".into()) + } + + fn event(&self) -> Result<&Arc, String> { + self.state + .as_ref() + .map(|(_, event)| event) + .ok_or_else(|| "invalid MTPLX graph event".into()) + } + + pub(super) fn wait(&self) -> Result<(), String> { + self.event()?.wait(self.value) + } + + pub(super) fn check_error(&self) -> Result<(), String> { + self.state + .as_ref() + .map_or(Ok(()), |(_, event)| event.check_error()) + } + + pub(super) fn is_signaled(&self) -> bool { + self.state + .as_ref() + .is_some_and(|(_, event)| event.is_signaled(self.value)) + } + + pub(super) fn wait_on(&self, streams: &Streams, stream: Stream) -> Result<(), String> { + streams.wait_event(stream, self.event()?.clone(), self.value) + } + + pub(super) fn signal(&self, streams: &Streams, stream: Stream) -> Result<(), String> { + streams.signal_event(stream, self.event()?.clone(), self.value) + } +} + +struct FastStorage { + buffer: Buffer, + address: NonNull, +} + +// SAFETY: the private buffer is never exposed for host byte access. CPU accesses +// use the aligned AtomicU32; original coherent(system) kernels access that same +// word. Native descriptor metadata is immutable, and Arc holds its allocation +// until all CPU tasks and GPU command-completion callbacks release it. +unsafe impl Send for FastStorage {} +unsafe impl Sync for FastStorage {} + +impl FastStorage { + fn value(&self) -> &AtomicU32 { + unsafe { self.address.as_ref() } + } +} + +enum Backend { + Slow(Arc), + Fast(FastStorage), +} + +struct FenceState { + count: AtomicU32, + backend: Backend, +} + +/// Like the reference shared FenceImpl, clones share the update counter too. +#[derive(Clone)] +pub(super) struct GraphFence(Arc); + +impl GraphFence { + pub(super) fn new(streams: &Streams) -> Result { + static FAST: OnceLock = OnceLock::new(); + let enabled = *FAST.get_or_init(|| { + let value = unsafe { libc::getenv(c"MLX_METAL_FAST_SYNCH".as_ptr()) }; + !value.is_null() && unsafe { libc::atoi(value) != 0 } + }); + // This existing query has exactly the required Metal3/macOS15 gate. + let supported = unsafe { ds4_gpu_mtplx_residency_supported() != 0 }; + Self::with_fast(streams, enabled && supported) + } + + fn with_fast(streams: &Streams, fast: bool) -> Result { + let backend = if fast { + let buffer = streams + .allocator() + .ok_or("MTPLX fence requires Metal allocator")? + .allocate(4)? + .ok_or("MTPLX fence storage unavailable")?; + let address = + NonNull::new(unsafe { ds4_gpu_tensor_contents(buffer.raw()) }.cast::()) + .ok_or("MTPLX fence storage is not CPU visible")?; + if !(address.as_ptr() as usize).is_multiple_of(std::mem::align_of::()) { + return Err("MTPLX fence storage is not atomic aligned".into()); + } + // Initialize the Rust atomic object before publishing this storage. + unsafe { address.as_ptr().write(AtomicU32::new(0)) }; + let storage = FastStorage { buffer, address }; + Backend::Fast(storage) + } else { + Backend::Slow(Event::new()?) + }; + Ok(Self(Arc::new(FenceState { + count: AtomicU32::new(0), + backend, + }))) + } + + pub(super) fn wait( + &self, + streams: &Streams, + stream: Stream, + input: &Buffer, + ) -> Result<(), String> { + let count = self.0.count.load(Ordering::Relaxed); + match &self.0.backend { + Backend::Slow(event) => streams.wait_event(stream, event.clone(), u64::from(count)), + Backend::Fast(storage) if stream.device() == Device::Gpu => { + streams.with_gpu(stream, |_| { + encoder::with_active(|encoder| { + encoder.register_output(input); + encoder.dispatch( + "fence_wait", + &[tensor(0, &storage.buffer).raw_buffer(), bytes(1, &count)], + &[], + [1; 3], + [1; 3], + true, + )?; + encoder.hold_until_completed(self.0.clone()) + }) + .unwrap() + }) + } + Backend::Fast(_) => { + let fence = self.0.clone(); + streams.with_cpu(stream, |_, scheduler| { + scheduler.enqueue(stream.index(), move || { + let Backend::Fast(storage) = &fence.backend else { + unreachable!() + }; + while storage.value().load(Ordering::SeqCst) < count {} + Ok(()) + }) + }) + } + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn update( + &self, + streams: &Streams, + stream: Stream, + output: &Buffer, + data_size: usize, + itemsize: usize, + cross_device: bool, + ) -> Result<(), String> { + self.update_offset( + streams, + stream, + output, + (data_size, itemsize), + cross_device, + 0, + ) + } + + pub(super) fn update_array( + &self, + streams: &Streams, + stream: Stream, + output: &super::array::Array, + cross_device: bool, + ) -> Result<(), String> { + self.update_offset( + streams, + stream, + &output.buffer(), + (output.data_size(), output.itemsize()), + cross_device, + output.offset(), + ) + } + + fn update_offset( + &self, + streams: &Streams, + stream: Stream, + output: &Buffer, + (data_size, itemsize): (usize, usize), + cross_device: bool, + offset: u64, + ) -> Result<(), String> { + let count = self.0.count.fetch_add(1, Ordering::Relaxed).wrapping_add(1); + match &self.0.backend { + Backend::Slow(event) => streams.signal_event(stream, event.clone(), u64::from(count)), + Backend::Fast(storage) if stream.device() == Device::Gpu => { + streams.with_gpu(stream, |_| { + encoder::with_active(|encoder| { + if cross_device { + let nthreads = data_size.wrapping_mul(itemsize).wrapping_add(3) / 4; + let nthreads = nthreads as u32; + encoder.dispatch( + "input_coherent", + &[ + tensor(0, output).at_byte_offset(offset).input(data_size), + bytes(1, &nthreads), + ], + &[], + [nthreads.wrapping_add(1023) / 1024, 1, 1], + [1024, 1, 1], + false, + )?; + } + encoder.barrier()?; + encoder.dispatch( + "fence_update", + &[tensor(0, &storage.buffer).raw_buffer(), bytes(1, &count)], + &[], + [1; 3], + [1; 3], + true, + )?; + encoder.hold_until_completed(self.0.clone()) + }) + .unwrap() + }) + } + Backend::Fast(_) => { + let fence = self.0.clone(); + streams.with_cpu(stream, |_, scheduler| { + scheduler.enqueue(stream.index(), move || { + let Backend::Fast(storage) = &fence.backend else { + unreachable!() + }; + storage.value().store(count, Ordering::SeqCst); + Ok(()) + }) + }) + } + } + } +} + +#[test] +#[ignore = "requires Apple Metal events, no model weights"] +fn mtplx_graph_event_snapshots_preserve_values_streams_and_shared_errors() { + use std::sync::Mutex; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let invalid = GraphEvent::default(); + assert!(!invalid.valid()); + assert!(!invalid.is_signaled()); + assert_eq!(invalid.value(), 0); + assert_eq!( + invalid.stream(), + Err("[Event::stream] Cannot access stream on invalid event.".into()) + ); + assert!(invalid.wait().is_err()); + let mut event = GraphEvent::new(cpu).unwrap(); + assert!(event.valid()); + event.set_value(1); + let earlier = event.clone(); + event.set_value(2); + assert_eq!(earlier.value(), 1); + assert_eq!(event.stream().unwrap(), cpu); + earlier.signal(&streams, cpu).unwrap(); + streams.synchronize(cpu).unwrap(); + earlier.wait().unwrap(); + assert!(earlier.is_signaled()); + assert!(!event.is_signaled()); + earlier.wait_on(&streams, gpu).unwrap(); + event.signal(&streams, gpu).unwrap(); + streams.synchronize(gpu).unwrap(); + event.wait().unwrap(); + assert_eq!( + event.stream().unwrap(), + cpu, + "signaling never changes origin metadata" + ); + let error = Arc::new(Mutex::new(Some("shared source failure".to_owned()))); + *event.event().unwrap().error.lock().unwrap() = Some(error.clone()); + assert_eq!(earlier.wait(), Err("shared source failure".into())); + assert!( + error.lock().unwrap().is_none(), + "host wait consumes the shared error" + ); + event.wait().unwrap(); + let array = super::array::Array::new( + &[0], + super::array::Dtype::U8, + Buffer::mtplx_bytes(0).unwrap(), + ) + .unwrap(); + array.set_status(super::eval::Status::Evaluated); + array.attach_event(event.clone()); + *error.lock().unwrap() = Some("signaled event still carries an error".into()); + assert_eq!( + array.is_available(), + Err("signaled event still carries an error".into()) + ); + assert_eq!(array.status(), super::eval::Status::Evaluated); + assert!(array.event().valid(), "failed detach must retain the event"); + assert!(array.is_available().unwrap()); + assert_eq!(array.status(), super::eval::Status::Available); + assert!(!array.event().valid()); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal3, tiny model-free coherent fence kernels"] +fn mtplx_graph_fences_transfer_cpu_gpu_gpu_cpu_in_both_modes() { + use std::sync::atomic::AtomicBool; + use std::sync::mpsc; + use std::thread; + use std::time::Duration; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + assert_ne!(unsafe { ds4_gpu_mtplx_residency_supported() }, 0); + for fast in [false, true] { + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let first = streams.default_stream(Device::Gpu).unwrap(); + let second = streams.new_stream(Device::Gpu).unwrap(); + let configured = GraphFence::new(&streams).unwrap(); + if std::env::var_os("MLX_METAL_FAST_SYNCH").is_none() { + assert!( + matches!(configured.0.backend, Backend::Slow(_)), + "fast synchronization is opt-in" + ); + } + drop(configured); + let fence = GraphFence::with_fast(&streams, fast).unwrap(); + let alias = fence.clone(); + let weak = Arc::downgrade(&fence.0); + let slow_rescue = match &fence.0.backend { + Backend::Slow(event) => Some(event.clone()), + Backend::Fast(_) => None, + }; + let expected = [0x80, 0x3f].repeat(8); + let (input, middle, output) = streams + .with_gpu(first, |_| { + let input = Buffer::mtplx_bytes(16)?; + input.write(0, &expected)?; + Ok((input, Buffer::mtplx_bytes(16)?, Buffer::mtplx_bytes(16)?)) + }) + .unwrap(); + let copy = |stream, from, to| { + streams.with_gpu(stream, |_| { + qsa_copy_typed( + Some(from), + to, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + }) + }; + fence.wait(&streams, cpu, &input).unwrap(); // Initial value zero. + fence.update(&streams, cpu, &input, 8, 2, true).unwrap(); + fence.wait(&streams, first, &input).unwrap(); // Snapshot value one. + copy(first, &input, &middle).unwrap(); + alias.update(&streams, first, &middle, 8, 2, false).unwrap(); + assert_eq!( + fence.0.count.load(Ordering::Relaxed), + 2, + "clones share update count" + ); + alias.wait(&streams, second, &middle).unwrap(); // Snapshot value two. + copy(second, &middle, &output).unwrap(); + fence.update(&streams, second, &output, 8, 2, true).unwrap(); + alias.wait(&streams, cpu, &output).unwrap(); // CPU waits for coherent value three. + drop((fence, alias)); + if fast { + assert!( + weak.upgrade().is_some(), + "queued work owns fast fence storage" + ); + } + // A wrong value snapshot or dependency order must fail without leaving + // a permanent GPU spin wait. Rescue is test-only, not inference policy. + let timed_out = AtomicBool::new(false); + thread::scope(|scope| { + let (done, finished) = mpsc::channel(); + let timed_out = &timed_out; + let weak = &weak; + scope.spawn(move || { + if finished.recv_timeout(Duration::from_secs(5)).is_err() { + timed_out.store(true, Ordering::Relaxed); + if let Some(event) = slow_rescue { + event.signal(u64::MAX); + } + if let Some(state) = weak.upgrade() + && let Backend::Fast(storage) = &state.backend + { + storage.value().store(u32::MAX, Ordering::SeqCst); + } + } + }); + streams.finalize(first).unwrap(); + streams.finalize(second).unwrap(); + streams.synchronize(cpu).unwrap(); + streams.synchronize(first).unwrap(); + streams.synchronize(second).unwrap(); + done.send(()).unwrap(); + }); + assert!( + !timed_out.load(Ordering::Relaxed), + "graph fence stalled: fast={fast}" + ); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected, "fast={fast}"); + assert!( + weak.upgrade().is_none(), + "completed work releases fast fence storage" + ); + streams.clear_streams().unwrap(); + } +} + +#[test] +#[ignore = "requires Apple Metal3, model-free empty coherent dispatch"] +fn mtplx_graph_fence_coherence_preserves_empty_and_partial_word_spans() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fence = GraphFence::with_fast(&streams, true).unwrap(); + let output = streams.with_gpu(gpu, |_| Buffer::mtplx_bytes(16)).unwrap(); + let expected = [0xa5; 16]; + output.write(0, &expected).unwrap(); + // Register a real backing with zero data_size, then a three-element BF16 + // span. The latter coherently touches two complete uint32 words. + fence.update(&streams, gpu, &output, 0, 2, true).unwrap(); + fence.update(&streams, gpu, &output, 3, 2, true).unwrap(); + streams.synchronize(gpu).unwrap(); + let Backend::Fast(storage) = &fence.0.backend else { + unreachable!() + }; + assert_eq!(storage.value().load(Ordering::SeqCst), 2); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + let empty = streams.with_gpu(gpu, |_| Buffer::mtplx_bytes(0)).unwrap(); + fence.update(&streams, gpu, &empty, 0, 2, true).unwrap(); + fence.wait(&streams, gpu, &empty).unwrap(); + streams.synchronize(gpu).unwrap(); + assert_eq!(storage.value().load(Ordering::SeqCst), 3); + assert!(unsafe { ds4_gpu_tensor_contents(empty.raw()) }.is_null()); + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/hyper.rs b/src/engine/metal/qwen_mtplx/hyper.rs new file mode 100644 index 0000000..bb810eb --- /dev/null +++ b/src/engine/metal/qwen_mtplx/hyper.rs @@ -0,0 +1,570 @@ +//! Original hyper_connection and hyper_connection_v3 custom primitives plus +//! their original runtime-quantized pack and installed GatedResidual graph. +use super::array::{Array, Dtype, Layout}; +use super::stream::{Stream, Streams}; +use super::{dispatch_geometry, gdn, linear, ops}; + +pub(super) struct GatedResidual<'a> { + pub(super) norm: &'a Array, + pub(super) down: super::mlp::Linear<'a>, + pub(super) up: super::mlp::Linear<'a>, + pub(super) inject: Option>, + pub(super) pack: Option<[Array; 6]>, +} + +pub(super) struct Read { + pub(super) mixed: Array, + pub(super) combine: Option<(Array, Array)>, // original hyper input, inject +} + +impl GatedResidual<'_> { + pub(super) fn forward( + &mut self, + input: &Array, + fused: bool, + v3: bool, + streams: &Streams, + stream: Stream, + ) -> Result { + use super::{ + binary::{Binary, binary}, + mlp::Linear, + normalization, + unary::{Unary, unary}, + }; + let shape = input.layout().shape().to_vec(); + if shape.last() != Some(&10240) || input.layout().dtype() != Dtype::BF16 { + return Err("installed HC requires BF16 widened input".into()); + } + let rows = input.layout().size() / 10240; + let mut mixed_shape = shape.clone(); + *mixed_shape.last_mut().unwrap() = 2560; + let mut inject_shape = shape.clone(); + *inject_shape.last_mut().unwrap() = 4; + let plain_down = matches!(self.down, Linear::Dense(_)); + if v3 + && rows == 1 + && let Some(inject) = &self.inject + && plain_down + && supports_v3(streams, stream) + { + if self.pack.is_none() { + self.pack = Some(prepare_v3_pack( + self.down.weight(), + self.up.weight(), + inject.weight(), + streams, + stream, + )?); + } + let [mixed, inject] = fused_read_v3( + &ops::reshape(input, &[-1], stream)?, + self.norm, + self.pack.as_ref().unwrap(), + stream, + )?; + return Ok(Read { + mixed: ops::reshape(&mixed, &mixed_shape, stream)?, + combine: Some((input.clone(), ops::reshape(&inject, &inject_shape, stream)?)), + }); + } + if fused + && plain_down + && self.down.weight().layout().shape()[0] == 320 + && self.down.weight().layout().dtype() == input.layout().dtype() + && (1..=8).contains(&rows) + { + let [mixed, inject] = fused_read( + &ops::reshape(input, &[-1, 10240], stream)?, + self.norm, + self.down.weight(), + self.up.weight(), + self.inject.as_ref().map(Linear::weight), + stream, + )?; + return Ok(Read { + mixed: ops::reshape(&mixed, &mixed_shape, stream)?, + combine: if self.inject.is_some() { + Some((input.clone(), ops::reshape(&inject, &inject_shape, stream)?)) + } else { + None + }, + }); + } + let scalar = + |bits: u16| Array::new(&[], Dtype::BF16, super::scalar_buffer(&bits.to_le_bytes())?); + let normed = normalization::grouped_rms_norm(input, self.norm, 2560, 1e-6, stream)?; + let low = binary( + &self.down.apply(&normed, stream)?, + &scalar(0x4080)?, + Binary::Divide, + stream, + )?; + let low = super::mlp::silu(&low, stream)?; + let mix = unary(&self.up.apply(&low, stream)?, Unary::Sigmoid, stream)?; + let mut grouped = shape[..shape.len() - 1].to_vec(); + grouped.extend([4, 2560]); + let mix = ops::reshape(&mix, &grouped, stream)?; + let normed_grouped = ops::reshape(&normed, &grouped, stream)?; + let product = binary(&mix, &normed_grouped, Binary::Multiply, stream)?; + let sum = super::reduce::sum(&product, &[-2], false, stream)?; + let mixed = binary(&sum, &scalar(0x3e80)?, Binary::Multiply, stream)?; + let combine = if let Some(inject) = &self.inject { + let gate = binary( + &inject.apply(&normed, stream)?, + &scalar(0x4080)?, + Binary::Divide, + stream, + )?; + let gate = unary(&gate, Unary::Sigmoid, stream)?; + Some(( + input.clone(), + // Python __rmul__ keeps the array first for 2.0 * gate. + binary(&gate, &scalar(0x4000)?, Binary::Multiply, stream)?, + )) + } else { + None + }; + Ok(Read { mixed, combine }) + } +} + +pub(super) fn fused_read( + x: &Array, + norm: &Array, + down: &Array, + up: &Array, + inject: Option<&Array>, + stream: Stream, +) -> Result<[Array; 2], String> { + let shape = x.layout().shape().to_vec(); + if shape.len() != 2 + || shape[0] < 1 + || shape[1] != 10240 + || norm.layout().shape() != [10240] + || down.layout().shape() != [320, 10240] + || up.layout().shape() != [10240, 320] + || inject.is_some_and(|w| w.layout().shape() != [4, 10240]) + || [x, norm, down, up, inject.unwrap_or(norm)] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16) + { + return Err("fused hyper read requires installed BF16 geometry".into()); + } + Array::make_operations( + stream, + &[ + x.clone(), + norm.clone(), + down.clone(), + up.clone(), + inject.unwrap_or(norm).clone(), + ], + &[ + Layout::new(&[shape[0], 2560], Dtype::BF16)?, + Layout::new(&[shape[0], 4], Dtype::BF16)?, + ], + ops::Operation::HyperRead(inject.is_some()), + )? + .try_into() + .map_err(|_| "hyper read requires two outputs".into()) +} + +pub(super) fn prepare_v3_pack( + down: &Array, + up: &Array, + inject: &Array, + streams: &Streams, + stream: Stream, +) -> Result<[Array; 6], String> { + let combined = ops::concatenate(&[down.clone(), inject.clone()], 0, stream)?; + let first = linear::quantize(&combined, 64, 8, stream)?; + let second = linear::quantize(up, 64, 8, stream)?; + let pack = first + .into_iter() + .chain(second) + .map(|a| ops::contiguous(&a, false, stream)) + .collect::, _>>()?; + ops::evaluate(streams, &pack, stream, false)?; + pack.try_into() + .map_err(|_| "hyper v3 pack requires six outputs".into()) +} + +pub(super) fn fused_read_v3( + x: &Array, + norm: &Array, + pack: &[Array; 6], + stream: Stream, +) -> Result<[Array; 2], String> { + if x.layout().shape() != [10240] + || norm.layout().shape() != [10240] + || x.layout().dtype() != Dtype::BF16 + || norm.layout().dtype() != Dtype::BF16 + { + return Err("hyper v3 requires one BF16 widened row".into()); + } + for (array, (shape, dtype)) in pack.iter().zip([ + ([324, 2560], Dtype::U32), + ([324, 160], Dtype::BF16), + ([324, 160], Dtype::BF16), + ([10240, 80], Dtype::U32), + ([10240, 5], Dtype::BF16), + ([10240, 5], Dtype::BF16), + ]) { + if array.layout().shape() != shape || array.layout().dtype() != dtype { + return Err("invalid hyper v3 pack".into()); + } + } + let [mix, inject, rms]: [Array; 3] = Array::make_operations( + stream, + &[ + x.clone(), + norm.clone(), + pack[0].clone(), + pack[1].clone(), + pack[2].clone(), + ], + &[ + Layout::new(&[320], Dtype::BF16)?, + Layout::new(&[4], Dtype::BF16)?, + Layout::new(&[4], Dtype::F32)?, + ], + ops::Operation::HyperV3R1, + )? + .try_into() + .map_err(|_| "hyper r1 output arity")?; + let mixed = Array::make_operation_with_inputs( + stream, + &[ + x.clone(), + norm.clone(), + mix, + rms, + pack[3].clone(), + pack[4].clone(), + pack[5].clone(), + ], + Layout::new(&[2560], Dtype::BF16)?, + ops::Operation::HyperV3R2, + )?; + Ok([mixed, inject]) +} + +pub(super) fn supports_v3(streams: &Streams, stream: Stream) -> bool { + static SUPPORTED: std::sync::OnceLock = std::sync::OnceLock::new(); + *SUPPORTED.get_or_init(|| { + let probe = || -> Result<(), String> { + let constant = |shape: &[i32], bits: u16| { + let scalar = + Array::new(&[], Dtype::BF16, super::scalar_buffer(&bits.to_le_bytes())?)?; + ops::broadcast_to(&scalar, shape, stream) + }; + let first = linear::quantize(&constant(&[324, 10240], 0)?, 64, 8, stream)?; + let second = linear::quantize(&constant(&[10240, 320], 0)?, 64, 8, stream)?; + let pack: [Array; 6] = first + .into_iter() + .chain(second) + .collect::>() + .try_into() + .map_err(|_| "hyper probe pack arity")?; + let outputs = fused_read_v3( + &constant(&[10240], 0)?, + &constant(&[10240], 0x3f80)?, + &pack, + stream, + )?; + ops::evaluate(streams, &outputs, stream, false) + }; + if let Err(error) = probe() { + eprintln!( + "MTPLX fused hyper read v3 disabled: 1024-thread pipeline probe failed ({error})" + ); + false + } else { + true + } + }) +} + +pub(super) fn evaluate( + operation: &ops::Operation, + inputs: &[Array], + outputs: &[Array], +) -> Result<(), String> { + let (name, grid) = match operation { + ops::Operation::HyperRead(inject) if inputs.len() == 5 && outputs.len() == 2 => ( + if *inject { + "kernel_qwen_mtplx_hyper_read_inj_bf16" + } else { + "kernel_qwen_mtplx_hyper_read_mix_bf16" + }, + [1024, inputs[0].layout().shape()[0] as u32, 1], + ), + ops::Operation::HyperV3R1 if inputs.len() == 5 && outputs.len() == 3 => { + ("kernel_qwen_mtplx_hyper_v3_r1_bf16", [11264, 1, 1]) + } + ops::Operation::HyperV3R2 if inputs.len() == 7 && outputs.len() == 1 => { + ("kernel_qwen_mtplx_hyper_v3_r2_bf16", [81920, 1, 1]) + } + _ => return Err("invalid hyper primitive arity".into()), + }; + gdn::custom_evaluate(inputs, outputs, |bindings| { + dispatch_geometry(name, bindings, &[], grid, [1024, 1, 1], true) + }) +} + +#[test] +#[ignore = "requires Apple M5 Max; actual MTPLX GatedResidual reference receipts"] +fn mtplx_graph_hyper_forward_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{ + allocator, configure_sources, + mlp::{Linear, fixture_linear}, + stream::Device, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let norm = bf16(&[10240], 2); + let dense = [ + bf16(&[320, 10240], 3), + bf16(&[10240, 320], 4), + bf16(&[4, 10240], 5), + ]; + let quantized = [ + fixture_linear(320, 10240, 4, 64, 3), + fixture_linear(10240, 320, 4, 64, 4), + fixture_linear(4, 10240, 4, 64, 5), + ]; + let fixtures = include_str!("../../../../tests/fixtures/mtplx-hyper-forward.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + let mut checked = 0; + for layout in ["dense", "quantized"] { + for combine in [false, true] { + let projection = |i| { + if layout == "dense" { + Linear::Dense(&dense[i]) + } else { + Linear::Quantized(&quantized[i]) + } + }; + let mut layer = GatedResidual { + norm: &norm, + down: projection(0), + up: projection(1), + inject: combine.then(|| projection(2)), + pack: None, + }; + let mut pack_ids = None; + for receipt in fixtures + .iter() + .filter(|r| r["layout"] == layout && r["combine"] == combine) + { + super::eval::execution_tests::observed(|| { + let rows = receipt["rows"].as_i64().unwrap() as i32; + let mode = receipt["mode"].as_u64().unwrap(); + let input = bf16(&[1, rows, 10240], 1); + let result = layer + .forward(&input, mode & 1 != 0, mode & 2 != 0, &streams, gpu) + .unwrap(); + assert_eq!( + layer.pack.is_some(), + receipt["pack_exists"].as_bool().unwrap() + ); + if let Some(pack) = &layer.pack { + let ids = pack.each_ref().map(Array::id); + if let Some(previous) = pack_ids { + assert_eq!(previous, ids); + } + pack_ids = Some(ids); + } + let mut outputs = vec![result.mixed]; + assert_eq!(result.combine.is_some(), combine); + if let Some((hyper, inject)) = result.combine { + assert_eq!(hyper.id(), input.id()); + outputs.push(inject); + } + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &outputs, gpu, false).unwrap() + }); + let selected = if calls + .iter() + .any(|r| r.0 == "kernel_qwen_mtplx_hyper_v3_r1_bf16") + { + "v3" + } else if calls + .iter() + .any(|r| r.0.starts_with("kernel_qwen_mtplx_hyper_read")) + { + "fused" + } else { + "eager" + }; + assert_eq!( + selected, + receipt["selected"].as_str().unwrap(), + "{} {calls:?}", + receipt["kernel"] + ); + if selected == "eager" && layout == "dense" && rows >= 16 { + assert!( + calls + .iter() + .any(|r| r.0.starts_with("steel_gemm_splitk_nax_")) + ); + assert!( + calls + .iter() + .any(|r| r.0.starts_with("steel_gemm_fused_nax_")) + ); + } + let buffers = outputs.iter().map(Array::buffer).collect::>(); + verify( + receipt["kernel"].as_str().unwrap(), + &outputs + .iter() + .zip(&buffers) + .map(|(a, b)| (&**b, a.layout().size() as u32)) + .collect::>(), + ); + checked += 1; + }); + } + } + } + assert_eq!(checked, 128); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original hyper primitives and runtime pack"] +fn mtplx_graph_hyper_pack_and_reads_match_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + assert!(supports_v3(&streams, gpu)); + let (_, calls) = capture_dispatches(|| assert!(supports_v3(&streams, gpu))); + assert!( + calls.is_empty(), + "successful capability probe must be cached" + ); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let down = bf16(&[320, 10240], 3); + let up = bf16(&[10240, 320], 4); + let inject = bf16(&[4, 10240], 5); + let norm = bf16(&[10240], 2); + let (pack, calls) = + capture_dispatches(|| prepare_v3_pack(&down, &up, &inject, &streams, gpu).unwrap()); + let quantizers = calls + .iter() + .filter(|r| r.0.starts_with("affine_quantize_")) + .collect::>(); + assert_eq!(quantizers.len(), 2); + assert!( + quantizers + .iter() + .all(|r| r.0 == "affine_quantize_bfloat16_t_gs_64_b_8" && r.3) + ); + let buffers = pack.iter().map(Array::buffer).collect::>(); + let outputs = pack + .iter() + .zip(&buffers) + .map(|(array, buffer)| (&**buffer, array.layout().size() as u32, array.itemsize())) + .collect::>(); + verify_typed("hyper_v3_original_pack", &outputs); + drop(buffers); + let x = bf16(&[10240], 1); + let output = fused_read_v3(&x, &norm, &pack, gpu).unwrap(); + drop(x); + drop(pack); + let commits = streams.with_gpu(gpu, |scope| Ok(scope.commits())).unwrap(); + let (_, calls) = capture_dispatches(|| ops::evaluate(&streams, &output, gpu, false).unwrap()); + assert_eq!( + streams.with_gpu(gpu, |scope| Ok(scope.commits())).unwrap() - commits, + 1, + "the two hyper reads must not add commits or waits" + ); + assert_eq!( + calls, + [ + ( + "kernel_qwen_mtplx_hyper_v3_r1_bf16".into(), + [11264, 1, 1], + [1024, 1, 1], + true + ), + ( + "kernel_qwen_mtplx_hyper_v3_r2_bf16".into(), + [81920, 1, 1], + [1024, 1, 1], + true + ), + ] + ); + verify( + "hyper_v3_original_packed_read", + &[(&output[0].buffer(), 2560), (&output[1].buffer(), 4)], + ); + verify( + "hyper_v3", + &[(&output[0].buffer(), 2560), (&output[1].buffer(), 4)], + ); + for rows in [1, 4, 8] { + for combine in [false, true] { + super::eval::execution_tests::observed(|| { + let output = fused_read( + &bf16(&[rows, 10240], 1), + &norm, + &down, + &up, + combine.then_some(&inject), + gpu, + ) + .unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output[0]), gpu, false).unwrap() + }); + assert_eq!(calls.len(), 1); + assert_eq!( + (calls[0].1, calls[0].2, calls[0].3), + ([1024, rows as u32, 1], [1024, 1, 1], true) + ); + let name = format!("hyper_{}_s{rows}", if combine { "inj" } else { "mix" }); + let buffers = [ + (&output[0].buffer(), rows as u32 * 2560), + (&output[1].buffer(), rows as u32 * 4), + ]; + let values = buffers.iter().map(|(b, n)| (&***b, *n)).collect::>(); + verify(&name, &values[..if combine { 2 } else { 1 }]); + }); + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/indexing.rs b/src/engine/metal/qwen_mtplx/indexing.rs new file mode 100644 index 0000000..f9907e5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/indexing.rs @@ -0,0 +1,1354 @@ +//! Select, take/Gather, GatherAxis, Arange and Scan from the pinned runtime. +//! take exports BF16/F16/F32/U32 with I64 and I32 indices. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::Stream; +use super::{bytes, dispatch_geometry, ops, tensor, views}; + +pub(super) fn select( + condition: &Array, + yes: &Array, + no: &Array, + stream: Stream, +) -> Result { + let condition = ops::astype(condition, Dtype::Bool, false, stream)?; + let dtype = yes.layout().dtype().promote(no.layout().dtype()); + let yes = ops::astype(yes, dtype, false, stream)?; + let no = ops::astype(no, dtype, false, stream)?; + let inputs = ops::broadcast_arrays(&[condition, yes, no], &[], stream)?; + let layout = Layout::new(inputs[0].layout().shape(), dtype)?; + Array::make_operation_with_inputs(stream, &inputs, layout, ops::Operation::Select) +} + +pub(super) fn arange_i32(stop: i32, stream: Stream) -> Result { + arange_range_i32(0, stop, stream) +} + +pub(super) fn arange_u32(stop: i32, stream: Stream) -> Result { + Array::make_operation_with_inputs( + stream, + &[], + Layout::new(&[stop.max(0)], Dtype::U32)?, + ops::Operation::ArangeU32, + ) +} + +pub(super) fn arange_range_i32(start: i32, stop: i32, stream: Stream) -> Result { + let size = i32::try_from((i64::from(stop) - i64::from(start)).max(0)) + .map_err(|_| "I32 arange size overflow")?; + Array::make_operation_with_inputs( + stream, + &[], + Layout::new(&[size], Dtype::I32)?, + ops::Operation::ArangeI32(start), + ) +} + +pub(super) fn arange_i64(stop: i32, stream: Stream) -> Result { + Array::make_operation_with_inputs( + stream, + &[], + Layout::new(&[stop.max(0)], Dtype::I64)?, + ops::Operation::ArangeI64, + ) +} + +pub(super) fn arange_f32( + start: f64, + stop: f64, + step: f64, + stream: Stream, +) -> Result { + if !start.is_finite() || !stop.is_finite() || step.is_nan() || step == 0.0 { + return Err("[arange] Cannot compute length or zero step".into()); + } + if step.is_infinite() && ((step > 0.0 && start < stop) || (step < 0.0 && start > stop)) { + return Array::new( + &[1], + Dtype::F32, + super::scalar_buffer(&(start as f32).to_le_bytes())?, + ); + } + let size = ((stop - start) / step).ceil(); + if size > f64::from(i32::MAX) { + return Err("[arange] Maximum size exceeded".into()); + } + Array::make_operation_with_inputs( + stream, + &[], + Layout::new(&[(size as i32).max(0)], Dtype::F32)?, + ops::Operation::ArangeF32 { start, step }, + ) +} + +pub(super) fn cummax_last_i64(input: &Array, stream: Stream) -> Result { + let layout = input.layout(); + if layout.dtype() != Dtype::I64 || layout.shape().is_empty() || layout.size() == 0 { + return Err("NGram cumulative maximum requires nonempty I64 input".into()); + } + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), Dtype::I64)?, + ops::Operation::CummaxLastI64, + ) +} + +pub(super) fn cumsum_last_i32(input: &Array, stream: Stream) -> Result { + let layout = input.layout(); + if layout.dtype() != Dtype::I32 || layout.shape().is_empty() || layout.size() == 0 { + return Err("sampler cumulative sum requires nonempty, non-scalar I32 input".into()); + } + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), Dtype::I32)?, + ops::Operation::CumsumLastI32, + ) +} + +pub(super) fn cumsum_last_f32( + input: &Array, + inclusive: bool, + stream: Stream, +) -> Result { + let layout = input.layout(); + if layout.dtype() != Dtype::F32 || layout.shape().is_empty() || layout.size() == 0 { + return Err("sampler cumulative sum requires nonempty, non-scalar F32 input".into()); + } + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), Dtype::F32)?, + ops::Operation::CumsumLastF32(inclusive), + ) +} + +pub(super) fn scan_evaluate( + input: &Array, + output: &Array, + operation: &str, + inclusive: bool, +) -> Result<(), String> { + let layout = input.layout(); + let axis = layout.shape().len() - 1; + let input = if layout.flags().contiguous && layout.strides()[axis] != 0 { + // Scan::eval_gpu does not use the unary allocator's +16KiB ceiling. + if input.is_donatable() { + output.copy_shared_buffer( + input, + layout.strides(), + layout.flags(), + input.data_size(), + 0, + )?; + } else { + output.set_strided_data( + Buffer::mtplx_bytes((input.data_size() * input.itemsize()) as u64)?, + input.data_size(), + layout.strides(), + layout.flags(), + 0, + )?; + } + input.clone() + } else { + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + views::general_copy_inplace(input, ©)?; + let cl = copy.layout(); + output.copy_shared_buffer(©, cl.strides(), cl.flags(), copy.data_size(), 0)?; + drop(cl); + copy + }; + drop(layout); + let layout = input.layout(); + let size = layout.shape()[axis] as u64; + let stride = layout.strides()[axis] as u64; + let contiguous = stride == 1; + let name = format!( + "{}_scan_{}_{operation}_{}_{}", + if contiguous { "contig" } else { "strided" }, + if inclusive { "inclusive" } else { "exclusive" }, + layout.dtype().kernel_name(), + output.layout().dtype().kernel_name() + ); + let max = views::kernel_max_threads(&name)?; + let ib = input.buffer(); + let ob = output.buffer(); + let mut bindings = vec![ + tensor(0, &ib) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &ob) + .at_byte_offset(output.offset()) + .output(output.data_size()), + bytes(2, &size), + ]; + let blocks = stride.div_ceil(32); + let reads = if input.itemsize() <= 4 { 4 } else { 2 }; + let elements_per_simd = reads * 32; + let (threads, mut grid) = if contiguous { + let threads = if size <= reads * 1024 { + size.div_ceil(elements_per_simd) * 32 + } else if size <= reads * 2048 { + (size / 2).div_ceil(elements_per_simd) * 32 + } else { + u64::from(max) + }; + ( + threads.min(u64::from(max)) as u32, + views::large_copy_grid(&layout, size as usize)?, + ) + } else { + bindings.extend([bytes(3, &stride), bytes(4, &blocks)]); + ( + (32 / reads * 32) as u32, + views::large_copy_grid(&layout, (size * stride) as usize)?, + ) + }; + if !contiguous { + if u64::from(grid[0]) * blocks <= u64::from(u32::MAX) { + grid[0] *= blocks as u32; + } else { + grid[1] = + u32::try_from(u64::from(grid[1]) * blocks).map_err(|_| "scan grid overflow")?; + } + } + dispatch_geometry( + &name, + &bindings, + &[], + [threads, grid[0], grid[1]], + [threads, 1, 1], + true, + ) +} + +pub(super) fn take_along_axis( + input: &Array, + indices: &Array, + axis: i32, + stream: Stream, +) -> Result { + let layout = input.layout(); + let rank = layout.shape().len(); + let axis = if axis < 0 { + i64::from(axis) + rank as i64 + } else { + i64::from(axis) + }; + let axis = usize::try_from(axis).map_err(|_| "GatherAxis axis out of range")?; + if axis >= rank || indices.layout().shape().len() != rank { + return Err("GatherAxis axis/rank mismatch".into()); + } + if !((matches!( + layout.dtype(), + Dtype::BF16 | Dtype::F16 | Dtype::F32 | Dtype::U32 + ) && matches!(indices.layout().dtype(), Dtype::I32 | Dtype::U32)) + || (matches!(layout.dtype(), Dtype::Bool | Dtype::I64) + && indices.layout().dtype() == Dtype::I64)) + { + return Err("GatherAxis specialization is not exported for these types".into()); + } + drop(layout); + let inputs = ops::broadcast_arrays(&[input.clone(), indices.clone()], &[axis], stream)?; + let layout = Layout::new(inputs[1].layout().shape(), inputs[0].layout().dtype())?; + Array::make_operation_with_inputs(stream, &inputs, layout, ops::Operation::GatherAxis(axis)) +} + +/// The one-dimensional Scatter(Sum, axes=[0]) used by logits.at[ids].add. +/// Python indexing expands updates to [index_count, 1], then scatter casts +/// them to the source dtype. It does not promote the source to Float32. +pub(super) fn scatter_add_row( + input: &Array, + indices: &Array, + values: &Array, + stream: Stream, +) -> Result { + let shape = indices.layout().shape().to_vec(); + let dtype = input.layout().dtype(); + if input.layout().shape().len() != 1 + || input.layout().size() == 0 + || shape.len() != 1 + || indices.layout().dtype() != Dtype::I64 + || !matches!(dtype, Dtype::BF16 | Dtype::F16 | Dtype::F32) + { + return Err("penalty scatter requires one logit row and Int64 index vector".into()); + } + let leading = values + .layout() + .shape() + .iter() + .take_while(|&&n| n == 1) + .count(); + let values = ops::squeeze( + values, + Some(&(0..leading as i32).collect::>()), + stream, + )?; + let values = ops::broadcast_to(&values, &shape, stream)?; + let values = ops::reshape(&values, &[shape[0], 1], stream)?; + let values = ops::astype(&values, dtype, false, stream)?; + let layout = Layout::new(input.layout().shape(), dtype)?; + Array::make_operation_with_inputs( + stream, + &[input.clone(), indices.clone(), values], + layout, + ops::Operation::ScatterAddRow, + ) +} + +fn scatter_add_row_evaluate( + src: &Array, + idx: &Array, + upd: &Array, + out: &Array, +) -> Result<(), String> { + views::copy_gpu(src, out, src.layout().flags().row_contiguous)?; + if upd.layout().size() == 0 { + return Ok(()); + } + let ul = upd.layout(); + let il = idx.layout(); + let ol = out.layout(); + let tag = match ol.dtype() { + Dtype::BF16 => "bf16", + Dtype::F16 => "f16", + Dtype::F32 => "f32", + _ => unreachable!(), + }; + let large = [ol.size(), il.size(), ul.size()] + .into_iter() + .any(|n| n > i32::MAX as usize); + let name = format!( + "kernel_qwen_mtplx_scatter_{tag}_idxi64_sum_1_updc_{}_nwork1_{}", + ul.flags().row_contiguous, + if large { "int64_t" } else { "int" } + ); + if views::kernel_max_threads(&name)? != 1024 { + return Err("Scatter reference pipeline requires 1024 maximum threads".into()); + } + let grid = [ + 1, + u32::try_from(il.size()).map_err(|_| "Scatter update grid overflow")?, + 1, + ]; + dispatch_geometry( + &name, + &[ + tensor(1, &upd.buffer()) + .at_byte_offset(upd.offset()) + .input(upd.data_size()), + tensor(2, &out.buffer()) + .at_byte_offset(out.offset()) + .output(out.data_size()), + bytes(3, ul.shape()), + bytes(4, ul.strides()), + bytes(5, &2_usize), + bytes(6, &1_usize), + bytes(7, ol.shape()), + bytes(8, ol.strides()), + bytes(9, &1_usize), + bytes(10, &[0_i32]), + bytes(11, il.shape()), + bytes(12, il.strides()), + bytes(13, &[u8::from(il.flags().row_contiguous)]), + bytes(14, &1_i32), + bytes(15, &il.size()), + tensor(20, &idx.buffer()) + .at_byte_offset(idx.offset()) + .input(idx.data_size()), + ], + &[], + grid, + super::block_dims(grid), + true, + ) +} + +/// Original put_along_axis factory. QSA uses Bool updates and I64 indices. +pub(super) fn put_along_axis( + input: &Array, + indices: &Array, + values: &Array, + axis: i32, + stream: Stream, +) -> Result { + let rank = input.layout().shape().len(); + let axis = if axis < 0 { + i64::from(axis) + rank as i64 + } else { + i64::from(axis) + }; + let axis = usize::try_from(axis).map_err(|_| "ScatterAxis axis out of range")?; + if axis >= rank || indices.layout().shape().len() != rank { + return Err("ScatterAxis axis/rank mismatch".into()); + } + if input.layout().size() == 0 { + return Ok(input.clone()); + } + if input.layout().dtype() != Dtype::Bool || indices.layout().dtype() != Dtype::I64 { + return Err("ScatterAxis QSA specialization requires Bool and I64".into()); + } + let mut upd = ops::astype(values, Dtype::Bool, false, stream)?; + let excess = upd.layout().shape().len().saturating_sub(rank); + if excess > 0 { + upd = ops::squeeze(&upd, Some(&(0..excess as i32).collect::>()), stream)?; + } + let mut inputs = ops::broadcast_arrays(&[indices.clone(), upd], &[], stream)?; + inputs.insert(0, input.clone()); + let inputs = ops::broadcast_arrays(&inputs, &[axis], stream)?; + let layout = Layout::new(inputs[0].layout().shape(), Dtype::Bool)?; + Array::make_operation_with_inputs(stream, &inputs, layout, ops::Operation::ScatterAxis(axis)) +} + +fn scatter_evaluate( + src: &Array, + idx: &Array, + upd: &Array, + out: &Array, + axis: usize, +) -> Result<(), String> { + views::copy_gpu(src, out, src.layout().flags().row_contiguous)?; + if upd.layout().size() == 0 { + return Ok(()); + } + let il = idx.layout(); + let ul = upd.layout(); + let sl = src.layout(); + let large = il.size() > i32::MAX as usize || sl.size() > i32::MAX as usize; + let name = format!( + "kernel_qwen_mtplx_scatter_axis_bool_idxi64_{}_{}{}", + if large { "int64_t" } else { "int" }, + u8::from(ul.flags().row_contiguous), + u8::from(il.flags().row_contiguous) + ); + let pre = il.shape()[..axis] + .iter() + .map(|&n| n as u64) + .product::(); + let post = il.shape()[axis + 1..] + .iter() + .map(|&n| n as u64) + .product::(); + let grid = [ + u32::try_from(post).map_err(|_| "ScatterAxis grid overflow")?, + il.shape()[axis] as u32, + u32::try_from(pre).map_err(|_| "ScatterAxis grid overflow")?, + ]; + let mut shape = il.shape().to_vec(); + let mut us = ul.strides().to_vec(); + let mut is = il.strides().to_vec(); + // Rank-one bindings are ignored by the kernel but must still be present. + if shape.len() > 1 { + shape.remove(axis); + us.remove(axis); + is.remove(axis); + } + dispatch_geometry( + &name, + &[ + tensor(0, &upd.buffer()) + .at_byte_offset(upd.offset()) + .input(upd.data_size()), + tensor(1, &idx.buffer()) + .at_byte_offset(idx.offset()) + .input(idx.data_size()), + tensor(2, &out.buffer()) + .at_byte_offset(out.offset()) + .output(out.data_size()), + bytes(3, shape.as_slice()), + bytes(4, us.as_slice()), + bytes(5, is.as_slice()), + bytes(6, &(sl.shape().len() - 1)), + bytes(7, &(axis as i32)), + bytes(8, &out.layout().shape()[axis]), + bytes(9, &ul.strides()[axis]), + bytes(10, &il.strides()[axis]), + ], + &[], + grid, + super::block_dims(grid), + true, + ) +} + +/// take(table, ids, axis=0): Gather preserves its unit slice axis, then squeeze. +pub(super) fn take_rows(table: &Array, ids: &Array, stream: Stream) -> Result { + if table.layout().shape().len() != 2 { + return Err("table take requires a matrix".into()); + } + take(table, ids, 0, stream) +} + +/// Original take: Gather, move the index dimensions to axis, then squeeze. +pub(super) fn take(table: &Array, ids: &Array, axis: i32, stream: Stream) -> Result { + let sl = table.layout(); + let il = ids.layout(); + let rank = sl.shape().len(); + let axis = if axis < 0 { + i64::from(axis) + rank as i64 + } else { + i64::from(axis) + }; + let axis = usize::try_from(axis).map_err(|_| "take axis out of range")?; + if axis >= rank { + return Err("take axis out of range".into()); + } + if il.shape().len() > 4 + || !(il.dtype() == Dtype::I64 || il.dtype() == Dtype::U32 || il.dtype() == Dtype::I32) + || !matches!( + sl.dtype(), + Dtype::BF16 | Dtype::F16 | Dtype::F32 | Dtype::U32 + ) + || (sl.shape()[axis] == 0 && il.size() != 0) + { + return Err( + "take requires an exported dtype/index specialization and a nonempty axis".into(), + ); + } + let mut shape = il.shape().to_vec(); + let idx_rank = shape.len(); + shape.extend(sl.shape()); + shape[idx_rank + axis] = 1; + let mut gathered = Array::make_operation_with_inputs( + stream, + &[table.clone(), ids.clone()], + Layout::new(&shape, sl.dtype())?, + ops::Operation::GatherTake(axis), + )?; + drop(sl); + drop(il); + if axis != 0 { + let axes = (idx_rank..idx_rank + axis) + .chain(0..idx_rank) + .chain(idx_rank + axis..shape.len()) + .map(|v| v as i32) + .collect::>(); + gathered = ops::transpose(&gathered, &axes, stream)?; + } + ops::squeeze(&gathered, Some(&[(idx_rank + axis) as i32]), stream) +} + +fn gather_take_evaluate( + src: &Array, + idx: &Array, + output: &Array, + axis: usize, +) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if output.layout().size() == 0 { + return Ok(()); + } + let sl = src.layout(); + let il = idx.layout(); + let tag = match sl.dtype() { + Dtype::BF16 => "bf16", + Dtype::F16 => "f16", + Dtype::F32 => "f32", + Dtype::U32 => "u32", + _ => unreachable!(), + }; + let large = sl.size() > i32::MAX as usize + || il.size() > i32::MAX as usize + || output.layout().size() > i32::MAX as usize; + let loc = if large { "int64_t" } else { "int" }; + let idx_tag = match il.dtype() { + Dtype::I32 => "i32", + Dtype::U32 => "u32", + _ => "i64", + }; + let mut slice = sl.shape().to_vec(); + slice[axis] = 1; + let width = slice.iter().map(|&v| v as u64).product::(); + if sl.flags().row_contiguous + && axis == 0 + && il.flags().row_contiguous + && sl.strides()[0] == width as i64 + { + let work = if width > 8 && sl.dtype().itemsize() < 4 { + 2 + } else { + 1 + }; + let grid = [ + u32::try_from(width.div_ceil(work)).map_err(|_| "table gather width overflow")?, + u32::try_from(il.size()).map_err(|_| "table gather index overflow")?, + 1, + ]; + let index_suffix = if il.dtype() == Dtype::U32 { + String::new() + } else { + format!("idx{idx_tag}_") + }; + return dispatch_geometry( + &format!("kernel_qwen_mtplx_gather_front_{tag}_{index_suffix}{loc}_{work}"), + &[ + tensor(0, &src.buffer()) + .at_byte_offset(src.offset()) + .input(src.data_size()), + tensor(1, &idx.buffer()) + .at_byte_offset(idx.offset()) + .input(idx.data_size()), + tensor(2, &output.buffer()).output(output.data_size()), + bytes(3, &width), + bytes(4, &sl.shape()[0]), + ], + &[], + grid, + super::block_dims(grid), + true, + ); + } + let rank = il.shape().len() as i32; + let dim0 = il.shape().first().copied().unwrap_or(1) as u32; + let dim1 = if rank >= 2 { + u32::try_from(il.size() / dim0 as usize).map_err(|_| "table gather grid overflow")? + } else { + 1 + }; + let grid = [ + dim0, + dim1, + u32::try_from(width).map_err(|_| "gather slice grid overflow")?, + ]; + let axes = [axis as i32]; + let contiguous = [u8::from(il.flags().row_contiguous)]; + let ndim = sl.shape().len(); + dispatch_geometry( + &format!("kernel_qwen_mtplx_gather_{tag}_idx{idx_tag}_1_{rank}_{loc}"), + &[ + tensor(0, &src.buffer()) + .at_byte_offset(src.offset()) + .input(src.data_size()), + tensor(1, &output.buffer()).output(output.data_size()), + bytes(2, sl.shape()), + bytes(3, sl.strides()), + bytes(4, &ndim), + bytes(5, slice.as_slice()), + bytes(6, axes.as_slice()), + bytes(7, il.shape()), + bytes(8, il.strides()), + bytes(9, contiguous.as_slice()), + bytes(10, &rank), + tensor(20, &idx.buffer()) + .at_byte_offset(idx.offset()) + .input(idx.data_size()), + ], + &[], + grid, + super::block_dims(grid), + true, + ) +} + +pub(super) fn evaluate( + operation: &ops::Operation, + inputs: &[Array], + output: &Array, +) -> Result<(), String> { + match (operation, inputs) { + (ops::Operation::Select, [a, b, c]) => select_evaluate([a, b, c], output), + (ops::Operation::SearchSorted(right), [a, v]) => { + super::sort::searchsorted_evaluate(a, v, output, *right) + } + (ops::Operation::GatherAxis(axis), [src, idx]) => gather_evaluate(src, idx, output, *axis), + (ops::Operation::ScatterAxis(axis), [src, idx, upd]) => { + scatter_evaluate(src, idx, upd, output, *axis) + } + (ops::Operation::ScatterAddRow, [src, idx, upd]) => { + scatter_add_row_evaluate(src, idx, upd, output) + } + (ops::Operation::GatherTake(axis), [src, idx]) => { + gather_take_evaluate(src, idx, output, *axis) + } + ( + ops::Operation::ArangeI32(_) + | ops::Operation::ArangeU32 + | ops::Operation::ArangeI64 + | ops::Operation::ArangeF32 { .. }, + [], + ) => { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let size = output.layout().size() as u32; + if size == 0 { + return Ok(()); + } + if let ops::Operation::ArangeF32 { start, step } = operation { + // Original arange_set_scalars casts start and next before + // subtracting: casting step alone changes large-start ranges. + let next = (start + step) as f32; + let start = *start as f32; + return dispatch_geometry( + "arangefloat32", + &[ + bytes(0, &start), + bytes(1, &(next - start)), + tensor(2, &output.buffer()).output(output.data_size()), + ], + &[], + [size, 1, 1], + [size.min(views::kernel_max_threads("arangefloat32")?), 1, 1], + true, + ); + } + let wide = output.layout().dtype() == Dtype::I64; + let start = match operation { + ops::Operation::ArangeI32(start) => *start, + _ => 0, + }; + let name = match output.layout().dtype() { + Dtype::I64 => "arangeint64", + Dtype::U32 => "arangeuint32", + _ => "arangeint32", + }; + dispatch_geometry( + name, + &[ + if wide { + bytes(0, &0_i64) + } else { + bytes(0, &start) + }, + if wide { + bytes(1, &1_i64) + } else { + bytes(1, &1_i32) + }, + tensor(2, &output.buffer()).output(output.data_size()), + ], + &[], + [size, 1, 1], + [size.min(views::kernel_max_threads(name)?), 1, 1], + true, + ) + } + _ => Err("invalid indexing primitive arity".into()), + } +} + +fn select_evaluate(inputs: [&Array; 3], output: &Array) -> Result<(), String> { + let [a, b, c] = inputs; + let all_scalar = inputs.iter().all(|a| a.data_size() == 1); + let all_vector = inputs.iter().all(|a| a.layout().flags().row_contiguous) + || inputs.iter().all(|a| a.layout().flags().col_contiguous); + let sv = b.data_size() == 1 + && a.layout().flags().row_contiguous + && c.layout().flags().row_contiguous; + let vs = c.data_size() == 1 + && a.layout().flags().row_contiguous + && b.layout().flags().row_contiguous; + let general = !(all_scalar || all_vector || sv || vs); + // common/ternary.h: SSS never donates; VVV tries a,b,c regardless of + // row/column layout; mixed/general tries only row-contiguous donors. + if all_scalar { + let l = b.layout(); + output.set_strided_data( + Buffer::mtplx_bytes(output.itemsize() as u64)?, + 1, + l.strides(), + l.flags(), + 0, + )?; + } else if let Some(source) = inputs + .iter() + .find(|a| (all_vector || a.layout().flags().row_contiguous) && views::can_donate(a, output)) + { + let l = source.layout(); + output.copy_shared_buffer(source, l.strides(), l.flags(), source.data_size(), 0)?; + } else if all_vector { + let l = b.layout(); + output.set_strided_data( + Buffer::mtplx_bytes((output.itemsize() * b.data_size()) as u64)?, + b.data_size(), + l.strides(), + l.flags(), + 0, + )?; + } else { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + if output.layout().size() == 0 { + return Ok(()); + } + let layouts = inputs.map(Array::layout); + let out = output.layout(); + let (shape, strides) = views::collapse_joint( + out.shape(), + &[ + layouts[0].strides(), + layouts[1].strides(), + layouts[2].strides(), + out.strides(), + ], + ); + let ndim = shape.len(); + let large = if general { + inputs.iter().any(|a| a.data_size() > i32::MAX as usize) || out.size() > i32::MAX as usize + } else { + output.data_size() > i32::MAX as usize + }; + let work = if general { + if large { 4 } else { 2 } + } else if output.data_size() < 65536 { + 1 + } else { + (8 / output.itemsize()).max(1) + }; + let prefix = if general { + format!( + "g{}{}", + if ndim <= 3 { + ndim.to_string() + } else { + format!("n{work}") + }, + if large { "large" } else { "" } + ) + } else { + format!( + "{}{}", + if all_scalar || all_vector { + "v" + } else if sv { + "sv" + } else { + "vs" + }, + if large { + "2" + } else if work > 1 { + "n" + } else { + "" + } + ) + }; + let name = format!("{prefix}_Select{}", out.dtype().kernel_name()); + let max = views::kernel_max_threads(&name)?; + let buffers = inputs.map(Array::buffer); + let out_buffer = output.buffer(); + let mut bindings = inputs + .iter() + .zip(&buffers) + .enumerate() + .map(|(i, (a, b))| { + tensor(i as u32, b) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }) + .collect::>(); + bindings.push( + tensor(3, &out_buffer) + .at_byte_offset(output.offset()) + .output(output.data_size()), + ); + let count32 = output.data_size() as i32; + let count64 = output.data_size() as i64; + let (grid, group) = if general { + if max != 1024 { + return Err("[Metal::ternary] Must use 1024 sized block".into()); + } + let dim0 = shape.last().copied().unwrap_or(1) as usize; + let dim1 = shape.iter().rev().nth(1).copied().unwrap_or(1) as usize; + if ndim > 3 { + bindings.extend([ + bytes(4, shape.as_slice()), + bytes(5, strides[0].as_slice()), + bytes(6, strides[1].as_slice()), + bytes(7, strides[2].as_slice()), + bytes(8, &ndim), + ]); + } else { + bindings.extend([ + bytes(4, strides[0].as_slice()), + bytes(5, strides[1].as_slice()), + bytes(6, strides[2].as_slice()), + ]); + } + let grid = [ + if ndim > 3 { dim0.div_ceil(work) } else { dim0 }, + dim1, + out.size() / (dim0 * dim1), + ]; + let grid = grid.map(|n| u32::try_from(n).map_err(|_| "Select grid overflow")); + let grid = [grid[0]?, grid[1]?, grid[2]?]; + (grid, super::block_dims(grid)) + } else { + bindings.push(if large { + bytes(4, &count64) + } else { + bytes(4, &count32) + }); + let threads = output.data_size().div_ceil(work); + let grid = if large { + views::large_copy_grid(&out, work)? + } else { + [threads as u32, 1, 1] + }; + (grid, [threads.min(max as usize) as u32, 1, 1]) + }; + dispatch_geometry(&name, &bindings, &[], grid, group, true) +} + +fn gather_evaluate(src: &Array, idx: &Array, output: &Array, axis: usize) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if output.layout().size() == 0 { + return Ok(()); + } + let sl = src.layout(); + let il = idx.layout(); + let large = sl.size() > i32::MAX as usize || il.size() > i32::MAX as usize; + let name = format!( + "kernel_qwen_mtplx_gather_axis_{}_{}{}_{}{}", + match sl.dtype() { + Dtype::I64 => "i64", + Dtype::Bool => "bool", + Dtype::F32 => "f32", + Dtype::F16 => "f16", + Dtype::U32 => "u32", + _ => "bf16", + }, + if il.dtype() == Dtype::I64 { + "idxi64_" + } else if il.dtype() == Dtype::I32 { + "idxi32_" + } else { + "" + }, + if large { "int64_t" } else { "int" }, + u8::from(sl.flags().row_contiguous), + u8::from(il.flags().row_contiguous) + ); + let pre = il.shape()[..axis] + .iter() + .map(|&n| n as usize) + .product::(); + let post = il.shape()[axis + 1..] + .iter() + .map(|&n| n as usize) + .product::(); + let grid = [ + u32::try_from(post).map_err(|_| "GatherAxis grid overflow")?, + il.shape()[axis] as u32, + u32::try_from(pre).map_err(|_| "GatherAxis grid overflow")?, + ]; + let mut shape = il.shape().to_vec(); + shape.remove(axis); + let mut src_strides = sl.strides().to_vec(); + src_strides.remove(axis); + let mut idx_strides = il.strides().to_vec(); + idx_strides.remove(axis); + let ndim = shape.len(); + let axis_i32 = axis as i32; + let src_buffer = src.buffer(); + let idx_buffer = idx.buffer(); + let out = output.buffer(); + let bindings = [ + tensor(0, &src_buffer) + .at_byte_offset(src.offset()) + .input(src.data_size()), + tensor(1, &idx_buffer) + .at_byte_offset(idx.offset()) + .input(idx.data_size()), + tensor(2, &out).output(output.data_size()), + bytes(3, shape.as_slice()), + bytes(4, src_strides.as_slice()), + bytes(5, idx_strides.as_slice()), + bytes(6, &ndim), + bytes(7, &axis_i32), + bytes(8, &sl.shape()[axis]), + bytes(9, &sl.strides()[axis]), + bytes(10, &il.strides()[axis]), + ]; + dispatch_geometry(&name, &bindings, &[], grid, super::block_dims(grid), true) +} + +#[test] +#[ignore = "requires Apple Metal; pinned Bool ScatterAxis layout and broadcast paths"] +fn mtplx_scatter_axis_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-scatter-axis.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 64); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let shape = case["shape"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap() as i32) + .collect::>(); + let axis = case["axis"].as_u64().unwrap() as usize; + let strided = case["strided"].as_bool().unwrap(); + let scalar = case["scalar"].as_bool().unwrap(); + let source_layout = case["src_layout"].as_str().unwrap(); + let n = shape.iter().product::(); + let boolean = |shape: &[i32], values: &[u8]| { + Array::new(shape, Dtype::Bool, super::scalar_buffer(values).unwrap()).unwrap() + }; + let src = if source_layout == "scalar" { + ops::broadcast_to(&boolean(&[], &[0]), &shape, gpu).unwrap() + } else { + let mult = if source_layout == "strided" { 2 } else { 1 }; + let values = (0..n * mult + 1) + .map(|i| u8::from(i % 3 == 0)) + .collect::>(); + let a = boolean(&[n * mult + 1], &values); + let offset = i32::from(source_layout == "offset"); + let a = ops::slice(&a, &[offset], &[n * mult + offset], &[mult], gpu).unwrap(); + ops::reshape(&a, &shape, gpu).unwrap() + }; + let mut ishape = shape.clone(); + ishape[axis] = 2; + let size = ishape.iter().product::(); + let mult = if strided { 2 } else { 1 }; + let values = (0..size * mult) + .flat_map(|i| (if i / mult % 2 == 0 { -1_i64 } else { 0 }).to_le_bytes()) + .collect::>(); + let idx = Array::new( + &[size * mult], + Dtype::I64, + super::scalar_buffer(&values).unwrap(), + ) + .unwrap(); + let idx = if strided { + ops::slice(&idx, &[0], &[size * mult], &[2], gpu).unwrap() + } else { + idx + }; + let idx = ops::reshape(&idx, &ishape, gpu).unwrap(); + let upd = if scalar { + boolean(&[], &[1]) + } else { + boolean( + &ishape, + &(0..size).map(|i| u8::from(i % 3 == 0)).collect::>(), + ) + }; + if prepared { + ops::evaluate( + &streams, + &[src.clone(), idx.clone(), upd.clone()], + gpu, + false, + ) + .unwrap(); + } + let out = put_along_axis(&src, &idx, &upd, axis as i32, gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap() + }); + let name = format!( + "kernel_qwen_mtplx_scatter_axis_bool_idxi64_int_{}{}", + u8::from(!scalar), + u8::from(!strided) + ); + assert_eq!(calls.iter().filter(|c| c.0 == name).count(), 1, "{calls:?}"); + let read = ops::contiguous( + &ops::astype(&out, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&read.buffer(), n as u32, 4)], + ); + }); + } + } + let empty = Array::new(&[0], Dtype::Bool, super::scalar_buffer(&[]).unwrap()).unwrap(); + let idx = Array::new(&[0], Dtype::I64, super::scalar_buffer(&[]).unwrap()).unwrap(); + assert!(put_along_axis(&empty, &idx, &empty, 1, gpu).is_err()); + let out = put_along_axis(&empty, &idx, &empty, 0, gpu).unwrap(); + assert_eq!(out.id(), empty.id()); + let src = Array::new( + &[3, 5], + Dtype::Bool, + super::scalar_buffer(&[0; 15]).unwrap(), + ) + .unwrap(); + let idx = Array::new( + &[1, 2], + Dtype::I64, + super::scalar_buffer(&[0_i64.to_le_bytes(), (-1_i64).to_le_bytes()].concat()).unwrap(), + ) + .unwrap(); + let upd = Array::new( + &[1, 1, 2], + Dtype::Bool, + super::scalar_buffer(&[1, 0]).unwrap(), + ) + .unwrap(); + let identity = src.buffer().data_identity(); + let out = put_along_axis(&src, &idx, &upd, -1, gpu).unwrap(); + drop(src); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap() + }); + assert_eq!(out.buffer().data_identity(), identity); + assert_eq!( + calls.len(), + 1, + "Vector donation must not insert a copy: {calls:?}" + ); + let mut bytes = [0; 15]; + out.buffer().read(out.offset(), &mut bytes).unwrap(); + assert_eq!(bytes, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0]); + let wrong_upd = Array::new( + &[2, 1, 2], + Dtype::Bool, + super::scalar_buffer(&[1; 4]).unwrap(), + ) + .unwrap(); + assert!(put_along_axis(&out, &idx, &wrong_upd, -1, gpu).is_err()); + let empty_idx = Array::new(&[3, 0], Dtype::I64, super::scalar_buffer(&[]).unwrap()).unwrap(); + let empty_upd = Array::new(&[3, 0], Dtype::Bool, super::scalar_buffer(&[]).unwrap()).unwrap(); + let copied = put_along_axis(&out, &empty_idx, &empty_upd, -1, gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&copied), gpu, false).unwrap() + }); + assert!(calls.iter().all(|c| !c.0.contains("scatter_axis"))); + copied.buffer().read(copied.offset(), &mut bytes).unwrap(); + assert_eq!(bytes, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0]); +} + +#[test] +#[ignore = "requires Apple Metal; Select layout branches, GatherAxis views and empty arguments"] +fn mtplx_graph_indexing_preserves_layouts_and_offsets() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], values: &[f32]| { + Array::new( + shape, + Dtype::BF16, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| ((v.to_bits() >> 16) as u16).to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + let yes = bf16(&[2, 3], &[1., 2., 3., 4., 5., 6.]); + let no = bf16(&[2, 3], &[7., 8., 9., 10., 11., 12.]); + let nine = bf16(&[], &[9.]); + let condition = Array::new( + &[2, 3], + Dtype::Bool, + super::scalar_buffer(&[1, 0, 1, 0, 1, 0]).unwrap(), + ) + .unwrap(); + let scalar_true = + Array::new(&[], Dtype::Bool, super::scalar_buffer(&[1]).unwrap()).unwrap(); + let row_mask = + Array::new(&[2, 1], Dtype::Bool, super::scalar_buffer(&[1, 0]).unwrap()).unwrap(); + let cases = [ + (select(&scalar_true, &nine, &nine, gpu).unwrap(), vec![9.]), + ( + select(&condition, &yes, &no, gpu).unwrap(), + vec![1., 8., 3., 10., 5., 12.], + ), + ( + select(&condition, &nine, &no, gpu).unwrap(), + vec![9., 8., 9., 10., 9., 12.], + ), + ( + select(&condition, &yes, &nine, gpu).unwrap(), + vec![1., 9., 3., 9., 5., 9.], + ), + ( + select(&row_mask, &yes, &nine, gpu).unwrap(), + vec![1., 2., 3., 9., 9., 9.], + ), + ( + select( + &ops::transpose(&condition, &[1, 0], gpu).unwrap(), + &ops::transpose(&yes, &[1, 0], gpu).unwrap(), + &ops::transpose(&no, &[1, 0], gpu).unwrap(), + gpu, + ) + .unwrap(), + vec![1., 10., 8., 5., 3., 12.], + ), + ]; + let check = |array: &Array, expected: &[f32]| { + let dense = ops::contiguous(array, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&dense), gpu, false).unwrap(); + let mut bytes = vec![0; dense.layout().nbytes()]; + dense.buffer().read(dense.offset(), &mut bytes).unwrap(); + let actual = bytes + .chunks_exact(2) + .map(|b| f32::from_bits(u32::from(u16::from_le_bytes(b.try_into().unwrap())) << 16)) + .collect::>(); + assert_eq!(actual, expected); + }; + for (array, expected) in cases { + check(&array, &expected); + } + let indices = Array::new( + &[1, 2], + Dtype::I32, + super::scalar_buffer( + &[-1_i32, 0] + .into_iter() + .flat_map(i32::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + check( + &take_along_axis(&yes, &indices, -1, gpu).unwrap(), + &[3., 1., 6., 4.], + ); + let reversed = ops::slice(&yes, &[0, 2], &[2, -4], &[1, -1], gpu).unwrap(); + check( + &take_along_axis(&reversed, &indices, 1, gpu).unwrap(), + &[1., 3., 4., 6.], + ); + let column = ops::transpose(&yes, &[1, 0], gpu).unwrap(); + // Token IDs are I32, including when selecting packed U32 embedding + // weights. Cover both front-gather and the strided Gather wrapper. + for dtype in [Dtype::U32, Dtype::F16] { + let table = ops::astype(&yes, dtype, false, gpu).unwrap(); + let gathered = take_rows(&table, &indices, gpu).unwrap(); + check( + &ops::astype(&gathered, Dtype::BF16, false, gpu).unwrap(), + &[4., 5., 6., 1., 2., 3.], + ); + let table = ops::transpose(&table, &[1, 0], gpu).unwrap(); + let gathered = take(&table, &indices, 1, gpu).unwrap(); + check( + &ops::astype(&gathered, Dtype::BF16, false, gpu).unwrap(), + &[4., 1., 5., 2., 6., 3.], + ); + } + let unsigned = Array::new( + &[2, 1], + Dtype::U32, + super::scalar_buffer( + &[2_u32, 0] + .into_iter() + .flat_map(u32::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + check( + &take_along_axis(&column, &unsigned, 0, gpu).unwrap(), + &[3., 6., 1., 4.], + ); + for dtype in [Dtype::F16, Dtype::F32, Dtype::U32] { + let table = ops::astype(&yes, dtype, false, gpu).unwrap(); + let gathered = take_along_axis(&table, &indices, -1, gpu).unwrap(); + check( + &ops::astype(&gathered, Dtype::BF16, false, gpu).unwrap(), + &[3., 1., 6., 4.], + ); + let table = ops::transpose(&table, &[1, 0], gpu).unwrap(); + let gathered = take_along_axis(&table, &unsigned, 0, gpu).unwrap(); + check( + &ops::astype(&gathered, Dtype::BF16, false, gpu).unwrap(), + &[3., 6., 1., 4.], + ); + } + // Rank one must pass genuinely empty shape/stride bindings through + // the native bridge, including noncontiguous source/index views. + let vector = ops::reshape(&yes, &[-1], gpu).unwrap(); + let vector = ops::slice(&vector, &[5], &[-7], &[-1], gpu).unwrap(); + let idx_vector = ops::reshape(&indices, &[-1], gpu).unwrap(); + let idx_vector = ops::slice(&idx_vector, &[1], &[-3], &[-1], gpu).unwrap(); + check( + &take_along_axis(&vector, &idx_vector, 0, gpu).unwrap(), + &[6., 1.], + ); + let empty = arange_i32(-3, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&empty), gpu, false).unwrap(); + assert_eq!(empty.layout().size(), 0); + assert!(take_along_axis(&yes, &indices, 2, gpu).is_err()); + assert!(take_along_axis(&yes, &idx_vector, 1, gpu).is_err()); + assert!(select(&indices, &yes, &nine, gpu).is_err()); + // QSA's validity GatherAxis also supports noncontiguous Bool/I64 + // views. Exercise all four source/index row-contiguity combinations. + let boolean = Array::new( + &[2, 3], + Dtype::Bool, + super::scalar_buffer(&[1, 1, 0, 0, 1, 0]).unwrap(), + ) + .unwrap(); + let ids = Array::new( + &[2, 2], + Dtype::I64, + super::scalar_buffer( + &[-1_i64, 0, 1, 0] + .into_iter() + .flat_map(i64::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + for reverse_source in [false, true] { + for reverse_indices in [false, true] { + let src = if reverse_source { + ops::slice(&boolean, &[0, 2], &[2, -4], &[1, -1], gpu).unwrap() + } else { + boolean.clone() + }; + let idx = if reverse_indices { + ops::slice(&ids, &[0, 1], &[2, -3], &[1, -1], gpu).unwrap() + } else { + ids.clone() + }; + let out = take_along_axis(&src, &idx, -1, gpu).unwrap(); + let expected = match (reverse_source, reverse_indices) { + (false, false) => [0., 1., 1., 0.], + (false, true) => [1., 0., 0., 1.], + (true, false) => [1., 0., 1., 0.], + (true, true) => [0., 1., 0., 1.], + }; + check( + &ops::astype(&out, Dtype::BF16, false, gpu).unwrap(), + &expected, + ); + } + } + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/linear.rs b/src/engine/metal/qwen_mtplx/linear.rs new file mode 100644 index 0000000..1e6ecdb --- /dev/null +++ b/src/engine/metal/qwen_mtplx/linear.rs @@ -0,0 +1,1224 @@ +//! Affine quantize/dequantize and installed BF16 transposed projections. +//! Expert/batched matmul and other projection dtypes use separate branches. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream, Streams}; +use super::{affine_bf16_layout, affine_plan, encoder, ops::Operation, views}; + +/// ops.cpp affine_quantize and fast::Quantize's GPU branch. HC V3 uses +/// BF16/group64/8bit; all affine parameter choices use the original kernels. +pub(super) fn quantize( + input: &Array, + group: u32, + bits: u32, + stream: Stream, +) -> Result<[Array; 3], String> { + let layout = input.layout(); + if stream.device() != Device::Gpu + || !matches!(layout.dtype(), Dtype::BF16 | Dtype::F16 | Dtype::F32) + || layout.shape().len() < 2 + || !matches!(group, 32 | 64 | 128) + || !matches!(bits, 2 | 3 | 4 | 5 | 6 | 8) + { + return Err( + "affine quantize requires GPU floating matrices and supported group/bits".into(), + ); + } + let width = *layout.shape().last().unwrap(); + if width % group as i32 != 0 { + return Err("affine quantize width must be divisible by group size".into()); + } + let mut packed = layout.shape().to_vec(); + *packed.last_mut().unwrap() = i32::try_from(i64::from(width) * i64::from(bits) / 32) + .map_err(|_| "quantize shape overflow")?; + let mut params = layout.shape().to_vec(); + *params.last_mut().unwrap() /= group as i32; + Array::make_operations( + stream, + std::slice::from_ref(input), + &[ + Layout::new(&packed, Dtype::U32)?, + Layout::new(¶ms, layout.dtype())?, + Layout::new(¶ms, layout.dtype())?, + ], + Operation::AffineQuantize { group, bits }, + )? + .try_into() + .map_err(|_| "quantize requires three sibling outputs".into()) +} + +pub(super) fn quantize_evaluate( + input: &Array, + outputs: &[Array], + group: u32, + bits: u32, +) -> Result<(), String> { + let allocate = |output: &Array| { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?) + }; + // quantize_impl allocates packed output, makes x row-contiguous, then + // allocates scales/biases (unlike CustomKernel's all-outputs-first order). + allocate(&outputs[0])?; + let input = ensure_row_contiguous(input)?; + allocate(&outputs[1])?; + allocate(&outputs[2])?; + let layout = input.layout(); + let dtype = match layout.dtype() { + Dtype::BF16 => "bfloat16_t", + Dtype::F16 => "float16_t", + Dtype::F32 => "float", + _ => return Err("unsupported affine quantization dtype".into()), + }; + let name = format!("affine_quantize_{dtype}_gs_{group}_b_{bits}"); + let per_thread = group as usize / 32; + let nthreads = layout.size() / per_thread; + if nthreads == 0 { + return Ok(()); + } + let grid = if nthreads > u32::MAX as usize { + let mut shape = layout.shape().to_vec(); + *shape.last_mut().unwrap() /= per_thread as i32; + views::large_copy_grid(&Layout::new(&shape, layout.dtype())?, 1)? + } else { + [nthreads as u32, 1, 1] + }; + super::dispatch_geometry( + &name, + &[ + super::tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + super::tensor(1, &outputs[0].buffer()).output(outputs[0].data_size()), + super::tensor(2, &outputs[1].buffer()).output(outputs[1].data_size()), + super::tensor(3, &outputs[2].buffer()).output(outputs[2].data_size()), + ], + &[], + grid, + [ + nthreads.min(views::kernel_max_threads(&name)? as usize) as u32, + 1, + 1, + ], + true, + ) +} + +/// The affine GPU dequantizer used by both resident and sidecar NGram tables. +pub(super) fn dequantize( + weight: &Array, + scales: &Array, + biases: &Array, + group: u32, + bits: u32, + stream: Stream, +) -> Result { + let w = weight.layout(); + let s = scales.layout(); + let b = biases.layout(); + if stream.device() != Device::Gpu + || w.dtype() != Dtype::U32 + || !matches!(s.dtype(), Dtype::BF16 | Dtype::F16 | Dtype::F32) + || s.dtype() != b.dtype() + || w.shape().len() < 2 + || w.shape().len() != s.shape().len() + || s.shape() != b.shape() + || !matches!(group, 32 | 64 | 128) + || !matches!(bits, 2 | 3 | 4 | 5 | 6 | 8) + { + return Err( + "affine dequantize requires U32 weights and matching floating GPU parameters".into(), + ); + } + let last = w.shape().len() - 1; + let width = i32::try_from(i64::from(w.shape()[last]) * 32 / i64::from(bits)) + .map_err(|_| "dequantize shape overflow")?; + if w.shape()[..last] != s.shape()[..last] + || i64::from(width) != i64::from(s.shape()[last]) * i64::from(group) + { + return Err("dequantize shape does not match group/bits".into()); + } + let mut shape = w.shape().to_vec(); + shape[last] = width; + Array::make_operation_with_inputs( + stream, + &[weight.clone(), scales.clone(), biases.clone()], + Layout::new(&shape, s.dtype())?, + Operation::AffineDequantize { group, bits }, + ) +} + +pub(super) fn dequantize_evaluate( + inputs: &[Array], + output: &Array, + group: u32, + bits: u32, +) -> Result<(), String> { + // quantize_impl: output allocation precedes all three contiguous copies. + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let prepared = inputs + .iter() + .map(ensure_row_contiguous) + .collect::, _>>()?; + let dtype = match output.layout().dtype() { + Dtype::BF16 => "bfloat16_t", + Dtype::F16 => "float16_t", + Dtype::F32 => "float", + _ => return Err("unsupported affine dequantization dtype".into()), + }; + let name = format!("affine_dequantize_{dtype}_gs_{group}_b_{bits}"); + let packs = match bits { + 3 | 5 => 8, + 6 => 4, + _ => 8 / bits, + }; + let nthreads = output.layout().size() / packs as usize; + if nthreads == 0 { + return Ok(()); + } + let grid = if nthreads > u32::MAX as usize { + let w = prepared[0].layout(); + let mut shape = w.shape().to_vec(); + *shape.last_mut().unwrap() = shape + .last() + .unwrap() + .checked_mul(4) + .ok_or("dequantize grid overflow")?; + views::large_copy_grid(&Layout::new(&shape, w.dtype())?, 1)? + } else { + [nthreads as u32, 1, 1] + }; + super::dispatch_geometry( + &name, + &[ + super::tensor(0, &prepared[0].buffer()) + .at_byte_offset(prepared[0].offset()) + .input(prepared[0].data_size()), + super::tensor(1, &prepared[1].buffer()) + .at_byte_offset(prepared[1].offset()) + .input(prepared[1].data_size()), + super::tensor(2, &prepared[2].buffer()) + .at_byte_offset(prepared[2].offset()) + .input(prepared[2].data_size()), + super::tensor(3, &output.buffer()).output(output.data_size()), + ], + &[], + grid, + [ + nthreads.min(views::kernel_max_threads(&name)? as usize) as u32, + 1, + 1, + ], + true, + ) +} + +fn ensure_row_contiguous(input: &Array) -> Result { + if input.layout().flags().row_contiguous { + return Ok(input.clone()); + } + let layout = input.layout(); + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, ©)?; + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + Ok(copy) +} + +pub(super) fn quantized_linear_bf16( + x: &Array, + w: &Array, + scales: &Array, + biases: &Array, + bits: u32, + group: u32, + stream: Stream, +) -> Result { + let xl = x.layout(); + let wl = w.layout(); + if stream.device() != Device::Gpu + || xl.dtype() != Dtype::BF16 + || wl.dtype() != Dtype::U32 + || scales.layout().dtype() != Dtype::BF16 + || biases.layout().dtype() != Dtype::BF16 + || xl.shape().is_empty() + || wl.shape().len() != 2 + || !matches!(bits, 4 | 8) + || !matches!(group, 32 | 64) + { + return Err("quantized linear requires GPU BF16 inputs and 2D U32 affine weights".into()); + } + let k = *xl.shape().last().unwrap() as u32; + let n = wl.shape()[0] as u32; + if k == 0 + || u64::from(k) != wl.shape()[1] as u64 * 32 / u64::from(bits) + || scales.layout().shape() != [n as i32, (k / group) as i32] + || scales.layout().shape() != biases.layout().shape() + { + return Err("quantized linear input/weight/group shapes do not match".into()); + } + let m = u32::try_from(xl.size() / k as usize).map_err(|_| "quantized linear row overflow")?; + affine_plan([m, n, k], bits, group, true)?; + let mut shape = xl.shape().to_vec(); + *shape.last_mut().unwrap() = n as i32; + Array::make_operation_with_inputs( + stream, + &[x.clone(), w.clone(), scales.clone(), biases.clone()], + Layout::new(&shape, Dtype::BF16)?, + Operation::QuantizedLinearBf16 { bits, group }, + ) +} + +fn ensure_row_contiguous_matrix(input: &Array) -> Result { + let layout = input.layout(); + let rank = layout.shape().len(); + let contiguous = if rank == 1 { + layout.strides()[0] == 1 + } else { + layout.strides()[rank - 2] == i64::from(layout.shape()[rank - 1]) + && layout.strides()[rank - 1] == 1 + }; + if contiguous { + return Ok(input.clone()); + } + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, ©)?; + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + Ok(copy) +} + +/// Installed affine/BF16, transposed GatherQMM from ops.cpp. Explicit index +/// casts use the default stream, as indices_or_default does in the reference. +pub(super) fn gather_qmm_bf16( + x: &Array, + [w, scales, biases]: [&Array; 3], + indices: [Option<&Array>; 2], + [bits, group]: [u32; 2], + sorted: bool, + streams: &Streams, + stream: Stream, +) -> Result { + if indices.iter().all(Option::is_none) { + return quantized_linear_bf16(x, w, scales, biases, bits, group, stream); + } + let xl = x.layout(); + let wl = w.layout(); + let sl = scales.layout(); + if stream.device() != Device::Gpu + || xl.dtype() != Dtype::BF16 + || wl.dtype() != Dtype::U32 + || sl.dtype() != Dtype::BF16 + || biases.layout().dtype() != Dtype::BF16 + || xl.shape().len() < 2 + || wl.shape().len() < 2 + || wl.shape().len() != sl.shape().len() + || !matches!(bits, 4 | 8) + || !matches!(group, 32 | 64) + { + return Err("GatherQMM requires BF16 GPU matrices and U32 affine expert weights".into()); + } + let wrank = wl.shape().len(); + let k = *xl.shape().last().unwrap() as u32; + let m = xl.shape()[xl.shape().len() - 2] as u32; + let n = wl.shape()[wrank - 2] as u32; + if wl.shape()[..wrank - 1] != sl.shape()[..wrank - 1] + || sl.shape() != biases.layout().shape() + || u64::from(k) != wl.shape()[wrank - 1] as u64 * 32 / u64::from(bits) + || u64::from(k) != sl.shape()[wrank - 1] as u64 * u64::from(group) + || xl.size() == 0 + || wl.size() == 0 + { + return Err("GatherQMM input/weight/group shapes do not match".into()); + } + affine_plan([m, n, k], bits, group, true)?; + let index = |a: &Array, indices: Option<&Array>| -> Result { + if let Some(indices) = indices { + if !matches!( + indices.layout().dtype(), + Dtype::U8 + | Dtype::U16 + | Dtype::U32 + | Dtype::U64 + | Dtype::I8 + | Dtype::I16 + | Dtype::I32 + | Dtype::I64 + ) { + return Err("GatherQMM indices must be integral".into()); + } + return super::ops::astype( + indices, + Dtype::U32, + false, + streams.default_stream(Device::Gpu)?, + ); + } + let layout = a.layout(); + let shape = &layout.shape()[..layout.shape().len() - 2]; + let count = shape + .iter() + .try_fold(1_i32, |a, &b| a.checked_mul(b)) + .ok_or("GatherQMM index size overflow")?; + super::ops::reshape(&super::indexing::arange_u32(count, stream)?, shape, stream) + }; + let mut inputs = vec![x.clone(), w.clone(), scales.clone(), biases.clone()]; + inputs.extend(super::ops::broadcast_arrays( + &[index(x, indices[0])?, index(w, indices[1])?], + &[], + stream, + )?); + let mut shape = inputs[4].layout().shape().to_vec(); + shape.extend([m as i32, n as i32]); + let layout = Layout::new(&shape, Dtype::BF16)?; + if layout.size() > i32::MAX as usize { + return Err("GatherQMM output size overflow".into()); + } + Array::make_operation_with_inputs( + stream, + &inputs, + layout, + Operation::GatherQmmBf16 { + bits, + group, + right_sorted: sorted && indices[0].is_none(), + }, + ) +} + +pub(super) fn gather_evaluate( + inputs: &[Array], + output: &Array, + bits: u32, + group: u32, + right_sorted: bool, +) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let mut prepared = inputs[..4] + .iter() + .map(ensure_row_contiguous_matrix) + .collect::, _>>()?; + prepared.extend_from_slice(&inputs[4..]); + let k = *prepared[0].layout().shape().last().unwrap() as u32; + let m = prepared[0].layout().shape()[prepared[0].layout().shape().len() - 2] as u32; + let n = *output.layout().shape().last().unwrap() as u32; + let batches = (output.layout().size() / m as usize / n as usize) as u32; + let wl = prepared[1].layout(); + let experts = (wl.size() / wl.shape()[wl.shape().len() - 1] as usize / n as usize) as u32; + drop(wl); + // GatherQMM passes the original x.size()/K to gather_qmm_rhs, before + // that function normalizes or broadcasts x. Do not substitute B here. + let sorted_rows = (prepared[0].layout().size() / k as usize) as u32; + if m == 1 && batches >= 16 && right_sorted && batches / experts >= 4 { + prepared[5] = ensure_row_contiguous(&prepared[5])?; + if prepared[0].layout().size() / k as usize != prepared[5].layout().size() { + let mut shape = prepared[5].layout().shape().to_vec(); + shape.extend([m as i32, k as i32]); + let broadcast = Array::unallocated(&shape, Dtype::BF16)?; + views::broadcast(&prepared[0], &broadcast)?; + prepared[0] = broadcast; + } + for a in &mut prepared[..4] { + *a = ensure_row_contiguous(a)?; + } + } + let [x, w, s, b, lhs, rhs] = prepared.as_slice() else { + return Err("GatherQMM requires six inputs".into()); + }; + let xl = x.layout(); + let wl = w.layout(); + let sl = s.layout(); + let bl = b.layout(); + let ll = lhs.layout(); + let rl = rhs.layout(); + let (batch_shape, batch_strides) = + views::collapse_joint(ll.shape(), &[ll.strides(), rl.strides()]); + let arrays = [w, s, b, x, lhs, rhs, output]; + let buffers = arrays.map(Array::buffer); + super::gather_bf16_layout( + std::array::from_fn(|i| { + let binding = super::tensor(i as u32, &buffers[i]).at_byte_offset(arrays[i].offset()); + if i == 6 { + binding.output(arrays[i].data_size()) + } else { + binding.input(arrays[i].data_size()) + } + }), + [m, n, k, experts, batches, sorted_rows], + [bits, group], + right_sorted, + super::sparse_attention::nax_available(), + [xl.shape(), wl.shape(), &batch_shape], + [ + xl.strides(), + wl.strides(), + sl.strides(), + bl.strides(), + &batch_strides[0], + &batch_strides[1], + ], + ) +} + +pub(super) fn evaluate( + inputs: &[Array], + output: &Array, + bits: u32, + group: u32, +) -> Result<(), String> { + // quantized.cpp allocates output before preparing x, w, scales, biases. + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let prepared = inputs + .iter() + .map(ensure_row_contiguous_matrix) + .collect::, _>>()?; + let [x, w, scales, biases] = prepared.as_slice() else { + return Err("quantized linear requires four inputs".into()); + }; + let k = *x.layout().shape().last().unwrap() as u32; + let m = if x.layout().flags().row_contiguous { + (x.layout().size() / k as usize) as u32 + } else { + x.layout().dim(-2)? as u32 + }; + let n = w.layout().shape()[0] as u32; + let batches = (output.layout().size() / m as usize / n as usize) as u32; + if batches > 1 { + let plan = super::affine_plan_batched([m, n, k], bits, group, true, batches)?; + let buffers = [ + w.buffer(), + scales.buffer(), + biases.buffer(), + x.buffer(), + output.buffer(), + ]; + let layouts = [w.layout(), scales.layout(), biases.layout(), x.layout()]; + let arrays = [w, scales, biases, x]; + let mut bindings = arrays + .iter() + .enumerate() + .map(|(i, a)| { + super::tensor(i as u32, &buffers[i]) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }) + .collect::>(); + bindings.push(super::tensor(4, &buffers[4]).output(output.data_size())); + bindings.extend( + plan.parameters + .iter() + .enumerate() + .map(|(i, p)| super::bytes(5 + i as u32, p)), + ); + let base = 5 + plan.parameters.len() as u32; + let x_batch_ndims = (layouts[3].shape().len() - 2) as i32; + let w_batch_ndims = (layouts[0].shape().len() - 2) as i32; + // quantized.cpp::add_strides_and_shapes, including zero/broadcast + // strides. No flattening, per-batch loop or full-input copy. + bindings.extend([ + super::bytes(base, &x_batch_ndims), + super::bytes(base + 1, layouts[3].shape()), + super::bytes(base + 2, layouts[3].strides()), + super::bytes(base + 3, &w_batch_ndims), + super::bytes(base + 4, layouts[0].shape()), + super::bytes(base + 5, layouts[0].strides()), + super::bytes(base + 6, layouts[1].strides()), + super::bytes(base + 7, layouts[2].strides()), + ]); + return super::dispatch(&plan.name, &bindings, plan.groups, plan.threads); + } + let layout = [w, scales, biases, x].map(|a| (a.offset(), a.data_size())); + affine_bf16_layout( + [ + &w.buffer(), + &scales.buffer(), + &biases.buffer(), + &x.buffer(), + &output.buffer(), + ], + [m, n, k], + bits, + group, + true, + Some(layout), + )?; + Ok(()) +} + +#[test] +#[ignore = "requires Apple Metal and external supervisor; strided/broadcast batched affine dispatch"] +fn mtplx_graph_quantized_linear_batched_identity() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{allocator, configure_sources, ops}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let array = |shape: &[i32], dtype, bytes: Vec| { + Array::new(shape, dtype, super::scalar_buffer(&bytes).unwrap()).unwrap() + }; + for k in [64, 128, 2560] { + let mut packed = vec![0u32; k * k / 8]; + for i in 0..k { + packed[i * k / 8 + i / 8] = 1 << (4 * (i % 8)); + } + let w = array( + &[k as i32, (k / 8) as i32], + Dtype::U32, + packed.into_iter().flat_map(u32::to_le_bytes).collect(), + ); + let shape = [k as i32, (k / 64) as i32]; + let scales = array( + &shape, + Dtype::BF16, + std::iter::repeat_n(0x3f80u16.to_le_bytes(), k * k / 64) + .flatten() + .collect(), + ); + let biases = array(&shape, Dtype::BF16, vec![0; k * k / 64 * 2]); + for m in [1, 3, 33, 64] { + for permuted in [false, true] { + eprintln!("batched identity k={k} m={m} permuted={permuted}"); + let batches = if permuted { 6 } else { 3 }; + let storage_shape = if permuted { + vec![3, 2, m, k as i32] + } else { + vec![1, m, k as i32] + }; + let count = storage_shape.iter().map(|&v| v as usize).product(); + let input = array( + &storage_shape, + Dtype::BF16, + (0..count) + .flat_map(|i| (0x3f00u16 + (i % 128) as u16).to_le_bytes()) + .collect(), + ); + let input = if permuted { + ops::transpose(&input, &[1, 0, 2, 3], gpu).unwrap() + } else { + ops::broadcast_to(&input, &[3, m, k as i32], gpu).unwrap() + }; + let output = + quantized_linear_bf16(&input, &w, &scales, &biases, 4, 64, gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + // Broadcast sets the singleton matrix-row stride to zero. + // quantized.cpp::ensure_row_contiguous_matrix consequently + // copies this case before flattening its three rows. + let copied = !permuted && m == 1; + let plan = if copied { + assert_eq!(calls[0].0, "g2_copybfloat16bfloat16"); + affine_plan([batches, k as u32, k as u32], 4, 64, true) + } else { + super::affine_plan_batched([m as u32, k as u32, k as u32], 4, 64, true, batches) + } + .unwrap(); + assert_eq!(plan.splits, 1); + assert_eq!(calls.len(), 1 + usize::from(copied), "{calls:?}"); + assert_eq!( + calls[usize::from(copied)], + (plan.name, plan.groups, plan.threads, false) + ); + let expected = ops::contiguous(&input, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&expected), gpu, false).unwrap(); + let mut actual = vec![0; output.layout().nbytes()]; + let mut expected_bytes = vec![0; expected.layout().nbytes()]; + output.buffer().read(output.offset(), &mut actual).unwrap(); + expected + .buffer() + .read(expected.offset(), &mut expected_bytes) + .unwrap(); + assert_eq!(actual, expected_bytes); + } + } + } +} + +#[test] +#[ignore = "requires Apple Metal; original affine quantize dtype/group/bit/layout receipts"] +fn mtplx_graph_affine_quantize_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{allocator, configure_sources, ops, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-hyper-graph.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("quantize_")) + .collect::>(); + assert_eq!(fixtures.len(), 59); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let group = row["group"].as_u64().unwrap() as u32; + let bits = row["bits"].as_u64().unwrap() as u32; + let dtype = match row["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => panic!("unexpected fixture dtype"), + }; + let bf16 = |shape: &[i32]| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), 3), + ) + .unwrap() + }; + let layout = row["layout"].as_str().unwrap(); + let input = match layout { + "plain" => bf16(&[3, 256]), + "slice" => ops::slice(&bf16(&[3, 512]), &[0, 0], &[3, 512], &[1, 2], gpu).unwrap(), + "transpose" => ops::transpose(&bf16(&[256, 3]), &[1, 0], gpu).unwrap(), + mode => { + let bits: u16 = match mode { + "zero" => 0, + "positive" => 0x3f80, + "negative" => 0xbf80, + _ => panic!("unexpected fixture layout"), + }; + let value = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&bits.to_le_bytes()).unwrap(), + ) + .unwrap(); + ops::broadcast_to(&value, &[3, 256], gpu).unwrap() + } + }; + let input = ops::astype(&input, dtype, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&input), gpu, false).unwrap(); + let out = quantize(&input, group, bits, gpu).unwrap(); + drop(input); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out[2]), gpu, false).unwrap() + }); + let kernels = calls + .iter() + .filter(|r| r.0.starts_with("affine_quantize_")) + .collect::>(); + assert_eq!(kernels.len(), 1); + assert_eq!( + kernels[0].0, + format!( + "affine_quantize_{}_gs_{group}_b_{bits}", + match dtype { + Dtype::BF16 => "bfloat16_t", + Dtype::F16 => "float16_t", + Dtype::F32 => "float", + _ => unreachable!(), + } + ) + ); + let threads = 3 * 256 / (group / 32); + assert_eq!( + (kernels[0].1, kernels[0].2, kernels[0].3), + ( + [threads, 1, 1], + [ + threads.min(views::kernel_max_threads(&kernels[0].0).unwrap()), + 1, + 1 + ], + true + ) + ); + assert_eq!(calls.len(), if layout == "plain" { 1 } else { 2 }); + let scales = ops::astype(&out[1], Dtype::F32, false, gpu).unwrap(); + let biases = ops::astype(&out[2], Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, &[scales.clone(), biases.clone()], gpu, false).unwrap(); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&out[0].buffer(), (3 * 256 * bits / 32), 4), + (&scales.buffer(), 3 * 256 / group, 4), + (&biases.buffer(), 3 * 256 / group, 4), + ], + ); + }); + } + let invalid = Array::new(&[1, 64], Dtype::BF16, pattern(64, 3)).unwrap(); + assert!(quantize(&invalid, 16, 8, gpu).is_err()); + assert!(quantize(&invalid, 64, 7, gpu).is_err()); + assert!(quantize(&invalid, 128, 8, gpu).is_err()); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original GatherQMM array layouts and expert routing"] +fn mtplx_graph_gather_qmm_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{allocator, configure_sources, mlp::fixture_linear, ops}; + use sha2::{Digest, Sha256}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let rows = include_str!("../../../../tests/fixtures/mtplx-gather-array.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(rows.len(), 52); + let other = streams.new_stream(Device::Gpu).unwrap(); + for row in &rows { + for deferred in [false, true] { + super::eval::execution_tests::observed(|| { + let target = if deferred { other } else { gpu }; + let [xb, m, n, k, e, r, bits, group, rank] = + ["xb", "m", "n", "k", "e", "r", "bits", "group", "rank"] + .map(|key| row[key].as_u64().unwrap() as i32); + let layout = row["layout"].as_str().unwrap(); + let left = row["left"].as_bool().unwrap(); + let right = row["right"].as_bool().unwrap(); + let sorted = row["sorted"].as_bool().unwrap(); + let extra = if layout == "expert_slice" { 2 } else { 1 }; + let pack = fixture_linear( + (e * n * extra) as u32, + k as u32, + bits as u32, + group as u32, + 33, + ); + let transform = |a: &Array, width| { + let a = ops::reshape(a, &[e, n * extra, width], gpu).unwrap(); + match layout { + "expert_slice" => { + ops::slice(&a, &[0, n, 0], &[e, 2 * n, width], &[1; 3], gpu).unwrap() + } + "transpose" => ops::transpose( + &ops::reshape(&a, &[e, width, n], gpu).unwrap(), + &[0, 2, 1], + gpu, + ) + .unwrap(), + _ => a, + } + }; + let w = transform(&pack.weight, k * bits / 32); + let s = transform(&pack.scales, k / group); + let b = transform(&pack.biases, k / group); + let input_step = if layout == "input_slice" { 2 } else { 1 }; + let mut x = Array::new( + &[xb, m, k * input_step], + Dtype::BF16, + pattern((xb * m * k * input_step) as u32, 32), + ) + .unwrap(); + if layout == "transpose" { + x = ops::transpose( + &ops::reshape(&x, &[xb, k, m], gpu).unwrap(), + &[0, 2, 1], + gpu, + ) + .unwrap(); + } else if layout == "input_slice" { + x = ops::slice(&x, &[0; 3], &[xb, m, k * 2], &[1, 1, 2], gpu).unwrap(); + } + if rank == 2 { + x = ops::reshape(&x, &[1, xb, 1, m, k], gpu).unwrap(); + } + if rank == 3 { + x = ops::reshape(&x, &[2, xb / 2, 1, m, k], gpu).unwrap(); + } + if layout == "rank2" { + x = ops::reshape(&x, &[m, k], gpu).unwrap(); + } + let upload = |shape: &[i32], dtype, raw: Vec| { + let buffer = Buffer::mtplx_bytes(raw.len() as u64).unwrap(); + buffer.write(0, &raw).unwrap(); + Array::new(shape, dtype, buffer).unwrap() + }; + let mut rhs = (0..r).map(|i| (i * 5 + 2) % e).collect::>(); + if sorted { + rhs.sort_unstable(); + } + let rhs = if rank > 1 { + let width = r / xb; + let mut raw = vec![0_i32; (xb * (width + 3)) as usize]; + for i in 0..xb as usize { + raw[i * (width + 3) as usize + 1 + ..i * (width + 3) as usize + 1 + width as usize] + .copy_from_slice(&rhs[i * width as usize..(i + 1) * width as usize]); + } + let a = upload( + &[xb, width + 3], + Dtype::I32, + raw.into_iter().flat_map(i32::to_le_bytes).collect(), + ); + let a = ops::slice(&a, &[0, 1], &[xb, 1 + width], &[1; 2], gpu).unwrap(); + ops::reshape( + &a, + &if rank == 2 { + [1, xb, width] + } else { + [2, xb / 2, width] + }, + gpu, + ) + .unwrap() + } else { + upload( + &[r], + Dtype::I32, + rhs.into_iter().flat_map(i32::to_le_bytes).collect(), + ) + }; + let lhs = upload( + &[r], + Dtype::I64, + (0..r) + .flat_map(|i| i64::from((i * 2 + 1) % xb).to_le_bytes()) + .collect(), + ); + if !deferred { + ops::evaluate( + &streams, + &[ + x.clone(), + w.clone(), + s.clone(), + b.clone(), + lhs.clone(), + rhs.clone(), + ], + gpu, + false, + ) + .unwrap(); + } + let (output, construction) = capture_dispatches(|| { + gather_qmm_bf16( + &x, + [&w, &s, &b], + [left.then_some(&lhs), right.then_some(&rhs)], + [bits as u32, group as u32], + sorted, + &streams, + target, + ) + .unwrap() + }); + assert!(construction.is_empty()); + assert_eq!(output.stream(), Some(target)); + assert_eq!( + output.layout().shape(), + row["shape"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap() as i32) + .collect::>() + ); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + let kernels = calls + .iter() + .filter(|c| c.0.starts_with("affine_gather_")) + .collect::>(); + assert_eq!(kernels.len(), 1, "{}", row["kernel"]); + let rhs_sorted = m == 1 && r >= 16 && sorted && !left && r / e >= 4; + assert_eq!( + kernels[0].0.contains("qmm_rhs"), + rhs_sorted, + "{}", + row["kernel"] + ); + if rhs_sorted { + let bm = if r / e < 64 { 32 } else { 64 }; + assert_eq!( + kernels[0].1, + [(n as u32).div_ceil(64), (r as u32).div_ceil(bm), 1] + ); + assert!(kernels[0].0.contains(&format!("_bm_{bm}_"))); + } else if m as u32 >= super::qmv_limit(k as u32, n as u32) { + assert!(kernels[0].0.contains("qmm_t_nax")); + } else { + assert!(kernels[0].0.contains("qmv")); + } + assert!(calls.iter().any(|c| c.0 == "arangeuint32") || (left && right)); + if !deferred && layout == "expert_slice" && !rhs_sorted { + // No normalization copies for row-dense expert slices: + // only two index primitives and the gather kernel. + assert_eq!(calls.len(), 3, "{}: {:?}", row["kernel"], calls); + } + let converted = ops::astype(&output, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&converted), gpu, false).unwrap(); + let mut raw = vec![0; converted.layout().nbytes()]; + converted + .buffer() + .read(converted.offset(), &mut raw) + .unwrap(); + let hash = Sha256::digest(raw) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + assert_eq!( + hash, + row["sha256"][0].as_str().unwrap(), + "{} deferred={deferred}", + row["kernel"] + ); + }); + } + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original table dequantize dtype/group/bit/layout receipts"] +fn mtplx_graph_affine_dequantize_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{ + allocator, + binary::{Binary, binary}, + configure_sources, ops, + stream::Streams, + }; + use sha2::{Digest, Sha256}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-dequantize.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 324); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let group = row["group"].as_u64().unwrap() as u32; + let bits = row["bits"].as_u64().unwrap() as u32; + let dtype = match row["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let layout = row["layout"].as_str().unwrap(); + let value = |cols: i32, packed: bool, salt: u32| { + let shape = match layout { + "transpose" => vec![cols, 3], + "slice" => vec![3, cols * 2], + "offset" => vec![4, cols], + "broadcast" => vec![1, cols], + "batch" => vec![2, 3, cols], + _ => vec![3, cols], + }; + let count = shape.iter().product::() as u32; + let a = if packed { + let raw = (0..count) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + Array::new(&shape, Dtype::U32, super::scalar_buffer(&raw).unwrap()).unwrap() + } else { + let a = Array::new(&shape, Dtype::BF16, pattern(count, salt)).unwrap(); + let scale = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&0x4280u16.to_le_bytes()).unwrap(), + ) + .unwrap(); + let a = binary(&a, &scale, Binary::Divide, gpu).unwrap(); + ops::astype(&a, dtype, false, gpu).unwrap() + }; + match layout { + "transpose" => ops::transpose(&a, &[1, 0], gpu).unwrap(), + "slice" => ops::slice(&a, &[0, 0], &[3, cols * 2], &[1, 2], gpu).unwrap(), + "offset" => ops::slice(&a, &[1, 0], &[4, cols], &[1, 1], gpu).unwrap(), + "broadcast" => ops::broadcast_to(&a, &[3, cols], gpu).unwrap(), + _ => a, + } + }; + for deferred in [false, true] { + let inputs = [ + value((256 * bits / 32) as i32, true, 0), + value((256 / group) as i32, false, 3), + value((256 / group) as i32, false, 4), + ]; + if !deferred { + ops::evaluate(&streams, &inputs, gpu, false).unwrap(); + } + let (output, construction) = capture_dispatches(|| { + dequantize(&inputs[0], &inputs[1], &inputs[2], group, bits, gpu).unwrap() + }); + assert!(construction.is_empty()); + drop(inputs); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + let kernels = calls + .iter() + .filter(|c| c.0.starts_with("affine_dequantize_")) + .collect::>(); + assert_eq!(kernels.len(), 1); + let tag = match dtype { + Dtype::BF16 => "bfloat16_t", + Dtype::F16 => "float16_t", + _ => "float", + }; + assert_eq!( + kernels[0].0, + format!("affine_dequantize_{tag}_gs_{group}_b_{bits}") + ); + let packs = match bits { + 3 | 5 => 8, + 6 => 4, + _ => 8 / bits, + }; + let rows = if layout == "batch" { 6 } else { 3 }; + let nthreads = rows * 256 / packs; + assert_eq!( + (kernels[0].1, kernels[0].2, kernels[0].3), + ( + [nthreads, 1, 1], + [ + nthreads.min(views::kernel_max_threads(&kernels[0].0).unwrap()), + 1, + 1 + ], + true + ) + ); + if !deferred { + assert_eq!( + calls.len(), + if matches!(layout, "transpose" | "slice" | "broadcast") { + 4 + } else { + 1 + } + ); + } + let expected_shape = if layout == "batch" { + vec![2, 3, 256] + } else { + vec![3, 256] + }; + assert_eq!(output.layout().shape(), expected_shape); + let read = ops::astype(&output, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + let mut bytes = vec![0; read.layout().nbytes()]; + read.buffer().read(read.offset(), &mut bytes).unwrap(); + let hash = Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(); + assert_eq!( + hash, + row["sha256"][0].as_str().unwrap(), + "{} deferred={deferred}", + row["kernel"] + ); + } + }); + } + let w = Array::new(&[1, 4], Dtype::U32, Buffer::mtplx_bytes(16).unwrap()).unwrap(); + let s = Array::new(&[1, 1], Dtype::BF16, pattern(1, 3)).unwrap(); + assert!(dequantize(&w, &s, &s, 32, 4, gpu).is_ok()); + assert!(dequantize(&w, &s, &s, 64, 4, gpu).is_err()); + assert!(dequantize(&s, &s, &s, 32, 4, gpu).is_err()); + assert!(dequantize(&w, &s, &s, 32, 7, gpu).is_err()); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal; 78 pinned affine fixtures through lazy graph"] +fn mtplx_graph_quantized_linear_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify}, + }; + use super::{allocator, configure_sources, ops, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("affine_")) + .collect::>(); + assert_eq!(fixtures.len(), 78); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let [m, n, k, group, bits] = + ["m", "n", "k", "group", "bits"].map(|key| row[key].as_u64().unwrap() as u32); + for variant in 0..3 { + let array = |shape: [u32; 2], dtype: Dtype, data: Buffer| { + let [rows, cols] = shape.map(|d| d as i32); + if variant == 0 { + return Array::new(&[rows, cols], dtype, data).unwrap(); + } + let width = dtype.itemsize(); + let mut bytes = vec![0; rows as usize * cols as usize * width]; + data.read(0, &mut bytes).unwrap(); + let (backing_shape, packed) = if variant == 1 { + let mut packed = vec![0; cols as usize * width]; + packed.extend(bytes); + ([rows + 1, cols], packed) + } else { + let packed = bytes + .chunks_exact(width) + .flat_map(|word| { + word.iter().copied().chain(std::iter::repeat_n(0, width)) + }) + .collect::>(); + ([rows, cols * 2], packed) + }; + let storage = Buffer::mtplx_bytes(packed.len() as u64).unwrap(); + storage.write(0, &packed).unwrap(); + let backing = Array::new(&backing_shape, dtype, storage).unwrap(); + ops::slice( + &backing, + &[i32::from(variant == 1), 0], + &backing_shape, + &[1, if variant == 2 { 2 } else { 1 }], + gpu, + ) + .unwrap() + }; + let packed = (0..n * k * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let weight = Buffer::mtplx_bytes(packed.len() as u64).unwrap(); + weight.write(0, &packed).unwrap(); + let w = array([n, k * bits / 32], Dtype::U32, weight); + let scales = array([n, k / group], Dtype::BF16, pattern(n * k / group, 23)); + let biases = array([n, k / group], Dtype::BF16, pattern(n * k / group, 24)); + let x = array([m, k], Dtype::BF16, pattern(m * k, 25)); + let x = ops::expand_dims(&x, &[0], gpu).unwrap(); + let out = + quantized_linear_bf16(&x, &w, &scales, &biases, bits, group, gpu).unwrap(); + drop((x, w, scales, biases)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.layout().shape(), [1, m as i32, n as i32]); + verify(row["kernel"].as_str().unwrap(), &[(&out.buffer(), m * n)]); + } + }); + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/load.rs b/src/engine/metal/qwen_mtplx/load.rs new file mode 100644 index 0000000..5fdacdd --- /dev/null +++ b/src/engine/metal/qwen_mtplx/load.rs @@ -0,0 +1,317 @@ +//! Safetensors Load's CPU primitive and original two independent I/O pools. +use super::super::gpu::{Buffer, BufferDataHold, ds4_gpu_tensor_contents}; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream, Streams}; +use super::{ops, scheduler}; +use std::fs::File; +use std::os::fd::AsRawFd; +use std::path::Path; +use std::sync::{Arc, Mutex, OnceLock, mpsc}; + +const BATCH: usize = 1 << 25; +type Task = Box; +struct Pool(mpsc::Sender); +impl Pool { + fn new(name: &str) -> Result { + let (tx, rx) = mpsc::channel::(); + let rx = Arc::new(Mutex::new(rx)); + for i in 0..4 { + let rx = rx.clone(); + std::thread::Builder::new() + .name(format!("{name}-{i}")) + .spawn(move || { + loop { + let task = rx.lock().unwrap().recv(); + match task { + Ok(task) => task(), + Err(_) => break, + } + } + }) + .map_err(|e| e.to_string())?; + } + Ok(Self(tx)) + } + fn enqueue( + &self, + task: impl FnOnce() -> Result<(), String> + Send + 'static, + ) -> Result>, String> { + let (tx, rx) = mpsc::channel(); + self.0 + .send(Box::new(move || { + let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(task)) + .unwrap_or_else(|_| Err("MTPLX file load worker panicked".into())); + let _ = tx.send(result); + })) + .map_err(|e| e.to_string())?; + Ok(rx) + } +} + +fn pool(parallel: bool) -> Result<&'static Pool, String> { + static LOAD: OnceLock> = OnceLock::new(); + static READ: OnceLock> = OnceLock::new(); + if parallel { + READ.get_or_init(|| Pool::new("mtplx-pread")) + } else { + LOAD.get_or_init(|| Pool::new("mtplx-load")) + } + .as_ref() + .map_err(Clone::clone) +} + +#[derive(Clone)] +struct Destination { + address: usize, + // Held through every sub-read, including an outer read failure. Workers + // never access Array/Rc or Buffer descriptors. Their ranges are disjoint. + _data: BufferDataHold, +} + +impl Destination { + fn read(&self, file: &File, start: usize, mut count: usize, offset: u64) -> Result<(), String> { + let mut address = self.address + start; + while count != 0 { + // SAFETY: Load allocated this exact contiguous range; the Data + // hold outlives the write. No graph consumer runs before the CPU + // completion event. ParallelFileReader assigns disjoint ranges. + let n = unsafe { + libc::pread( + file.as_raw_fd(), + address as *mut libc::c_void, + count, + offset as libc::off_t, + ) + }; + if n <= 0 { + return Err("[read] Unable to read from file.".into()); + } + address += n as usize; + count -= n as usize; + // Preserve pinned ParallelFileReader's fixed offset for a short + // pread retry; do not silently repair the reference's behavior. + } + Ok(()) + } +} + +pub(super) struct Load { + file: Arc, + offset: u64, +} +impl Load { + pub(super) fn evaluate( + &self, + output: &Array, + stream: Stream, + streams: &Streams, + ) -> Result<(), String> { + let bytes = output.layout().nbytes(); + let buffer = if bytes > 0 + && let Some(allocator) = streams.allocator() + { + allocator + .allocate(bytes)? + .ok_or("Load allocator returned no nonempty storage")? + } else { + Buffer::mtplx_bytes(bytes as u64)? + }; + let address = unsafe { ds4_gpu_tensor_contents(buffer.raw()) } as usize; + if bytes > 0 && address == 0 { + return Err("Load allocation has no shared CPU storage".into()); + } + let destination = Destination { + address, + _data: buffer.hold_data(), + }; + output.set_data(buffer)?; + let file = self.file.clone(); + let offset = self.offset; + let future = pool(false)?.enqueue(move || { + let mut pending = Vec::new(); + let mut start = 0; + let mut direct = Ok(()); + while start < bytes { + let count = bytes - start; + if count < BATCH { + direct = destination.read(&file, start, count, offset + start as u64); + break; + } + let destination = destination.clone(); + let file = file.clone(); + pending.push(pool(true)?.enqueue(move || { + destination.read(&file, start, BATCH, offset + start as u64) + })?); + start += BATCH; + } + // Drain all launched reads even on an error: no surviving worker + // may mutate memory after a failed graph begins releasing it. + for future in pending { + let result = future.recv().map_err(|e| e.to_string()).and_then(|r| r); + if direct.is_ok() { + direct = result; + } + } + direct + })?; + scheduler::global().enqueue(stream.index(), move || { + future.recv().map_err(|e| e.to_string())? + }) + } +} + +pub(super) fn dtype(name: &str) -> Result { + match name { + "BF16" => Ok(Dtype::BF16), + "F16" => Ok(Dtype::F16), + "F32" => Ok(Dtype::F32), + "BOOL" => Ok(Dtype::Bool), + "U8" => Ok(Dtype::U8), + "U16" => Ok(Dtype::U16), + "U32" => Ok(Dtype::U32), + "U64" => Ok(Dtype::U64), + "I8" => Ok(Dtype::I8), + "I16" => Ok(Dtype::I16), + "I32" => Ok(Dtype::I32), + "I64" => Ok(Dtype::I64), + "C64" => Ok(Dtype::C64), + "F8_E4M3" | "F8_E8M0" => Ok(Dtype::U8), + _ => Err(format!("unsupported Qwen safetensors dtype {name}")), + } +} + +/// Like mx.load: create CPU graph leaves, without reading tensor payloads. +pub(super) fn safetensors( + path: &Path, + streams: &Streams, +) -> Result, String> { + let mut file = File::open(path).map_err(|e| e.to_string())?; + let header = super::super::super::qwen::read_tensor_header_file(path, &mut file)?; + let file = Arc::new(file); + let cpu = streams.default_stream(Device::Cpu)?; + header + .tensors + .into_iter() + .map(|(name, info)| { + let shape = info + .shape + .iter() + .map(|&d| i32::try_from(d).map_err(|e| e.to_string())) + .collect::, _>>()?; + let layout = Layout::new(&shape, dtype(&info.dtype)?)?; + if info.offsets[1] - info.offsets[0] != layout.nbytes() as u64 { + return Err(format!("{name} invalid data offsets")); + } + let offset = header + .data_start + .checked_add(info.offsets[0]) + .ok_or("tensor offset overflow")?; + if offset + .checked_add(layout.nbytes() as u64) + .is_none_or(|end| end > i64::MAX as u64) + { + return Err("tensor offset exceeds pread range".into()); + } + let array = Array::make_operation_with_inputs( + cpu, + &[], + layout, + ops::Operation::Load(Load { + file: file.clone(), + offset, + }), + )?; + Ok((name, array)) + }) + .collect() +} + +#[test] +#[ignore = "requires Apple Metal; bounded CPU Load and dependent GPU graph"] +fn mtplx_safetensors_load_laziness_boundaries_and_lifetime() { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, + unary::{Unary, unary}, + }; + use std::io::Write; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + struct Temp(std::path::PathBuf); + impl Drop for Temp { + fn drop(&mut self) { + let _ = std::fs::remove_file(&self.0); + } + } + let path = Temp(std::env::temp_dir().join(format!( + "mtplx-load-{}-{}.safetensors", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ))); + for bytes in [0, 16, BATCH - 2, BATCH, BATCH + 2, 2 * BATCH + 14] { + for asynchronous in [false, true] { + super::eval::execution_tests::observed(|| { + let header = serde_json::to_vec(&serde_json::json!({"tensor": {"dtype":"BF16", "shape":[bytes/2], "data_offsets":[0,bytes]}})).unwrap(); + let mut file = File::create(&path.0).unwrap(); + file.write_all(&(header.len() as u64).to_le_bytes()) + .unwrap(); + file.write_all(&header).unwrap(); + file.set_len(8 + header.len() as u64 + bytes as u64) + .unwrap(); + let mut arrays = safetensors(&path.0, &streams).unwrap(); + let loaded = arrays.remove("tensor").unwrap(); + assert_eq!(loaded.status(), super::eval::Status::Unscheduled); + assert_eq!(loaded.stream().unwrap().device(), Device::Cpu); + // Payload is written AFTER creation of the Load graph leaf. + let expected = (0..bytes / 2) + .flat_map(|i| (0x3c00u16 + (i % 512) as u16).to_le_bytes()) + .collect::>(); + file.write_all(&expected).unwrap(); + drop(file); + std::fs::remove_file(&path.0).unwrap(); + let prefix = + ops::slice(&loaded, &[0], &[(bytes / 2).min(8) as i32], &[1], gpu).unwrap(); + let out = unary(&prefix, Unary::Abs, gpu).unwrap(); + ops::evaluate(&streams, &[loaded.clone(), out.clone()], gpu, asynchronous).unwrap(); + if asynchronous { + ops::evaluate(&streams, &[loaded.clone(), out.clone()], gpu, false).unwrap(); + } + if bytes > 0 { + assert!( + streams.allocator().unwrap().stats().active + >= loaded.buffer().allocation_bytes() as usize, + "CPU Load must use the same allocator as GPU graph nodes" + ); + } + let mut actual = vec![0; bytes]; + loaded.buffer().read(loaded.offset(), &mut actual).unwrap(); + assert_eq!(actual, expected, "bytes={bytes} async={asynchronous}"); + let mut prefix = vec![0; (bytes / 2).min(8) * 2]; + out.buffer().read(out.offset(), &mut prefix).unwrap(); + assert_eq!(prefix, expected[..prefix.len()]); + }); + } + } + super::eval::execution_tests::observed(|| { + let header = br#"{"tensor":{"dtype":"BF16","shape":[8],"data_offsets":[0,16]}}"#; + let mut file = File::create(&path.0).unwrap(); + file.write_all(&(header.len() as u64).to_le_bytes()) + .unwrap(); + file.write_all(header).unwrap(); + file.write_all(&[0; 16]).unwrap(); + let mut arrays = safetensors(&path.0, &streams).unwrap(); + let loaded = arrays.remove("tensor").unwrap(); + file.set_len(8 + header.len() as u64).unwrap(); + assert!( + ops::evaluate(&streams, &[loaded], gpu, false) + .unwrap_err() + .contains("Unable to read") + ); + }); + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/mlp.rs b/src/engine/metal/qwen_mtplx/mlp.rs new file mode 100644 index 0000000..5fbc1b6 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/mlp.rs @@ -0,0 +1,321 @@ +//! The installed _FusedGateUpMLP as ordinary graph nodes, including the +//! captured compiled nn.silu primitive, not an eager multi-kernel callback. +#[cfg(test)] +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{binary, linear, ops}; + +pub(super) fn silu(input: &Array, stream: Stream) -> Result { + let layout = input.layout(); + if layout.dtype() != Dtype::BF16 || layout.shape().is_empty() || stream.device() != Device::Gpu + { + return Err("captured SiLU requires a non-scalar BF16 GPU input".into()); + } + // compile.cpp traces a nested compiled function's body when an input is + // a tracer. An opaque captured SiLU would prevent outer-run fusion. + if input.is_tracer() { + let sigmoid = super::unary::unary(input, super::unary::Unary::Sigmoid, stream)?; + return binary::binary(input, &sigmoid, binary::Binary::Multiply, stream); + } + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), Dtype::BF16)?, + ops::Operation::SiluBf16, + ) +} + +pub(super) fn silu_evaluate(input: &Array, output: &Array) -> Result<(), String> { + super::compiled::evaluate( + std::slice::from_ref(input), + output, + "kernel_qwen_mtplx_silu_bf16", + ) +} + +/// activations.swiglu is one compiled primitive; unlike fused-gate/up SiLU, +/// it must not become a separate SiLU node followed by an ordinary multiply. +pub(super) fn swiglu(gate: &Array, up: &Array, stream: Stream) -> Result { + if stream.device() != Device::Gpu + || [gate, up].iter().any(|a| a.layout().dtype() != Dtype::BF16) + { + return Err("captured SwiGLU requires BF16 GPU inputs".into()); + } + if gate.is_tracer() || up.is_tracer() { + return binary::binary(&silu(gate, stream)?, up, binary::Binary::Multiply, stream); + } + let inputs = ops::broadcast_arrays(&[gate.clone(), up.clone()], &[], stream)?; + Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new(inputs[0].layout().shape(), Dtype::BF16)?, + ops::Operation::SwiGluBf16, + ) +} + +#[derive(Clone)] +pub(super) struct QuantizedLinear { + pub(super) weight: Array, + pub(super) scales: Array, + pub(super) biases: Array, + pub(super) bits: u32, + pub(super) group: u32, +} + +#[derive(Clone, Copy)] +pub(super) enum Linear<'a> { + Dense(&'a Array), + Quantized(&'a QuantizedLinear), +} + +impl Linear<'_> { + pub(super) fn apply(&self, input: &Array, stream: Stream) -> Result { + match self { + Self::Dense(weight) => super::dense::linear(input, weight, stream), + Self::Quantized(layer) => layer.apply(input, stream), + } + } + pub(super) fn weight(&self) -> &Array { + match self { + Self::Dense(weight) => weight, + Self::Quantized(layer) => &layer.weight, + } + } +} + +impl QuantizedLinear { + pub(super) fn apply(&self, input: &Array, stream: Stream) -> Result { + linear::quantized_linear_bf16( + input, + &self.weight, + &self.scales, + &self.biases, + self.bits, + self.group, + stream, + ) + } +} + +pub(super) fn fused_gate_up_mlp( + input: &Array, + gu: &QuantizedLinear, + down: &QuantizedLinear, + stream: Stream, +) -> Result { + let projected = gu.apply(input, stream)?; + let width = *projected + .layout() + .shape() + .last() + .ok_or("MLP projection rank")?; + if width % 2 != 0 { + return Err("MLP gate/up width must be even".into()); + } + let split = ops::split(&projected, &[width / 2], -1, stream)?; + let gate = silu(&split[0], stream)?; + let hidden = binary::binary(&gate, &split[1], binary::Binary::Multiply, stream)?; + down.apply(&hidden, stream) +} + +/// Shared deterministic affine packs for model-free graph reference tests. +#[cfg(test)] +pub(super) fn fixture_linear(n: u32, k: u32, bits: u32, group: u32, salt: u32) -> QuantizedLinear { + use super::super::qwen_mtplx_tests::pattern_scaled; + let words = (0..n * k / 32 * bits) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + QuantizedLinear { + weight: Array::new(&[n as i32, (k * bits / 32) as i32], Dtype::U32, w).unwrap(), + scales: Array::new( + &[n as i32, (k / group) as i32], + Dtype::BF16, + pattern_scaled(n * k / group, salt, 1. / 64.), + ) + .unwrap(), + biases: Array::new( + &[n as i32, (k / group) as i32], + Dtype::BF16, + pattern_scaled(n * k / group, salt + 1, 1. / 64.), + ) + .unwrap(), + bits, + group, + } +} + +#[test] +#[ignore = "requires Apple M5 Max; actual MTPLX shared MLP reference receipts"] +fn mtplx_graph_shared_mlp_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-shared-mlp.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 24); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let [rows, k, intermediate, bits, group] = + ["rows", "k", "intermediate", "bits", "group"] + .map(|key| row[key].as_u64().unwrap() as u32); + let linear = |n, k, salt| fixture_linear(n, k, bits, group, salt); + let gu = linear(2 * intermediate, k, 46); + let down = linear(k, intermediate, 48); + let input = Array::new( + &[1, rows as i32, k as i32], + Dtype::BF16, + pattern(rows * k, 44), + ) + .unwrap(); + let out = fused_gate_up_mlp(&input, &gu, &down, gpu).unwrap(); + drop(input); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + verify( + row["kernel"].as_str().unwrap(), + &[(&out.buffer(), rows * k)], + ); + }); + } + // Existing SiLU and gate/up receipts, now through real Split siblings. + for row in include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("gate_up_")) + { + let rows = row["rows"].as_u64().unwrap() as u32; + let intermediate = row["intermediate"].as_u64().unwrap() as u32; + let input = Array::new( + &[1, rows as i32, (2 * intermediate) as i32], + Dtype::BF16, + pattern(rows * intermediate * 2, 37), + ) + .unwrap(); + let split = ops::split(&input, &[intermediate as i32], -1, gpu).unwrap(); + let gate = silu(&split[0], gpu).unwrap(); + let output = binary::binary(&gate, &split[1], binary::Binary::Multiply, gpu).unwrap(); + ops::evaluate(&streams, &[gate.clone(), output.clone()], gpu, false).unwrap(); + assert_eq!(split[0].data_size(), (rows * intermediate) as usize); + assert_eq!(split[1].data_size(), (rows * intermediate) as usize); + verify( + row["kernel"].as_str().unwrap(), + &[ + (&gate.buffer(), rows * intermediate), + (&output.buffer(), rows * intermediate), + ], + ); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; Split sibling ownership and compiled SiLU layouts"] +fn mtplx_graph_split_and_compiled_silu_layouts() { + super::eval::execution_tests::observed(|| { + use super::super::{gpu::Context, qwen_mtplx_tests::pattern}; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let base = Array::new(&[6], Dtype::BF16, pattern(6, 37)).unwrap(); + for (indices, lengths) in [ + (vec![2, 4], vec![2, 2, 2]), + (vec![2, 2, 4], vec![2, 0, 2, 2]), + (vec![4, 2], vec![4, 0, 4]), + (vec![-2], vec![4, 2]), + ] { + let pieces = ops::split(&base, &indices, 0, gpu).unwrap(); + // Only the last sibling is requested; fast Split must still + // materialize all its outputs from one shared operation payload. + ops::evaluate(&streams, &[pieces.last().unwrap().clone()], gpu, false).unwrap(); + ops::evaluate(&streams, &pieces, gpu, false).unwrap(); + for (piece, len) in pieces.iter().zip(lengths) { + assert_eq!(piece.layout().shape(), [len]); + assert_eq!(piece.data_size(), len as usize); + if len > 0 { + assert_eq!( + piece.buffer().data_identity(), + base.buffer().data_identity() + ); + } + } + } + assert_eq!(ops::split(&base, &[], 0, gpu).unwrap()[0].id(), base.id()); + assert!(ops::split(&base, &[2], 2, gpu).is_err()); + let base = Array::new(&[2, 6], Dtype::BF16, pattern(12, 37)).unwrap(); + let parts = ops::split(&base, &[3], 1, gpu).unwrap(); + ops::evaluate(&streams, &parts, gpu, false).unwrap(); + for part in &parts { + assert_eq!(part.data_size(), 6); // not the 9-element address span + assert_eq!(part.layout().strides(), [6, 1]); + assert!(!part.layout().flags().contiguous); + } + for rank in [1, 4, 8] { + let shape = vec![2; rank]; + let input = Array::new(&shape, Dtype::BF16, pattern(1 << rank, 37)).unwrap(); + let dense = silu(&input, gpu).unwrap(); + let interleaved = (0..rank as i32) + .step_by(2) + .chain((1..rank as i32).step_by(2)) + .collect::>(); + for (axes, reverse) in [ + ((0..rank as i32).rev().collect::>(), false), + (interleaved.clone(), false), + (interleaved, true), + ] { + let view = |x: &Array| { + let x = ops::transpose(x, &axes, gpu).unwrap(); + if reverse { + ops::slice(&x, &vec![1; rank], &vec![-3; rank], &vec![-1; rank], gpu) + .unwrap() + } else { + x + } + }; + let actual = silu(&view(&input), gpu).unwrap(); + let expected = view(&dense); + let actual = ops::contiguous(&actual, false, gpu).unwrap(); + let expected = ops::contiguous(&expected, false, gpu).unwrap(); + ops::evaluate(&streams, &[actual.clone(), expected.clone()], gpu, false).unwrap(); + let mut a = vec![0; actual.layout().nbytes()]; + let mut b = vec![0; expected.layout().nbytes()]; + actual.buffer().read(actual.offset(), &mut a).unwrap(); + expected.buffer().read(expected.offset(), &mut b).unwrap(); + assert_eq!(a, b, "rank {rank} reversed {reverse}"); + } + } + // Unlike common unary arithmetic, compiled SiLU has no 16KiB slack + // limit on donation. Preserve that distinction for captured graphs. + let buffer = Buffer::mtplx_bytes(20000).unwrap(); + buffer.write(0, &[0; 16]).unwrap(); + let identity = buffer.data_identity(); + let input = Array::new(&[8], Dtype::BF16, buffer).unwrap(); + let out = silu(&input, gpu).unwrap(); + drop(input); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.buffer().data_identity(), identity); + // Negative singleton strides select the strided compiled branch; + // row-contiguous donation there must use OUTPUT strides. + let input = Array::new(&[2], Dtype::BF16, pattern(2, 37)).unwrap(); + let identity = input.buffer().data_identity(); + let reversed = ops::slice(&input, &[1], &[-3], &[-1], gpu).unwrap(); + let singleton = ops::slice(&reversed, &[0], &[1], &[1], gpu).unwrap(); + let out = silu(&singleton, gpu).unwrap(); + drop((input, reversed, singleton)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.buffer().data_identity(), identity); + assert_eq!(out.layout().strides(), [1]); + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/model.rs b/src/engine/metal/qwen_mtplx/model.rs new file mode 100644 index 0000000..4f392c5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/model.rs @@ -0,0 +1,806 @@ +//! Qwen4ExpTextModel/TextModel graph orchestration from the pinned MTPLX. +//! GDN runs use the reference simplify/fuse passes. Synthetic run graphs are +//! checked; real-weight and serving integration remain outside this test port. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::decoder::{Attention, AttentionCache, Cache, DecoderLayer, Options}; +use super::mlp::Linear; +use super::stream::{Stream, Streams}; +use super::{cache::QsaCache, compiled::Replay, gdn, hyper, indexing, linear, ops, ple}; +use std::collections::HashMap; +use std::ops::Range; + +#[derive(Clone, Copy, Default)] +pub(super) struct CompilePolicy { + explicit_off: bool, + environment: bool, + lane: bool, +} + +impl CompilePolicy { + pub(super) fn from_values(gdn: Option<&str>, family: Option<&str>) -> Self { + let truthy = |s: &str| { + matches!( + s.trim().to_ascii_lowercase().as_str(), + "1" | "true" | "yes" | "on" + ) + }; + let explicit_off = [gdn, family].into_iter().flatten().any(|s| !truthy(s)); + Self { + explicit_off, + environment: !explicit_off && [gdn, family].into_iter().flatten().any(truthy), + lane: false, + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn from_env() -> Self { + Self::from_values( + std::env::var("MTPLX_COMPILED_GDN").ok().as_deref(), + std::env::var("MTPLX_QWEN4EXP_COMPILE").ok().as_deref(), + ) + } + + fn enabled(self) -> bool { + !self.explicit_off && (self.environment || self.lane) + } +} + +#[derive(Debug, PartialEq, Eq)] +enum Run { + Eager(usize), + Gdn(Range), +} + +fn runs(layers: impl IntoIterator) -> Vec { + let mut result = Vec::new(); + let mut start = None; + let mut end = 0; + for (i, (linear, ple)) in layers.into_iter().enumerate() { + end = i + 1; + if linear && !ple { + start.get_or_insert(i); + } else { + if let Some(start) = start.take() { + result.push(Run::Gdn(start..i)); + } + result.push(Run::Eager(i)); + } + } + if let Some(start) = start { + result.push(Run::Gdn(start..end)); + } + result +} + +#[derive(Hash, PartialEq, Eq)] +struct RunKey { + range: Range, + capture: bool, + stream: Stream, + signature: Vec<(Vec, Dtype)>, +} + +pub(super) struct TextModel<'a> { + /// Original Module.parameters tree order, populated by checkpoint binding. + pub(super) parameter_order: Vec, + pub(super) embedding: Linear<'a>, + pub(super) layers: Vec>, + pub(super) mixer: hyper::GatedResidual<'a>, + pub(super) head: Option>, // None means tied embedding weights. + pub(super) mtp: Option>, + pub(super) last_widened: Option, + policy: CompilePolicy, + decode_runs: Option>, + replays: HashMap, + commit_refusals: usize, +} + +/// ArraysCache.state before verification; QSA entries need no snapshot here. +pub(super) type ArraySnapshot = Vec>; + +#[derive(Clone, Copy)] +pub(super) struct OutputOptions { + pub(super) emit_logits: bool, + pub(super) logits_keep: i32, + pub(super) return_hidden: bool, +} + +pub(super) struct Output { + pub(super) logits: Option, + pub(super) hidden: Option, +} + +fn embedding(layer: Linear<'_>, ids: &Array, stream: Stream) -> Result { + match layer { + Linear::Dense(weight) => indexing::take_rows(weight, ids, stream), + Linear::Quantized(layer) => linear::dequantize( + &indexing::take_rows(&layer.weight, ids, stream)?, + &indexing::take_rows(&layer.scales, ids, stream)?, + &indexing::take_rows(&layer.biases, ids, stream)?, + layer.group, + layer.bits, + stream, + ), + } +} + +fn mask(cache: Option<&Cache>, rows: i32, stream: Stream) -> Result, String> { + let Some(Cache { + attention: AttentionCache::Linear(cache), + .. + }) = cache + else { + return Ok(None); + }; + let (metadata, op) = if let Some(padding) = &cache.left_padding { + (padding, Binary::GreaterEqual) + } else if let Some(lengths) = &cache.lengths { + (lengths, Binary::Less) + } else { + return Ok(None); + }; + binary( + &indexing::arange_i32(rows, stream)?, + &ops::expand_dims(metadata, &[-1], stream)?, + op, + stream, + ) + .map(Some) +} + +impl<'a> TextModel<'a> { + #[cfg(test)] + pub(super) fn replay_count(&self) -> usize { + self.replays.len() + } + pub(super) fn new( + embedding: Linear<'a>, + layers: Vec>, + mixer: hyper::GatedResidual<'a>, + head: Option>, + policy: CompilePolicy, + ) -> Result { + if layers.is_empty() || mixer.inject.is_some() { + return Err("Qwen requires decoder layers and a non-combining final mixer".into()); + } + Ok(Self { + embedding, + layers, + mixer, + head, + parameter_order: Vec::new(), + mtp: None, + last_widened: None, + policy, + decode_runs: None, + replays: HashMap::new(), + commit_refusals: 0, + }) + } + + pub(super) fn make_cache(&self, ratio: i32) -> Vec> { + self.layers + .iter() + .map(|layer| { + Some(Cache { + attention: match layer.attention { + Attention::Linear(_) => AttentionCache::Linear(gdn::Cache::default()), + Attention::Qsa(_) => { + AttentionCache::Qsa(QsaCache::new(if ratio == 0 { 4 } else { ratio })) + } + }, + ple: ple::Cache::default(), + capture_ple: None, + }) + }) + .collect() + } + + pub(super) fn make_mtp_cache(&self, ratio: i32) -> [Option; 1] { + super::mtp::make_cache(ratio) + } + + #[allow(clippy::too_many_arguments)] + pub(super) fn mtp_forward( + &mut self, + hidden: &Array, + ids: &Array, + cache: Option<&mut [Option]>, + return_hidden: bool, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let emb = embedding(self.embedding, ids, stream)?; + let mtp = self + .mtp + .as_mut() + .ok_or("Qwen MTP weights are not attached")?; + let h = mtp.fuse_and_run(hidden, &emb, cache, options, vision, streams, stream)?; + let mixed = mtp + .mixer + .forward(&h, options.hyper_fused, options.hyper_v3, streams, stream)? + .mixed; + let logits = self.head.unwrap_or(self.embedding).apply(&mixed, stream)?; + Ok(Output { + logits: Some(logits), + hidden: return_hidden.then_some(h), + }) + } + + #[allow(clippy::too_many_arguments)] + pub(super) fn mtp_update_cache( + &mut self, + hidden: &Array, + ids: &Array, + cache: Option<&mut [Option]>, + input_embeddings: Option<&Array>, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let emb = match input_embeddings { + Some(emb) => emb.clone(), + None => embedding(self.embedding, ids, stream)?, + }; + self.mtp + .as_mut() + .ok_or("Qwen MTP weights are not attached")? + .fuse_and_run(hidden, &emb, cache, options, vision, streams, stream) + } + + /// Model.post_weight_load: attach each PLE table after trunk weight loading. + pub(super) fn post_weight_load( + &mut self, + root: &std::path::Path, + streams: &Streams, + stream: Stream, + ) -> Result<(), String> { + let path = root.join("ngram-table.safetensors"); + if !path.exists() { + return Ok(()); + } + let resident = super::ngram::resident_policy(); + let mut sidecar = None; + for layer in &mut self.layers { + let Some(ple) = &mut layer.ple else { continue }; + let table = &mut ple.embedding.table; + table.attach_sidecar(&path)?; + if resident { + // Original attach_resident reports failure and retains the SSD fallback. + table.attach_resident(&path, streams, stream); + } + sidecar = table.sidecar.as_ref(); + } + if !resident && let Some(sidecar) = sidecar { + println!( + "[qwen4_exp] ngram table: streamed from SSD (file-backed pages, hot cache {}M, prefetch {}) — resident only at >=160G RAM or MTPLX_NGRAM_RESIDENT=1", + sidecar.hot_mebibytes(), + if sidecar.prefetch_enabled() { + "on" + } else { + "off" + } + ); + let _ = std::io::Write::flush(&mut std::io::stdout()); + } + Ok(()) + } + + pub(super) fn set_ar_pipeline_mode(&mut self, enabled: bool) -> bool { + let mut ready = true; + for layer in &mut self.layers { + let Some(ple) = &mut layer.ple else { continue }; + if enabled && ple.embedding.table.resident.is_none() { + ready = false; + continue; + } + ple.embedding.stage_disabled = enabled; + ple.embedding.table.prefer_lazy = enabled; + } + if ready { + self.policy.lane = enabled && !self.policy.explicit_off; + } + ready + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn clear_verify_capture(cache: &mut [Option]) { + for cache in cache.iter_mut().flatten() { + cache.capture_ple = None; + if let AttentionCache::Linear(c) = &mut cache.attention { + c.capture = None; + } + } + } + + fn refuse_commit(&mut self, layer: usize, reason: &str) -> bool { + if self.commit_refusals < 3 { + use std::io::Write; + println!( + "[qwen4_exp] capture-commit refused (layer {layer}: {reason}) — falling back to re-forward" + ); + let _ = std::io::stdout().flush(); + } + self.commit_refusals += 1; + false + } + + #[allow(clippy::too_many_arguments)] + pub(super) fn commit_verified_window( + &mut self, + cache: &mut [Option], + snapshots: Option<&[Option]>, + keep: i32, + verified: i32, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + if keep < 1 || keep > verified || cache.len() != self.layers.len() { + return Ok(false); + } + // First validate EVERY layer, without cache mutations or GPU work. + // A refusal must leave the full verify window available for fallback. + for (i, (layer, entry)) in self.layers.iter().zip(cache.iter()).enumerate() { + let Some(entry) = entry else { + return Ok(self.refuse_commit(i, "entry_missing")); + }; + let AttentionCache::Linear(c) = &entry.attention else { + continue; + }; + let snapshot = snapshots.and_then(|s| s.get(i)).and_then(Option::as_ref); + let validation = if layer.ple.is_some() { + match (snapshot, &entry.capture_ple) { + (None, _) => Err("snapshot_missing".to_owned()), + (_, None) => Err("ple_rows_missing".to_owned()), + (Some(_), Some((h, _))) if h.layout().shape()[1] != verified => Err(format!( + "ple_rows_width_{}_vs_{verified}", + h.layout().shape()[1] + )), + (Some(pre), _) if pre.len() < 4 => Err("ple_snapshot_short".to_owned()), + _ => Ok(()), + } + } else { + c.validate_verified_window(snapshot.map(Vec::as_slice), verified) + }; + if let Err(reason) = validation { + return Ok(self.refuse_commit(i, &reason)); + } + } + for (i, (layer, entry)) in self.layers.iter_mut().zip(cache).enumerate() { + let entry = entry.as_mut().unwrap(); + if let AttentionCache::Qsa(c) = &mut entry.attention { + if keep != verified { + c.trim(verified - keep); + } + continue; + } + let snapshot = snapshots.unwrap()[i].as_ref().unwrap(); + if layer.ple.is_some() { + let (hidden, ids) = entry.capture_ple.as_ref().unwrap(); + let prefix = |a: &Array| { + let mut end = a.layout().shape().to_vec(); + end[1] = keep; + ops::slice(a, &vec![0; end.len()], &end, &vec![1; end.len()], stream) + }; + let hidden = prefix(hidden)?; + let ids = prefix(ids)?; + let AttentionCache::Linear(c) = &mut entry.attention else { + unreachable!() + }; + c.conv = snapshot[0].clone(); + c.delta = snapshot[1].clone(); + entry.ple.conv = snapshot[2].clone(); + entry.ple.history = snapshot[3].clone(); + layer.ple.as_mut().unwrap().embedding.stage( + &ids, + entry.ple.history.as_ref(), + &options.stage, + streams, + stream, + ); + layer.call( + &hidden, + Some(&ids), + None, + Some(entry), + options, + vision, + streams, + stream, + )?; + entry.capture_ple = None; + } else { + let AttentionCache::Linear(c) = &mut entry.attention else { + unreachable!() + }; + let Attention::Linear(weights) = &layer.attention else { + return Err("GDN capture-commit layer/cache mismatch".into()); + }; + c.replay_verified_prefix(snapshot, keep, weights.a_log, weights.dt_bias, stream)?; + } + } + Ok(true) + } + + #[allow(clippy::too_many_arguments)] + pub(super) fn call( + &mut self, + ids: &Array, + cache: Option<&mut [Option]>, + input_embeddings: Option<&Array>, + output: OutputOptions, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let h = match input_embeddings { + Some(h) => h.clone(), + None => embedding(self.embedding, ids, stream)?, + }; + let shape = h.layout().shape().to_vec(); + if shape.len() != 3 + || shape[0] < 1 + || shape[1] < 1 + || shape[2] != 2560 + || ids.layout().shape() != &shape[..2] + { + return Err( + "installed Qwen requires [B,S,2560] embeddings and matching token IDs".into(), + ); + } + let mut empty = Vec::new(); + let cache = match cache { + Some(cache) => cache, + None => { + empty.resize_with(self.layers.len(), || None); + &mut empty + } + }; + if cache.len() != self.layers.len() { + return Err("Qwen cache/layer count mismatch".into()); + } + let ssm = self + .layers + .iter() + .position(|l| matches!(l.attention, Attention::Linear(_))) + .unwrap_or(0); + let ssm_mask = mask(cache[ssm].as_ref(), shape[1], stream)?; + if let Some(i) = self.layers.iter().position(|l| l.ple.is_some()) { + self.layers[i].ple.as_mut().unwrap().embedding.stage( + ids, + cache[i].as_ref().and_then(|c| c.ple.history.as_ref()), + &options.stage, + streams, + stream, + ); + } + // tile(h, (1,1,4)): original reshape -> broadcast -> reshape. + let h = ops::reshape(&h, &[shape[0], shape[1], 1, 2560], stream)?; + let h = ops::broadcast_to(&h, &[shape[0], shape[1], 4, 2560], stream)?; + let mut h = ops::reshape(&h, &[shape[0], shape[1], 10240], stream)?; + if (1..=4).contains(&shape[1]) + && ssm_mask.is_none() + && self.policy.enabled() + && cache[ssm].is_some() + { + h = self.decode(h, ids, cache, options, vision, streams, stream)?; + } else { + for (layer, cache) in self.layers.iter_mut().zip(cache) { + h = eager( + layer, + &h, + ids, + ssm_mask.as_ref(), + cache.as_mut(), + options, + vision, + streams, + stream, + )?; + } + } + self.last_widened = Some(h.clone()); + let mixed = self + .mixer + .forward(&h, options.hyper_fused, options.hyper_v3, streams, stream)? + .mixed; + let logits = if output.emit_logits { + let mixed = if output.logits_keep != 0 { + let keep = output.logits_keep.max(1).min(shape[1]); + ops::slice( + &mixed, + &[0, shape[1] - keep, 0], + &[shape[0], shape[1], 2560], + &[1; 3], + stream, + )? + } else { + mixed + }; + Some(self.head.unwrap_or(self.embedding).apply(&mixed, stream)?) + } else { + None + }; + Ok(Output { + logits, + hidden: output.return_hidden.then_some(h), + }) + } + + #[allow(clippy::too_many_arguments)] + fn decode( + &mut self, + mut h: Array, + ids: &Array, + cache: &mut [Option], + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let runs = self.decode_runs.get_or_insert_with(|| { + runs( + self.layers + .iter() + .map(|l| (matches!(l.attention, Attention::Linear(_)), l.ple.is_some())), + ) + }); + for run in runs { + let range = match run { + Run::Eager(i) => { + h = eager( + &mut self.layers[*i], + &h, + ids, + None, + cache[*i].as_mut(), + options, + vision, + streams, + stream, + )?; + continue; + } + Run::Gdn(range) => range.clone(), + }; + let mut flat = vec![h.clone()]; + for c in &cache[range.clone()] { + let Some(Cache { + attention: AttentionCache::Linear(c), + .. + }) = c + else { + break; + }; + let (Some(conv), Some(delta)) = (&c.conv, &c.delta) else { + break; + }; + flat.extend([conv.clone(), delta.clone()]); + } + if flat.len() != 1 + 2 * range.len() { + for i in range { + h = eager( + &mut self.layers[i], + &h, + ids, + None, + cache[i].as_mut(), + options, + vision, + streams, + stream, + )?; + } + continue; + } + let key = RunKey { + range: range.clone(), + capture: options.gdn.capture, + stream, + signature: flat + .iter() + .map(|a| (a.layout().shape().to_vec(), a.layout().dtype())) + .collect(), + }; + let replay = match self.replays.entry(key) { + std::collections::hash_map::Entry::Occupied(entry) => entry.into_mut(), + std::collections::hash_map::Entry::Vacant(entry) => { + let replay = Replay::trace_compiled(&flat, |args| { + let mut h = args[0].clone(); + let mut states = Vec::new(); + let mut captured = Vec::new(); + for (n, i) in range.clone().enumerate() { + let mut c = Cache { + attention: AttentionCache::Linear(gdn::Cache { + conv: Some(args[1 + 2 * n].clone()), + delta: Some(args[2 + 2 * n].clone()), + ..Default::default() + }), + ple: ple::Cache::default(), + capture_ple: None, + }; + h = self.layers[i].call( + &h, + None, + None, + Some(&mut c), + options, + vision, + streams, + stream, + )?; + let AttentionCache::Linear(c) = c.attention else { + unreachable!() + }; + states.extend([ + c.conv.ok_or("compiled GDN conv missing")?, + c.delta.ok_or("compiled GDN state missing")?, + ]); + if options.gdn.capture { + captured.extend(c.capture.ok_or("compiled GDN capture missing")?); + } + } + Ok(std::iter::once(h).chain(states).chain(captured).collect()) + })?; + entry.insert(replay) + } + }; + let out = replay.run(&flat)?; + h = out[0].clone(); + for (n, i) in range.clone().enumerate() { + let AttentionCache::Linear(c) = &mut cache[i].as_mut().unwrap().attention else { + unreachable!() + }; + c.conv = Some(out[1 + 2 * n].clone()); + c.delta = Some(out[2 + 2 * n].clone()); + if options.gdn.capture { + let start = 1 + 2 * range.len() + 6 * n; + c.capture = Some(std::array::from_fn(|j| out[start + j].clone())); + } + } + } + Ok(h) + } +} + +#[cfg(test)] +impl TextModel<'_> { + pub(super) fn run_contract(&self, rows: i32, capture: bool) -> serde_json::Value { + use super::ops::Operation as O; + let replay = &self + .replays + .iter() + .find(|(key, _)| key.capture == capture && key.signature[0].0 == [1, rows, 10240]) + .expect("compiled fixture run missing") + .1; + let mut counts = std::collections::BTreeMap::::new(); + let contract = replay.contract( + &["hidden", "conv", "delta"], + |op| { + let name = match op { + O::Compiled(expression) => expression.name(), + _ => match op { + O::Reshape => "Reshape", + O::Flatten { .. } => "Flatten", + O::Unflatten { .. } => "Unflatten", + O::Transpose(_) => "Transpose", + O::ExpandDims(_) => "ExpandDims", + O::Squeeze(_) => "Squeeze", + O::Slice { .. } => "Slice", + O::Contiguous(_) => "Contiguous", + O::RmsNorm(_) => "RMSNorm", + O::Softmax(_) => "Softmax", + O::QuantizedLinearBf16 { .. } => "QuantizedMatmul", + O::GatherQmmBf16 { .. } => "GatherQMM", + O::DenseMatmul => "Matmul", + O::Sum(_) => "Sum", + O::Sort { + indices: true, + kth: Some(_), + .. + } => "ArgPartition", + O::Split { .. } => "Split", + O::HyperRead(_) + | O::GdnStepBf16 + | O::GdnConvNorm(_) + | O::GatedDeltaBf16(_) => "CustomKernel", + O::Concatenate(_) => "Concatenate", + O::DepthwiseConv1d => "Convolution", + O::GatherAxis(_) => "GatherAxis", + O::ArangeI32(_) | O::ArangeU32 => "Arange", + _ => super::fused::operator(op).expect("uncaptured GDN primitive"), + } + .to_owned(), + }; + *counts.entry(name.clone()).or_default() += 1; + name + }, + if capture { 9 } else { 3 }, + ); + serde_json::json!({"contract":contract,"ops":counts}) + } +} + +#[test] +fn mtplx_model_compile_policy_and_run_boundaries() { + assert_eq!( + runs([ + (true, false), + (true, false), + (true, true), + (true, false), + (false, false), + (true, false) + ]), + vec![ + Run::Gdn(0..2), + Run::Eager(2), + Run::Gdn(3..4), + Run::Eager(4), + Run::Gdn(5..6) + ] + ); + for on in ["1", " true ", "YES", "On"] { + assert!(CompilePolicy::from_values(Some(on), None).enabled()); + assert!(CompilePolicy::from_values(None, Some(on)).enabled()); + for off in ["0", "", "false", "off", "anything"] { + for mut policy in [ + CompilePolicy::from_values(Some(on), Some(off)), + CompilePolicy::from_values(Some(off), Some(on)), + ] { + policy.lane = true; + assert!(!policy.enabled()); + } + } + } + let mut automatic = CompilePolicy::from_values(None, None); + assert!(!automatic.enabled()); + automatic.lane = true; + assert!(automatic.enabled()); + let environment = CompilePolicy::from_env(); + assert_eq!( + environment.enabled(), + CompilePolicy::from_values( + std::env::var("MTPLX_COMPILED_GDN").ok().as_deref(), + std::env::var("MTPLX_QWEN4EXP_COMPILE").ok().as_deref(), + ) + .enabled() + ); +} + +#[allow(clippy::too_many_arguments)] +fn eager( + layer: &mut DecoderLayer<'_>, + hidden: &Array, + ids: &Array, + mask: Option<&Array>, + mut cache: Option<&mut Cache>, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, +) -> Result { + if options.gdn.capture + && layer.ple.is_some() + && let Some(c) = cache.as_deref_mut() + { + c.capture_ple = Some((hidden.clone(), ids.clone())); + } + layer.call( + hidden, + Some(ids), + mask, + cache, + options, + vision, + streams, + stream, + ) +} diff --git a/src/engine/metal/qwen_mtplx/moe.rs b/src/engine/metal/qwen_mtplx/moe.rs new file mode 100644 index 0000000..015640c --- /dev/null +++ b/src/engine/metal/qwen_mtplx/moe.rs @@ -0,0 +1,491 @@ +//! Qwen SparseMoeBlock as ordinary Array nodes, with the original two +//! CustomKernel nodes only where MTPLX selects fused decode/verify. +use super::array::{Array, Dtype, Layout}; +use super::binary::{Binary, binary}; +use super::mlp::{self, QuantizedLinear}; +use super::stream::{Device, Stream, Streams}; +use super::{indexing, linear, normalization, ops, reduce, sort, unary}; + +pub(super) enum GateUp { + Fused(QuantizedLinear), + Separate { + gate: QuantizedLinear, + up: QuantizedLinear, + }, +} + +pub(super) struct FeedForward { + pub(super) input: GateUp, + pub(super) down: QuantizedLinear, +} + +fn gather( + input: &Array, + layer: &QuantizedLinear, + ids: &Array, + sorted: bool, + streams: &Streams, + stream: Stream, +) -> Result { + linear::gather_qmm_bf16( + input, + [&layer.weight, &layer.scales, &layer.biases], + [None, Some(ids)], + [layer.bits, layer.group], + sorted, + streams, + stream, + ) +} + +impl FeedForward { + fn shared(&self, input: &Array, stream: Stream) -> Result { + match &self.input { + GateUp::Fused(gu) => mlp::fused_gate_up_mlp(input, gu, &self.down, stream), + GateUp::Separate { gate, up } => { + // Qwen3NextMLP evaluates gate first, unlike SwitchGLU below. + let gate = gate.apply(input, stream)?; + let up = up.apply(input, stream)?; + self.down.apply(&mlp::swiglu(&gate, &up, stream)?, stream) + } + } + } + + fn switched( + &self, + input: &Array, + indices: &Array, + streams: &Streams, + stream: Stream, + ) -> Result { + let mut x = ops::expand_dims(input, &[-2, -3], stream)?; + let do_sort = indices.layout().size() >= 64; + let mut ids = indices.clone(); + let mut inverse = None; + if do_sort { + let size = + i32::try_from(indices.layout().size()).map_err(|_| "MoE index size overflow")?; + ids = ops::reshape(&ids, &[size], stream)?; + let order = sort::sort(&ids, Some(-1), true, None, stream)?; + inverse = Some(sort::sort(&order, Some(-1), true, None, stream)?); + let topk = *indices.layout().shape().last().ok_or("MoE indices rank")? as u32; + let buffer = super::super::gpu::Buffer::mtplx_bytes(4)?; + buffer.write(0, &topk.to_le_bytes())?; + let divisor = Array::new(&[], Dtype::U32, buffer)?; + let rows = super::binary::floor_divide_integer(&order, &divisor, stream)?; + let k = *input.layout().shape().last().ok_or("MoE input rank")?; + let flat_rows = i32::try_from(input.layout().size() / k as usize) + .map_err(|_| "MoE row count overflow")?; + x = indexing::take( + &ops::reshape(&x, &[flat_rows, 1, k], stream)?, + &rows, + 0, + stream, + )?; + ids = indexing::take(&ids, &order, 0, stream)?; + } + let hidden = match &self.input { + GateUp::Fused(gu) => { + let gu = gather(&x, gu, &ids, do_sort, streams, stream)?; + let n = *gu.layout().shape().last().ok_or("MoE gate/up rank")?; + if n % 2 != 0 { + return Err("MoE fused gate/up width must be even".into()); + } + let pair = ops::split(&gu, &[n / 2], -1, stream)?; + binary( + &mlp::silu(&pair[0], stream)?, + &pair[1], + Binary::Multiply, + stream, + )? + } + GateUp::Separate { gate, up } => { + let up = gather(&x, up, &ids, do_sort, streams, stream)?; + let gate = gather(&x, gate, &ids, do_sort, streams, stream)?; + mlp::swiglu(&gate, &up, stream)? + } + }; + let mut output = gather(&hidden, &self.down, &ids, do_sort, streams, stream)?; + if let Some(inverse) = inverse { + output = indexing::take(&output, &inverse, 0, stream)?; + let mut shape = indices.layout().shape().to_vec(); + shape.extend_from_slice(&output.layout().shape()[1..]); + output = ops::reshape(&output, &shape, stream)?; + } + ops::squeeze(&output, Some(&[-2]), stream) + } +} + +pub(super) struct SparseMoe { + pub(super) experts: FeedForward, + pub(super) shared: FeedForward, + pub(super) router: QuantizedLinear, + pub(super) shared_gate: QuantizedLinear, + pub(super) topk: i32, + pub(super) normalize: bool, + pub(super) fused_decode: bool, + pub(super) fused_verify: bool, +} + +impl SparseMoe { + fn fused_rows(&self, input: &Array) -> Option { + let GateUp::Fused(gu) = &self.experts.input else { + return None; + }; + if gu.bits != 4 + || !matches!(gu.group, 32 | 64) + || self.experts.down.bits != 4 + || !matches!(self.experts.down.group, 32 | 64) + { + return None; + } + let l = input.layout(); + let shape = l.shape(); + let rows = shape[shape.len() - 2]; + let k = shape[shape.len() - 1]; + if l.size() != rows as usize * k as usize { + return None; + } + ((rows == 1 && self.fused_decode) || ((2..=4).contains(&rows) && self.fused_verify)) + .then_some(rows as u32) + } + + pub(super) fn apply( + &self, + input: &Array, + streams: &Streams, + stream: Stream, + ) -> Result { + if stream.device() != Device::Gpu + || input.layout().dtype() != Dtype::BF16 + || input.layout().shape().len() < 2 + || input.layout().size() == 0 + { + return Err("SparseMoe requires nonempty BF16 GPU rows".into()); + } + let fused = self.fused_rows(input); + let gates = normalization::softmax_last(&self.router.apply(input, stream)?, true, stream)?; + let shape = gates.layout().shape().to_vec(); + let rank = shape.len(); + let experts = shape[rank - 1]; + if self.topk < 1 || self.topk > experts { + return Err("invalid MoE top-k".into()); + } + let partition = sort::sort(&gates, Some(-1), true, Some(-self.topk), stream)?; + let mut starts = vec![0; rank]; + starts[rank - 1] = experts - self.topk; + let indices = ops::slice(&partition, &starts, &shape, &vec![1; rank], stream)?; + let mut scores = indexing::take_along_axis(&gates, &indices, -1, stream)?; + if self.normalize { + scores = binary( + &scores, + &reduce::sum(&scores, &[-1], true, stream)?, + Binary::Divide, + stream, + )?; + } + let y = if let Some(rows) = fused { + let GateUp::Fused(gu) = &self.experts.input else { + unreachable!() + }; + fused_experts( + input, + gu, + &self.experts.down, + &indices, + &scores, + rows, + self.topk, + stream, + )? + } else { + let switched = self.experts.switched(input, &indices, streams, stream)?; + let scores = ops::expand_dims(&scores, &[-1], stream)?; + reduce::sum( + &binary(&switched, &scores, Binary::Multiply, stream)?, + &[-2], + false, + stream, + )? + }; + let gate = || { + unary::unary( + &self.shared_gate.apply(input, stream)?, + unary::Unary::Sigmoid, + stream, + ) + }; + let (gate, shared) = if fused.is_some() { + (gate()?, self.shared.shared(input, stream)?) + } else { + let shared = self.shared.shared(input, stream)?; + (gate()?, shared) + }; + let y = binary( + &y, + &binary(&gate, &shared, Binary::Multiply, stream)?, + Binary::Add, + stream, + )?; + if fused.is_some() { + ops::astype(&y, input.layout().dtype(), false, stream) + } else { + Ok(y) + } + } +} + +#[allow(clippy::too_many_arguments)] // Original two CustomKernel call inputs and template dimensions. +fn fused_experts( + input: &Array, + gu: &QuantizedLinear, + down: &QuantizedLinear, + indices: &Array, + scores: &Array, + rows: u32, + topk: i32, + stream: Stream, +) -> Result { + if topk != 10 + || gu.weight.layout().shape().get(1) != Some(&1280) + || down.weight.layout().shape().get(1) != Some(&2560) + || input.layout().shape().last() != Some(&2560) + { + return Err("fused MoE exports require the installed top10/2560/640 shape".into()); + } + let flatten = |a: &Array| ops::reshape(a, &[a.layout().size() as i32], stream); + let x = if rows == 1 { + flatten(input)? + } else { + ops::reshape(input, &[rows as i32, 2560], stream)? + }; + let ids = ops::astype(&flatten(indices)?, Dtype::U32, false, stream)?; + let scores = ops::astype(&flatten(scores)?, Dtype::F32, false, stream)?; + let hshape = if rows == 1 { + vec![10, 640] + } else { + vec![rows as i32, 10, 640] + }; + let h = Array::make_operation_with_inputs( + stream, + &[ + x, + gu.weight.clone(), + gu.scales.clone(), + gu.biases.clone(), + ids.clone(), + ], + Layout::new(&hshape, Dtype::BF16)?, + ops::Operation::MoeGluH { + rows, + group: gu.group, + }, + )?; + let yshape = if rows == 1 { + vec![2560] + } else { + vec![rows as i32, 2560] + }; + let y = Array::make_operation_with_inputs( + stream, + &[ + h, + down.weight.clone(), + down.scales.clone(), + down.biases.clone(), + ids, + scores, + ], + Layout::new(&yshape, Dtype::BF16)?, + ops::Operation::MoeDownY { + rows, + group: down.group, + }, + )?; + ops::reshape(&y, input.layout().shape(), stream) +} + +pub(super) fn fused_evaluate( + inputs: &[Array], + outputs: &[Array], + rows: u32, + group: u32, + down: bool, +) -> Result<(), String> { + if !(1..=4).contains(&rows) || !matches!(group, 32 | 64) { + return Err("invalid fused MoE specialization".into()); + } + let suffix = if rows == 1 { + format!("g{group}_bf16") + } else { + format!("m_m{rows}_g{group}_bf16") + }; + let name = format!( + "kernel_qwen_mtplx_moe_{}_{suffix}", + if down { "down_y" } else { "glu_h" } + ); + let count = rows * if down { 2560 } else { 10 * 640 }; + super::gdn::custom_evaluate(inputs, outputs, |bindings| { + super::dispatch_geometry( + &name, + bindings, + &[], + [count.div_ceil(32) * 1024, 1, 1], + [1024, 1, 1], + true, + ) + }) +} + +#[test] +#[ignore = "requires Apple M5 Max; full MoE Array graph, no model weights; use test-supervisor"] +fn mtplx_graph_sparse_moe_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{allocator, configure_sources}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("moe_")) + .collect::>(); + assert_eq!(fixtures.len(), 220); + for prepared in [false, true] { + for row in &fixtures { + let [tokens, experts, k, intermediate, gu_group, down_group] = [ + "tokens", + "experts", + "k", + "intermediate", + "gu_group", + "down_group", + ] + .map(|key| row[key].as_u64().unwrap() as u32); + eprintln!("MoE Array graph prepared={prepared} {}", row["kernel"]); + let pack = |e: u32, n: u32, k: u32, group: u32, salt: u32, expert: bool| { + let mut q = mlp::fixture_linear(e * n, k, 4, group, salt); + if expert { + for a in [&mut q.weight, &mut q.scales, &mut q.biases] { + let width = *a.layout().shape().last().unwrap(); + *a = ops::reshape(a, &[e as i32, n as i32, width], gpu).unwrap(); + } + } + q + }; + let ff = |expert: bool, separate: bool| { + let e = if expert { experts } else { 1 }; + let salt = if expert { 39 } else { 46 }; + FeedForward { + input: if separate { + GateUp::Separate { + gate: pack(e, intermediate, k, gu_group, salt, expert), + up: pack( + e, + intermediate, + k, + down_group, + if expert { 45 } else { 54 }, + expert, + ), + } + } else { + GateUp::Fused(pack(e, 2 * intermediate, k, gu_group, salt, expert)) + }, + down: pack( + e, + k, + intermediate, + down_group, + if expert { 41 } else { 48 }, + expert, + ), + } + }; + let model = SparseMoe { + experts: ff(true, row["separate_experts"].as_bool().unwrap_or(false)), + shared: ff(false, row["separate_shared"].as_bool().unwrap_or(false)), + router: mlp::fixture_linear(experts, k, 8, 64, 50), + shared_gate: mlp::fixture_linear(1, k, 4, 64, 52), + topk: 10, + normalize: row["normalize"].as_bool().unwrap(), + fused_decode: row["fused"].as_bool().unwrap_or(false), + fused_verify: row["fused"].as_bool().unwrap_or(false), + }; + if prepared { + let mut parameters = Vec::new(); + let mut add = |q: &QuantizedLinear| { + parameters.extend([q.weight.clone(), q.scales.clone(), q.biases.clone()]); + }; + for ff in [&model.experts, &model.shared] { + match &ff.input { + GateUp::Fused(gu) => add(gu), + GateUp::Separate { gate, up } => { + add(gate); + add(up); + } + } + add(&ff.down); + } + add(&model.router); + add(&model.shared_gate); + ops::evaluate(&streams, ¶meters, gpu, false).unwrap(); + } + let input = Array::new( + &[1, tokens as i32, k as i32], + Dtype::BF16, + pattern(tokens * k, 44), + ) + .unwrap(); + let output = model.apply(&input, &streams, gpu).unwrap(); + let fused = row["fused"].as_bool().unwrap_or(false) + && !row["separate_experts"].as_bool().unwrap_or(false) + && tokens <= 4; + assert_eq!(model.fused_rows(&input).is_some(), fused); + // Graph edges, not an external model/parameter table, keep inputs alive. + drop((input, model)); + let (_, dispatches) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + }); + let actual = dispatches + .into_iter() + .filter(|call| call.0.starts_with("kernel_qwen_mtplx_moe_")) + .collect::>(); + let expected = if fused { + [ + ("glu_h", gu_group, tokens * 10 * 640), + ("down_y", down_group, tokens * 2560), + ] + .map(|(name, group, rows)| { + let suffix = if tokens == 1 { + format!("g{group}_bf16") + } else { + format!("m_m{tokens}_g{group}_bf16") + }; + ( + format!("kernel_qwen_mtplx_moe_{name}_{suffix}"), + [rows.div_ceil(32) * 1024, 1, 1], + [1024, 1, 1], + true, + ) + }) + .to_vec() + } else { + Vec::new() + }; + assert_eq!( + actual, expected, + "original CustomKernel dispatch geometry/order" + ); + verify( + row["kernel"].as_str().unwrap(), + &[(&output.buffer(), tokens * k)], + ); + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/mtp.rs b/src/engine/metal/qwen_mtplx/mtp.rs new file mode 100644 index 0000000..c4a5e00 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/mtp.rs @@ -0,0 +1,87 @@ +//! Qwen4ExpMTP: full-width hidden norm, shared substream projection, +//! embedding broadcast-add and the head's own QSA decoder/mixer. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::decoder::{Attention, AttentionCache, Cache, DecoderLayer, Options}; +use super::mlp::Linear; +use super::stream::{Stream, Streams}; +use super::{cache::QsaCache, hyper, ops, ple}; + +pub(super) struct Mtp<'a> { + pub(super) norm_hidden: &'a Array, + pub(super) norm_embedding: &'a Array, + pub(super) fc_hidden: Linear<'a>, + pub(super) fc_embedding: Linear<'a>, + pub(super) eps: f32, + pub(super) layer: DecoderLayer<'a>, + pub(super) mixer: hyper::GatedResidual<'a>, +} + +pub(super) fn make_cache(ratio: i32) -> [Option; 1] { + [Some(Cache { + attention: AttentionCache::Qsa(QsaCache::new(if ratio == 0 { 4 } else { ratio })), + ple: ple::Cache::default(), + capture_ple: None, + })] +} + +impl Mtp<'_> { + #[allow(clippy::too_many_arguments)] + pub(super) fn fuse_and_run( + &mut self, + widened: &Array, + embedding: &Array, + cache: Option<&mut [Option]>, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let shape = widened.layout().shape().to_vec(); + if shape.len() != 3 + || shape[2] != 10240 + || shape[0] < 1 + || shape[1] < 1 + || embedding.layout().shape() != [shape[0], shape[1], 2560] + || widened.layout().dtype() != Dtype::BF16 + || embedding.layout().dtype() != Dtype::BF16 + { + return Err( + "installed MTP requires BF16 widened [B,S,10240] and embedding [B,S,2560]".into(), + ); + } + if !matches!(self.layer.attention, Attention::Qsa(_)) + || self.layer.ple.is_some() + || self.mixer.inject.is_some() + { + return Err("MTP requires a non-PLE QSA decoder and a non-combining mixer".into()); + } + let cache = match cache { + Some([cache]) => cache.as_mut(), + Some(_) => return Err("MTP requires exactly one cache entry".into()), + None => None, + }; + let hidden = ops::rms_norm(widened, Some(self.norm_hidden), self.eps, stream)?; + let hidden = ops::reshape(&hidden, &[shape[0], shape[1], 4, 2560], stream)?; + let embedding = self.fc_embedding.apply( + &ops::rms_norm(embedding, Some(self.norm_embedding), self.eps, stream)?, + stream, + )?; + let fused = binary( + &self.fc_hidden.apply(&hidden, stream)?, + &ops::expand_dims(&embedding, &[2], stream)?, + Binary::Add, + stream, + )?; + self.layer.call( + &ops::reshape(&fused, &shape, stream)?, + None, + None, + cache, + options, + vision, + streams, + stream, + ) + } +} diff --git a/src/engine/metal/qwen_mtplx/ngram.rs b/src/engine/metal/qwen_mtplx/ngram.rs new file mode 100644 index 0000000..5e595d5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ngram.rs @@ -0,0 +1,1156 @@ +//! NGramEmbedding's CPU stage hash and connected resident GPU graph from MTPLX. +//! Includes original table attachment and resident/sidecar selection. + +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::{ + indexing, + ngram_sidecar::SidecarGather, + ops, + stream::{Stream, Streams}, +}; + +/// mtplx.memory_plan.ngram_table_resident_policy (unknown values mean auto). +pub(super) fn resident_policy() -> bool { + let raw = std::env::var("MTPLX_NGRAM_RESIDENT").unwrap_or_default(); + match raw.trim().to_ascii_lowercase().as_str() { + "1" | "true" | "yes" | "on" => true, + "0" | "false" | "no" | "off" => false, + _ => { + // Same native queries as os.sysconf; failure must leave SSD mode on. + let page = unsafe { libc::sysconf(libc::_SC_PAGESIZE) }; + let pages = unsafe { libc::sysconf(libc::_SC_PHYS_PAGES) }; + page > 0 && pages > 0 && i128::from(page) * i128::from(pages) >= 160 * (1i128 << 30) + } + } +} + +/// NGramTable.__call__ priority is resident-preferred, then sidecar, then plain. +pub(super) struct Table { + pub(super) resident: Option, + pub(super) sidecar: Option, + pub(super) weight: Option, + pub(super) prefer_lazy: bool, + pub(super) sidecar_mode: bool, + pub(super) dim: i32, +} + +impl Table { + pub(super) fn attach_sidecar(&mut self, path: &std::path::Path) -> Result<(), String> { + self.weight = None; + let header = super::super::super::qwen::read_tensor_header(path)?; + let (bits, group) = table_quantization(&header.metadata)?; + let entries = (if bits == 0 { + &["weight"][..] + } else { + &["weight", "scales", "biases"][..] + }) + .iter() + .map(|name| { + let name = format!("ngram.{name}"); + let tensor = header + .tensors + .get(&name) + .ok_or_else(|| format!("missing {name}"))?; + let [rows, columns]: [u64; 2] = tensor + .shape + .as_slice() + .try_into() + .map_err(|_| "ngram table requires two dimensions")?; + let dtype = super::load::dtype(&tensor.dtype)?; + let expected = rows + .checked_mul(columns) + .and_then(|n| n.checked_mul(dtype.itemsize() as u64)) + .ok_or("ngram table size overflow")?; + if expected != tensor.offsets[1] - tensor.offsets[0] { + return Err("ngram table data offsets mismatch".into()); + } + Ok(super::ngram_sidecar::Entry { + offset: header + .data_start + .checked_add(tensor.offsets[0]) + .ok_or("ngram offset overflow")?, + rows: usize::try_from(rows).map_err(|e| e.to_string())?, + columns: usize::try_from(columns).map_err(|e| e.to_string())?, + dtype, + }) + }) + .collect::, String>>()?; + let prefetch = std::env::var("MTPLX_NGRAM_PREFETCH").as_deref() != Ok("0"); + let hot_mb = std::env::var("MTPLX_NGRAM_HOT_MB") + .ok() + .and_then(|v| v.trim().parse::().ok()) + .unwrap_or(1024) + .max(0); + let hot_bytes = hot_mb + .checked_mul(1 << 20) + .and_then(|v| usize::try_from(v).ok()) + .ok_or("ngram hot cache capacity overflow")?; + self.sidecar = Some(SidecarGather::open( + path, &entries, bits, group, prefetch, hot_bytes, + )?); + Ok(()) + } + + pub(super) fn attach_resident( + &mut self, + path: &std::path::Path, + streams: &Streams, + stream: Stream, + ) -> bool { + let bind = || -> Result<(ResidentTable, usize, std::time::Instant), String> { + let header = super::super::super::qwen::read_tensor_header(path)?; + let (bits, group) = table_quantization(&header.metadata)?; + let started = std::time::Instant::now(); + let mut raw = super::load::safetensors(path, streams)?; + let weight = raw.remove("ngram.weight").ok_or("missing ngram.weight")?; + let affine = if bits == 0 { + None + } else { + Some(( + raw.remove("ngram.scales").ok_or("missing ngram.scales")?, + raw.remove("ngram.biases").ok_or("missing ngram.biases")?, + group, + bits, + )) + }; + let mut parts = vec![weight.clone()]; + if let Some((s, b, _, _)) = &affine { + parts.extend([s.clone(), b.clone()]); + } + ops::evaluate(streams, &parts, stream, false)?; + let nbytes = parts.iter().map(|p| p.layout().nbytes()).sum(); + Ok((ResidentTable { weight, affine }, nbytes, started)) + }; + let bound = match bind() { + Ok((resident, nbytes, started)) => { + self.resident = Some(resident); + self.prefer_lazy = false; + println!( + "[qwen4_exp] ngram table resident: {:.1}G in {:.1}s (pipelined-AR lane armed)", + nbytes as f64 / (1u64 << 30) as f64, + started.elapsed().as_secs_f64() + ); + true + } + Err(error) => { + println!("[qwen4_exp] ngram resident bind failed: {error:?}"); + self.resident = None; + false + } + }; + let _ = std::io::Write::flush(&mut std::io::stdout()); + bound + } + + pub(super) fn gather( + &mut self, + ids: &Array, + streams: &Streams, + stream: Stream, + ) -> Result { + if self.prefer_lazy + && let Some(resident) = &self.resident + { + return resident.gather(ids, stream); + } + if let Some(sidecar) = &mut self.sidecar { + return sidecar.gather(ids, self.dim, streams, stream); + } + if self.sidecar_mode { + return Err("qwen4_exp n-gram table sidecar was never attached".into()); + } + indexing::take_rows( + self.weight + .as_ref() + .ok_or("NGram table weight is missing")?, + ids, + stream, + ) + } +} + +fn table_quantization(meta: &serde_json::Value) -> Result<(u32, u32), String> { + let integer = |key: &str, default| match meta.get(key) { + None => Ok(default), + Some(serde_json::Value::String(v)) => v.trim().parse::().map_err(|e| e.to_string()), + Some(v) => v + .as_u64() + .and_then(|n| u32::try_from(n).ok()) + .ok_or_else(|| format!("invalid {key}")), + }; + Ok((integer("ngram_bits", 4)?, integer("ngram_group_size", 32)?)) +} + +/// NGramTable._lazy_parts; residency is paid by the model loader, not forward. +pub(super) struct ResidentTable { + pub(super) weight: Array, + pub(super) affine: Option<(Array, Array, u32, u32)>, // scales, biases, group, bits +} + +impl ResidentTable { + pub(super) fn gather(&self, ids: &Array, stream: Stream) -> Result { + let weight = indexing::take_rows(&self.weight, ids, stream)?; + match &self.affine { + None => Ok(weight), + Some((scales, biases, group, bits)) => super::linear::dequantize( + &weight, + &indexing::take_rows(scales, ids, stream)?, + &indexing::take_rows(biases, ids, stream)?, + *group, + *bits, + stream, + ), + } + } +} + +/// Checkpoint arrays remain graph leaves; no readback for pipelined token IDs. +pub(super) struct GpuHash<'a> { + pub(super) multipliers: &'a Array, + pub(super) sizes: &'a Array, + pub(super) offsets: &'a Array, + pub(super) eos: i64, +} + +fn scalar(value: i64) -> Result { + Array::new(&[], Dtype::I64, super::scalar_buffer(&value.to_le_bytes())?) +} + +impl GpuHash<'_> { + /// Full resident _graph_path, including table lookup and head flattening. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn embedding( + &self, + input: &Array, + previous: Option<&Array>, + table: &mut Table, + streams: &Streams, + stream: Stream, + ) -> Result<[Array; 2], String> { + let [ids, history] = self.rows(input, previous, stream)?; + let embedding = table.gather(&ids, streams, stream)?; + let shape = input.layout().shape().to_vec(); + Ok([ + ops::reshape(&embedding, &[shape[0], shape[1], -1], stream)?, + history, + ]) + } + + /// NGramEmbedding._graph_path through ngram_ids, before table lookup. + pub(super) fn rows( + &self, + input: &Array, + previous: Option<&Array>, + stream: Stream, + ) -> Result<[Array; 2], String> { + let shape = input.layout().shape().to_vec(); + if shape.len() != 2 + || self.multipliers.layout().shape() != [3] + || self.sizes.layout().shape() != [16] + || self.offsets.layout().shape() != [16] + || [self.multipliers, self.sizes, self.offsets] + .iter() + .any(|a| a.layout().dtype() != Dtype::I64) + { + return Err( + "installed NGram graph requires [B,S] IDs and I64 checkpoint shapes3/16/16".into(), + ); + } + let ids = ops::astype(input, Dtype::I64, false, stream)?; + let previous = match previous { + Some(p) => p.clone(), + None => ops::broadcast_to(&scalar(self.eos)?, &[shape[0], 2], stream)?, + }; + let history = ops::concatenate(&[previous, ids], 1, stream)?; + let hs = history.layout().shape().to_vec(); + let tail = ops::slice(&history, &[0, (hs[1] - 2).max(0)], &hs, &[1, 1], stream)?; + let shifted = [ + history.clone(), + self.shift(&history, 1, stream)?, + self.shift(&history, 2, stream)?, + ]; + let multiplier = |i| { + ops::squeeze( + &ops::slice(self.multipliers, &[i], &[i + 1], &[1], stream)?, + Some(&[0]), + stream, + ) + }; + let mut blocks = Vec::with_capacity(2); + for ngram in 2..=3 { + let mut mixed = binary(&shifted[0], &multiplier(0)?, Binary::Multiply, stream)?; + for (p, shift) in shifted.iter().enumerate().take(ngram).skip(1) { + mixed = binary( + &mixed, + &binary(shift, &multiplier(p as i32)?, Binary::Multiply, stream)?, + Binary::BitwiseXor, + stream, + )?; + } + let start = (ngram as i32 - 2) * 8; + let slice = |a| { + ops::reshape( + &ops::slice(a, &[start], &[start + 8], &[1], stream)?, + &[1, 1, 8], + stream, + ) + }; + let rows = binary( + &ops::expand_dims(&mixed, &[-1], stream)?, + &slice(self.sizes)?, + Binary::Remainder, + stream, + )?; + blocks.push(binary(&rows, &slice(self.offsets)?, Binary::Add, stream)?); + } + let result = ops::concatenate(&blocks, -1, stream)?; + let start = if shape[1] == 0 { 0 } else { hs[1] - shape[1] }; + Ok([ + ops::slice( + &result, + &[0, start, 0], + &[shape[0], hs[1], 16], + &[1, 1, 1], + stream, + )?, + tail, + ]) + } + + fn shift(&self, ids: &Array, shift: i64, stream: Stream) -> Result { + let shape = ids.layout().shape().to_vec(); + let pos = ops::expand_dims(&indexing::arange_i64(shape[1], stream)?, &[0], stream)?; + let eos_pos = indexing::select( + &binary(ids, &scalar(self.eos)?, Binary::Equal, stream)?, + &pos, + &scalar(-1)?, + stream, + )?; + let incl = indexing::cummax_last_i64(&eos_pos, stream)?; + let prev = ops::concatenate( + &[ + ops::broadcast_to(&scalar(-1)?, &[shape[0], 1], stream)?, + ops::slice(&incl, &[0, 0], &[shape[0], shape[1] - 1], &[1, 1], stream)?, + ], + 1, + stream, + )?; + let seg = binary(&prev, &scalar(1)?, Binary::Add, stream)?; + let within = binary(&pos, &seg, Binary::Subtract, stream)?; + let src = binary(&pos, &scalar(shift)?, Binary::Subtract, stream)?; + let indices = binary(&src, &scalar(0)?, Binary::Maximum, stream)?; + let shifted = indexing::take_along_axis(ids, &indices, 1, stream)?; + let valid = binary( + &binary(&within, &scalar(shift)?, Binary::GreaterEqual, stream)?, + &binary(&src, &scalar(0)?, Binary::GreaterEqual, stream)?, + Binary::BitwiseAnd, + stream, + )?; + indexing::select(&valid, &shifted, &scalar(self.eos)?, stream) + } +} + +pub(super) struct HashContract { + pub(super) multipliers: [i64; 3], + pub(super) sizes: [i64; 16], + pub(super) offsets: [i64; 16], + pub(super) eos: i64, +} + +#[test] +#[ignore = "requires Apple Metal; NGram table routing and missing-sidecar behavior"] +fn mtplx_ngram_table_priority() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let weight = |bits: u16| { + Array::new( + &[1, 8], + Dtype::BF16, + super::scalar_buffer(&bits.to_le_bytes().repeat(8)).unwrap(), + ) + .unwrap() + }; + let ids = Array::new( + &[1], + Dtype::I64, + super::scalar_buffer(&0i64.to_le_bytes()).unwrap(), + ) + .unwrap(); + let mut table = Table { + resident: Some(ResidentTable { + weight: weight(0x4000), + affine: None, + }), + sidecar: None, + weight: Some(weight(0x3f80)), + prefer_lazy: false, + sidecar_mode: false, + dim: 8, + }; + for preferred in [false, true] { + table.prefer_lazy = preferred; + let (out, calls) = capture_dispatches(|| table.gather(&ids, &streams, gpu).unwrap()); + assert!(calls.is_empty()); + let read = ops::astype(&out, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + let mut values = [0.0; 8]; + read.buffer().read_f32(&mut values).unwrap(); + assert_eq!(values, [if preferred { 2.0 } else { 1.0 }; 8]); + } + table.prefer_lazy = false; + table.sidecar_mode = true; + assert!( + table + .gather(&ids, &streams, gpu) + .err() + .unwrap() + .contains("sidecar was never attached") + ); + table.prefer_lazy = true; + assert!(table.gather(&ids, &streams, gpu).is_ok()); + table.resident = None; + assert!(table.gather(&ids, &streams, gpu).is_err()); + table.sidecar_mode = false; + table.weight = None; + assert!(table.gather(&ids, &streams, gpu).is_err()); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; full resident NGram graph and lazy decode history"] +fn mtplx_ngram_embedding_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let i64s = |shape: &[i32], values: &[i64]| { + Array::new( + shape, + Dtype::I64, + super::scalar_buffer( + &values + .iter() + .flat_map(|n| n.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + let contract: serde_json::Value = serde_json::from_str( + include_str!("../../../../tests/fixtures/mtplx-ngram-rows.jsonl") + .lines() + .next() + .unwrap(), + ) + .unwrap(); + let multipliers = i64s( + &[3], + &contract["multipliers"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(), + ); + let sizes = i64s(&[16], &[17; 16]); + let offsets = i64s(&[16], &[0; 16]); + let hash = GpuHash { + multipliers: &multipliers, + sizes: &sizes, + offsets: &offsets, + eos: 248044, + }; + let param = |cols: i32, salt| { + let a = Array::new(&[17, cols], Dtype::BF16, pattern(17 * cols as u32, salt)).unwrap(); + let scale = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&0x4280u16.to_le_bytes()).unwrap(), + ) + .unwrap(); + binary(&a, &scale, Binary::Divide, gpu).unwrap() + }; + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-embedding.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 24); + for pair in fixtures.chunks_exact(2) { + super::eval::execution_tests::observed(|| { + let bits = pair[0]["bits"].as_u64().unwrap() as u32; + let batch = pair[0]["batch"].as_i64().unwrap() as i32; + let rows = pair[0]["rows"].as_i64().unwrap() as i32; + for deferred in [false, true] { + let table = if bits == 0 { + ResidentTable { + weight: param(160, 3), + affine: None, + } + } else { + let raw = (0u32..17 * 20) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + ResidentTable { + weight: Array::new( + &[17, 20], + Dtype::U32, + super::scalar_buffer(&raw).unwrap(), + ) + .unwrap(), + affine: Some((param(5, 3), param(5, 4), 32, bits)), + } + }; + let mut table = Table { + resident: Some(table), + sidecar: None, + weight: None, + prefer_lazy: true, + sidecar_mode: true, + dim: 160, + }; + let mut outputs = Vec::new(); + let mut prev = None; + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let input = i64s( + &[batch, tokens], + &(0..batch * tokens) + .map(|i| (i as i64 * 7 + step as i64) % 51) + .collect::>(), + ); + let (out, calls) = capture_dispatches(|| { + hash.embedding(&input, prev.as_ref(), &mut table, &streams, gpu) + .unwrap() + }); + assert!(calls.is_empty()); + assert_eq!(out[0].layout().shape(), [batch, tokens, 2560]); + if !deferred { + ops::evaluate(&streams, &out, gpu, false).unwrap(); + } + prev = Some(out[1].clone()); + outputs.push(out); + } + drop(table); + drop(prev); + let roots = outputs.iter().flatten().cloned().collect::>(); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + for (expected, out) in pair.iter().zip(&outputs) { + for (index, a) in out.iter().enumerate() { + let a = if index == 0 { + ops::astype(a, Dtype::F32, false, gpu).unwrap() + } else { + ops::contiguous(a, false, gpu).unwrap() + }; + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + let hash = Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(); + assert_eq!( + hash, + expected["sha256"][index].as_str().unwrap(), + "{} output{index} deferred{deferred}", + expected["kernel"] + ); + } + } + } + }); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original NGramTable resident gather/dequantize receipts"] +fn mtplx_ngram_resident_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-resident.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 162); + for row in fixtures { + super::eval::execution_tests::observed(|| { + let dtype = if row["dtype"] == "bfloat16" { + Dtype::BF16 + } else { + Dtype::F16 + }; + let bits = row["bits"].as_u64().unwrap() as u32; + let width = row["width"].as_i64().unwrap() as i32; + let layout = row["layout"].as_str().unwrap(); + let ids_layout = row["ids_layout"].as_str().unwrap(); + let part = |cols: i32, packed: bool, salt: u32| { + let shape = match layout { + "transpose" => [cols, 17], + "offset" => [18, cols], + _ => [17, cols], + }; + let count = (shape[0] * shape[1]) as u32; + let a = if packed { + let raw = (0..count) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + Array::new(&shape, Dtype::U32, super::scalar_buffer(&raw).unwrap()).unwrap() + } else { + let a = Array::new(&shape, Dtype::BF16, pattern(count, salt)).unwrap(); + let scale = Array::new( + &[], + Dtype::BF16, + super::scalar_buffer(&0x4280u16.to_le_bytes()).unwrap(), + ) + .unwrap(); + ops::astype( + &binary(&a, &scale, Binary::Divide, gpu).unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + match layout { + "transpose" => ops::transpose(&a, &[1, 0], gpu).unwrap(), + "offset" => ops::slice(&a, &[1, 0], &[18, cols], &[1, 1], gpu).unwrap(), + _ => a, + } + }; + for deferred in [false, true] { + let table = ResidentTable { + weight: part( + if bits == 0 { + width + } else { + width * bits as i32 / 32 + }, + bits != 0, + 3, + ), + affine: if bits == 0 { + None + } else { + Some(( + part(width / 32, false, 3), + part(width / 32, false, 4), + 32, + bits, + )) + }, + }; + let shape = match ids_layout { + "scalar" => vec![], + "matrix" => vec![2, 7], + "head3" => vec![2, 4, 16], + "head4" => vec![2, 2, 4, 16], + "slice" => vec![2, 9, 16], + "broadcast" => vec![1, 1, 16], + _ => vec![7], + }; + let count = shape.iter().product::(); + let raw = (0..count) + .flat_map(|i| (((i as i64 * 7) % 34) - 17).to_le_bytes()) + .collect::>(); + let ids = + Array::new(&shape, Dtype::I64, super::scalar_buffer(&raw).unwrap()).unwrap(); + let ids = match ids_layout { + "slice" => ops::slice(&ids, &[0, 1, 0], &[2, 9, 16], &[1, 2, 1], gpu).unwrap(), + "broadcast" => ops::broadcast_to(&ids, &[2, 4, 16], gpu).unwrap(), + _ => ids, + }; + if !deferred { + let mut roots = vec![table.weight.clone(), ids.clone()]; + if let Some((s, b, _, _)) = &table.affine { + roots.extend([s.clone(), b.clone()]); + } + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + } + let (output, construction) = + capture_dispatches(|| table.gather(&ids, gpu).unwrap()); + assert!(construction.is_empty()); + let mut expected = ids.layout().shape().to_vec(); + expected.push(width); + assert_eq!(output.layout().shape(), expected); + drop(table); + drop(ids); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + let gathers = calls + .iter() + .filter(|c| c.0.starts_with("kernel_qwen_mtplx_gather_")) + .collect::>(); + assert_eq!(gathers.len(), if bits == 0 { 1 } else { 3 }); + let front = layout != "transpose" && !matches!(ids_layout, "slice" | "broadcast"); + assert!( + gathers + .iter() + .all(|c| c.0.contains("gather_front_") == front) + ); + assert_eq!( + calls + .iter() + .filter(|c| c.0.starts_with("affine_dequantize_")) + .count(), + usize::from(bits != 0) + ); + let read = ops::astype(&output, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + let mut bytes = vec![0; read.layout().nbytes()]; + read.buffer().read(read.offset(), &mut bytes).unwrap(); + let hash = Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(); + assert_eq!( + hash, + row["sha256"][0].as_str().unwrap(), + "{} deferred={deferred}", + row["kernel"] + ); + } + }); + } + streams.clear_streams().unwrap(); +} + +pub(super) struct HashedRows { + pub(super) rows: Vec, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) row_shape: [usize; 3], + pub(super) history: Vec, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) history_shape: [usize; 2], +} + +impl HashContract { + pub(super) fn rows( + &self, + ids: &[i64], + previous: &[i64], + shape: [usize; 2], + previous_len: usize, + ) -> Result { + let [batch, tokens] = shape; + if batch.checked_mul(tokens) != Some(ids.len()) + || batch.checked_mul(previous_len) != Some(previous.len()) + { + return Err("NGram stage input/history shape mismatch".into()); + } + if self.sizes.iter().any(|&s| s <= 0) { + return Err("NGram head vocab sizes must be positive".into()); + } + let width = previous_len + .checked_add(tokens) + .ok_or("NGram history size overflow")?; + // Python [:, -S:] means the entire history when S == 0. + let start = if tokens == 0 { 0 } else { previous_len }; + let row_count = width - start; + let capacity = batch + .checked_mul(row_count) + .and_then(|n| n.checked_mul(16)) + .ok_or("NGram result size overflow")?; + let history_width = width.min(2); + let mut result = HashedRows { + rows: Vec::with_capacity(capacity), + row_shape: [batch, row_count, 16], + history: Vec::with_capacity( + batch + .checked_mul(history_width) + .ok_or("NGram cache size overflow")?, + ), + history_shape: [batch, history_width], + }; + for b in 0..batch { + let mut shifted = [self.eos; 2]; + let mut raw_tail = [self.eos; 2]; + for (i, &token) in previous[b * previous_len..(b + 1) * previous_len] + .iter() + .chain(&ids[b * tokens..(b + 1) * tokens]) + .enumerate() + { + if i >= start { + let two = token.wrapping_mul(self.multipliers[0]) + ^ shifted[1].wrapping_mul(self.multipliers[1]); + let three = two ^ shifted[0].wrapping_mul(self.multipliers[2]); + for head in 0..16 { + let mixed = if head < 8 { two } else { three }; + result.rows.push( + mixed + .rem_euclid(self.sizes[head]) + .wrapping_add(self.offsets[head]), + ); + } + } + // EOS changes subsequent shifts, NOT this token's hash and + // NOT the raw history retained by NGramEmbedding._rows_np. + shifted = if token == self.eos { + [self.eos; 2] + } else { + [shifted[1], token] + }; + raw_tail = [raw_tail[1], token]; + } + result + .history + .extend_from_slice(&raw_tail[2 - history_width..]); + } + Ok(result) + } +} + +#[test] +fn mtplx_ngram_cpu_rows_and_raw_history_match_reference() { + use sha2::{Digest, Sha256}; + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-rows.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + let contract = &fixtures[0]; + let array = |key: &str| { + contract[key] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>() + }; + let hash = HashContract { + multipliers: array("multipliers").try_into().unwrap(), + sizes: array("sizes").try_into().unwrap(), + offsets: array("offsets").try_into().unwrap(), + eos: contract["eos"].as_i64().unwrap(), + }; + assert_eq!(hash.eos, 248044); + let ids = |n, salt| { + let palette = [ + 0, + 1, + 42, + hash.eos, + hash.eos, + 248000, + -1, + i64::MAX, + i64::MIN, + 43, + ]; + (0..n) + .map(|i| palette[(i * 7 + salt) % palette.len()]) + .collect::>() + }; + let mut checked = 0; + for batch in [1, 2] { + for rows in [0, 1, 4, 2048] { + for prev_len in [0, 1, 2, 5] { + let mut previous = ids(batch * prev_len, 3); + let mut width = prev_len; + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let result = hash + .rows( + &ids(batch * tokens, step), + &previous, + [batch, tokens], + width, + ) + .unwrap(); + let name = format!("ngram_rows_b{batch}_r{rows}_p{prev_len}_step{step}"); + let fixture = fixtures.iter().find(|r| r["kernel"] == name).unwrap(); + assert_eq!(serde_json::json!(result.row_shape), fixture["result_shape"]); + assert_eq!( + serde_json::json!(result.history_shape), + fixture["history_shape"] + ); + for (i, values) in [&result.rows, &result.history].into_iter().enumerate() { + let mut digest = Sha256::new(); + for v in values { + digest.update(v.to_le_bytes()); + } + assert_eq!( + digest + .finalize() + .iter() + .map(|v| format!("{v:02x}")) + .collect::(), + fixture["sha256"][i].as_str().unwrap(), + "{name} output{i}" + ); + } + previous = result.history; + width = result.history_shape[1]; + checked += 1; + } + } + } + } + assert_eq!(checked, 64); + let eos = hash.rows(&[42, hash.eos], &[], [1, 2], 0).unwrap(); + assert_eq!(eos.history, [42, hash.eos]); + assert!(hash.rows(&[1], &[], [2, 1], 0).is_err()); + assert!(hash.rows(&[], &[1], [1, 0], 2).is_err()); + let bad = HashContract { + sizes: [0; 16], + ..hash + }; + assert!(bad.rows(&[], &[], [1, 0], 0).is_err()); +} + +#[test] +#[ignore = "requires Apple Metal; original lazy NGram GPU row graph, no table"] +fn mtplx_ngram_gpu_rows_and_history_match_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let array = |shape: &[i32], data: &[i64]| { + Array::new( + shape, + Dtype::I64, + super::scalar_buffer( + &data + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + let source: serde_json::Value = serde_json::from_str( + include_str!("../../../../tests/fixtures/mtplx-ngram-rows.jsonl") + .lines() + .next() + .unwrap(), + ) + .unwrap(); + let constants = |key: &str| { + let v = source[key] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + array(&[v.len() as i32], &v) + }; + let mult = constants("multipliers"); + let sizes = constants("sizes"); + let offsets = constants("offsets"); + let hash = GpuHash { + multipliers: &mult, + sizes: &sizes, + offsets: &offsets, + eos: 248044, + }; + let ids = |n: usize, salt: usize| { + let palette = [ + 0, + 1, + 42, + hash.eos, + hash.eos, + 248000, + -1, + i64::MAX, + i64::MIN, + 43, + ]; + (0..n) + .map(|i| palette[(i * 7 + salt) % palette.len()]) + .collect::>() + }; + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-gpu.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + let mut checked = 0; + for deferred in [false, true] { + for batch in [1, 2] { + for rows in [1, 4, 2048] { + for prev_len in [-1, 0, 1, 2, 5] { + super::eval::execution_tests::observed(|| { + let mut previous = (prev_len >= 0).then(|| { + array(&[batch, prev_len], &ids((batch * prev_len) as usize, 3)) + }); + let mut pending = Vec::new(); + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let input = + array(&[batch, tokens], &ids((batch * tokens) as usize, step)); + let (output, calls) = capture_dispatches(|| { + let input = if batch == 1 && step == 1 { + ops::astype(&input, Dtype::I32, false, gpu).unwrap() + } else { + input.clone() + }; + hash.rows(&input, previous.as_ref(), gpu).unwrap() + }); + assert!( + calls.is_empty(), + "NGram construction must not evaluate lazy IDs" + ); + previous = Some(output[1].clone()); + if !deferred { + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &output, gpu, false).unwrap() + }); + let scans = calls + .iter() + .filter(|r| r.0 == "contig_scan_inclusive_max_int64_int64") + .count(); + assert_eq!( + scans, 2, + "both original shift scans must remain present" + ); + assert!(calls.iter().any(|r| { + r.0.starts_with("kernel_qwen_mtplx_gather_axis_i64_idxi64_") + })); + } + pending.push(( + format!("ngram_gpu_b{batch}_r{rows}_p{prev_len}_step{step}"), + output, + )); + } + if deferred { + ops::evaluate( + &streams, + &pending + .iter() + .flat_map(|(_, a)| a.iter().cloned()) + .collect::>(), + gpu, + false, + ) + .unwrap(); + } + for (name, output) in pending { + let fixture = fixtures.iter().find(|f| f["kernel"] == name).unwrap(); + for (i, a) in output.iter().enumerate() { + assert_eq!( + serde_json::json!(a.layout().shape()), + fixture[if i == 0 { + "result_shape" + } else { + "history_shape" + }] + ); + let packed = ops::contiguous(a, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false) + .unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + let got = Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(); + assert_eq!( + got, + fixture["sha256"][i].as_str().unwrap(), + "{name} output{i}" + ); + } + checked += 1; + } + }); + } + } + } + } + assert_eq!(checked, 120); + // Scan donation has no unary-style allocation-size ceiling in MTPLX. + let backing = super::super::gpu::Buffer::mtplx_bytes(1 << 18).unwrap(); + backing.write(0, &[0_u8; 17 * 8]).unwrap(); + let identity = backing.data_identity(); + let oversized = Array::new(&[1, 17], Dtype::I64, backing).unwrap(); + let result = indexing::cummax_last_i64(&oversized, gpu).unwrap(); + drop(oversized); + ops::evaluate(&streams, std::slice::from_ref(&result), gpu, false).unwrap(); + assert_eq!(result.buffer().data_identity(), identity); + // Scan allocation/stride and thread-size branches beyond the model cases. + for width in [17, 2048, 2049, 4096, 4097] { + for kind in ["row", "column", "broadcast"] { + for alias in [false, true] { + super::eval::execution_tests::observed(|| { + let values = (0..2 * width) + .map(|i| i64::from((i * 17) % 31) - 15) + .collect::>(); + let input = match kind { + "column" => { + ops::transpose(&array(&[width, 2], &values), &[1, 0], gpu).unwrap() + } + "broadcast" => ops::broadcast_to( + &array(&[1, width], &values[..width as usize]), + &[2, width], + gpu, + ) + .unwrap(), + _ => array(&[2, width], &values), + }; + let guard = alias.then(|| input.clone()); + let result = indexing::cummax_last_i64(&input, gpu).unwrap(); + drop(input); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&result), gpu, false).unwrap() + }); + let scan = calls + .iter() + .find(|r| r.0.contains("scan_inclusive_max_int64_int64")) + .unwrap(); + assert_eq!(scan.0.starts_with("strided_"), kind == "column"); + let packed = ops::contiguous(&result, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + for batch in 0..2 { + let mut maximum = i64::MIN; + for i in 0..width as usize { + let source = match kind { + "column" => i * 2 + batch, + "broadcast" => i, + _ => batch * width as usize + i, + }; + maximum = maximum.max(values[source]); + let offset = (batch * width as usize + i) * 8; + assert_eq!( + i64::from_le_bytes(bytes[offset..offset + 8].try_into().unwrap()), + maximum + ); + } + } + drop(guard); + }); + } + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/ngram_sidecar.rs b/src/engine/metal/qwen_mtplx/ngram_sidecar.rs new file mode 100644 index 0000000..2803669 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ngram_sidecar.rs @@ -0,0 +1,684 @@ +//! MTPLX _SidecarGather: page warmup, sorted unique gathers and raw-row LRU. +use super::array::{Array, Dtype}; +use super::{ + linear, ops, + stream::{Stream, Streams}, +}; +use memmap2::{Mmap, MmapOptions}; +use rustc_hash::FxHashMap as HashMap; +use std::fs::File; +use std::os::unix::fs::FileExt; +use std::path::Path; +use std::sync::{ + Arc, + atomic::{AtomicUsize, Ordering}, + mpsc, +}; +use std::thread; + +#[derive(Clone)] +pub(super) struct Entry { + pub(super) offset: u64, + pub(super) rows: usize, + pub(super) columns: usize, + pub(super) dtype: Dtype, +} + +struct Map { + memory: Mmap, + entry: Entry, + row_bytes: usize, +} + +#[derive(Clone)] +struct RowPart { + data: Arc<[u8]>, + start: usize, + len: usize, +} +impl RowPart { + fn bytes(&self) -> &[u8] { + &self.data[self.start..self.start + self.len] + } +} +struct HotRow { + parts: Vec, + previous: Option, + next: Option, +} + +struct WarmBatch { + file: Arc, + meta: Arc<[(u64, usize)]>, + rows: Arc<[i64]>, + step: usize, + next: AtomicUsize, + finished: mpsc::Sender>, +} + +#[derive(Default)] +struct Prefetch { + senders: Vec>>, + threads: Vec>, +} +impl Prefetch { + fn warm( + &mut self, + file: &Arc, + meta: &Arc<[(u64, usize)]>, + rows: &[i64], + ) -> Result<(), String> { + let step = rows.len().div_ceil(32).clamp(1, 64); + let workers = rows.len().div_ceil(step).min(16); + while self.senders.len() < workers { + let (tx, rx) = mpsc::channel::>(); + let index = self.senders.len(); + let handle = thread::Builder::new() + .name(format!("ngram-prefetch-{index}")) + .spawn(move || { + while let Ok(batch) = rx.recv() { + let result = (|| { + let mut bytes = + vec![0; batch.meta.iter().map(|m| m.1).max().unwrap_or(0)]; + loop { + let start = batch.next.fetch_add(batch.step, Ordering::Relaxed); + if start >= batch.rows.len() { + break; + } + for &row in + &batch.rows[start..(start + batch.step).min(batch.rows.len())] + { + for &(base, width) in batch.meta.iter() { + let offset = u64::try_from( + i128::from(base) + i128::from(row) * width as i128, + ) + .map_err( + |_| "negative or overflowing sidecar pread offset", + )?; + // os.pread warms pages; short reads are not decoded or retried. + batch + .file + .read_at(&mut bytes[..width], offset) + .map_err(|e| format!("sidecar prefetch: {e}"))?; + } + } + } + Ok(()) + })(); + let _ = batch.finished.send(result); + } + }) + .map_err(|e| format!("starting sidecar prefetch worker: {e}"))?; + self.senders.push(tx); + self.threads.push(handle); + } + let (tx, rx) = mpsc::channel(); + let batch = Arc::new(WarmBatch { + file: file.clone(), + meta: meta.clone(), + rows: Arc::from(rows), + step, + next: AtomicUsize::new(0), + finished: tx, + }); + for sender in self.senders.iter().take(workers) { + sender + .send(batch.clone()) + .map_err(|_| "sidecar prefetch worker stopped")?; + } + drop(batch); + let mut error = None; + for _ in 0..workers { + match rx + .recv() + .map_err(|_| "sidecar prefetch completion missing")? + { + Ok(()) => {} + Err(e) => { + if error.is_none() { + error = Some(e); + } + } + } + } + error.map_or(Ok(()), Err) + } +} +impl Drop for Prefetch { + fn drop(&mut self) { + self.senders.clear(); + for handle in self.threads.drain(..) { + let _ = handle.join(); + } + } +} + +pub(super) struct SidecarGather { + maps: Vec, + file: Arc, + meta: Arc<[(u64, usize)]>, + pool: Option, + hot: HashMap, + first: Option, + last: Option, + capacity: usize, + bits: u32, + group: u32, + pub(super) prefetch_batches: u64, + pub(super) hot_hits: u64, + pub(super) hot_misses: u64, +} + +impl SidecarGather { + pub(super) fn hot_mebibytes(&self) -> usize { + self.capacity * self.meta.iter().map(|m| m.1).sum::() / (1 << 20) + } + + pub(super) fn prefetch_enabled(&self) -> bool { + self.pool.is_some() + } + + /// Entries are weight[,scales,biases], as in attach_sidecar's ordered maps. + pub(super) fn open( + path: &Path, + entries: &[Entry], + bits: u32, + group: u32, + prefetch: bool, + hot_bytes: usize, + ) -> Result { + if entries.len() != if bits == 0 { 1 } else { 3 } { + return Err("sidecar requires weight and affine parameters".into()); + } + if (bits == 0 && !matches!(entries[0].dtype, Dtype::BF16 | Dtype::F16)) + || (bits != 0 + && (!matches!(bits, 2 | 3 | 4 | 5 | 6 | 8) + || !matches!(group, 32 | 64 | 128) + || entries[0].dtype != Dtype::U32 + || !matches!(entries[1].dtype, Dtype::BF16 | Dtype::F16) + || entries[1].dtype != entries[2].dtype + || entries[1].columns != entries[2].columns + || entries[0].columns as u128 * 32 / bits as u128 + != entries[1].columns as u128 * group as u128)) + { + return Err("unsupported sidecar quantization layout".into()); + } + let file = Arc::new(File::open(path).map_err(|e| format!("opening sidecar: {e}"))?); + let file_bytes = file.metadata().map_err(|e| e.to_string())?.len(); + let mut maps = Vec::new(); + let mut meta = Vec::new(); + for entry in entries { + if !matches!(entry.dtype, Dtype::U32 | Dtype::BF16 | Dtype::F16) + || entry.rows != entries[0].rows + || entry.rows == 0 + || entry.rows > i64::MAX as usize + || entry.columns == 0 + { + return Err("invalid sidecar tensor layout".into()); + } + let row_bytes = entry + .columns + .checked_mul(entry.dtype.itemsize()) + .ok_or("sidecar row overflow")?; + let len = entry + .rows + .checked_mul(row_bytes) + .ok_or("sidecar size overflow")?; + if entry + .offset + .checked_add(len as u64) + .is_none_or(|end| end > file_bytes) + { + return Err("sidecar tensor extends beyond file".into()); + } + // SAFETY: managed model artifacts remain immutable for the mapping lifetime. + let memory = unsafe { MmapOptions::new().offset(entry.offset).len(len).map(&*file) } + .map_err(|e| format!("mapping sidecar: {e}"))?; + // memmap2 accounts for unaligned tensor offsets when advising the map. + let _ = memory.advise(memmap2::Advice::Random); + meta.push((entry.offset, row_bytes)); + maps.push(Map { + memory, + entry: entry.clone(), + row_bytes, + }); + } + let row_bytes = meta.iter().map(|m| m.1).sum::().max(1); + Ok(Self { + maps, + file, + meta: meta.into(), + pool: prefetch.then(Prefetch::default), + hot: HashMap::default(), + first: None, + last: None, + capacity: hot_bytes / row_bytes, + bits, + group, + prefetch_batches: 0, + hot_hits: 0, + hot_misses: 0, + }) + } + + fn warm(&mut self, rows: &[i64]) -> Result<(), String> { + if !rows.is_empty() + && let Some(pool) = &mut self.pool + { + pool.warm(&self.file, &self.meta, rows)?; + self.prefetch_batches += 1; + } + Ok(()) + } + + fn unlink(&mut self, key: i64) { + let row = &self.hot[&key]; + let (previous, next) = (row.previous, row.next); + if let Some(p) = previous { + self.hot.get_mut(&p).unwrap().next = next; + } else { + self.first = next; + } + if let Some(n) = next { + self.hot.get_mut(&n).unwrap().previous = previous; + } else { + self.last = previous; + } + } + fn touch(&mut self, key: i64) { + if self.last == Some(key) { + return; + } + self.unlink(key); + let row = self.hot.get_mut(&key).unwrap(); + row.previous = self.last; + row.next = None; + if let Some(last) = self.last { + self.hot.get_mut(&last).unwrap().next = Some(key); + } else { + self.first = Some(key); + } + self.last = Some(key); + } + + fn fetched(&self, rows: &[i64]) -> Vec> { + self.maps + .iter() + .map(|map| { + let mut data = Vec::with_capacity(rows.len() * map.row_bytes); + for &row in rows { + let index = if row < 0 { + (map.entry.rows as i64 + row) as usize + } else { + row as usize + }; + data.extend_from_slice( + &map.memory[index * map.row_bytes..(index + 1) * map.row_bytes], + ); + } + data.into() + }) + .collect() + } + + fn rows_matrices(&mut self, flat: &[i64]) -> Result>, String> { + let count = self.maps[0].entry.rows as i64; + if flat.iter().any(|&i| i < -count || i >= count) { + return Err("sidecar row index out of bounds".into()); + } + // np.unique sorts by signed value; negative keys remain distinct in the LRU. + let mut order = (0..flat.len()).collect::>(); + order.sort_unstable_by_key(|&i| flat[i]); + let mut unique = Vec::new(); + let mut inverse = vec![0; flat.len()]; + for index in order { + if unique.last() != Some(&flat[index]) { + unique.push(flat[index]); + } + inverse[index] = unique.len() - 1; + } + let matrices = if unique.is_empty() || unique.len() > 4096 || self.capacity == 0 { + self.warm(&unique)?; + self.fetched(&unique) + } else { + let missing = unique + .iter() + .copied() + .filter(|key| !self.hot.contains_key(key)) + .collect::>(); + if !missing.is_empty() { + self.warm(&missing)?; + let fetched = self.fetched(&missing); + for (i, key) in missing.iter().copied().enumerate() { + let parts = fetched + .iter() + .zip(&self.maps) + .map(|(data, map)| RowPart { + data: data.clone(), + start: i * map.row_bytes, + len: map.row_bytes, + }) + .collect(); + self.hot.insert( + key, + HotRow { + parts, + previous: self.last, + next: None, + }, + ); + if let Some(last) = self.last { + self.hot.get_mut(&last).unwrap().next = Some(key); + } else { + self.first = Some(key); + } + self.last = Some(key); + } + } + self.hot_hits += (unique.len() - missing.len()) as u64; + self.hot_misses += missing.len() as u64; + let mut rows = Vec::with_capacity(unique.len()); + for &key in &unique { + rows.push(self.hot[&key].parts.clone()); + self.touch(key); + } + // References in rows survive eviction, as NumPy row views do. + while self.hot.len() > self.capacity { + let key = self.first.unwrap(); + self.unlink(key); + self.hot.remove(&key); + } + self.maps + .iter() + .enumerate() + .map(|(j, map)| { + let mut matrix = Vec::with_capacity(rows.len() * map.row_bytes); + for row in &rows { + matrix.extend_from_slice(row[j].bytes()); + } + Arc::from(matrix) + }) + .collect() + }; + Ok(matrices + .iter() + .zip(&self.maps) + .map(|(matrix, map)| { + let mut expanded = Vec::with_capacity(flat.len() * map.row_bytes); + for &i in &inverse { + expanded.extend_from_slice(&matrix[i * map.row_bytes..(i + 1) * map.row_bytes]); + } + expanded + }) + .collect()) + } + + /// _SidecarGather.__call__: unlike gather_np this intentionally reads lazy IDs. + pub(super) fn gather( + &mut self, + ids: &Array, + dim: i32, + streams: &Streams, + stream: Stream, + ) -> Result { + if ids.layout().dtype() != Dtype::I64 { + return Err("sidecar graph IDs must be I64".into()); + } + let mut shape = ids.layout().shape().to_vec(); + shape.push(dim); + let flat = ops::reshape(ids, &[-1], stream)?; + let rows = ops::read_i64(&flat, streams, stream)?; + ops::reshape(&self.gather_np(&rows, stream)?, &shape, stream) + } + + /// Materialized IDs: does not evaluate any graph node. + pub(super) fn gather_np(&mut self, flat: &[i64], stream: Stream) -> Result { + let matrices = self.rows_matrices(flat)?; + let parts = matrices + .iter() + .zip(&self.maps) + .map(|(data, map)| { + let integer = if map.entry.dtype == Dtype::U32 { + Dtype::U32 + } else { + Dtype::U16 + }; + let shape = [ + i32::try_from(flat.len()).map_err(|_| "sidecar row count overflow")?, + i32::try_from(map.entry.columns).map_err(|_| "sidecar width overflow")?, + ]; + let array = Array::new(&shape, integer, super::scalar_buffer(data)?)?; + if integer == map.entry.dtype { + Ok(array) + } else { + ops::view(&array, map.entry.dtype, stream) + } + }) + .collect::, String>>()?; + if self.bits == 0 { + Ok(parts[0].clone()) + } else { + linear::dequantize( + &parts[0], &parts[1], &parts[2], self.group, self.bits, stream, + ) + } + } +} + +#[test] +#[ignore = "requires Apple Metal; actual file-backed MTPLX sidecar/LRU/dequantization receipts"] +fn mtplx_ngram_sidecar_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + use std::io::Write; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + struct Temp(std::path::PathBuf); + impl Drop for Temp { + fn drop(&mut self) { + let _ = std::fs::remove_file(self.0.join("rows.bin")); + let _ = std::fs::remove_dir(&self.0); + } + } + let temp = Temp(std::env::temp_dir().join(format!( + "ds4-mtplx-sidecar-{}-{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ))); + std::fs::create_dir(&temp.0).unwrap(); + let path = temp.0.join("rows.bin"); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-sidecar.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 192); + let digest = |bytes: &[u8]| { + Sha256::digest(bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::() + }; + let cases = [ + vec![5, 1, 5, 3], + vec![3, 5, 2, 1], + vec![6, 2, 9, 6], + vec![], + (0..4096).rev().collect(), + (0..4097).rev().collect(), + vec![-1, 5002, -2], + vec![1, 3, 5], + ]; + for group in fixtures.chunks_exact(8) { + super::eval::execution_tests::observed(|| { + let row = &group[0]; + let bits = row["bits"].as_u64().unwrap() as u32; + let dtype = if row["dtype"] == "BF16" { + Dtype::BF16 + } else { + Dtype::F16 + }; + let prefetch = row["prefetch"].as_bool().unwrap(); + let capacity = row["capacity"].as_u64().unwrap() as usize; + let mut entries = Vec::new(); + let mut data = vec![0; 4096]; + for part in 0..if bits == 0 { 1 } else { 3 } { + let packed = bits != 0 && part == 0; + let columns = if packed { + 20 + } else if bits != 0 { + 5 + } else { + 160 + }; + let entry = Entry { + offset: data.len() as u64, + rows: 5003, + columns, + dtype: if packed { Dtype::U32 } else { dtype }, + }; + for i in 0..5003 * columns as u32 { + if packed { + data.extend_from_slice( + &i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes(), + ); + } else { + data.extend_from_slice( + &(0x3c00u16 + ((i * 7 + part * 13) % 512) as u16).to_le_bytes(), + ); + } + } + data.extend_from_slice(&[0; 34]); + entries.push(entry); + } + File::create(&path).unwrap().write_all(&data).unwrap(); + let row_bytes = entries + .iter() + .map(|e| e.columns * e.dtype.itemsize()) + .sum::(); + for mode in 0..3 { + let deferred = mode != 0; + let mut gather = + SidecarGather::open(&path, &entries, bits, 32, prefetch, capacity * row_bytes) + .unwrap(); + let mut outputs = Vec::new(); + for (expected, ids) in group.iter().zip(&cases) { + let out = if mode == 2 { + use super::{ + binary::{Binary, binary}, + ngram::Table, + }; + let raw = ids + .iter() + .flat_map(|&i| [i, 999999i64]) + .flat_map(|i| i.to_le_bytes()) + .collect::>(); + let input = Array::new( + &[ids.len() as i32 * 2], + Dtype::I64, + super::scalar_buffer(&raw).unwrap(), + ) + .unwrap(); + let zero = Array::new( + &[], + Dtype::I64, + super::scalar_buffer(&0i64.to_le_bytes()).unwrap(), + ) + .unwrap(); + let input = binary(&input, &zero, Binary::Add, gpu).unwrap(); + let input = + ops::slice(&input, &[0], &[ids.len() as i32 * 2], &[2], gpu).unwrap(); + let mut table = Table { + resident: None, + sidecar: Some(gather), + weight: None, + prefer_lazy: true, + sidecar_mode: true, + dim: 160, + }; + let (out, calls) = + capture_dispatches(|| table.gather(&input, &streams, gpu).unwrap()); + if !ids.is_empty() { + assert_eq!( + calls.len(), + 1, + "nonstaged sidecar evaluates lazy IDs without an extra contiguous copy" + ); + } + assert!( + !calls.iter().any(|c| c.0.starts_with("affine_dequantize_")), + "table output remains lazy" + ); + gather = table.sidecar.take().unwrap(); + out + } else { + let (out, calls) = + capture_dispatches(|| gather.gather_np(ids, gpu).unwrap()); + assert!( + calls.is_empty(), + "staged gather must not evaluate graph nodes" + ); + out + }; + assert_eq!(out.layout().shape(), [ids.len() as i32, 160]); + if !deferred { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + } + outputs.push(out); + assert_eq!(gather.hot_hits, expected["hits"].as_u64().unwrap()); + assert_eq!(gather.hot_misses, expected["misses"].as_u64().unwrap()); + assert_eq!( + gather.prefetch_batches, + expected["prefetch_batches"].as_u64().unwrap() + ); + assert_eq!( + gather.hot.len(), + expected["entries"].as_u64().unwrap() as usize + ); + let mut keys = Vec::new(); + let mut current = gather.first; + while let Some(key) = current { + keys.extend_from_slice(&key.to_le_bytes()); + current = gather.hot[&key].next; + assert!(keys.len() <= gather.hot.len() * 8); + } + assert_eq!(keys.len(), gather.hot.len() * 8); + assert_eq!(digest(&keys), expected["order_sha256"].as_str().unwrap()); + if let Some(pool) = &gather.pool { + assert!(pool.threads.len() <= 16); + } + } + // Pending output owns copied rows, independent of pool, mmap and LRU lifetimes. + drop(gather); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + for (out, expected) in outputs.iter().zip(group) { + let read = ops::astype(out, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + let mut bytes = vec![0; read.layout().nbytes()]; + read.buffer().read(read.offset(), &mut bytes).unwrap(); + assert_eq!( + digest(&bytes), + expected["sha256"].as_str().unwrap(), + "{} deferred{deferred}", + expected["kernel"] + ); + } + } + let mut invalid = entries.clone(); + invalid[0].offset = data.len() as u64; + assert!(SidecarGather::open(&path, &invalid, bits, 32, false, 0).is_err()); + let mut gather = SidecarGather::open(&path, &entries, bits, 32, false, 0).unwrap(); + assert!(gather.gather_np(&[5003], gpu).is_err()); + assert!(gather.gather_np(&[-5004], gpu).is_err()); + }); + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/ngram_stage.rs b/src/engine/metal/qwen_mtplx/ngram_stage.rs new file mode 100644 index 0000000..10a5ec2 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ngram_stage.rs @@ -0,0 +1,806 @@ +//! NGramEmbedding stage/consume/graph lifecycle, including original QA allclose. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::binary::{Binary, binary}; +use super::ngram::{GpuHash, HashContract, Table}; +use super::stream::{Stream, Streams}; +use super::unary::{Unary, unary}; +use super::{bytes, dispatch_geometry, encoder, ops, tensor}; + +fn scalar(value: f32) -> Result { + Array::new(&[], Dtype::F32, super::scalar_buffer(&value.to_le_bytes())?) +} + +/// Exactly ops.cpp allclose on the F32 arrays used by NGram stage verification. +fn allclose(a: &Array, b: &Array, stream: Stream) -> Result { + let a = ops::astype(a, Dtype::F32, false, stream)?; + let b = ops::astype(b, Dtype::F32, false, stream)?; + let rhs = binary( + &scalar(1e-8)?, + &binary( + &scalar(1e-5)?, + &unary(&b, Unary::Abs, stream)?, + Binary::Multiply, + stream, + )?, + Binary::Add, + stream, + )?; + let lhs = unary( + &binary(&a, &b, Binary::Subtract, stream)?, + Unary::Abs, + stream, + )?; + let out = binary(&lhs, &rhs, Binary::LessEqual, stream)?; + let ap = binary(&a, &scalar(f32::INFINITY)?, Binary::Equal, stream)?; + let bp = binary(&b, &scalar(f32::INFINITY)?, Binary::Equal, stream)?; + let an = binary(&a, &scalar(f32::NEG_INFINITY)?, Binary::Equal, stream)?; + let bn = binary(&b, &scalar(f32::NEG_INFINITY)?, Binary::Equal, stream)?; + let any = binary( + &binary(&ap, &an, Binary::LogicalOr, stream)?, + &binary(&bp, &bn, Binary::LogicalOr, stream)?, + Binary::LogicalOr, + stream, + )?; + let both = binary( + &binary(&ap, &bp, Binary::LogicalAnd, stream)?, + &binary(&an, &bn, Binary::LogicalAnd, stream)?, + Binary::LogicalOr, + stream, + )?; + let out = binary( + &out, + &unary(&any, Unary::LogicalNot, stream)?, + Binary::LogicalAnd, + stream, + )?; + let out = binary(&out, &both, Binary::LogicalOr, stream)?; + let shape = out.layout().shape().to_vec(); + if out.layout().size() == 1 { + return ops::reshape(&out, &[], stream); + } + let reduced = Array::make_operation( + stream, + &out, + Layout::new(&vec![1; shape.len()], Dtype::Bool)?, + ops::Operation::AllBoolContiguous, + )?; + ops::squeeze(&reduced, None, stream) +} + +pub(super) fn all_evaluate(input: &Array, output: &Array) -> Result<(), String> { + let layout = input.layout(); + let count = layout.size(); + if layout.dtype() != Dtype::Bool + || (count != 0 && (!layout.flags().contiguous || input.data_size() != count)) + { + return Err("stage allclose requires dense Boolean reduction output".into()); + } + output.set_data(Buffer::mtplx_bytes(4)?)?; + if count == 0 { + return dispatch_geometry( + "init_reduce_andbool_", + &[tensor(0, &output.buffer()).output(1)], + &[], + [1, 1, 1], + [1, 1, 1], + true, + ); + } + let dispatch = + |source: &Array, target: &Array, n: usize, row: usize, grid: [u32; 3], group: [u32; 3]| { + dispatch_geometry( + "all_reduce_andbool_", + &[ + tensor(0, &source.buffer()) + .at_byte_offset(source.offset()) + .input(source.data_size()), + tensor(1, &target.buffer()).output(target.data_size()), + bytes(2, &n), + bytes(3, &row), + ], + &[], + grid, + group, + true, + ) + }; + if count <= 4096 { + let threads = count.div_ceil(4).div_ceil(32) as u32 * 32; + return dispatch( + input, + output, + count, + count, + [threads, 1, 1], + [threads, 1, 1], + ); + } + let (rows, second) = if count <= 1 << 26 { + (128, 32) + } else { + (4096, 1024) + }; + let temporary = Array::new(&[rows], Dtype::Bool, Buffer::mtplx_bytes(rows as u64)?)?; + encoder::add_temporaries(std::slice::from_ref(&*temporary.buffer())); + let row = count.div_ceil(rows as usize); + let threads = row.div_ceil(4).min(1024).div_ceil(32) as u32 * 32; + dispatch( + input, + &temporary, + count, + row, + [threads, rows as u32, 1], + [threads, 1, 1], + )?; + dispatch( + &temporary, + output, + rows as usize, + rows as usize, + [second, 1, 1], + [second, 1, 1], + ) +} + +pub(super) struct StageOptions { + pub(super) enabled: bool, + pub(super) verify: bool, + pub(super) debug: bool, +} +impl Default for StageOptions { + fn default() -> Self { + Self { + enabled: true, + verify: false, + debug: false, + } + } +} +impl StageOptions { + pub(super) fn from_env() -> Self { + Self { + enabled: std::env::var("MTPLX_NGRAM_STAGE").as_deref() != Ok("0"), + verify: std::env::var("MTPLX_NGRAM_STAGE_VERIFY").as_deref() == Ok("1"), + debug: std::env::var("MTPLX_NGRAM_STAGE_DEBUG").as_deref() == Ok("1"), + } + } +} +struct Staged { + shape: [i32; 2], + embedding: Array, + history: Array, + previous: Array, +} +pub(super) struct Embedding<'a> { + pub(super) hash: GpuHash<'a>, + pub(super) table: Table, + pub(super) stage_disabled: bool, + staged: Option, + constants: Option, + pub(super) warned: bool, + pub(super) consumed: u64, + pub(super) bypassed: u64, + pub(super) graph_calls: u64, +} +impl<'a> Embedding<'a> { + pub(super) fn new(hash: GpuHash<'a>, table: Table) -> Self { + Self { + hash, + table, + stage_disabled: false, + staged: None, + constants: None, + warned: false, + consumed: 0, + bypassed: 0, + graph_calls: 0, + } + } + pub(super) fn stage( + &mut self, + ids: &Array, + history: Option<&Array>, + options: &StageOptions, + streams: &Streams, + stream: Stream, + ) { + if self.table.sidecar.is_none() || !options.enabled || self.stage_disabled { + return; + } + match self.prepare(ids, history, streams, stream) { + Ok(staged) => self.staged = Some(staged), + Err(error) => { + if !self.warned { + self.warned = true; + println!("[qwen4_exp] ngram staging disabled after error: {error}"); + let _ = std::io::Write::flush(&mut std::io::stdout()); + } + self.staged = None; + } + } + } + fn prepare( + &mut self, + ids: &Array, + previous: Option<&Array>, + streams: &Streams, + stream: Stream, + ) -> Result { + let values = ops::read_i64(ids, streams, stream)?; + let shape: [i32; 2] = ids + .layout() + .shape() + .try_into() + .map_err(|_| "stage input must have two dimensions")?; + if shape[0] == 0 { + return Err("cannot infer embedding width for an empty batch".into()); + } + let (previous, previous_len) = if let Some(previous) = previous { + let values = ops::read_i64(previous, streams, stream)?; + let ps = previous.layout().shape().to_vec(); + if ps.len() != 2 || ps[0] != shape[0] { + return Err("stage history shape mismatch".into()); + } + (values, ps[1] as usize) + } else { + (vec![self.hash.eos; shape[0] as usize * 2], 2) + }; + if self.constants.is_none() { + self.constants = Some(HashContract { + multipliers: ops::read_i64(self.hash.multipliers, streams, stream)? + .try_into() + .map_err(|_| "stage multipliers shape")?, + sizes: ops::read_i64(self.hash.sizes, streams, stream)? + .try_into() + .map_err(|_| "stage vocab shape")?, + offsets: ops::read_i64(self.hash.offsets, streams, stream)? + .try_into() + .map_err(|_| "stage offsets shape")?, + eos: self.hash.eos, + }); + } + let constants = self.constants.as_mut().unwrap(); + constants.eos = self.hash.eos; + let hashed = constants.rows( + &values, + &previous, + [shape[0] as usize, shape[1] as usize], + previous_len, + )?; + let embedding = self + .table + .sidecar + .as_mut() + .unwrap() + .gather_np(&hashed.rows, stream)?; + let embedding = ops::reshape(&embedding, &[shape[0], shape[1], -1], stream)?; + let history = integer_array( + &[shape[0], hashed.history.len() as i32 / shape[0]], + &hashed.history, + )?; + let previous = integer_array(&[shape[0], previous_len as i32], &previous)?; + Ok(Staged { + shape, + embedding, + history, + previous, + }) + } + fn graph( + &mut self, + ids: &Array, + mut history: Option<&mut Option>, + previous: Option<&Array>, + streams: &Streams, + stream: Stream, + ) -> Result { + let previous = previous.or_else(|| history.as_ref().and_then(|h| h.as_ref())); + let [rows, tail] = self.hash.rows(ids, previous, stream)?; + // The oracle writes cache history before table lookup, including on errors. + if let Some(history) = history.as_mut() { + **history = Some(tail); + } + let embedding = self.table.gather(&rows, streams, stream)?; + let shape = ids.layout().shape().to_vec(); + ops::reshape(&embedding, &[shape[0], shape[1], -1], stream) + } + pub(super) fn forward( + &mut self, + ids: &Array, + history: Option<&mut Option>, + options: &StageOptions, + streams: &Streams, + stream: Stream, + ) -> Result { + if let Some(staged) = self.staged.take() { + if ids.layout().shape().len() != 2 { + return Err("stage call input must have two dimensions".into()); + } + if ids.layout().shape() == staged.shape { + if options.verify { + let reference = + self.graph(ids, None, Some(&staged.previous), streams, stream)?; + let close = allclose(&reference, &staged.embedding, stream)?; + ops::evaluate(streams, std::slice::from_ref(&close), stream, false)?; + let mut result = [0]; + close.buffer().read(close.offset(), &mut result)?; + if result[0] == 0 { + return Err("ngram staged/graph mismatch — staging math broke".into()); + } + } + if let Some(history) = history { + *history = Some(staged.history); + } + self.consumed += 1; + self.census(options); + return Ok(staged.embedding); + } + self.bypassed += 1; + } + self.graph_calls += 1; + self.census(options); + self.graph(ids, history, None, streams, stream) + } + fn census(&self, options: &StageOptions) { + let n = self.consumed + self.graph_calls; + if options.debug && (n == 8 || n == 64 || n.is_multiple_of(512)) { + let hot = self.table.sidecar.as_ref().map_or(String::new(), |s| { + format!(" hot={}/{}", s.hot_hits, s.hot_hits + s.hot_misses) + }); + println!( + "[qwen4_exp] ngram path census: staged={} graph={} stale-shape={}{}", + self.consumed, self.graph_calls, self.bypassed, hot + ); + let _ = std::io::Write::flush(&mut std::io::stdout()); + } + } +} +fn integer_array(shape: &[i32], values: &[i64]) -> Result { + Array::new( + shape, + Dtype::I64, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + )?, + ) +} + +#[test] +#[ignore = "requires Apple Metal; original complete stage lifecycle and file-backed tables"] +fn mtplx_ngram_stage_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{ + allocator, configure_sources, + ngram_sidecar::{Entry, SidecarGather}, + stream::Device, + }; + use sha2::{Digest, Sha256}; + use std::io::Write; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + struct Temp(std::path::PathBuf); + impl Drop for Temp { + fn drop(&mut self) { + let _ = std::fs::remove_file(self.0.join("rows.bin")); + let _ = std::fs::remove_dir(&self.0); + } + } + let temp = Temp(std::env::temp_dir().join(format!( + "ds4-mtplx-stage-{}-{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ))); + std::fs::create_dir(&temp.0).unwrap(); + let path = temp.0.join("rows.bin"); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ngram-stage.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 136); + let digest = |data: &[u8]| { + Sha256::digest(data) + .iter() + .map(|v| format!("{v:02x}")) + .collect::() + }; + let history_hash = |history: &Option| { + history.as_ref().map(|a| { + digest( + &ops::read_i64(a, &streams, gpu) + .unwrap() + .iter() + .flat_map(|i| i.to_le_bytes()) + .collect::>(), + ) + }) + }; + let contract: serde_json::Value = serde_json::from_str( + include_str!("../../../../tests/fixtures/mtplx-ngram-rows.jsonl") + .lines() + .next() + .unwrap(), + ) + .unwrap(); + let multipliers = integer_array( + &[3], + &contract["multipliers"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(), + ) + .unwrap(); + let sizes = integer_array(&[16], &[17; 16]).unwrap(); + let offsets = integer_array(&[16], &[0; 16]).unwrap(); + for pair in fixtures.chunks_exact(2) { + super::eval::execution_tests::observed(|| { + let fixture = &pair[0]; + let bits = fixture["bits"].as_u64().unwrap() as u32; + let scenario = fixture["scenario"].as_str().unwrap(); + let batch = fixture["batch"].as_i64().unwrap() as i32; + let rows = fixture["rows"].as_i64().unwrap() as i32; + let mut data = vec![0; 4096]; + let mut entries = Vec::new(); + for part in 0..if bits == 0 { 1 } else { 3 } { + let packed = bits != 0 && part == 0; + let columns = if packed { + 20 + } else if bits != 0 { + 5 + } else { + 160 + }; + entries.push(Entry { + offset: data.len() as u64, + rows: 17, + columns, + dtype: if packed { Dtype::U32 } else { Dtype::BF16 }, + }); + for i in 0..17 * columns as u32 { + if packed { + data.extend_from_slice( + &i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes(), + ); + } else { + data.extend_from_slice( + &(0x3c00u16 + ((i * 7 + part * 13) % 512) as u16).to_le_bytes(), + ); + } + } + data.extend_from_slice(&[0; 34]); + } + std::fs::File::create(&path) + .unwrap() + .write_all(&data) + .unwrap(); + for deferred in [false, true] { + let sidecar = + SidecarGather::open(&path, &entries, bits, 32, false, 1024 * 1024 * 1024) + .unwrap(); + let table = Table { + resident: None, + sidecar: Some(sidecar), + weight: None, + prefer_lazy: false, + sidecar_mode: true, + dim: 160, + }; + let hash = GpuHash { + multipliers: &multipliers, + sizes: &sizes, + offsets: &offsets, + eos: 248044, + }; + let mut model = Embedding::new(hash, table); + model.stage_disabled = scenario == "disabled"; + let mut options = StageOptions { + enabled: !matches!(scenario, "graph" | "graph_error"), + verify: matches!(scenario, "verify" | "mismatch"), + debug: false, + }; + let mut history = if scenario == "seeded" { + Some( + integer_array( + &[batch, 5], + &(0..batch * 5).map(i64::from).collect::>(), + ) + .unwrap(), + ) + } else { + None + }; + let mut outputs = Vec::new(); + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let values = (0..batch * tokens) + .map(|i| (i * 7 + step as i32) % 51) + .collect::>(); + let ids = Array::new( + &[batch, tokens], + Dtype::I32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let alternate = Array::new( + &[batch, tokens], + Dtype::I32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| (v + 1).to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + model.stage(&ids, history.as_ref(), &options, &streams, gpu); + if step == 0 { + match scenario { + "skip_pending" => { + model.stage_disabled = true; + model.stage(&alternate, history.as_ref(), &options, &streams, gpu); + model.stage_disabled = false; + } + "skip_policy" => { + options.enabled = false; + model.stage(&alternate, history.as_ref(), &options, &streams, gpu); + options.enabled = true; + } + "missing_skip" => { + let sidecar = model.table.sidecar.take(); + model.stage(&alternate, history.as_ref(), &options, &streams, gpu); + model.table.sidecar = sidecar; + } + "error" => { + let invalid = ops::reshape(&ids, &[-1], gpu).unwrap(); + model.stage(&invalid, history.as_ref(), &options, &streams, gpu); + model.stage(&invalid, history.as_ref(), &options, &streams, gpu); + } + "overwrite" => { + model.stage(&alternate, history.as_ref(), &options, &streams, gpu) + } + _ => {} + } + } + assert_eq!( + history_hash(&history).as_deref(), + pair[step]["prehistory"].as_str() + ); + let called = if step == 0 && scenario == "stale" { + ops::slice(&ids, &[0, 0], &[batch, 1], &[1, 1], gpu).unwrap() + } else if step == 0 + && matches!( + scenario, + "different" + | "mismatch" + | "skip_pending" + | "overwrite" + | "missing_skip" + | "skip_policy" + ) + { + alternate + } else { + ids + }; + let detached = if step == 0 && scenario == "graph_error" { + model.table.sidecar.take() + } else { + None + }; + let (output, calls) = capture_dispatches(|| { + model.forward( + &called, + if scenario == "no_cache" { + None + } else { + Some(&mut history) + }, + &options, + &streams, + gpu, + ) + }); + if detached.is_some() { + model.table.sidecar = detached; + } + assert_eq!( + output.is_err(), + pair[step]["error"].as_bool().unwrap(), + "{}", + pair[step]["kernel"] + ); + if output.is_err() { + assert!(output.as_ref().err().unwrap().contains( + if scenario == "graph_error" { + "sidecar was never attached" + } else { + "staged/graph mismatch" + } + )); + } + if model.consumed > 0 + && !options.verify + && !matches!(scenario, "graph" | "disabled" | "stale" | "error") + { + assert!( + calls.is_empty(), + "consuming staged embedding must not evaluate GPU graph" + ); + } + assert_eq!(model.consumed, pair[step]["consumed"].as_u64().unwrap()); + assert_eq!(model.bypassed, pair[step]["bypassed"].as_u64().unwrap()); + assert_eq!( + model.graph_calls, + pair[step]["graph_calls"].as_u64().unwrap() + ); + assert_eq!(model.warned, pair[step]["warned"].as_bool().unwrap()); + assert_eq!( + model.staged.is_some(), + pair[step]["pending"].as_bool().unwrap() + ); + assert_eq!( + history_hash(&history).as_deref(), + pair[step]["history"].as_str(), + "{}", + pair[step]["kernel"] + ); + if let Ok(output) = output { + if !deferred { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false) + .unwrap(); + } + outputs.push((step, output)); + } + } + drop(model); + for (step, output) in outputs { + let read = ops::astype(&output, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&read), gpu, false).unwrap(); + let mut data = vec![0; read.layout().nbytes()]; + read.buffer().read(read.offset(), &mut data).unwrap(); + assert_eq!( + digest(&data), + pair[step]["sha256"].as_str().unwrap(), + "{} deferred{deferred}", + pair[step]["kernel"] + ); + } + } + }); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; stage verification special values and original reduction branches"] +fn mtplx_ngram_stage_allclose_branches() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let receipts = include_str!("../../../../tests/fixtures/mtplx-ngram-stage-verification.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(receipts.len(), 38); + let expected = |name: &str| { + receipts.iter().find(|r| r["kernel"] == name).unwrap()["value"] + .as_bool() + .unwrap() + }; + for size in [0, 1, 2, 4096, 4097, 1 << 20] { + for mode in 0..6 { + let mut a = vec![1.0f32; size]; + let mut b = a.clone(); + if size != 0 { + match mode { + 1 => b[size - 1] = 2.0, + 2 => { + a[size - 1] = f32::INFINITY; + b[size - 1] = f32::INFINITY; + } + 3 => { + a[size - 1] = f32::NEG_INFINITY; + b[size - 1] = f32::NEG_INFINITY; + } + 4 => { + a[size - 1] = f32::INFINITY; + b[size - 1] = f32::NEG_INFINITY; + } + 5 => { + a[size - 1] = f32::NAN; + b[size - 1] = f32::NAN; + } + _ => {} + } + } + let array = |data: &[f32]| { + Array::new( + &[size as i32], + Dtype::F32, + super::scalar_buffer( + &data + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + let result = allclose(&array(&a), &array(&b), gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&result), gpu, false).unwrap() + }); + let mut value = [0]; + result.buffer().read(result.offset(), &mut value).unwrap(); + assert_eq!( + value[0] != 0, + expected(&format!("stage_allclose_{size}_{mode}")), + "size{size} mode{mode}" + ); + let reductions = calls + .iter() + .filter(|c| c.0 == "all_reduce_andbool_") + .collect::>(); + assert_eq!( + reductions.len(), + if size <= 1 { + 0 + } else if size <= 4096 { + 1 + } else { + 2 + } + ); + if size == 0 { + assert!(calls.iter().any(|c| c.0 == "init_reduce_andbool_")); + } + } + } + // The third original dispatch branch is selected strictly above 64MiB. + for size in [1 << 26, (1 << 26) + 1] { + let input = Array::new( + &[size as i32], + Dtype::Bool, + super::scalar_buffer(&vec![1; size]).unwrap(), + ) + .unwrap(); + let output = Array::make_operation( + gpu, + &input, + Layout::new(&[], Dtype::Bool).unwrap(), + ops::Operation::AllBoolContiguous, + ) + .unwrap(); + drop(input); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap() + }); + assert_eq!(calls.len(), 2); + assert_eq!(calls[0].1[1], if size == 1 << 26 { 128 } else { 4096 }); + assert_eq!(calls[1].2[0], if size == 1 << 26 { 32 } else { 1024 }); + let mut value = [0]; + output.buffer().read(output.offset(), &mut value).unwrap(); + assert_eq!(value[0] != 0, expected(&format!("stage_all_{size}"))); + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/normalization.rs b/src/engine/metal/qwen_mtplx/normalization.rs new file mode 100644 index 0000000..bd9211a --- /dev/null +++ b/src/engine/metal/qwen_mtplx/normalization.rs @@ -0,0 +1,791 @@ +//! Normalization primitives from the pinned runtime's Metal backend. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::{binary, ops, stream::Stream, unary}; +use super::{bytes, dispatch_geometry, tensor, views}; + +/// Original last-axis LogSumExp; the serial sampler retains the singleton axis. +pub(super) fn logsumexp_last( + input: &Array, + keepdims: bool, + stream: Stream, +) -> Result { + let layout = input.layout(); + let dtype = layout.dtype().at_least_float(); + if layout.size() == 0 || layout.shape().is_empty() { + return Err("last-axis logsumexp requires nonempty, non-scalar input".into()); + } + if !matches!(dtype, Dtype::BF16 | Dtype::F16 | Dtype::F32) { + return Err("Metal logsumexp requires real floating input".into()); + } + let mut shape = layout.shape().to_vec(); + *shape.last_mut().unwrap() = 1; + drop(layout); + let input = ops::astype(input, dtype, false, stream)?; + let output = Array::make_operation( + stream, + &input, + Layout::new(&shape, dtype)?, + ops::Operation::LogSumExp, + )?; + if keepdims { + Ok(output) + } else { + ops::squeeze(&output, Some(&[-1]), stream) + } +} + +pub(super) fn logsumexp_evaluate(input: &Array, output: &Array) -> Result<(), String> { + // logsumexp.cpp: preserve physical row ordering, copying only when the + // last axis is not contiguous. Unlike Softmax, never donate input data. + let layout = input.layout(); + let input = if layout.flags().contiguous && layout.stride(-1)? == 1 { + input.clone() + } else { + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + views::general_copy_inplace(input, ©)?; + copy + }; + drop(layout); + let layout = input.layout(); + let axis = layout.dim(-1)? as u32; + let rows = input.data_size() / axis as usize; + if layout.flags().row_contiguous { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } else { + let strides = layout + .strides() + .iter() + .map(|s| s / i64::from(axis)) + .collect::>(); + let mut flags = layout.flags(); + let out = output.layout(); + flags.col_contiguous = strides[0] == 1 + && (1..strides.len()).all(|i| { + out.shape()[i] == 1 || strides[i - 1] == i64::from(out.shape()[i]) * strides[i] + }); + drop(out); + output.set_strided_data( + Buffer::mtplx_bytes((layout.nbytes() / axis as usize) as u64)?, + rows, + &strides, + flags, + 0, + )?; + } + let name = format!( + "{}_logsumexp_{}", + if axis > 4096 { "looped" } else { "block" }, + layout.dtype().kernel_name() + ); + let max_threads = views::kernel_max_threads(&name)?; + let group = if axis <= 4096 { + axis.div_ceil(4).div_ceil(32) * 32 + } else { + max_threads + }; + if group > max_threads { + return Err("logsumexp threadgroup exceeds pipeline limit".into()); + } + let grid = u32::try_from(rows) + .ok() + .and_then(|r| r.checked_mul(group)) + .ok_or("logsumexp dispatch overflow")?; + dispatch_geometry( + &name, + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &output.buffer()) + .at_byte_offset(output.offset()) + .output(output.data_size()), + bytes(2, &axis), + ], + &[], + [grid, 1, 1], + [group, 1, 1], + true, + ) +} + +/// The last-axis Softmax primitive used by the original SDPA fallback. +pub(super) fn softmax_last(input: &Array, precise: bool, stream: Stream) -> Result { + if input.layout().size() == 0 { + return Ok(input.clone()); + } + let dtype = input.layout().dtype().at_least_float(); + if input.layout().shape().is_empty() || !matches!(dtype, Dtype::BF16 | Dtype::F16 | Dtype::F32) + { + return Err("Metal last-axis softmax requires non-scalar floating input".into()); + } + let input = ops::astype(input, dtype, false, stream)?; + Array::make_operation( + stream, + &input, + Layout::new(input.layout().shape(), dtype)?, + ops::Operation::Softmax(precise), + ) +} + +pub(super) fn softmax_evaluate(input: &Array, output: &Array, precise: bool) -> Result<(), String> { + let layout = input.layout(); + let input = if layout.flags().contiguous && layout.stride(-1)? == 1 { + if input.is_donatable() { + output.copy_shared_buffer( + input, + layout.strides(), + layout.flags(), + input.data_size(), + 0, + )?; + } else { + output.set_strided_data( + Buffer::mtplx_bytes((input.data_size() * input.itemsize()) as u64)?, + input.data_size(), + layout.strides(), + layout.flags(), + 0, + )?; + } + input.clone() + } else { + let copy = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + views::general_copy_inplace(input, ©)?; + let layout = copy.layout(); + output.copy_shared_buffer(©, layout.strides(), layout.flags(), copy.data_size(), 0)?; + drop(layout); + copy + }; + let axis = input.layout().dim(-1)? as u32; + let name = format!( + "{}_softmax_{}{}", + if axis > 4096 { "looped" } else { "block" }, + if input.layout().dtype() != Dtype::F32 && precise { + "precise_" + } else { + "" + }, + input.layout().dtype().kernel_name() + ); + let max_threads = views::kernel_max_threads(&name)?; + let group = if axis <= 4096 { + axis.div_ceil(4).div_ceil(32) * 32 + } else { + max_threads + }; + if group > max_threads { + return Err("softmax threadgroup exceeds pipeline limit".into()); + } + let rows = input.data_size() / axis as usize; + let grid = u32::try_from(rows) + .ok() + .and_then(|r| r.checked_mul(group)) + .ok_or("softmax dispatch overflow")?; + dispatch_geometry( + &name, + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &output.buffer()) + .at_byte_offset(output.offset()) + .output(output.data_size()), + bytes(2, &axis), + ], + &[], + [grid, 1, 1], + [group, 1, 1], + true, + ) +} + +#[test] +#[ignore = "requires Apple Metal; original sampler LogSumExp branches"] +fn mtplx_logsumexp_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-logsumexp-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 150); + for case in &cases { + let cols = case["cols"].as_i64().unwrap() as i32; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let values = |shape: &[i32]| { + ops::astype( + &Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&v| v as u32).product(), 96), + ) + .unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + let input = match case["layout"].as_str().unwrap() { + "offset" => ops::reshape( + &ops::slice(&values(&[6 * cols + 1]), &[1], &[6 * cols + 1], &[1], gpu).unwrap(), + &[2, 3, cols], + gpu, + ) + .unwrap(), + "strided" => ops::slice( + &values(&[2, 3, cols * 2]), + &[0, 0, 1], + &[2, 3, cols * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + "broadcast" => ops::broadcast_to(&values(&[cols]), &[2, 3, cols], gpu).unwrap(), + "swapped" => ops::transpose(&values(&[2, 3, cols]), &[1, 0, 2], gpu).unwrap(), + _ => values(&[2, 3, cols]), + }; + ops::evaluate(&streams, std::slice::from_ref(&input), gpu, false).unwrap(); + streams.synchronize(gpu).unwrap(); + let identity = input.buffer().data_identity(); + let output = logsumexp_last(&input, case["keepdims"].as_bool().unwrap(), gpu).unwrap(); + drop(input); + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + assert_ne!( + output.buffer().data_identity(), + identity, + "LogSumExp cannot donate" + ); + assert_eq!(serde_json::json!(output.layout().shape()), case["shape"]); + let packed = ops::contiguous( + &ops::astype(&output, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + let buffer = super::scalar_buffer(&bytes).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&buffer, packed.layout().size() as u32, 4)], + ); + } + let empty = Array::new(&[0], Dtype::F32, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + let scalar = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&0_f32.to_le_bytes()).unwrap(), + ) + .unwrap(); + assert!(logsumexp_last(&empty, true, gpu).is_err()); + assert!(logsumexp_last(&scalar, true, gpu).is_err()); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original Softmax type and storage branches"] +fn mtplx_softmax_graph_storage_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-softmax-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 48); + for retain in [false, true] { + for case in &cases { + let cols = case["cols"].as_i64().unwrap() as i32; + let layout = case["layout"].as_str().unwrap(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let values = |shape: &[i32]| { + ops::astype( + &Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&v| v as u32).product(), 96), + ) + .unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + let input = match layout { + "offset" => ops::reshape( + &ops::slice(&values(&[6 * cols + 1]), &[1], &[6 * cols + 1], &[1], gpu) + .unwrap(), + &[2, 3, cols], + gpu, + ) + .unwrap(), + "strided" => ops::slice( + &values(&[2, 3, cols * 2]), + &[0, 0, 1], + &[2, 3, cols * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + "swapped" => ops::transpose(&values(&[2, 3, cols]), &[1, 0, 2], gpu).unwrap(), + _ => values(&[2, 3, cols]), + }; + ops::evaluate(&streams, std::slice::from_ref(&input), gpu, false).unwrap(); + // eval waits for the GPU event, not completion-handler Data release + // (also true in the reference). Drain fixture preparation so the + // donation assertion controls ownership, not callback timing. + streams.synchronize(gpu).unwrap(); + assert!(input.is_donatable(), "fixture preparation retains Data"); + let identity = input.buffer().data_identity(); + let strides = input.layout().strides().to_vec(); + let output = softmax_last(&input, case["precise"].as_bool().unwrap(), gpu).unwrap(); + let held = retain.then_some(input); + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + if layout != "strided" { + assert_eq!(output.layout().strides(), strides); + assert_eq!( + identity == output.buffer().data_identity(), + !retain, + "{} donation", + case["kernel"] + ); + } + drop(held); + let packed = ops::contiguous( + &ops::astype(&output, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + let buffer = super::scalar_buffer(&bytes).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&buffer, packed.layout().size() as u32, 4)], + ); + } + } + streams.clear_streams().unwrap(); +} + +/// Qwen GroupedRMSNorm: unweighted grouped RMS, then full-width multiply. +pub(super) fn grouped_rms_norm( + input: &Array, + weight: &Array, + group_size: i32, + eps: f32, + stream: Stream, +) -> Result { + let shape = input.layout().shape().to_vec(); + let width = *shape.last().ok_or("GroupedRMSNorm requires a dimension")?; + if group_size <= 0 || width % group_size != 0 || weight.layout().shape() != [width] { + return Err("GroupedRMSNorm requires divisible groups and a full-width weight".into()); + } + let mut grouped_shape = shape[..shape.len() - 1].to_vec(); + grouped_shape.extend([-1, group_size]); + let grouped = ops::reshape(input, &grouped_shape, stream)?; + let normed = ops::rms_norm(&grouped, None, eps, stream)?; + let normed = ops::reshape(&normed, &shape, stream)?; + binary::binary(&normed, weight, binary::Binary::Multiply, stream) +} + +/// Qwen SigmoidRMSNormGated: gate/product in F32, restore the input dtype. +pub(super) fn sigmoid_rms_norm( + input: &Array, + weight: &Array, + gate: Option<&Array>, + eps: f32, + stream: Stream, +) -> Result { + let dtype = input.layout().dtype(); + let normed = ops::rms_norm(input, Some(weight), eps, stream)?; + let output = if let Some(gate) = gate { + let gate = ops::astype(gate, Dtype::F32, false, stream)?; + let gate = unary::unary(&gate, unary::Unary::Sigmoid, stream)?; + let normed = ops::astype(&normed, Dtype::F32, false, stream)?; + binary::binary(&gate, &normed, binary::Binary::Multiply, stream)? + } else { + normed + }; + ops::astype(&output, dtype, false, stream) +} + +#[test] +#[ignore = "requires Apple Metal; connected Qwen normalization graph golden fixtures"] +fn mtplx_graph_norm_modules_match_reference() { + super::eval::execution_tests::observed(|| { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| { + let name = row["kernel"].as_str().unwrap(); + name.starts_with("groupnorm_") || name.starts_with("gatednorm_") + }) + .collect::>(); + assert_eq!(fixtures.len(), 25); + for row in fixtures { + let name = row["kernel"].as_str().unwrap(); + let (output, count) = if name.starts_with("groupnorm_") { + let [rows, width, group] = + ["rows", "width", "group"].map(|key| row[key].as_u64().unwrap() as i32); + let input = Array::new( + &[1, rows, width], + Dtype::BF16, + pattern((rows * width) as u32, 55), + ) + .unwrap(); + let weight = Array::new(&[width], Dtype::BF16, pattern(width as u32, 56)).unwrap(); + ( + grouped_rms_norm(&input, &weight, group, 1e-6, gpu).unwrap(), + (rows * width) as u32, + ) + } else { + let tokens = row["tokens"].as_u64().unwrap() as i32; + let mode = row["mode"].as_str().unwrap(); + let shape = [1, tokens, 48, 128]; + let input = + Array::new(&shape, Dtype::BF16, pattern((tokens * 6144) as u32, 55)).unwrap(); + let weight = Array::new(&[128], Dtype::BF16, pattern(128, 56)).unwrap(); + let gate = match mode { + "none" => None, + "contiguous" => Some( + Array::new(&shape, Dtype::BF16, pattern((tokens * 6144) as u32, 57)) + .unwrap(), + ), + "projected" => { + let source = Array::new( + &[1, tokens, 16480], + Dtype::BF16, + pattern((tokens * 16480) as u32, 57), + ) + .unwrap(); + let gate = ops::slice( + &source, + &[0, 0, 10240], + &[1, tokens, 16384], + &[1, 1, 1], + gpu, + ) + .unwrap(); + Some(ops::reshape(&gate, &shape, gpu).unwrap()) + } + _ => panic!("unknown fixture mode"), + }; + ( + sigmoid_rms_norm(&input, &weight, gate.as_ref(), 1e-6, gpu).unwrap(), + (tokens * 6144) as u32, + ) + }; + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + assert_eq!(output.offset(), 0); + verify(name, &[(&output.buffer(), count)]); + } + streams.clear_streams().unwrap(); + }); +} + +#[test] +#[ignore = "requires Apple Metal; graph RMSNorm donation, copy, broadcast and looped kernels"] +fn mtplx_graph_rms_norm_preserves_reference_layout_and_values() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, ops, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let value = |dtype: Dtype, n: usize| -> Vec { + let bits = match dtype { + Dtype::F16 => [0x3c00_u32, 0x4000, 0x4200][n - 1], + Dtype::BF16 => [0x3f80_u32, 0x4000, 0x4040][n - 1], + _ => [0x3f800000_u32, 0x40000000, 0x40400000][n - 1], + }; + bits.to_le_bytes()[..dtype.itemsize()].to_vec() + }; + let constant = |shape: &[i32], dtype: Dtype, n| { + let size = shape.iter().map(|&d| d as usize).product::(); + let buffer = Buffer::mtplx_bytes((size * dtype.itemsize()) as u64).unwrap(); + buffer.write(0, &value(dtype, n).repeat(size)).unwrap(); + Array::new(shape, dtype, buffer).unwrap() + }; + let check = |output: &Array, expected| { + ops::evaluate(&streams, std::slice::from_ref(output), gpu, false).unwrap(); + let mut actual = vec![0; output.data_size() * output.itemsize()]; + output.buffer().read(output.offset(), &mut actual).unwrap(); + assert_eq!( + actual, + value(output.layout().dtype(), expected).repeat(output.data_size()) + ); + }; + for dtype in [Dtype::F16, Dtype::BF16, Dtype::F32] { + for width in [1, 128, 4096, 4097] { + for keep_input in [false, true] { + let input = constant(&[2, width], dtype, 2); + let identity = input.buffer().data_identity(); + let weight = constant(&[width], dtype, 3); + let out = ops::rms_norm(&input, Some(&weight), 0., gpu).unwrap(); + let survivor = keep_input.then(|| input.clone()); + drop(input); + check(&out, 3); + assert_eq!(out.buffer().data_identity() == identity, !keep_input); + drop(survivor); + } + } + let input = constant(&[1, 8], dtype, 2); + let broadcast = ops::broadcast_to(&input, &[4, 8], gpu).unwrap(); + let output = ops::rms_norm(&broadcast, None, 0., gpu).unwrap(); + check(&output, 1); + assert_eq!(output.data_size(), 8); + assert_eq!(output.layout().strides(), [0, 1]); + + // A non-row-contiguous input is copied; its copy becomes output. + // The strided weight remains an original kernel binding. + let input = constant(&[2, 8], dtype, 2); + let transposed = ops::transpose(&input, &[1, 0], gpu).unwrap(); + let weights = constant(&[4], dtype, 3); + let weight = ops::slice(&weights, &[0], &[4], &[2], gpu).unwrap(); + let out = ops::rms_norm(&transposed, Some(&weight), 0., gpu).unwrap(); + check(&out, 3); + assert_ne!(out.buffer().data_identity(), input.buffer().data_identity()); + assert_eq!(out.layout().strides(), [2, 1]); + } + let storage = Buffer::mtplx_bytes(64).unwrap(); + storage.write(0, &[0; 64]).unwrap(); + storage + .write(32, &value(Dtype::BF16, 2).repeat(16)) + .unwrap(); + let base = Array::new(&[4, 8], Dtype::BF16, storage).unwrap(); + let identity = base.buffer().data_identity(); + let tail = ops::slice(&base, &[2, 0], &[4, 8], &[1, 1], gpu).unwrap(); + let w_storage = Buffer::mtplx_bytes(32).unwrap(); + w_storage + .write(0, &[0x80, 0x3f, 0x40, 0x40].repeat(8)) + .unwrap(); + let w_base = Array::new(&[16], Dtype::BF16, w_storage).unwrap(); + let w_tail = ops::slice(&w_base, &[1], &[16], &[2], gpu).unwrap(); + let offset_out = ops::rms_norm(&tail, Some(&w_tail), 0., gpu).unwrap(); + drop(base); + drop(tail); + drop(w_base); + drop(w_tail); + check(&offset_out, 3); + assert_eq!(offset_out.offset(), 32); + assert_eq!(offset_out.buffer().data_identity(), identity); + + let x = constant(&[2, 8], Dtype::BF16, 2); + let w = constant(&[8], Dtype::F16, 3); + let mixed = ops::rms_norm(&x, Some(&w), 0., gpu).unwrap(); + assert_eq!(mixed.layout().dtype(), Dtype::F32); + check(&mixed, 3); + // The module restores the hidden-state dtype even when RMS promotes + // mixed weights, both with and without its F32 sigmoid gate. + let w = constant(&[8], Dtype::F32, 2); + let zero = binary::binary(&x, &x, binary::Binary::Subtract, gpu).unwrap(); + for (gate, expected) in [(None, 2), (Some(&zero), 1)] { + let out = sigmoid_rms_norm(&x, &w, gate, 0., gpu).unwrap(); + assert_eq!(out.layout().dtype(), Dtype::BF16); + check(&out, expected); + } + let grouped = grouped_rms_norm(&x, &w, 4, 0., gpu).unwrap(); + assert_eq!(grouped.layout().dtype(), Dtype::F32); + check(&grouped, 2); + assert!(grouped_rms_norm(&x, &w, 3, 0., gpu).is_err()); + assert!(grouped_rms_norm(&x, &w, 0, 0., gpu).is_err()); + assert!(ops::rms_norm(&x, Some(&constant(&[7], Dtype::BF16, 1)), 0., gpu).is_err()); + assert!(ops::rms_norm(&constant(&[], Dtype::F32, 1), None, 0., gpu).is_err()); + streams.clear_streams().unwrap(); + }); +} + +pub(super) fn dispatch( + bindings: [(&Buffer, u64, usize); 3], + dtype: Dtype, + width: u32, + weight_stride: u32, + eps: f32, +) -> Result<(), String> { + if width == 0 { + return Err("RMSNorm axis must not be empty".into()); + } + let name = format!( + "rms{}{}", + if width > 4096 { "_looped" } else { "" }, + dtype.kernel_name() + ); + let max_threads = views::kernel_max_threads(&name)?; + let group = if width <= 4096 { + width.div_ceil(4).div_ceil(32) * 32 + } else { + max_threads + }; + if group > max_threads { + return Err("RMSNorm threadgroup exceeds pipeline limit".into()); + } + let rows = bindings[0].2 / width as usize; + let threads = rows + .checked_mul(group as usize) + .and_then(|n| u32::try_from(n).ok()) + .ok_or("RMSNorm grid overflow")?; + let [ + (x, x_offset, nx), + (w, w_offset, nw), + (out, out_offset, nout), + ] = bindings; + dispatch_geometry( + &name, + &[ + tensor(0, x).at_byte_offset(x_offset).input(nx), + tensor(1, w).at_byte_offset(w_offset).input(nw), + tensor(2, out).at_byte_offset(out_offset).output(nout), + bytes(3, &eps), + bytes(4, &width), + bytes(5, &weight_stride), + ], + &[], + [threads, 1, 1], + [group, 1, 1], + true, + ) +} + +pub(super) fn evaluate( + input: &Array, + weight: &Array, + output: &Array, + eps: f32, +) -> Result<(), String> { + let layout = input.layout(); + let rank = layout.shape().len(); + let width = *layout + .shape() + .last() + .ok_or("RMSNorm input must have a dimension")? as u32; + if width == 0 { + return Err("RMSNorm axis must not be empty".into()); + } + let mut no_copy = layout.flags().contiguous && layout.strides()[rank - 1] == 1; + if no_copy && rank > 1 { + let stride = layout.strides()[rank - 2]; + no_copy &= stride == 0 || stride == i64::from(width) || layout.shape()[rank - 2] == 1; + } + let dtype = layout.dtype(); + let x = if no_copy { + if input.is_donatable() { + output.copy_shared_buffer( + input, + layout.strides(), + layout.flags(), + input.data_size(), + 0, + )?; + } else { + let nbytes = input + .data_size() + .checked_mul(dtype.itemsize()) + .ok_or("RMSNorm allocation overflow")?; + output.set_strided_data( + Buffer::mtplx_bytes(nbytes as u64)?, + input.data_size(), + layout.strides(), + layout.flags(), + 0, + )?; + } + drop(layout); + input.clone() + } else { + let copied = Array::new( + layout.shape(), + dtype, + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, &copied)?; + let layout = copied.layout(); + output.copy_shared_buffer( + &copied, + layout.strides(), + layout.flags(), + copied.data_size(), + 0, + )?; + drop(layout); + copied + }; + let w_layout = weight.layout(); + let weight_stride = if w_layout.shape().len() == 1 { + w_layout.strides()[0] as u32 + } else { + 0 + }; + dispatch( + [ + (&x.buffer(), x.offset(), x.data_size()), + (&weight.buffer(), weight.offset(), weight.data_size()), + (&output.buffer(), output.offset(), output.data_size()), + ], + dtype, + width, + weight_stride, + eps, + ) +} diff --git a/src/engine/metal/qwen_mtplx/ops.rs b/src/engine/metal/qwen_mtplx/ops.rs new file mode 100644 index 0000000..d435aae --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ops.rs @@ -0,0 +1,1609 @@ +//! Lazy array operations from the pinned runtime's ops.cpp. Payloads live in +//! the Array descriptor; eval needs neither an external value table nor an +//! array-id -> callback map. Model execution is not yet switched to this graph. +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream, Streams}; +use super::{eval, views}; + +pub(super) enum Operation { + Compiled(super::fused::Expression), + Load(super::load::Load), + Reshape, + Flatten { + start: usize, + end: usize, + }, + Unflatten { + axis: usize, + shape: Vec, + }, + Transpose(Vec), + Broadcast, + AsType, + View, + ExpandDims(Vec), + Squeeze(Vec), + Slice { + starts: Vec, + stops: Vec, + steps: Vec, + }, + SliceUpdate { + starts: Vec, + stops: Vec, + steps: Vec, + }, + DynamicSlice(Vec), + DynamicSliceUpdate(Vec), + QsaCompiledScalar(super::qsa_compile::Scalar), + Full, + Contiguous(bool), + RmsNorm(f32), + Softmax(bool), + LogSumExp, + SdpaVector { + scale: f32, + causal: bool, + }, + QsaFlashSkip(u32), + QsaSelect(super::qsa_select::Kernel), + QsaPrefillScores, + QsaPrefillTopK(super::qsa_prefill::TopK), + QsaPrefillFlash, + QsaPrepare { + pool_ratio: Option, + eps: f64, + scale: f64, + }, + QuantizedLinearBf16 { + bits: u32, + group: u32, + }, + GatherQmmBf16 { + bits: u32, + group: u32, + right_sorted: bool, + }, + AffineQuantize { + bits: u32, + group: u32, + }, + AffineDequantize { + bits: u32, + group: u32, + }, + HyperRead(bool), + HyperV3R1, + HyperV3R2, + DenseMatmul, + Sum(Vec), + Min(Vec), + Max(Vec), + RandomBits, + SearchSorted(bool), + ArgMax(usize), + Sort { + axis: usize, + indices: bool, + kth: Option, + }, + Unary(super::unary::Unary), + Binary(super::binary::Binary), + Split { + indices: Vec, + axis: usize, + }, + SiluBf16, + SwiGluBf16, + MoeGluH { + rows: u32, + group: u32, + }, + MoeDownY { + rows: u32, + group: u32, + }, + GdnStepBf16, + GdnOutput(u32), + GdnConvNorm(u32), + GatedDeltaBf16(bool), + ComputeGBf16, + Concatenate(usize), + DepthwiseConv1d, + PleConv1d, + AllBoolContiguous, + Select, + GatherAxis(usize), + ScatterAxis(usize), + ScatterAddRow, + GatherTake(usize), + ArangeI32(i32), + ArangeU32, + ArangeI64, + ArangeF32 { + start: f64, + step: f64, + }, + CummaxLastI64, + CumsumLastI32, + CumsumLastF32(bool), +} + +impl Operation { + fn evaluate(&self, input: &Array, output: &Array, stream: Stream) -> Result<(), String> { + match self { + Self::Compiled(_) => Err("compiled expression requires all inputs/outputs".into()), + Self::QsaCompiledScalar(_) => { + Err("compiled scalar requires its captured inputs".into()) + } + Self::Load(_) => Err("Load requires a CPU stream and no inputs".into()), + Self::Transpose(axes) => views::transpose(input, output, axes), + Self::Broadcast => views::broadcast(input, output), + Self::Slice { starts, steps, .. } => views::slice(input, output, starts, steps), + Self::ExpandDims(axes) | Self::Squeeze(axes) => { + let layout = input.layout(); + let mut strides = layout.strides().to_vec(); + if matches!(self, Self::ExpandDims(_)) { + for &axis in axes { + strides.insert(axis, 1); + } + } else { + for &axis in axes.iter().rev() { + strides.remove(axis); + } + } + output.copy_shared_buffer(input, &strides, layout.flags(), input.data_size(), 0) + } + _ if stream.device() != Device::Gpu => { + Err("CPU copy/conversion primitives are not ported".into()) + } + Self::Reshape | Self::Flatten { .. } | Self::Unflatten { .. } => { + views::reshape(input, output) + } + Self::AsType => views::astype(input, output), + Self::Full => views::full(&input.clone(), output), + Self::SliceUpdate { .. } | Self::DynamicSlice(_) | Self::DynamicSliceUpdate(_) => { + Err("SliceUpdate requires multiple inputs".into()) + } + Self::View => views::dtype_view(input, output), + Self::Contiguous(allow_col_major) => views::contiguous(input, output, *allow_col_major), + Self::Unary(op) => super::unary::evaluate(input, output, *op), + Self::Sum(axes) => { + super::reduce::evaluate(input, output, axes, super::reduce::Reduction::Sum) + } + Self::Min(axes) => { + super::reduce::evaluate(input, output, axes, super::reduce::Reduction::Min) + } + Self::Max(axes) => { + super::reduce::evaluate(input, output, axes, super::reduce::Reduction::Max) + } + Self::RandomBits => super::random::bits_evaluate(input, output), + Self::ArgMax(axis) => super::reduce::argmax_evaluate(input, output, *axis), + Self::Sort { axis, indices, kth } => { + // kth remains part of the graph primitive even though the + // pinned Metal backend evaluates Partition as a full sort. + let _ = kth; + super::sort::evaluate(input, output, *axis, *indices) + } + Self::AllBoolContiguous => super::ngram_stage::all_evaluate(input, output), + Self::Softmax(precise) => { + super::normalization::softmax_evaluate(input, output, *precise) + } + Self::LogSumExp => super::normalization::logsumexp_evaluate(input, output), + Self::Concatenate(_) | Self::DepthwiseConv1d | Self::PleConv1d => { + Err("operation requires multiple inputs".into()) + } + Self::CummaxLastI64 => super::indexing::scan_evaluate(input, output, "max", true), + Self::CumsumLastI32 => super::indexing::scan_evaluate(input, output, "sum", true), + Self::CumsumLastF32(inclusive) => { + super::indexing::scan_evaluate(input, output, "sum", *inclusive) + } + Self::Select + | Self::SearchSorted(_) + | Self::GatherAxis(_) + | Self::ScatterAxis(_) + | Self::ScatterAddRow + | Self::GatherTake(_) + | Self::ArangeI32(_) + | Self::ArangeU32 + | Self::ArangeF32 { .. } + | Self::ArangeI64 => Err("invalid indexing arity".into()), + Self::RmsNorm(_) => Err("RMSNorm requires two inputs".into()), + Self::QuantizedLinearBf16 { .. } => Err("quantized linear requires four inputs".into()), + Self::GatherQmmBf16 { .. } => Err("GatherQMM requires six inputs".into()), + Self::AffineQuantize { .. } => Err("quantize requires three sibling outputs".into()), + Self::AffineDequantize { .. } => Err("dequantize requires three inputs".into()), + Self::HyperRead(_) | Self::HyperV3R1 | Self::HyperV3R2 => { + Err("hyper read requires multiple inputs".into()) + } + Self::DenseMatmul => Err("dense matmul requires two inputs".into()), + Self::QsaSelect(_) | Self::QsaPrefillScores | Self::QsaPrefillTopK(_) => { + Err("QSA selector requires five inputs and sibling outputs".into()) + } + Self::SdpaVector { .. } => Err("SDPA requires multiple inputs".into()), + Self::QsaFlashSkip(_) | Self::QsaPrefillFlash => { + Err("QSA attention requires multiple inputs".into()) + } + Self::QsaPrepare { .. } => Err("QSA preparation requires four inputs".into()), + Self::Binary(_) => Err("binary operation requires two inputs".into()), + Self::Split { .. } => Err("Split requires sibling outputs".into()), + Self::SiluBf16 => super::mlp::silu_evaluate(input, output), + Self::SwiGluBf16 | Self::MoeGluH { .. } | Self::MoeDownY { .. } => { + Err("MoE/compiled SwiGLU requires multiple inputs".into()) + } + Self::GdnStepBf16 | Self::GdnOutput(_) => { + Err("GDN step/output requires multiple inputs".into()) + } + Self::GdnConvNorm(_) | Self::GatedDeltaBf16(_) | Self::ComputeGBf16 => { + Err("GDN primitive requires multiple inputs".into()) + } + } + } +} + +pub(super) fn evaluate( + streams: &Streams, + roots: &[Array], + default: Stream, + asynchronous: bool, +) -> Result<(), String> { + eval::evaluate( + streams, + roots, + default, + asynchronous, + |array, stream, inputs, outputs| { + let operation = array + .operation() + .ok_or("array has no executable primitive")?; + match &*operation { + Operation::Compiled(expression) => { + if stream.device() != Device::Gpu { + return Err("compiled expression requires Metal".into()); + } + return expression.evaluate(inputs, outputs); + } + Operation::QsaCompiledScalar(scalar) => { + if outputs.len() != 1 || stream.device() != Device::Gpu { + return Err("invalid compiled scalar output/device".into()); + } + return scalar.evaluate(inputs, &outputs[0]); + } + Operation::DynamicSlice(axes) => { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("invalid DynamicSlice arity/device".into()); + } + return views::dynamic_slice(&inputs[0], &inputs[1], &outputs[0], axes); + } + Operation::DynamicSliceUpdate(axes) => { + if inputs.len() != 3 || stream.device() != Device::Gpu { + return Err("invalid DynamicSliceUpdate arity/device".into()); + } + return views::dynamic_slice_update( + &inputs[0], + &inputs[1], + &inputs[2], + &outputs[0], + axes, + ); + } + Operation::QsaPrefillScores => { + if inputs.len() != 2 || outputs.len() != 1 || stream.device() != Device::Gpu { + return Err("invalid QSA prefill scores arity/device".into()); + } + return super::qsa_prefill::mpp_evaluate(inputs, &outputs[0]); + } + Operation::QsaPrefillTopK(kernel) => { + if inputs.len() != 4 || stream.device() != Device::Gpu { + return Err("invalid QSA prefill topk arity/device".into()); + } + return super::qsa_prefill::topk_evaluate(inputs, outputs, *kernel); + } + Operation::QsaSelect(kernel) => { + if inputs.len() != 5 || stream.device() != Device::Gpu { + return Err("invalid QSA selector arity/device".into()); + } + return super::qsa_select::evaluate(inputs, outputs, *kernel); + } + Operation::SdpaVector { scale, causal } => { + if !(3..=4).contains(&inputs.len()) + || outputs.len() != 1 + || stream.device() != Device::Gpu + { + return Err("invalid vector SDPA arity/device".into()); + } + return super::sdpa::evaluate(inputs, &outputs[0], *scale, *causal); + } + Operation::Load(load) => { + if !inputs.is_empty() || outputs.len() != 1 || stream.device() != Device::Cpu { + return Err("Load requires a CPU stream and no inputs".into()); + } + return load.evaluate(&outputs[0], stream, streams); + } + Operation::DenseMatmul => { + if inputs.len() != 2 || outputs.len() != 1 || stream.device() != Device::Gpu { + return Err("dense matmul requires two GPU inputs".into()); + } + return super::dense::evaluate(&inputs[0], &inputs[1], &outputs[0]); + } + Operation::SwiGluBf16 => { + if inputs.len() != 2 || outputs.len() != 1 || stream.device() != Device::Gpu { + return Err("compiled SwiGLU requires two GPU inputs".into()); + } + return super::compiled::evaluate( + inputs, + &outputs[0], + "kernel_qwen_mtplx_swiglu_bf16", + ); + } + Operation::MoeGluH { rows, group } | Operation::MoeDownY { rows, group } => { + let down = matches!(&*operation, Operation::MoeDownY { .. }); + if inputs.len() != if down { 6 } else { 5 } + || outputs.len() != 1 + || stream.device() != Device::Gpu + { + return Err("invalid fused MoE arity or device".into()); + } + return super::moe::fused_evaluate(inputs, outputs, *rows, *group, down); + } + Operation::HyperRead(_) | Operation::HyperV3R1 | Operation::HyperV3R2 => { + if stream.device() != Device::Gpu { + return Err("hyper read requires a GPU stream".into()); + } + return super::hyper::evaluate(&operation, inputs, outputs); + } + Operation::AffineQuantize { bits, group } => { + if inputs.len() != 1 || outputs.len() != 3 || stream.device() != Device::Gpu { + return Err("quantize requires one GPU input and three outputs".into()); + } + return super::linear::quantize_evaluate(&inputs[0], outputs, *group, *bits); + } + Operation::AffineDequantize { bits, group } => { + if inputs.len() != 3 || outputs.len() != 1 || stream.device() != Device::Gpu { + return Err("dequantize requires three GPU inputs and one output".into()); + } + return super::linear::dequantize_evaluate(inputs, &outputs[0], *group, *bits); + } + Operation::GdnOutput(group) + if inputs.len() == 6 + && outputs.len() == 1 + && stream.device() == Device::Gpu => + { + return super::gdn::output_evaluate(inputs, outputs, *group); + } + Operation::GdnOutput(_) => return Err("invalid GDN output arity or device".into()), + Operation::GdnConvNorm(rows) + if inputs.len() == 3 + && outputs.len() == 4 + && stream.device() == Device::Gpu => + { + return super::gdn::conv_norm_evaluate(inputs, outputs, *rows); + } + Operation::GatedDeltaBf16(masked) + if inputs.len() == 7 + usize::from(*masked) + && outputs.len() == 2 + && stream.device() == Device::Gpu => + { + return super::gdn::delta_evaluate(inputs, outputs, *masked); + } + Operation::ComputeGBf16 + if inputs.len() == 3 + && outputs.len() == 1 + && stream.device() == Device::Gpu => + { + return super::compiled::evaluate( + inputs, + &outputs[0], + "kernel_qwen_mtplx_compute_g_bf16", + ); + } + Operation::GdnConvNorm(_) + | Operation::GatedDeltaBf16(_) + | Operation::ComputeGBf16 => { + return Err("invalid GDN primitive arity or device".into()); + } + _ => {} + } + if matches!(&*operation, Operation::GdnStepBf16) { + if inputs.len() != 10 || outputs.len() != 3 || stream.device() != Device::Gpu { + return Err("GDN step requires ten GPU inputs and three outputs".into()); + } + return super::gdn::step_evaluate(inputs, outputs); + } + if let Operation::Split { indices, axis } = &*operation { + if inputs.len() != 1 || outputs.len() != indices.len() + 1 { + return Err("invalid Split arity".into()); + } + let input = &inputs[0]; + let layout = input.layout(); + for (output, start) in outputs + .iter() + .zip(std::iter::once(0).chain(indices.iter().copied())) + { + let (data_size, row, col) = output.layout().contiguity(layout.strides())?; + let mut flags = layout.flags(); + flags.row_contiguous = row; + flags.col_contiguous = col; + if data_size == 1 { + flags.contiguous = true; + } else if data_size != input.data_size() { + flags.contiguous &= row || col; + } + output.copy_shared_buffer( + input, + layout.strides(), + flags, + data_size, + i64::from(start) * layout.strides()[*axis], + )?; + } + return Ok(()); + } + if outputs.len() != 1 { + return Err("invalid primitive output arity".into()); + } + match &*operation { + Operation::QsaPrepare { + pool_ratio, + eps, + scale, + } => { + if stream.device() != Device::Gpu { + return Err("QSA preparation requires GPU inputs".into()); + } + return super::qsa_prepare::evaluate( + inputs, + &outputs[0], + *pool_ratio, + *eps, + *scale, + ); + } + Operation::QsaFlashSkip(_) | Operation::QsaPrefillFlash => { + if stream.device() != Device::Gpu { + return Err("QSA attention requires GPU inputs".into()); + } + return super::sparse_attention::evaluate(&operation, inputs, &outputs[0]); + } + Operation::Select + | Operation::SearchSorted(_) + | Operation::GatherAxis(_) + | Operation::ScatterAxis(_) + | Operation::ScatterAddRow + | Operation::GatherTake(_) + | Operation::ArangeI32(_) + | Operation::ArangeU32 + | Operation::ArangeF32 { .. } + | Operation::ArangeI64 => { + if stream.device() != Device::Gpu { + return Err("CPU indexing is not ported".into()); + } + return super::indexing::evaluate(&operation, inputs, &outputs[0]); + } + _ => {} + } + if let Operation::Concatenate(axis) = &*operation { + if inputs.is_empty() || stream.device() != Device::Gpu { + return Err("Concatenate requires GPU inputs".into()); + } + return views::concatenate(inputs, &outputs[0], *axis); + } + if let Operation::SliceUpdate { starts, steps, .. } = &*operation { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("SliceUpdate requires two GPU inputs".into()); + } + return views::slice_update(&inputs[0], &inputs[1], &outputs[0], starts, steps); + } + if let Operation::DepthwiseConv1d = &*operation { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("Conv1d requires two GPU inputs".into()); + } + return super::gdn::conv1d_evaluate(inputs, &outputs[0]); + } + if let Operation::PleConv1d = &*operation { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("PLE Conv1d requires two GPU inputs".into()); + } + return super::ple::conv_evaluate(inputs, &outputs[0]); + } + if let Operation::RmsNorm(eps) = &*operation { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("RMSNorm requires two inputs and a GPU stream".into()); + } + return super::normalization::evaluate(&inputs[0], &inputs[1], &outputs[0], *eps); + } + if let Operation::QuantizedLinearBf16 { bits, group } = &*operation { + if inputs.len() != 4 || stream.device() != Device::Gpu { + return Err("quantized linear requires four inputs and a GPU stream".into()); + } + return super::linear::evaluate(inputs, &outputs[0], *bits, *group); + } + if let Operation::GatherQmmBf16 { + bits, + group, + right_sorted, + } = &*operation + { + if inputs.len() != 6 || stream.device() != Device::Gpu { + return Err("GatherQMM requires six inputs and a GPU stream".into()); + } + return super::linear::gather_evaluate( + inputs, + &outputs[0], + *bits, + *group, + *right_sorted, + ); + } + if let Operation::Binary(op) = &*operation { + if inputs.len() != 2 || stream.device() != Device::Gpu { + return Err("binary operation requires two inputs and a GPU stream".into()); + } + return super::binary::evaluate(&inputs[0], &inputs[1], &outputs[0], *op); + } + if inputs.len() != 1 { + return Err("invalid unary primitive arity".into()); + } + operation.evaluate(&inputs[0], &outputs[0], stream) + }, + ) +} + +/// NumPy-style integer readback: eval once, then traverse the shared strided view. +/// No GPU cast/flatten/contiguous primitive is introduced by the conversion. +pub(super) fn read_i64( + input: &Array, + streams: &Streams, + stream: Stream, +) -> Result, String> { + let dtype = input.layout().dtype(); + if !matches!( + dtype, + Dtype::Bool + | Dtype::U8 + | Dtype::U16 + | Dtype::U32 + | Dtype::U64 + | Dtype::I8 + | Dtype::I16 + | Dtype::I32 + | Dtype::I64 + ) { + return Err("integer CPU view requires integer input".into()); + } + read_cpu_values(input, streams, stream, |p| { + // SAFETY: read_cpu_values owns the evaluated, span-validated storage; + // this match reads exactly the input dtype's width. + unsafe { + match dtype { + Dtype::Bool => i64::from(p.read_unaligned() != 0), + Dtype::U8 => p.read_unaligned() as i64, + Dtype::I8 => p.cast::().read_unaligned() as i64, + Dtype::U16 => p.cast::().read_unaligned() as i64, + Dtype::I16 => p.cast::().read_unaligned() as i64, + Dtype::U32 => p.cast::().read_unaligned() as i64, + Dtype::I32 => p.cast::().read_unaligned() as i64, + Dtype::U64 => p.cast::().read_unaligned() as i64, + Dtype::I64 => p.cast::().read_unaligned(), + _ => unreachable!(), + } + } + }) +} + +/// np.asarray(evaluated_float32_logits).astype(float64), without introducing +/// a GPU pack or flatten. Preserve negative, broadcast and sliced strides. +pub(super) fn read_f32_as_f64( + input: &Array, + streams: &Streams, + stream: Stream, +) -> Result, String> { + if input.layout().dtype() != Dtype::F32 { + return Err("Float32 CPU view requires Float32 input".into()); + } + read_cpu_values(input, streams, stream, |p| { + // SAFETY: the shared reader validates storage; dtype above is Float32. + f64::from(unsafe { p.cast::().read_unaligned() }) + }) +} + +fn read_cpu_values( + input: &Array, + streams: &Streams, + stream: Stream, + decode: impl Fn(*const u8) -> T, +) -> Result, String> { + evaluate(streams, std::slice::from_ref(input), stream, false)?; + let layout = input.layout(); + let dtype = layout.dtype(); + let buffer = input.buffer(); + let raw = unsafe { super::super::gpu::ds4_gpu_tensor_contents(buffer.raw()) }.cast::(); + if raw.is_null() && layout.size() != 0 { + return Err("array is not CPU accessible".into()); + } + let linear_stride = if layout.flags().row_contiguous { + Some(1) + } else if layout.shape().len() == 1 { + Some(layout.strides()[0]) + } else { + None + }; + (0..layout.size()) + .map(|mut index| { + let mut offset = input.offset() as i64; + if let Some(stride) = linear_stride { + offset += index as i64 * stride * dtype.itemsize() as i64; + } else { + for (&dim, &stride) in layout.shape().iter().zip(layout.strides()).rev() { + offset += (index % dim as usize) as i64 * stride * dtype.itemsize() as i64; + index /= dim as usize; + } + } + // SAFETY: eval completed; Array validates the strided storage span, + // and input/buffer remain owned throughout the reads. + Ok(decode(unsafe { raw.offset(offset as isize) })) + }) + .collect() +} + +/// Static broadcast_arrays, shared by arithmetic, Select and GatherAxis. +/// An ignored axis is a normalized output axis and must exist in every input. +pub(super) fn broadcast_arrays( + inputs: &[Array], + ignore: &[usize], + stream: Stream, +) -> Result, String> { + if inputs.len() <= 1 { + return Ok(inputs.to_vec()); + } + let rank = inputs + .iter() + .map(|a| a.layout().shape().len()) + .max() + .unwrap(); + let mut shape = vec![1; rank]; + for input in inputs { + let layout = input.layout(); + let padding = rank - layout.shape().len(); + if ignore.iter().any(|&axis| axis < padding || axis >= rank) { + return Err("invalid ignored broadcast axis".into()); + } + for (i, &d) in layout.shape().iter().enumerate() { + let i = i + padding; + if ignore.contains(&i) || shape[i] == d { + continue; + } + if shape[i] != 1 && d != 1 { + return Err("incompatible broadcast shapes".into()); + } + shape[i] *= d; + } + } + inputs + .iter() + .map(|input| { + let mut shape = shape.clone(); + for &axis in ignore { + let layout = input.layout(); + shape[axis] = layout.shape()[axis - (rank - layout.shape().len())]; + } + broadcast_to(input, &shape, stream) + }) + .collect() +} + +pub(super) fn concatenate(inputs: &[Array], axis: i32, stream: Stream) -> Result { + let first = inputs.first().ok_or("Concatenate requires inputs")?; + if inputs.len() == 1 { + return Ok(first.clone()); + } + let mut shape = first.layout().shape().to_vec(); + let axis = if axis < 0 { + i64::from(axis) + shape.len() as i64 + } else { + i64::from(axis) + }; + let axis = usize::try_from(axis).map_err(|_| "Concatenate axis out of range")?; + if axis >= shape.len() { + return Err("Concatenate axis out of range".into()); + } + let mut total = 0_i64; + let mut dtype = first.layout().dtype(); + for input in inputs { + let layout = input.layout(); + if layout.shape().len() != shape.len() + || shape + .iter() + .zip(layout.shape()) + .enumerate() + .any(|(i, (a, b))| i != axis && a != b) + { + return Err("Concatenate shapes do not match".into()); + } + total += i64::from(layout.shape()[axis]); + dtype = dtype.promote(layout.dtype()); + } + shape[axis] = i32::try_from(total).map_err(|_| "Concatenate axis overflow")?; + let inputs = inputs + .iter() + .map(|a| astype(a, dtype, false, stream)) + .collect::, _>>()?; + Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new(&shape, dtype)?, + Operation::Concatenate(axis), + ) +} + +/// ops.cpp's sibling Split fast path, with Slice fallback for general indices. +pub(super) fn split( + input: &Array, + indices: &[i32], + axis: i32, + stream: Stream, +) -> Result, String> { + let layout = input.layout(); + let rank = layout.shape().len(); + let axis = if axis < 0 { + i64::from(axis) + rank as i64 + } else { + i64::from(axis) + }; + let axis = usize::try_from(axis).map_err(|_| "Split axis out of range")?; + if axis >= rank { + return Err("Split axis out of range".into()); + } + if indices.is_empty() { + return Ok(vec![input.clone()]); + } + let mut start = vec![0; rank]; + let mut stop = layout.shape().to_vec(); + let fast = indices.len() < 10 + && indices.is_sorted() + && indices[0] > 0 + && *indices.last().unwrap() < stop[axis]; + let mut layouts = Vec::new(); + let mut outputs = Vec::new(); + for end in indices + .iter() + .copied() + .chain(std::iter::once(layout.shape()[axis])) + { + stop[axis] = end; + if fast { + let mut shape = layout.shape().to_vec(); + shape[axis] = end - start[axis]; + layouts.push(Layout::new(&shape, layout.dtype())?); + } else { + outputs.push(slice(input, &start, &stop, &vec![1; rank], stream)?); + } + start[axis] = end; + } + if fast { + Array::make_operations( + stream, + std::slice::from_ref(input), + &layouts, + Operation::Split { + indices: indices.to_vec(), + axis, + }, + ) + } else { + Ok(outputs) + } +} + +/// fast.cpp::rms_norm GPU branch, including its input/weight casts and scalar +/// weight for the unweighted case. CPU fallback arithmetic is not yet ported. +pub(super) fn rms_norm( + input: &Array, + weight: Option<&Array>, + eps: f32, + stream: Stream, +) -> Result { + use Dtype::*; + let layout = input.layout(); + let width = *layout + .shape() + .last() + .ok_or("RMSNorm input must have a dimension")?; + if let Some(weight) = weight + && (weight.layout().shape().len() != 1 || weight.layout().size() != width as usize) + { + return Err("RMSNorm weight must be a vector matching the last input dimension".into()); + } + let a = layout.dtype(); + let b = weight.map_or(a, |w| w.layout().dtype()); + let dtype = a.promote(b); + if !matches!(dtype, F16 | BF16 | F32 | F64) { + return Err("unsupported RMSNorm dtype".into()); + } + if stream.device() != Device::Gpu { + return Err("CPU RMSNorm fallback is not ported".into()); + } + if dtype == F64 { + return Err("float64 is not supported on the GPU".into()); + } + if width == 0 { + return Err("RMSNorm axis must not be empty".into()); + } + let output_layout = Layout::new(layout.shape(), dtype)?; + drop(layout); + let weight = match weight { + Some(weight) => astype(weight, dtype, false, stream)?, + None => { + let bits = match dtype { + F16 => 0x3c00_u32, + BF16 => 0x3f80, + _ => 0x3f800000, + }; + let buffer = super::scalar_buffer(&bits.to_le_bytes()[..dtype.itemsize()])?; + Array::new(&[], dtype, buffer)? + } + }; + let input = astype(input, dtype, false, stream)?; + Array::make_operation_with_inputs( + stream, + &[input, weight], + output_layout, + Operation::RmsNorm(eps), + ) +} + +#[allow(clippy::type_complexity)] // starts, strides, shape as in normalize_slice. +fn normalize_slice( + input_shape: &[i32], + starts: &[i32], + stops: &[i32], + steps: &[i32], +) -> Result<(Vec, Vec, Vec), String> { + let rank = input_shape.len(); + if starts.len() != rank || stops.len() != rank || steps.len() != rank || steps.contains(&0) { + return Err("invalid Slice indices or strides".into()); + } + let mut starts = starts.to_vec(); + let mut steps = steps.to_vec(); + let mut shape = Vec::with_capacity(rank); + for axis in 0..rank { + let n = i64::from(input_shape[axis]); + let start = i64::from(starts[axis]); + let stop = i64::from(stops[axis]); + let start = if start < 0 { start + n } else { start }; + let stop = if stop < 0 { stop + n } else { stop }; + let step = i64::from(steps[axis]); + let (start, count) = if step < 0 { + let start = start.min(n - 1); + let end = stop.max(-1).min(start); + (start, (start - end + (-step) - 1) / (-step)) + } else { + let start = start.clamp(0, n); + let end = stop.clamp(0, n).max(start); + (start, (end - start + step - 1) / step) + }; + starts[axis] = start as i32; + shape.push(i32::try_from(count).map_err(|_| "Slice size overflow")?); + if count == 1 { + steps[axis] = 1; + } + } + Ok((starts, steps, shape)) +} + +fn dynamic_axes(input: &Array, start: &Array, selected: &[i32]) -> Result, String> { + let l = start.layout(); + let rank = input.layout().shape().len(); + if l.shape().len() > 1 + || l.size() > rank + || l.size() != selected.len() + || !matches!( + l.dtype(), + Dtype::I8 + | Dtype::U8 + | Dtype::I16 + | Dtype::U16 + | Dtype::I32 + | Dtype::U32 + | Dtype::I64 + | Dtype::U64 + ) + { + return Err("invalid dynamic slice indices".into()); + } + axes(selected, rank) +} + +pub(super) fn dynamic_slice( + input: &Array, + start: &Array, + selected: &[i32], + size: &[i32], + stream: Stream, +) -> Result { + let axes = dynamic_axes(input, start, selected)?; + let l = input.layout(); + if size.len() != l.shape().len() || size.iter().zip(l.shape()).any(|(&s, &n)| s < 0 || s > n) { + return Err("invalid dynamic slice size".into()); + } + Array::make_operation_with_inputs( + stream, + &[input.clone(), start.clone()], + Layout::new(size, l.dtype())?, + Operation::DynamicSlice(axes), + ) +} + +pub(super) fn dynamic_slice_update( + input: &Array, + update: &Array, + start: &Array, + selected: &[i32], + stream: Stream, +) -> Result { + let axes = dynamic_axes(input, start, selected)?; + let l = input.layout(); + let u = update.layout(); + let diff = l.shape().len().saturating_sub(u.shape().len()); + let mut shape = l.shape()[..diff].to_vec(); + shape.extend_from_slice(u.shape()); + for d in diff..l.shape().len() { + shape[d] = shape[d].min(l.shape()[d]); + } + for &a in &axes { + if a < diff { + shape[a] = 1; + } + } + let dtype = l.dtype(); + let output = Layout::new(l.shape(), dtype)?; + drop((l, u)); + let update = broadcast_to(&astype(update, dtype, false, stream)?, &shape, stream)?; + Array::make_operation_with_inputs( + stream, + &[input.clone(), update, start.clone()], + output, + Operation::DynamicSliceUpdate(axes), + ) +} + +pub(super) fn slice( + input: &Array, + starts: &[i32], + stops: &[i32], + steps: &[i32], + stream: Stream, +) -> Result { + let layout = input.layout(); + let has_negative = steps.iter().any(|&step| step < 0); + let (starts, steps, shape) = normalize_slice(layout.shape(), starts, stops, steps)?; + // Test the original sign, before singleton strides are simplified. + if !has_negative && shape == layout.shape() { + return Ok(input.clone()); + } + Array::make_operation( + stream, + input, + Layout::new(&shape, layout.dtype())?, + Operation::Slice { + starts, + stops: stops.to_vec(), + steps, + }, + ) +} + +pub(super) fn slice_update( + input: &Array, + update: &Array, + starts: &[i32], + stops: &[i32], + steps: &[i32], + stream: Stream, +) -> Result { + let layout = input.layout(); + let has_negative = steps.iter().any(|&step| step < 0); + let (starts, steps, shape) = normalize_slice(layout.shape(), starts, stops, steps)?; + let update = broadcast_to( + &astype(update, layout.dtype(), false, stream)?, + &shape, + stream, + )?; + if !has_negative && shape == layout.shape() { + return Ok(update); + } + Array::make_operation_with_inputs( + stream, + &[input.clone(), update], + Layout::new(layout.shape(), layout.dtype())?, + Operation::SliceUpdate { + starts, + stops: stops.to_vec(), + steps, + }, + ) +} + +pub(super) fn full( + shape: &[i32], + value: &Array, + dtype: Dtype, + stream: Stream, +) -> Result { + let value = astype(&broadcast_to(value, shape, stream)?, dtype, false, stream)?; + Array::make_operation(stream, &value, Layout::new(shape, dtype)?, Operation::Full) +} + +/// Original ops.cpp repeat(axis): expand, broadcast, reshape; no repeat kernel. +pub(super) fn repeat( + input: &Array, + repeats: i32, + axis: i32, + stream: Stream, +) -> Result { + let mut shape = input.layout().shape().to_vec(); + let axis = axes(&[axis], shape.len())?[0]; + if repeats < 0 { + return Err("repeat count must be nonnegative".into()); + } + if repeats == 1 { + return Ok(input.clone()); + } + if repeats == 0 { + shape[axis] = 0; + return Array::new( + &shape, + input.layout().dtype(), + super::super::gpu::Buffer::mtplx_bytes(0)?, + ); + } + shape.insert(axis + 1, repeats); + let out = broadcast_to( + &expand_dims(input, &[axis as i32 + 1], stream)?, + &shape, + stream, + )?; + shape.remove(axis + 1); + shape[axis] = shape[axis] + .checked_mul(repeats) + .ok_or("repeat shape overflow")?; + reshape(&out, &shape, stream) +} + +pub(super) fn zeros(shape: &[i32], dtype: Dtype, stream: Stream) -> Result { + let value = Array::new( + &[], + dtype, + super::scalar_buffer(&vec![0; dtype.itemsize()])?, + )?; + full(shape, &value, dtype, stream) +} + +pub(super) fn contiguous( + input: &Array, + allow_col_major: bool, + stream: Stream, +) -> Result { + let layout = input.layout(); + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), layout.dtype())?, + Operation::Contiguous(allow_col_major), + ) +} + +pub(super) fn reshape(input: &Array, shape: &[i32], stream: Stream) -> Result { + let layout = input.layout(); + if layout.shape() == shape { + return Ok(input.clone()); + } + let mut shape = shape.to_vec(); + let mut size = 1_usize; + let mut infer = None; + for (axis, &dim) in shape.iter().enumerate() { + if dim == -1 { + if infer.replace(axis).is_some() { + return Err("Reshape can only infer one dimension".into()); + } + } else { + size = size + .checked_mul(usize::try_from(dim).map_err(|_| "negative Reshape dimension")?) + .ok_or("Reshape size overflow")?; + } + } + if let Some(axis) = infer { + if size == 0 { + return Err("Cannot infer the shape of an empty array".into()); + } + shape[axis] = i32::try_from(layout.size() / size) + .map_err(|_| "Reshape inferred dimension overflow")?; + size *= shape[axis] as usize; + } + if size != layout.size() { + return Err("Reshape size mismatch".into()); + } + Array::make_operation( + stream, + input, + Layout::new(&shape, layout.dtype())?, + Operation::Reshape, + ) +} + +pub(super) fn axes(axes: &[i32], rank: usize) -> Result, String> { + let mut seen = vec![false; rank]; + axes.iter() + .map(|&axis| { + let axis = if axis < 0 { + axis as i64 + rank as i64 + } else { + axis as i64 + }; + let axis = usize::try_from(axis).map_err(|_| "axis out of range")?; + if axis >= rank || seen[axis] { + return Err("duplicate or out of range axis".into()); + } + seen[axis] = true; + Ok(axis) + }) + .collect() +} + +pub(super) fn transpose( + input: &Array, + permutation: &[i32], + stream: Stream, +) -> Result { + let layout = input.layout(); + if permutation.len() != layout.shape().len() { + return Err("Transpose rank mismatch".into()); + } + let axes = axes(permutation, layout.shape().len())?; + let shape: Vec<_> = axes.iter().map(|&axis| layout.shape()[axis]).collect(); + // Even an identity permutation constructs a primitive in ops.cpp. + Array::make_operation( + stream, + input, + Layout::new(&shape, layout.dtype())?, + Operation::Transpose(axes), + ) +} + +pub(super) fn broadcast_to(input: &Array, shape: &[i32], stream: Stream) -> Result { + let layout = input.layout(); + let output = Layout::new(shape, layout.dtype())?; + if layout.shape() == shape { + return Ok(input.clone()); + } + let diff = shape + .len() + .checked_sub(layout.shape().len()) + .ok_or("Broadcast rank mismatch")?; + if layout + .shape() + .iter() + .zip(&shape[diff..]) + .any(|(&a, &b)| a != 1 && a != b) + { + return Err("incompatible Broadcast shape".into()); + } + Array::make_operation(stream, input, output, Operation::Broadcast) +} + +pub(super) fn astype( + input: &Array, + dtype: Dtype, + force_copy: bool, + stream: Stream, +) -> Result { + let layout = input.layout(); + if layout.dtype() == dtype && !force_copy { + return Ok(input.clone()); + } + Array::make_operation( + stream, + input, + Layout::new(layout.shape(), dtype)?, + Operation::AsType, + ) +} + +pub(super) fn view(input: &Array, dtype: Dtype, stream: Stream) -> Result { + let layout = input.layout(); + if layout.dtype() == dtype { + return Ok(input.clone()); + } + let mut shape = layout.shape().to_vec(); + let (ibytes, obytes) = (layout.dtype().itemsize(), dtype.itemsize()); + if ibytes != obytes { + let last = shape + .last_mut() + .ok_or("View cannot change scalar itemsize")?; + let bytes = i64::from(*last) * ibytes as i64; + if bytes % obytes as i64 != 0 { + return Err("View last axis byte size mismatch".into()); + } + *last = i32::try_from(bytes / obytes as i64).map_err(|_| "View shape overflow")?; + } + Array::make_operation(stream, input, Layout::new(&shape, dtype)?, Operation::View) +} + +pub(super) fn expand_dims( + input: &Array, + dimensions: &[i32], + stream: Stream, +) -> Result { + if dimensions.is_empty() { + return Ok(input.clone()); + } + let layout = input.layout(); + let mut axes = axes(dimensions, layout.shape().len() + dimensions.len())?; + axes.sort_unstable(); + let mut shape = layout.shape().to_vec(); + for &axis in &axes { + shape.insert(axis, 1); + } + Array::make_operation( + stream, + input, + Layout::new(&shape, layout.dtype())?, + Operation::ExpandDims(axes), + ) +} + +pub(super) fn squeeze( + input: &Array, + dimensions: Option<&[i32]>, + stream: Stream, +) -> Result { + if dimensions.is_some_and(<[i32]>::is_empty) { + return Ok(input.clone()); + } + let layout = input.layout(); + let mut axes = match dimensions { + Some(dimensions) => axes(dimensions, layout.shape().len())?, + None => layout + .shape() + .iter() + .enumerate() + .filter_map(|(i, &dim)| (dim == 1).then_some(i)) + .collect(), + }; + axes.sort_unstable(); + let mut shape = layout.shape().to_vec(); + for &axis in axes.iter().rev() { + if shape[axis] != 1 { + return Err("Squeeze axis must have size one".into()); + } + shape.remove(axis); + } + // squeeze() without axes constructs a primitive even when there are none. + Array::make_operation( + stream, + input, + Layout::new(&shape, layout.dtype())?, + Operation::Squeeze(axes), + ) +} + +#[test] +#[ignore = "requires Apple Metal; Concatenate promotion, offsets, strided writers and validation"] +fn mtplx_concatenate_preserves_general_general_copy_semantics() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::{Buffer, Context}; + use super::{allocator, configure_sources}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let buffer = Buffer::mtplx_bytes(120).unwrap(); + buffer.write(0, &(0..120).collect::>()).unwrap(); + let input = Array::new(&[2, 3, 4, 5], Dtype::U8, buffer).unwrap(); + let a = transpose(&input, &[3, 2, 1, 0], gpu).unwrap(); + let b = slice(&a, &[0, 0, 0, 1], &[5, 4, 3, -3], &[1, 1, 1, -1], gpu).unwrap(); + for axis in 0..4 { + // Promotion happens before concatenation, preserving each view's + // logical element order even when its dtype copy becomes dense. + let b = if axis == 3 { + astype(&b, Dtype::F32, false, gpu).unwrap() + } else { + b.clone() + }; + let output = concatenate(&[a.clone(), b], axis - 4, gpu).unwrap(); + evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + let mut bytes = vec![0; output.layout().nbytes()]; + output.buffer().read(0, &mut bytes).unwrap(); + let values = if axis == 3 { + bytes + .chunks_exact(4) + .map(|c| f32::from_le_bytes(c.try_into().unwrap())) + .collect::>() + } else { + bytes.iter().map(|&b| f32::from(b)).collect::>() + }; + let shape = output.layout().shape().to_vec(); + for (index, actual) in values.iter().enumerate() { + let mut remainder = index; + let mut coord = [0; 4]; + for i in (0..4).rev() { + coord[i] = remainder % shape[i] as usize; + remainder /= shape[i] as usize; + } + let axis = axis as usize; + let half = shape[axis] as usize / 2; + let second = coord[axis] >= half; + coord[axis] %= half; + if second { + coord[3] = 1 - coord[3]; + } + assert_eq!( + *actual, + (coord[0] + 5 * coord[1] + 20 * coord[2] + 60 * coord[3]) as f32 + ); + } + } + let empty = Array::new(&[0, 4, 3, 2], Dtype::U8, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + let output = concatenate(&[empty, a.clone()], 0, gpu).unwrap(); + evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + assert_eq!(output.layout().shape(), [5, 4, 3, 2]); + assert!(concatenate(&[], 0, gpu).is_err()); + assert!(concatenate(&[a.clone(), a.clone()], 4, gpu).is_err()); + assert!(concatenate(&[input, a.clone()], 0, gpu).is_err()); + assert_eq!( + concatenate(std::slice::from_ref(&a), 99, gpu).unwrap().id(), + a.id() + ); + let scalar = Array::new(&[], Dtype::U8, Buffer::mtplx_bytes(1).unwrap()).unwrap(); + assert_eq!( + concatenate(std::slice::from_ref(&scalar), 99, gpu) + .unwrap() + .id(), + scalar.id() + ); + assert!(concatenate(&[scalar.clone(), scalar], 0, gpu).is_err()); + streams.clear_streams().unwrap(); + }); +} + +#[test] +#[ignore = "requires Apple Metal; normalized Slice and Contiguous cache-window graph"] +fn mtplx_slice_and_contiguous_preserve_cache_window_semantics() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::{Buffer, Context}; + use super::{allocator, configure_sources}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let buffer = Buffer::mtplx_bytes(6).unwrap(); + buffer.write(0, &[0, 1, 2, 3, 4, 5]).unwrap(); + let input = Array::new(&[6], Dtype::U8, buffer).unwrap(); + let cases: &[(i32, i32, i32, &[u8])] = &[ + (0, 6, 1, &[0, 1, 2, 3, 4, 5]), + (-99, 99, 1, &[0, 1, 2, 3, 4, 5]), + (5, -7, -1, &[5, 4, 3, 2, 1, 0]), + (-1, -7, -2, &[5, 3, 1]), + (1, 2, -1, &[]), + (1, -7, -100, &[1]), + (-99, 6, -1, &[]), + (99, -99, -2, &[5, 3, 1]), + (0, 6, 100, &[0]), + (4, 99, 1, &[4, 5]), + (0, -1, 1, &[0, 1, 2, 3, 4]), + (i32::MAX, i32::MIN, i32::MIN, &[5]), + ]; + for &(start, stop, step, expected) in cases { + let view = slice(&input, &[start], &[stop], &[step], gpu).unwrap(); + assert_eq!(view.layout().shape(), [expected.len() as i32]); + assert_eq!(view.id() == input.id(), step > 0 && expected.len() == 6); + let dense = contiguous(&view, false, gpu).unwrap(); + evaluate(&streams, &[view.clone(), dense.clone()], gpu, false).unwrap(); + if expected.len() == 1 { + assert_eq!(view.layout().strides(), [1]); + } + let mut actual = vec![0; expected.len()]; + dense.buffer().read(dense.offset(), &mut actual).unwrap(); + assert_eq!(actual, expected, "slice({start}, {stop}, {step})"); + let value = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&9.0_f32.to_le_bytes()).unwrap(), + ) + .unwrap(); + let changed = slice_update(&input, &value, &[start], &[stop], &[step], gpu).unwrap(); + let changed = contiguous(&changed, false, gpu).unwrap(); + evaluate(&streams, std::slice::from_ref(&changed), gpu, false).unwrap(); + let mut expected_update = (0_u8..6).collect::>(); + for &index in expected { + expected_update[index as usize] = 9; + } + let mut actual_update = vec![0; 6]; + changed + .buffer() + .read(changed.offset(), &mut actual_update) + .unwrap(); + assert_eq!( + actual_update, expected_update, + "slice_update({start}, {stop}, {step})" + ); + } + // A unique full-size vector donates its storage for a partial update. + let source = Array::new( + &[6], + Dtype::U8, + super::scalar_buffer(&[0, 1, 2, 3, 4, 5]).unwrap(), + ) + .unwrap(); + let allocation = source.buffer().data_identity(); + let value = Array::new(&[], Dtype::U8, super::scalar_buffer(&[9]).unwrap()).unwrap(); + let changed = slice_update(&source, &value, &[1], &[3], &[1], gpu).unwrap(); + drop(source); + evaluate(&streams, std::slice::from_ref(&changed), gpu, false).unwrap(); + assert_eq!(changed.buffer().data_identity(), allocation); + assert!(slice(&input, &[], &[6], &[1], gpu).is_err()); + assert!(slice(&input, &[0], &[6], &[0], gpu).is_err()); + let scalar = Array::new(&[], Dtype::U8, Buffer::mtplx_bytes(1).unwrap()).unwrap(); + assert_eq!( + slice(&scalar, &[], &[], &[], gpu).unwrap().id(), + scalar.id() + ); + let empty = Array::new(&[0], Dtype::U8, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + let empty_reverse = slice(&empty, &[0], &[0], &[-1], gpu).unwrap(); + assert_ne!(empty_reverse.id(), empty.id()); + evaluate(&streams, std::slice::from_ref(&empty_reverse), gpu, false).unwrap(); + assert_eq!(empty_reverse.data_size(), 0); + + // GDN cache[0] = contiguous(conv_input[:, -n_keep:, :]): the same + // 2-row window shares a small backing but releases a large backing. + for rows in [4, 5000] { + let buffer = Buffer::mtplx_bytes((rows * 8) as u64).unwrap(); + let offset = ((rows - 2) * 8) as u64; + buffer.write(offset, &(0..16).collect::>()).unwrap(); + let input = Array::new(&[1, rows, 8], Dtype::U8, buffer).unwrap(); + let identity = input.buffer().data_identity(); + let window = slice(&input, &[0, -2, 0], &[1, rows, 8], &[1, 1, 1], gpu).unwrap(); + let output = contiguous(&window, false, gpu).unwrap(); + drop(input); + drop(window); + evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + assert_eq!(output.buffer().data_identity() == identity, rows == 4); + assert_eq!(output.offset(), if rows == 4 { offset } else { 0 }); + let mut actual = [0; 16]; + output.buffer().read(output.offset(), &mut actual).unwrap(); + assert_eq!(actual.as_slice(), (0..16).collect::>()); + } + let matrix = reshape(&input, &[2, 3], gpu).unwrap(); + let transposed = transpose(&matrix, &[1, 0], gpu).unwrap(); + let col = contiguous(&transposed, true, gpu).unwrap(); + let row = contiguous(&transposed, false, gpu).unwrap(); + evaluate(&streams, &[col.clone(), row.clone()], gpu, false).unwrap(); + assert_eq!(col.buffer().data_identity(), input.buffer().data_identity()); + assert_eq!(col.layout().strides(), [1, 3]); + assert_eq!(row.layout().strides(), [2, 1]); + let mut actual = [0; 6]; + row.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, [0, 3, 1, 4, 2, 5]); + streams.clear_streams().unwrap(); + }); +} + +#[test] +#[ignore = "requires Apple Metal; self-contained lazy QSA-layout recipe, no callback map"] +fn mtplx_owned_operations_build_and_execute_qsa_layout_graph() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::{Buffer, Context}; + use super::{allocator, configure_sources}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let buffer = Buffer::mtplx_bytes(12).unwrap(); + buffer + .write( + 0, + &[0x3f80_u16, 0x4000, 0x4040, 0x4080, 0x40a0, 0x40c0] + .into_iter() + .flat_map(u16::to_le_bytes) + .collect::>(), + ) + .unwrap(); + let input = Array::new(&[1, 2, 3], Dtype::BF16, buffer).unwrap(); + let weak_input = input.downgrade(); + assert_eq!(reshape(&input, &[1, 2, 3], gpu).unwrap().id(), input.id()); + assert_eq!( + broadcast_to(&input, &[1, 2, 3], gpu).unwrap().id(), + input.id() + ); + assert_eq!( + astype(&input, Dtype::BF16, false, gpu).unwrap().id(), + input.id() + ); + assert_eq!(view(&input, Dtype::BF16, gpu).unwrap().id(), input.id()); + assert_eq!(expand_dims(&input, &[], gpu).unwrap().id(), input.id()); + assert_eq!(squeeze(&input, Some(&[]), gpu).unwrap().id(), input.id()); + assert_ne!(transpose(&input, &[0, 1, 2], gpu).unwrap().id(), input.id()); + assert_ne!( + astype(&input, Dtype::BF16, true, gpu).unwrap().id(), + input.id() + ); + assert!(reshape(&input, &[-1, -1], gpu).is_err()); + assert!(reshape(&input, &[4, -1], gpu).is_err()); + assert!(transpose(&input, &[0, 1, -2], gpu).is_err()); + assert!(expand_dims(&input, &[0, -5], gpu).is_err()); + assert!(squeeze(&input, Some(&[1]), gpu).is_err()); + assert!(broadcast_to(&input, &[2, 4], gpu).is_err()); + assert!(view(&input, Dtype::F32, gpu).is_err()); + assert!(astype(&input, Dtype::F64, false, gpu).is_err()); + assert_eq!(repeat(&input, 1, -1, gpu).unwrap().id(), input.id()); + assert!(repeat(&input, -1, -1, gpu).is_err()); + let empty_repeat = repeat(&input, 0, -1, gpu).unwrap(); + assert_eq!(empty_repeat.layout().shape(), [1, 2, 0]); + assert_eq!(empty_repeat.layout().size(), 0); + + // Exact shape recipe in Qwen's pooled_f32_t initialization: + // pooled.astype(float32).swapaxes(1,2)[:,None]. Build lazily first. + let before = streams.allocator().unwrap().stats(); + let cast = astype(&input, Dtype::F32, false, gpu).unwrap(); + let operation = std::rc::Rc::downgrade(&cast.operation().unwrap()); + let transposed = transpose(&cast, &[0, -1, -2], gpu).unwrap(); + let mirror = expand_dims(&transposed, &[1], gpu).unwrap(); + let squeezed = squeeze(&mirror, None, gpu).unwrap(); + let flat = reshape(&squeezed, &[-1], gpu).unwrap(); + let bits = view(&flat, Dtype::U32, gpu).unwrap(); + let repeated = broadcast_to(&flat, &[2, 6], gpu).unwrap(); + let bf16 = astype(&repeated, Dtype::BF16, false, gpu).unwrap(); + // A shared-view CPU consumer also exercises the existing cross-device fence. + let cpu_view = expand_dims(&bf16, &[-1], cpu).unwrap(); + assert_eq!(mirror.layout().shape(), [1, 1, 3, 2]); + assert_eq!(cpu_view.layout().shape(), [2, 6, 1]); + assert!(!cpu_view.has_data()); + assert_eq!(streams.allocator().unwrap().stats(), before); + drop(input); + drop(cast); + drop(transposed); + drop(squeezed); + drop(flat); + drop(repeated); + drop(bf16); + let roots = [mirror, bits, cpu_view]; + evaluate(&streams, &roots, gpu, true).unwrap(); + evaluate(&streams, &roots, gpu, false).unwrap(); + assert!(weak_input.upgrade().is_none()); + assert!(operation.upgrade().is_none()); + assert!( + roots + .iter() + .all(|a| a.operation().is_none() && a.inputs().is_empty()) + ); + assert_eq!(roots[0].layout().strides(), [6, 1, 1, 3]); + assert_eq!(roots[2].layout().strides(), [0, 1, 1]); + assert_eq!(roots[2].data_size(), 6); + let mut bits = [0; 24]; + roots[1].buffer().read(0, &mut bits).unwrap(); + assert_eq!( + bits.as_slice(), + [1_f32, 4., 2., 5., 3., 6.] + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>() + ); + let mut bytes = [0; 12]; + roots[2].buffer().read(0, &mut bytes).unwrap(); + assert_eq!( + bytes.as_slice(), + [0x3f80_u16, 0x4080, 0x4000, 0x40a0, 0x4040, 0x40c0] + .into_iter() + .flat_map(u16::to_le_bytes) + .collect::>() + ); + + let empty = Array::new(&[0, 2], Dtype::U8, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + assert_eq!(reshape(&empty, &[-1], gpu).unwrap().layout().shape(), [0]); + assert!(reshape(&empty, &[0, -1], gpu).is_err()); + let no_axes = Array::new(&[2], Dtype::U8, Buffer::mtplx_bytes(2).unwrap()).unwrap(); + assert_ne!(squeeze(&no_axes, None, gpu).unwrap().id(), no_axes.id()); + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/owner.rs b/src/engine/metal/qwen_mtplx/owner.rs new file mode 100644 index 0000000..195c68b --- /dev/null +++ b/src/engine/metal/qwen_mtplx/owner.rs @@ -0,0 +1,868 @@ +//! Product owner for the reference whole-turn executor. The existing Generator +//! still owns checkpoint selection, resident sessions, bootstrap and compaction. +use super::execution::Execution; +use super::request::LiveSession; +use super::session_cache::{DecodeOptions, TurnDecoded, TurnOptions, TurnProgress}; +use super::session_checkpoint::Identity; +use crate::engine::metal::ExecutionStats; +use crate::engine::{ChatTurn, GenerationOutput, qwen::QwenMetadata}; +use crate::metrics::Metrics; +use crate::settings::{EngineSettings, TurnSettings}; +use std::cell::Cell; +use std::path::Path; +use std::sync::atomic::AtomicBool; + +pub(in crate::engine) struct QwenExecutor { + // All snapshot arrays must die before the executor's native Metal context. + live: LiveSession, + metadata: QwenMetadata, + identity: Identity, + policy: TurnOptions<'static>, + stats: ExecutionStats, + execution: Execution, +} + +impl QwenExecutor { + pub(in crate::engine) fn open(settings: &EngineSettings) -> Result { + crate::engine::validate_engine_artifacts( + settings.model, + settings.speculative.dspark, + &settings.artifacts, + )?; + let metadata = QwenMetadata::open(&settings.artifacts.model, settings.speculative.glm_mtp)?; + let identity = Identity { + model: metadata.checkpoint_identity(), + context: u32::try_from(settings.context_tokens) + .ok() + .filter(|&n| n > 0) + .ok_or("Qwen context must be positive")?, + vocabulary: u32::try_from(metadata.tokenizer.vocab_size()) + .map_err(|e| e.to_string())?, + mtp: settings.speculative.glm_mtp, + }; + let (execution, policy) = Execution::open(settings)?; + Ok(Self { + live: LiveSession::default(), + metadata, + identity, + policy, + stats: ExecutionStats { + speculative_mode: if identity.mtp { 4 } else { 0 }, + ..Default::default() + }, + execution, + }) + } + + #[allow(clippy::too_many_arguments)] + pub(in crate::engine) fn generate( + &mut self, + messages: &[ChatTurn], + settings: &TurnSettings, + cancelled: &AtomicBool, + metrics: &Metrics, + progress: impl FnMut(u32, u32, Option), + emit: impl FnMut(bool, String), + ) -> Result<(GenerationOutput, bool), String> { + if settings.context_tokens != self.identity.context as i32 { + return Err("Qwen turn context differs from the loaded engine".into()); + } + let baseline = self.stats; + let stats = &mut self.stats; + let result = self.live.generate( + &mut self.execution, + &self.metadata, + messages, + settings, + &self.policy, + cancelled, + metrics, + progress, + emit, + |event| { + record_speculative_progress(stats, baseline, &event, metrics); + Ok(()) + }, + )?; + let complete = result + .session + .as_ref() + .is_some_and(|s| s.final_snapshot_error.is_none()) + && self.live.current.is_some(); + if let Some(session) = &result.session { + let state_error = match &session.decoded { + TurnDecoded::Ar(decoded) => decoded.final_state_error.as_ref(), + TurnDecoded::Mtp(decoded) => decoded.final_state_error.as_ref(), + }; + if let Some(error) = state_error { + return Err(format!("Qwen final decode state failed: {error}")); + } + if let Some(error) = &session.final_snapshot_error { + return Err(format!("Qwen final state capture failed: {error}")); + } + if let Some(error) = &session.prefix_snapshot_error { + eprintln!("Qwen prefix capture failed: {error}"); + } + debug_assert_eq!(result.output.cached_tokens as usize, session.cached_tokens); + debug_assert!(session.prefill_seconds >= 0.0 && session.restore_seconds >= 0.0); + debug_assert!(session.decoded.decode_seconds() >= 0.0); + if let TurnDecoded::Mtp(decoded) = &session.decoded + && decoded.pending.is_some() + { + return Err("Qwen final state still has a pending correction".into()); + } + } + Ok((result.output, complete)) + } + + pub(in crate::engine) fn prefill( + &mut self, + suffix: &[i32], + mut progress: impl FnMut(u32) -> bool, + ) -> Result { + if suffix.is_empty() { + return Ok(0); + } + let mut prompt = self.tokens().to_vec(); + prompt.extend_from_slice(suffix); + if prompt.len() > self.context() as usize { + return Err("Qwen prefill exceeds the loaded context".into()); + } + let mut options = self.policy.clone(); + if let DecodeOptions::Mtp(o) = &mut options.decode { + o.prompt_ids = &prompt; + } + let interrupted = Cell::new(false); + let mut position = self.position(); + let result = self.execution.prefill_session( + &prompt, + self.live.current.as_ref(), + &options, + |event| { + if let super::prefill::Progress::Settled { tokens, .. } = event { + position = tokens as u32; + } + if !progress(position) { + interrupted.set(true); + return Err("Qwen prefill interrupted".into()); + } + Ok(()) + }, + ); + match result { + Ok(snapshot) => { + self.live.current = Some(snapshot); + self.live.prefix = None; + self.live.tag = [0; 32]; + Ok(suffix.len()) + } + Err(_) if interrupted.get() => Ok(0), + Err(error) => Err(error), + } + } + + fn clear_execution_cache(&mut self) -> Result<(), String> { + self.execution.streams.synchronize(self.execution.stream)?; + let model = self.execution.model.borrow_dependent(); + self.execution.cache = model.make_cache(4); + self.execution.mtp_cache = model.make_mtp_cache(4); + self.execution.boundaries.clear(); + Ok(()) + } + + pub(in crate::engine) fn reset(&mut self) -> Result<(), String> { + self.clear_execution_cache()?; + self.live = LiveSession::default(); + Ok(()) + } + + pub(in crate::engine) fn swap_resident_state( + &mut self, + incoming: &mut Option, + ) -> Result<(), String> { + self.clear_execution_cache()?; + let next = incoming.take().unwrap_or_default(); + *incoming = Some(std::mem::replace(&mut self.live, next)); + Ok(()) + } + + pub(in crate::engine) fn align_prompt(&mut self, tokens: &[i32]) -> Result { + if !tokens.starts_with(self.tokens()) { + self.reset()?; + } + Ok(self.tokens().len()) + } + pub(in crate::engine) fn tokens(&self) -> &[i32] { + self.live + .current + .as_ref() + .map_or(&[], |s| s.token_ids.as_slice()) + } + pub(in crate::engine) fn position(&self) -> u32 { + self.tokens().len() as u32 + } + pub(in crate::engine) fn context(&self) -> u32 { + self.identity.context + } + pub(in crate::engine) fn model(&self) -> &QwenMetadata { + &self.metadata + } + pub(in crate::engine) fn checkpoint_tag(&self) -> [u8; 32] { + self.live.tag + } + pub(in crate::engine) fn note_checkpoint_tag(&mut self, tag: [u8; 32]) { + self.live.tag = tag; + } + pub(in crate::engine) fn execution_stats(&self) -> ExecutionStats { + let mut stats = self.stats; + for layer in &self.execution.model.borrow_dependent().layers { + if let Some(ple) = &layer.ple { + let table = &ple.embedding.table; + if !table.prefer_lazy + && let Some(sidecar) = &table.sidecar + { + stats.ssd_enabled = true; + stats.ssd_cache_bytes += (sidecar.hot_mebibytes() as u64) << 20; + stats.ssd_cache_hits += sidecar.hot_hits; + stats.ssd_cache_misses += sidecar.hot_misses; + stats.ssd_selected_requests += sidecar.hot_hits + sidecar.hot_misses; + } + } + } + stats + } + + pub(in crate::engine) fn save_checkpoint( + &mut self, + path: &Path, + tag: [u8; 32], + progress: &mut impl FnMut(u64), + ) -> Result<(), String> { + self.live.save_checkpoint( + path, + self.identity, + tag, + &self.execution.streams, + self.execution.stream, + progress, + || false, + ) + } + pub(in crate::engine) fn load_checkpoint( + &mut self, + path: &Path, + progress: &mut impl FnMut(u64), + ) -> Result { + self.live.load_checkpoint( + path, + self.identity, + &self.execution.streams, + self.execution.stream, + progress, + || false, + ) + } +} + +fn record_speculative_progress( + stats: &mut ExecutionStats, + baseline: ExecutionStats, + event: &TurnProgress, + metrics: &Metrics, +) { + let TurnProgress::MtpCycle { + drafted, + accepted, + verified, + verify_seconds, + repair_seconds, + } = *event + else { + return; + }; + stats.speculative_cycles += 1; + stats.drafted_tokens += drafted as u64; + stats.accepted_draft_tokens += accepted as u64; + stats.accepted_depth_total += accepted as u64; + stats.accepted_depth_max = stats.accepted_depth_max.max(accepted as u64); + stats.verifier_passes += u64::from(verified); + // Keep sub-millisecond contributions until the turn total is converted. + stats.verifier_ms = baseline.verifier_ms + (verify_seconds * 1000.0) as u64; + stats.repair_ms = baseline.repair_ms + (repair_seconds * 1000.0) as u64; + metrics.speculative_stats( + stats.speculative_mode, + stats.speculative_cycles, + stats.drafted_tokens, + stats.accepted_draft_tokens, + stats.accepted_depth_total, + stats.accepted_depth_max, + stats.verifier_passes, + stats.verifier_ms, + stats.repair_ms, + ); +} + +#[test] +fn qwen_mtp_progress_publishes_without_turn_completion_or_double_counting() { + let metrics = Metrics::new(Path::new("/nonexistent-qwen-mtp-progress-metrics")); + let baseline = ExecutionStats { + speculative_mode: 4, + speculative_cycles: 2, + verifier_ms: 7, + repair_ms: 3, + ..Default::default() + }; + let mut stats = baseline; + for (drafted, accepted, verified, verify_seconds, repair_seconds) in [ + (3, 2, true, 0.0006, 0.0004), + (3, 1, true, 0.0012, 0.0012), + (0, 0, true, 0.0024, 0.0012), // Context-copy verify, no MTP drafts. + (0, 0, false, 0.0024, 0.0012), // Primary EOS, no verifier. + ] { + record_speculative_progress( + &mut stats, + baseline, + &TurnProgress::MtpCycle { + drafted, + accepted, + verified, + verify_seconds, + repair_seconds, + }, + &metrics, + ); + assert_eq!( + metrics.snapshot().speculative_cycles, + stats.speculative_cycles + ); + } + record_speculative_progress( + &mut stats, + baseline, + &TurnProgress::Finalize { + decode_seconds: 0.1, + }, + &metrics, + ); + let published = metrics.snapshot(); + assert_eq!(published.speculative_cycles, 6); + assert_eq!(published.drafted_tokens, 6); + assert_eq!(published.accepted_draft_tokens, 3); + assert_eq!(published.accepted_depth_total, 3); + assert_eq!(published.accepted_depth_max, 2); + assert_eq!(published.verifier_passes, 3); + assert_eq!(published.verifier_ms, 9); + assert_eq!(published.repair_ms, 4); +} + +#[test] +#[ignore = "full installed model through product Generator; external supervisor and chat reference required"] +fn qwen_product_generator_chat_matches_reference() { + use crate::engine::{Generator, metal::Executor}; + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use crate::settings::{ + ExecutionPreferences, GenerationPreferences, ReasoningMode, RuntimePreferences, + SpeculativePreferences, effective_settings, + }; + use serde_json::{Value, json}; + use std::sync::{ + Arc, + atomic::{AtomicU8, Ordering}, + }; + let receipts = std::fs::read_to_string(std::env::var_os("DS4_QWEN38_CHAT_REFERENCE").unwrap()) + .unwrap() + .lines() + .filter_map(|s| serde_json::from_str::(s).ok()) + .collect::>(); + let config = receipts + .iter() + .find(|r| r["event"] == "chat_config") + .unwrap(); + let turns = receipts + .iter() + .filter(|r| r["event"] == "chat_turn") + .collect::>(); + assert_eq!(turns.len(), 3); + let mtp = config["mtp"].as_bool().unwrap(); + let root = std::path::PathBuf::from(std::env::var_os("DS4_QWEN38_ARTIFACTS").unwrap()); + let directory = + std::path::PathBuf::from(std::env::var_os("DS4_QWEN38_CHECKPOINT_DIR").unwrap()); + let effective = effective_settings( + crate::model::ModelChoice::Qwen38FlashNext, + &GenerationPreferences { + context_tokens: 32768, + max_generated_tokens: i32::MAX, + system_prompt: String::new(), + temperature: Some(0.6), + top_p: Some(0.95), + min_p: Some(0.0), + reasoning_mode: ReasoningMode::Low, + ..Default::default() + }, + &RuntimePreferences { + execution: ExecutionPreferences { + power_percent: Some(100), + ..Default::default() + }, + speculative: SpeculativePreferences { + glm_mtp: mtp, + ..Default::default() + }, + ..Default::default() + }, + root.parent().unwrap(), + ) + .unwrap(); + let mut settings = effective.turn; + // Same frozen executor fixture as the existing reference tests; this does + // not change the preferences validator's positive-explicit-seed contract. + settings.seed = Some(config["seed"].as_u64().unwrap()); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Loading as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + let metrics = Arc::new(Metrics::new(Path::new("/nonexistent-product-test-metrics"))); + eprintln!("product Generator: opening Qwen, mtp={mtp}, power=100"); + let mut generator = Generator::open(&effective.engine, Arc::clone(&metrics)).unwrap(); + assert!(matches!(generator.executor, Executor::QwenMtplx(_))); + let path = directory.join("chat.bin"); + let mut messages = Vec::new(); + let cancelled = AtomicBool::new(false); + let bootstrap = (!config["warmup"].is_null()).then(|| directory.join("bootstrap")); + if let Some(bootstrap) = &bootstrap { + let mut warm_settings = settings.clone(); + warm_settings.max_generated_tokens = + config["warmup"]["max_generated_tokens"].as_i64().unwrap() as i32; + let warm_messages = [ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: config["warmup"]["prompt"].as_str().unwrap().to_owned(), + }]; + let warm = generator + .generate( + &directory.join("warmup.bin"), + Some(bootstrap), + &warm_messages, + &warm_settings, + &cancelled, + |_, _| {}, + |used, _, _| eprintln!("product warmup: {used}"), + |_| {}, + ) + .unwrap(); + let expected = receipts + .iter() + .find(|r| r["event"] == "chat_warmup") + .unwrap(); + assert_eq!(warm.finish_reason, expected["finish_reason"]); + assert_eq!( + warm.completion_tokens as usize + 1, + expected["tokens"].as_array().unwrap().len() + ); + } + for (step, expected) in turns.iter().enumerate() { + let before = metrics.snapshot(); + let live_cycles_observed = Cell::new(false); + messages.push(ChatTurn {user:true, tool:false, system:false, skip_previous_eos:false, + reasoning:None, reasoning_complete:true, content:match step { + 0 => receipts.iter().find(|r| r["event"] == "reference_prompt").unwrap()["text"].as_str().unwrap().to_owned(), + 1 => "Tell me a complete short story about a lighthouse keeper. Do not ask questions.".into(), + _ => "Write a Python function is_prime(n: int) -> bool, followed by five assert examples. No tools.".into(), + }}); + let output = generator + .generate( + &path, + bootstrap.as_deref(), + &messages, + &settings, + &cancelled, + |_, text| { + if mtp && !live_cycles_observed.get() { + live_cycles_observed.set( + metrics.snapshot().speculative_cycles > before.speculative_cycles, + ); + } + eprintln!("product turn {step}: {} text bytes", text.len()); + }, + |used, _, speed| { + phase.store( + if speed.is_some() { + EvaluationPhase::Decode + } else { + EvaluationPhase::Prefill + } as u8, + Ordering::Relaxed, + ); + if speed.is_none() { + eprintln!("product turn {step}: prefill {used}"); + } + }, + |text| eprintln!("product turn {step}: {text}"), + ) + .unwrap(); + assert_eq!(output.finish_reason, "stop"); + assert_eq!( + output.prompt_tokens as u64, + expected["prompt_ids"].as_array().unwrap().len() as u64 + ); + assert_eq!(output.cached_tokens, expected["cached_tokens"]); + assert_eq!( + output.completion_tokens as usize + 1, + expected["tokens"].as_array().unwrap().len() + ); + let (reasoning, content) = expected["text"] + .as_str() + .unwrap() + .split_once("") + .unwrap(); + assert_eq!(output.message.reasoning.as_deref(), Some(reasoning)); + assert_eq!(output.message.content, content); + assert!(output.checkpoint_bytes > 0); + let after = metrics.snapshot(); + if mtp { + assert!( + live_cycles_observed.get(), + "MTP stats only arrived at turn end" + ); + let cycles = expected["cycles"].as_array().unwrap(); + assert_eq!( + after.speculative_cycles - before.speculative_cycles, + cycles.len() as u64 + ); + assert_eq!( + after.drafted_tokens - before.drafted_tokens, + cycles + .iter() + .map(|c| c["drafts"].as_array().unwrap().len() as u64) + .sum::() + ); + assert_eq!( + after.accepted_draft_tokens - before.accepted_draft_tokens, + cycles + .iter() + .map(|c| c["accepted"].as_u64().unwrap()) + .sum::() + ); + assert_eq!( + after.verifier_passes - before.verifier_passes, + cycles + .iter() + .filter(|c| !c["drafts"].as_array().unwrap().is_empty() + || !c["context_copy"].is_null()) + .count() as u64 + ); + } else { + assert_eq!(after.speculative_cycles, before.speculative_cycles); + } + messages.push(output.message); + let Executor::QwenMtplx(owner) = &generator.executor else { + unreachable!() + }; + let current = owner.live.current.as_ref().unwrap(); + assert_eq!( + current + .boundaries + .iter() + .map(|b| b.tokens) + .collect::>(), + expected["boundaries"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_u64().unwrap() as usize) + .collect::>(), + "product recurrent boundaries diverged on turn {step}" + ); + let mut tokens = expected["prompt_ids"] + .as_array() + .unwrap() + .iter() + .chain(expected["tokens"].as_array().unwrap()) + .map(|v| v.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(current.token_ids, tokens); + for (name, array) in [ + ("logits", Some(¤t.logits)), + ("hidden", current.hidden.as_ref()), + ] { + if let Some(array) = array { + let values = owner.execution.values_f32(array).unwrap(); + let digest = super::super::qwen_mtplx_tests::hex_digest( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ); + assert_eq!( + json!({"shape":array.layout().shape(),"sha256":digest}), + expected[name] + ); + } else { + assert!(expected[name].is_null()); + } + } + println!( + "{}", + json!({"event":"qwen_product_turn", "step":step, "mtp":mtp, + "backend":"mtplx", "prompt_tokens":output.prompt_tokens, + "cached_tokens":output.cached_tokens, "completion_tokens":output.completion_tokens, + "checkpoint_bytes":output.checkpoint_bytes}) + ); + + // Exercise real session switching and the persisted Generator path. + let tag = owner.checkpoint_tag(); + generator.resident_limit = 1; + generator + .activate_resident(directory.join("other.bin")) + .unwrap(); + assert_eq!(generator.executor.position(), 0); + assert!(generator.activate_resident(path.clone()).unwrap()); + assert_eq!(generator.executor.tokens(), tokens); + assert_eq!(generator.executor.checkpoint_tag(), tag); + generator.resident_sessions.clear(); + generator.executor.reset().unwrap(); + generator.checkpoint = None; + generator.resident_active = None; + assert!( + generator + .select_checkpoint(&path, |actual| actual == tag) + .unwrap() + .found + ); + assert_eq!(generator.executor.tokens(), tokens); + tokens.clear(); + } + // Pure prefill route used by bootstrap and compaction: nonempty cold + // prefix, restored suffix and cancellation must never enter sampling. + generator.executor.reset().unwrap(); + let Executor::QwenMtplx(owner) = &mut generator.executor else { + unreachable!() + }; + let tokens = owner + .metadata + .tokenizer + .tokenize_rendered("A brief system prefill test."); + let split = tokens.len() / 2; + assert!(split > 0); + assert_eq!(owner.prefill(&tokens[..split], |_| true).unwrap(), split); + assert_eq!( + owner.prefill(&tokens[split..], |_| true).unwrap(), + tokens.len() - split + ); + assert_eq!(owner.tokens(), tokens); + assert_eq!(owner.prefill(&tokens[..1], |_| false).unwrap(), 0); + assert_eq!(owner.tokens(), tokens); + if std::env::var_os("DS4_QWEN38_TEST_LIFECYCLE").is_some() { + use sha2::{Digest, Sha256}; + use std::io::Read; + let checkpoint_hash = |path: &Path| { + let mut input = std::fs::File::open(path).unwrap(); + let mut hash = Sha256::new(); + let mut bytes = [0; 65536]; + loop { + let read = input.read(&mut bytes).unwrap(); + if read == 0 { + break; + } + hash.update(&bytes[..read]); + } + <[u8; 32]>::from(hash.finalize()) + }; + let original_checkpoint = checkpoint_hash(&path); + let control_path = directory.join("cancel-control.bin"); + std::fs::copy(&path, &control_path).unwrap(); + let mut next = messages.clone(); + next.push(ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: "Reply with only the word PONG.".into(), + }); + let mut report = |used, _, speed: Option| { + phase.store( + if speed.is_some() { + EvaluationPhase::Decode + } else { + EvaluationPhase::Prefill + } as u8, + Ordering::Relaxed, + ); + eprintln!( + "product cancel/resume: context {used}, decoding={}", + speed.is_some() + ); + }; + let control = generator + .generate( + &control_path, + None, + &next, + &settings, + &cancelled, + |_, _| {}, + &mut report, + |_| {}, + ) + .unwrap(); + assert_eq!(control.finish_reason, "stop"); + assert!(control.completion_tokens > 4); + let control_tokens = generator.executor.tokens().to_vec(); + for before_decode in [true, false] { + cancelled.store(before_decode, Ordering::Relaxed); + let before = metrics.snapshot(); + let partial = generator + .generate( + &path, + None, + &next, + &settings, + &cancelled, + |_, _| {}, + |used, limit, speed| { + report(used, limit, speed); + if !before_decode + && speed.is_some() + && used >= control.prompt_tokens + 2 + && (!mtp + || metrics.snapshot().speculative_cycles + > before.speculative_cycles) + { + cancelled.store(true, Ordering::Relaxed); + } + }, + |_| {}, + ) + .unwrap(); + assert!(cancelled.load(Ordering::Relaxed)); + assert!(partial.completion_tokens < control.completion_tokens); + if before_decode { + assert_eq!(partial.completion_tokens, 0); + } else if mtp { + assert!( + metrics.snapshot().speculative_cycles > before.speculative_cycles, + "completed MTP cycles were lost on cancellation" + ); + } + assert_eq!( + checkpoint_hash(&path), + original_checkpoint, + "cancellation replaced the committed checkpoint" + ); + } + cancelled.store(false, Ordering::Relaxed); + let resumed = generator + .generate( + &path, + None, + &next, + &settings, + &cancelled, + |_, _| {}, + &mut report, + |_| {}, + ) + .unwrap(); + assert_eq!(resumed.finish_reason, "stop"); + assert_eq!(resumed.completion_tokens, control.completion_tokens); + assert_eq!(resumed.message.reasoning, control.message.reasoning); + assert_eq!(resumed.message.content, control.message.content); + assert_eq!(generator.executor.tokens(), control_tokens); + println!( + "{}", + json!({"event":"qwen_product_cancel_resume", "mtp":mtp, + "completion_tokens":resumed.completion_tokens, "content":resumed.message.content, + "checkpoint_preserved_on_cancel":true, "matches_uninterrupted_control":true}) + ); + let mut workflow_settings = settings.clone(); + workflow_settings.system_prompt = "You are a concise assistant.".into(); + let bootstrap = directory.join("bootstrap"); + let mut progress = |used, _, speed: Option| { + phase.store( + if speed.is_some() { + EvaluationPhase::Decode + } else { + EvaluationPhase::Prefill + } as u8, + Ordering::Relaxed, + ); + eprintln!( + "product lifecycle: context {used}, decoding={}", + speed.is_some() + ); + }; + generator + .prepare_bootstrap( + &bootstrap, + &workflow_settings, + &cancelled, + &mut progress, + &mut |text| eprintln!("product lifecycle: {text}"), + ) + .unwrap(); + let prefix = generator.executor.model().render_history( + &workflow_settings.system_prompt, + &[], + workflow_settings.reasoning_mode, + ); + assert_eq!(generator.executor.tokens(), prefix); + let tag = generator.executor.checkpoint_tag(); + generator + .prepare_bootstrap( + &bootstrap, + &workflow_settings, + &cancelled, + &mut |_, _, _| panic!("bootstrap cache hit repeated prefill"), + &mut |_| {}, + ) + .unwrap(); + assert_eq!(generator.executor.checkpoint_tag(), tag); + let compacted = generator + .compact( + &messages, + &workflow_settings, + &workflow_settings.system_prompt, + "Test context compaction", + &directory.join("compacted.bin"), + &cancelled, + &mut progress, + |text| eprintln!("product lifecycle: {text}"), + ) + .unwrap(); + assert!(!compacted.summary.is_empty()); + assert!(compacted.checkpoint.is_file()); + let rebuilt = crate::compaction::summary_system_prompt( + &workflow_settings.system_prompt, + Some(&compacted.summary), + ); + let expected = generator.executor.model().render_history( + &rebuilt, + &messages[compacted.tail_start..], + workflow_settings.reasoning_mode, + ); + assert_eq!(generator.executor.tokens(), expected); + assert_eq!(compacted.context_tokens as usize, expected.len()); + println!( + "{}", + json!({"event":"qwen_product_lifecycle", "mtp":mtp, + "bootstrap_tokens":prefix.len(), "compacted_tokens":compacted.context_tokens, + "summary":compacted.summary, "tail_start":compacted.tail_start}) + ); + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(error) = result { + std::panic::resume_unwind(error); + } +} diff --git a/src/engine/metal/qwen_mtplx/ple.rs b/src/engine/metal/qwen_mtplx/ple.rs new file mode 100644 index 0000000..77ecb6f --- /dev/null +++ b/src/engine/metal/qwen_mtplx/ple.rs @@ -0,0 +1,675 @@ +//! Original PLELayer: NGramEmbedding followed by projection/gate/convolution. +use super::array::{Array, Dtype, Layout}; +use super::binary::{Binary, binary}; +use super::mlp::Linear; +use super::ngram_stage::{Embedding, StageOptions}; +use super::stream::{Stream, Streams}; +use super::unary::{Unary, unary}; +use super::{bytes, gdn, mlp, normalization, ops, tensor}; + +pub(super) struct Ple<'a> { + pub(super) embedding: Embedding<'a>, + pub(super) projection: Projection<'a>, +} + +/// PLE's slots 2 and 3 in the original layer ArraysCache. +#[derive(Default)] +pub(super) struct Cache { + pub(super) conv: Option, + pub(super) history: Option, +} + +impl Ple<'_> { + pub(super) fn forward( + &mut self, + hidden: &Array, + ids: &Array, + mut cache: Option<&mut Cache>, + options: &StageOptions, + streams: &Streams, + stream: Stream, + ) -> Result { + // Staging is the outer model's pre-pass, not part of PLELayer.__call__. + // Lookup updates slot 3 before any projection or slot-2 mutation. + let emb = self.embedding.forward( + ids, + cache.as_mut().map(|c| &mut c.history), + options, + streams, + stream, + )?; + self.projection + .forward_embedding(hidden, &emb, cache.map(|c| &mut c.conv), stream) + } +} + +pub(super) struct Projection<'a> { + pub(super) key: Linear<'a>, + pub(super) value: Linear<'a>, + pub(super) norm_key: &'a Array, + pub(super) norm_query: &'a Array, + pub(super) norm_conv: &'a Array, + pub(super) conv_weight: &'a Array, +} + +impl Projection<'_> { + pub(super) fn forward_embedding( + &self, + hidden: &Array, + embedding: &Array, + conv_cache: Option<&mut Option>, + stream: Stream, + ) -> Result { + let shape = hidden.layout().shape().to_vec(); + if shape.len() != 3 + || shape[2] != 10240 + || hidden.layout().dtype() != Dtype::BF16 + || shape[0] < 1 + || shape[1] < 1 + || embedding.layout().shape() != [shape[0], shape[1], 2560] + { + return Err("installed PLE requires BF16 [B,S,10240] and embedding [B,S,2560]".into()); + } + let norm = + |x: &Array, weight| normalization::grouped_rms_norm(x, weight, 2560, 1e-6, stream); + let emb = ops::astype(embedding, Dtype::BF16, false, stream)?; + let key = norm(&self.key.apply(&emb, stream)?, self.norm_key)?; + let grouped_shape = [shape[0], shape[1], 4, 2560]; + let key = ops::reshape(&key, &grouped_shape, stream)?; + let value = self.value.apply(&emb, stream)?; + let query = ops::reshape(&norm(hidden, self.norm_query)?, &grouped_shape, stream)?; + let product = binary(&key, &query, Binary::Multiply, stream)?; + let gate = super::reduce::sum(&product, &[-1], true, stream)?; + // Python weak scalars are converted to BF16 before these operators. + let scalar = + |bits: u16| Array::new(&[], Dtype::BF16, super::scalar_buffer(&bits.to_le_bytes())?); + let gate = binary(&gate, &scalar(0x424a)?, Binary::Divide, stream)?; // sqrt(2560) + let magnitude = binary( + &unary(&gate, Unary::Abs, stream)?, + &scalar(0x3586)?, + Binary::Maximum, + stream, + )?; // 1e-6 + let gate = binary( + &unary(&magnitude, Unary::Sqrt, stream)?, + &unary(&gate, Unary::Sign, stream)?, + Binary::Multiply, + stream, + )?; + let gated = binary( + &unary(&gate, Unary::Sigmoid, stream)?, + &ops::expand_dims(&value, &[-2], stream)?, + Binary::Multiply, + stream, + )?; + let gated = ops::reshape(&gated, &shape, stream)?; + binary( + &gated, + &self.short_conv(&norm(&gated, self.norm_conv)?, conv_cache, stream)?, + Binary::Add, + stream, + ) + } + + fn short_conv( + &self, + input: &Array, + cache: Option<&mut Option>, + stream: Stream, + ) -> Result { + let shape = input.layout().shape().to_vec(); + let state = match cache.as_ref().and_then(|c| c.as_ref()) { + Some(state) => state.clone(), + None => { + let zero = Array::new(&[], Dtype::BF16, super::scalar_buffer(&[0, 0])?)?; + ops::broadcast_to(&zero, &[shape[0], 9, 10240], stream)? + } + }; + let window = ops::concatenate(&[state, input.clone()], 1, stream)?; + let ws = window.layout().shape().to_vec(); + if let Some(cache) = cache { + *cache = Some(ops::slice( + &window, + &[0, (ws[1] - 9).max(0), 0], + &ws, + &[1, 1, 1], + stream, + )?); + } + if ws[1] < 10 + || self.conv_weight.layout().shape() != [10240, 4, 1] + || self.conv_weight.layout().dtype() != Dtype::BF16 + { + return Err( + "installed PLE convolution requires BF16 [10240,4,1] and dilated window>=10".into(), + ); + } + let output_shape = [shape[0], ws[1] - 9, 10240]; + let output = Array::make_operation_with_inputs( + stream, + &[window, self.conv_weight.clone()], + Layout::new(&output_shape, Dtype::BF16)?, + ops::Operation::PleConv1d, + )?; + let tail = ops::slice( + &output, + &[0, (output_shape[1] - shape[1]).max(0), 0], + &output_shape, + &[1, 1, 1], + stream, + )?; + mlp::silu(&tail, stream) + } +} + +// Exact MLXConvParams<2> ABI; conv_1D_gpu embeds the dilated axis into 2D. +#[repr(C)] +struct ConvParams { + dimensions: [i32; 17], + padding: i32, + strides: [[i64; 4]; 3], + groups: i32, + flip: u8, + tail_padding: [u8; 3], +} + +pub(super) fn conv_evaluate(inputs: &[Array], output: &Array) -> Result<(), String> { + let prepared = gdn::prepare_conv_inputs(inputs, output)?; + let [input, weight] = prepared.as_slice() else { + return Err("PLE conv arity".into()); + }; + let il = input.layout(); + let wl = weight.layout(); + let ol = output.layout(); + let [batch, rows, channels]: [i32; 3] = ol.shape().try_into().map_err(|_| "PLE conv rank")?; + let widen = |s: &[i64]| [s[0], s[1], 0, s[2]]; + let params = ConvParams { + dimensions: [ + batch, + channels, + channels, + il.shape()[1], + 1, + 4, + 1, + rows, + 1, + 1, + 1, + 0, + 0, + 3, + 1, + 1, + 1, + ], + padding: 0, + strides: [ + widen(il.strides()), + widen(wl.strides()), + widen(ol.strides()), + ], + groups: channels, + flip: 0, + tail_padding: [0; 3], + }; + let m = batch + .checked_mul(rows) + .ok_or("PLE convolution rows overflow")?; + let tiles = (m as u32).div_ceil(32) as i32; + let jump_h = il.strides()[1] as i32 * 3; + let gemm_params = [m, 1, 4, 1, 0, jump_h, 16 - 3 * jump_h, 1, tiles, 0]; + drop((il, wl, ol)); + super::dispatch_specialized( + "implicit_gemm_conv_2d_bfloat16_bm32_bn8_bk16_wm4_wn1_channel_1_filter_l", + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &weight.buffer()) + .at_byte_offset(weight.offset()) + .input(weight.data_size()), + tensor(2, &output.buffer()).output(output.data_size()), + bytes(3, ¶ms), + bytes(4, &gemm_params), + ], + &[], + [1, tiles as u32, channels as u32], + [32, 1, 4], + ) +} + +#[test] +#[ignore = "requires Apple M5 Max; complete original PLELayer with real lookup"] +fn mtplx_graph_ple_connected_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::pattern}; + use super::{ + allocator, configure_sources, + mlp::fixture_linear, + ngram::{GpuHash, Table}, + stream::Device, + }; + use sha2::{Digest, Sha256}; + use std::io::Write; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let integer = |shape: &[i32], values: &[i64]| { + Array::new( + shape, + Dtype::I64, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }; + let digest = |data: &[u8]| { + Sha256::digest(data) + .iter() + .map(|v| format!("{v:02x}")) + .collect::() + }; + let contract: serde_json::Value = serde_json::from_str( + include_str!("../../../../tests/fixtures/mtplx-ngram-rows.jsonl") + .lines() + .next() + .unwrap(), + ) + .unwrap(); + let multipliers = integer( + &[3], + &contract["multipliers"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(), + ); + let sizes = integer(&[16], &[17; 16]); + let offsets = integer(&[16], &[0; 16]); + let key = bf16(&[10240, 2560], 71); + let value = bf16(&[2560, 2560], 73); + let key_q = fixture_linear(10240, 2560, 4, 64, 71); + let value_q = fixture_linear(2560, 2560, 4, 64, 73); + let norms = [75, 76, 77].map(|salt| bf16(&[10240], salt)); + let weight = bf16(&[10240, 4, 1], 78); + let fixtures = include_str!("../../../../tests/fixtures/mtplx-ple-connected.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(fixtures.len(), 144); + struct Temp(std::path::PathBuf); + impl Drop for Temp { + fn drop(&mut self) { + let _ = std::fs::remove_file(&self.0); + } + } + let file = Temp(std::env::temp_dir().join(format!( + "ds4-ple-{}-{}.bin", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ))); + let mut checked = 0; + for pair in fixtures.chunks_exact(2) { + let bits = pair[0]["bits"].as_u64().unwrap() as u32; + let mode = pair[0]["mode"].as_str().unwrap(); + let state = pair[0]["state"].as_str().unwrap(); + let batch = pair[0]["batch"].as_i64().unwrap() as i32; + let rows = pair[0]["rows"].as_i64().unwrap() as i32; + let mut data = vec![0; 4096]; + let mut header = serde_json::json!({"__metadata__": {"ngram_bits": bits.to_string(), "ngram_group_size": "32"}}); + for part in 0..if bits == 0 { 1 } else { 3 } { + let packed = bits != 0 && part == 0; + let columns = if packed { + 20 + } else if bits != 0 { + 5 + } else { + 160 + }; + let start = data.len(); + for i in 0..17 * columns as u32 { + if packed { + data.extend_from_slice( + &i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes(), + ); + } else { + data.extend_from_slice( + &(0x3c00u16 + ((i * 7 + part * 13) % 512) as u16).to_le_bytes(), + ); + } + } + let name = ["weight", "scales", "biases"][part as usize]; + header[format!("ngram.{name}")] = serde_json::json!({"dtype": if packed { "U32" } else { "BF16" }, "shape": [17, columns], "data_offsets": [start - 4096, data.len() - 4096]}); + data.extend_from_slice(&[0; 34]); + } + let encoded = serde_json::to_vec(&header).unwrap(); + assert!(encoded.len() <= 4088); + data[..8].copy_from_slice(&4088u64.to_le_bytes()); + data[8..4096].fill(b' '); + data[8..8 + encoded.len()].copy_from_slice(&encoded); + std::fs::File::create(&file.0) + .unwrap() + .write_all(&data) + .unwrap(); + for deferred in [false, true] { + super::eval::execution_tests::observed(|| { + let mut table = Table { + resident: None, + sidecar: None, + weight: None, + prefer_lazy: mode == "resident", + sidecar_mode: true, + dim: 160, + }; + table.attach_sidecar(&file.0).unwrap(); + if mode == "resident" { + assert!(table.attach_resident(&file.0, &streams, gpu)); + assert!(!table.prefer_lazy); + table.prefer_lazy = true; + } + let mut layer = Ple { + embedding: Embedding::new( + GpuHash { + multipliers: &multipliers, + sizes: &sizes, + offsets: &offsets, + eos: 248044, + }, + table, + ), + projection: Projection { + key: if bits == 0 { + Linear::Dense(&key) + } else { + Linear::Quantized(&key_q) + }, + value: if bits == 0 { + Linear::Dense(&value) + } else { + Linear::Quantized(&value_q) + }, + norm_key: &norms[0], + norm_query: &norms[1], + norm_conv: &norms[2], + conv_weight: &weight, + }, + }; + layer.embedding.stage_disabled = mode == "resident"; + let mut cache = Cache { + conv: (state == "seeded").then(|| bf16(&[batch, 12, 10240], 79)), + history: (state == "seeded").then(|| { + integer( + &[batch, 5], + &(0..batch * 5).map(i64::from).collect::>(), + ) + }), + }; + let mut options = StageOptions::from_env(); + options.enabled = mode != "graph"; + options.verify = mode == "verify"; + options.debug = false; + let mut pending = Vec::new(); + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let mut values = (0..batch * tokens) + .map(|i| (i * 7 + step as i32) % 51) + .collect::>(); + let eos_index = 2.min(values.len() - 1); + values[eos_index] = 248044; + let ids = Array::new( + &[batch, tokens], + Dtype::I32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let hidden = bf16(&[batch, tokens, 10240], 80 + step as u32); + layer.embedding.stage( + &ids, + if state == "none" { + None + } else { + cache.history.as_ref() + }, + &options, + &streams, + gpu, + ); + let output = layer + .forward( + &hidden, + &ids, + (state != "none").then_some(&mut cache), + &options, + &streams, + gpu, + ) + .unwrap(); + let mut outputs = vec![output]; + if let Some(conv) = &cache.conv { + outputs.push(conv.clone()); + } + if !deferred { + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + } + pending.push((outputs, cache.history.clone())); + } + let roots = pending + .iter() + .flat_map(|(out, history)| out.iter().cloned().chain(history.iter().cloned())) + .collect::>(); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + for (step, (outputs, history)) in pending.into_iter().enumerate() { + for (index, output) in outputs.into_iter().enumerate() { + let output = ops::contiguous( + &ops::astype(&output, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + let mut bytes = vec![0; output.layout().nbytes()]; + output.buffer().read(output.offset(), &mut bytes).unwrap(); + assert_eq!( + digest(&bytes), + pair[step]["sha256"][index].as_str().unwrap(), + "{} output{index} deferred={deferred}", + pair[step]["kernel"] + ); + } + let history = history.map(|h| { + digest( + &ops::read_i64(&h, &streams, gpu) + .unwrap() + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + }); + assert_eq!( + history.as_deref(), + pair[step]["history"].as_str(), + "{} history", + pair[step]["kernel"] + ); + checked += 1; + } + }); + } + } + assert_eq!(checked, 288); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple M5 Max; actual MTPLX PLELayer after embedding lookup"] +fn mtplx_graph_ple_projection_and_cache_match_reference() { + use super::super::{ + gpu::{Buffer, Context}, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{ + allocator, configure_sources, + mlp::fixture_linear, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&d| d as u32).product(), salt), + ) + .unwrap() + }; + let key = bf16(&[10240, 2560], 71); + let value = bf16(&[2560, 2560], 73); + let key_q = fixture_linear(10240, 2560, 4, 64, 71); + let value_q = fixture_linear(2560, 2560, 4, 64, 73); + let norms = [75, 76, 77].map(|salt| bf16(&[10240], salt)); + let weight = bf16(&[10240, 4, 1], 78); + let mut checked = 0; + for deferred in [false, true] { + for layout in ["dense", "quantized"] { + let layer = Projection { + key: if layout == "dense" { + Linear::Dense(&key) + } else { + Linear::Quantized(&key_q) + }, + value: if layout == "dense" { + Linear::Dense(&value) + } else { + Linear::Quantized(&value_q) + }, + norm_key: &norms[0], + norm_query: &norms[1], + norm_conv: &norms[2], + conv_weight: &weight, + }; + for (batch, rows) in [(1, 1), (1, 4), (1, 7), (1, 8), (1, 32), (1, 2048), (2, 7)] { + for state in ["none", "empty", "seeded"] { + super::eval::execution_tests::observed(|| { + let mut cache = (state == "seeded").then(|| bf16(&[batch, 12, 10240], 79)); + let mut pending = Vec::new(); + for (step, tokens) in [rows, 1].into_iter().enumerate() { + let hidden = bf16(&[batch, tokens, 10240], 80 + step as u32); + let emb = bf16(&[batch, tokens, 2560], 82 + step as u32); + let emb = ops::astype( + &emb, + if step == 0 { Dtype::BF16 } else { Dtype::F32 }, + false, + gpu, + ) + .unwrap(); + let output = layer + .forward_embedding( + &hidden, + &emb, + (state != "none").then_some(&mut cache), + gpu, + ) + .unwrap(); + let mut outputs = vec![output]; + if let Some(cache) = &cache { + outputs.push(cache.clone()); + } + if !deferred { + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &outputs, gpu, false).unwrap() + }); + let conv = calls + .iter() + .filter(|r| r.0.starts_with("implicit_gemm_conv_2d_")) + .collect::>(); + assert_eq!(conv.len(), 1); + let conv_rows = + tokens + if step == 0 && state == "seeded" { 3 } else { 0 }; + assert_eq!( + (conv[0].1, conv[0].2, conv[0].3), + ( + [1, ((batch * conv_rows) as u32).div_ceil(32), 10240], + [32, 1, 4], + false + ) + ); + assert!( + !calls.iter().any(|r| r.0.starts_with("depthwise_conv_1d_")) + ); + } + pending.push(( + format!( + "ple_projection_{layout}_b{batch}_r{rows}_{state}_step{step}" + ), + outputs, + )); + } + if deferred { + let roots = pending + .iter() + .flat_map(|(_, outputs)| outputs.iter().cloned()) + .collect::>(); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + } + for (name, outputs) in pending { + // Pack only for the reader, after the actual forward/evaluation. + // Cache slices can have a nonzero offset and noncontiguous batches. + let packed = outputs + .iter() + .map(|a| ops::contiguous(a, false, gpu).unwrap()) + .collect::>(); + ops::evaluate(&streams, &packed, gpu, false).unwrap(); + let buffers = packed + .iter() + .map(|a| { + let mut data = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut data).unwrap(); + let buffer = Buffer::mtplx_bytes(data.len() as u64).unwrap(); + buffer.write(0, &data).unwrap(); + buffer + }) + .collect::>(); + verify( + &name, + &packed + .iter() + .zip(&buffers) + .map(|(a, b)| (b, a.layout().size() as u32)) + .collect::>(), + ); + checked += 1; + } + }); + } + } + } + } + assert_eq!(checked, 168); + assert_eq!(std::mem::size_of::(), 176); + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/policy.rs b/src/engine/metal/qwen_mtplx/policy.rs new file mode 100644 index 0000000..c32b0c7 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/policy.rs @@ -0,0 +1,275 @@ +//! Qwen server defaults and the native application's execution settings. +//! Overrides are model-owned values; never mutate the process environment. +use super::session_cache::{BoundaryPolicy, DecodeOptions, TurnOptions}; +use super::{ar, prefill, sampling::SamplerConfig, speculative}; +use crate::settings::{EngineSettings, QWEN_DEFAULT_PREFILL_CHUNK}; +use std::collections::BTreeMap; + +pub(super) type Overrides = BTreeMap<&'static str, &'static str>; + +pub(super) fn truthy(value: Option<&str>) -> bool { + value.is_some_and(|s| { + matches!( + s.trim().to_ascii_lowercase().as_str(), + "1" | "true" | "yes" | "on" + ) + }) +} + +fn falsey(value: Option<&str>) -> bool { + value.is_some_and(|s| { + matches!( + s.trim().to_ascii_lowercase().as_str(), + "0" | "false" | "no" | "off" + ) + }) +} + +fn strict_bool(name: &str, raw: Option) -> Result { + match raw + .as_deref() + .unwrap_or_default() + .trim() + .to_ascii_lowercase() + .as_str() + { + "" | "0" | "false" | "no" | "off" | "disable" | "disabled" => Ok(false), + "1" | "true" | "yes" | "on" | "enable" | "enabled" => Ok(true), + _ => Err(format!("{name}={raw:?} is not a boolean")), + } +} + +pub(super) fn value(overrides: &Overrides, name: &str) -> Option { + overrides + .get(name) + .map(|s| (*s).to_owned()) + .or_else(|| std::env::var(name).ok()) +} + +/// _server_runtime_env_overrides for this family, serial AR/native batched MTP. +pub(super) fn server_overrides(mtp: bool, get: impl Fn(&str) -> Option) -> Overrides { + let mut result = Overrides::new(); + if mtp { + result.insert("MTPLX_SKIP_VERIFY_SNAPSHOT", "0"); + } + for key in [ + "MTPLX_AR_PIPELINE", + "MTPLX_FAMILY_CAPTURE_COMMIT", + "MTPLX_FUSED_HC_V3", + "MTPLX_FUSED_GDN_INPROJ", + "MTPLX_FUSED_GATE_UP", + "MTPLX_FUSED_GDN_CONVNORM", + "MTPLX_FUSED_GDN_STEP", + "MTPLX_FUSED_CONVNORM_VERIFY", + "MTPLX_QSA_GATHER", + ] { + if get(key).is_none() { + result.insert(key, "1"); + } + } + let compiled = ["MTPLX_COMPILED_GDN", "MTPLX_QWEN4EXP_COMPILE"]; + if !compiled + .iter() + .any(|key| get(key).is_some_and(|s| !truthy(Some(&s)))) + { + for key in compiled { + if get(key).is_none() { + result.insert(key, "1"); + } + } + } + if get("MTPLX_NAX_VERIFY").is_none() { + result.insert("MTPLX_NAX_VERIFY", "0"); + } + result +} + +pub(super) fn integer(raw: Option<&str>, default: usize, minimum: usize) -> Result { + let number = raw + .and_then(|s| s.trim().replace('_', "").parse::().ok()) + .unwrap_or(default as i128) + .max(minimum as i128); + usize::try_from(number).map_err(|_| "MTPLX setting exceeds the supported integer range".into()) +} + +/// Application chunk size is the native request-local override, not an env +/// write. The bounded/sustained route keeps only the final prefill logits. +pub(super) fn turn_options( + settings: &EngineSettings, + get: impl Fn(&str) -> Option, +) -> Result<(TurnOptions<'static>, Option), String> { + if !settings.model.is_qwen38() || settings.context_tokens <= 0 { + return Err("canonical Qwen requires Qwen settings and a positive context".into()); + } + let flag = |key| truthy(get(key).as_deref()); + let enabled = |key| !falsey(get(key).as_deref()); + let number = |key, default, minimum| integer(get(key).as_deref(), default, minimum); + let mtp = settings.speculative.glm_mtp; + let chunk = if settings.execution.prefill_chunk == 0 { + QWEN_DEFAULT_PREFILL_CHUNK + } else { + settings.execution.prefill_chunk + }; + if chunk > i32::MAX as u32 { + return Err("Qwen prefill chunk exceeds int32".into()); + } + let decode = if mtp { + DecodeOptions::Mtp(speculative::Options { + prompt_ids: &[], + depth: 3, + max_tokens: usize::MAX, + seed: 0, + stops: &[], + committed_history: true, + family_capture: strict_bool( + "MTPLX_FAMILY_CAPTURE_COMMIT", + get("MTPLX_FAMILY_CAPTURE_COMMIT"), + )?, + lazy_history: flag("MTPLX_LAZY_MTP_HISTORY_APPEND"), + defer_repair_eval: strict_bool( + "MTPLX_DEFER_REPAIR_EVAL", + get("MTPLX_DEFER_REPAIR_EVAL"), + )?, + capture_final_state: true, + }) + } else { + DecodeOptions::Ar(ar::Options { + max_tokens: usize::MAX, + seed: 0, + stop_tokens: &[], + pipeline: flag("MTPLX_AR_PIPELINE"), + sync_eval: !flag("MTPLX_ASYNC_AR") + || get("MTPLX_EVAL_AUDIT").is_some_and(|s| !s.is_empty()), + return_hidden: false, + capture_final_state: true, + }) + }; + let boundaries = if enabled("MTPLX_GDN_BOUNDARY_CAPTURE") { + Some(BoundaryPolicy { + tail_interval: number("MTPLX_GDN_BOUNDARY_TAIL_INTERVAL", 256, 0)?, + max_count: number("MTPLX_GDN_BOUNDARY_MAX", 8, 2)?, + }) + } else { + None + }; + Ok(( + TurnOptions { + prefill: prefill::Options { + chunk_size: Some(chunk as usize), + final_logits_only: true, + external_cache_only: flag("MTPLX_PREFILL_OMLX_EXTERNAL") + || (flag("MTPLX_PREFILL_STOCK_CACHE_ONLY") + && flag("MTPLX_ALLOW_UNSAFE_PREFILL_STOCK_CACHE_ONLY")), + external_emit_logits: enabled("MTPLX_PREFILL_EXTERNAL_EMIT_LOGITS"), + return_hidden: mtp, + }, + decode, + sampler: SamplerConfig::default(), + draft_sampler: SamplerConfig::default(), + lazy_kv: enabled("MTPLX_SESSION_LAZY_SNAPSHOT"), + store_min_suffix: if enabled("MTPLX_SESSION_STORE_ON_PREFILL") { + Some(number( + "MTPLX_SESSION_STORE_ON_PREFILL_MIN_SUFFIX", + 1024, + 1, + )?) + } else { + None + }, + fused_max: number("MTPLX_SMALL_SUFFIX_FUSED_MAX", 512, 0)?, + }, + boundaries, + )) +} + +#[test] +#[ignore = "requires DS4_QWEN38_POLICY_REFERENCE from pinned MTPLX; CPU-only"] +fn qwen_server_policy_matches_original_functions() { + let path = std::env::var_os("DS4_QWEN38_POLICY_REFERENCE").unwrap(); + let contents = std::fs::read_to_string(path).unwrap(); + let mut count = 0; + for case in contents + .lines() + .filter_map(|line| serde_json::from_str::(line).ok()) + { + if case["event"] != "policy_reference" { + continue; + } + let mtp = case["mtp"].as_bool().unwrap(); + let lookup = |key: &str| case["environment"][key].as_str().map(str::to_owned); + let overrides = server_overrides(mtp, lookup); + assert_eq!( + serde_json::to_value(&overrides).unwrap(), + case["overrides"], + "overrides case {count}" + ); + let get = |key: &str| { + overrides + .get(key) + .map(|s| (*s).to_owned()) + .or_else(|| lookup(key)) + }; + let mut settings = crate::settings::effective_settings( + crate::model::ModelChoice::Qwen38FlashNext, + &crate::settings::GenerationPreferences::default(), + &crate::settings::RuntimePreferences::default(), + std::path::Path::new("/unused-policy-models"), + ) + .unwrap() + .engine; + settings.speculative.glm_mtp = mtp; + let resolved = turn_options(&settings, get); + if case["error"].is_string() { + assert!( + resolved.is_err(), + "invalid configuration accepted in case {count}" + ); + count += 1; + continue; + } + let (actual, boundary) = resolved.unwrap(); + let expected = &case["options"]; + assert_eq!(actual.prefill.chunk_size.unwrap(), expected["chunk"]); + assert_eq!(actual.prefill.final_logits_only, expected["final_only"]); + assert_eq!( + actual.prefill.external_cache_only, + expected["external_cache_only"] + ); + assert_eq!( + actual.prefill.external_emit_logits, + expected["external_emit_logits"] + ); + assert_eq!(actual.lazy_kv, expected["lazy_kv"]); + assert_eq!(actual.store_min_suffix.is_some(), expected["store"]); + if let Some(min) = actual.store_min_suffix { + assert_eq!(min, expected["store_min"]); + } + assert_eq!(actual.fused_max, expected["fused_max"]); + assert_eq!(boundary.is_some(), expected["boundaries"]); + if let Some(b) = boundary { + assert_eq!(b.max_count, expected["boundary_max"]); + assert_eq!(b.tail_interval, expected["boundary_tail"]); + } + match actual.decode { + DecodeOptions::Ar(o) => { + assert!(!mtp); + assert_eq!(o.pipeline, expected["pipeline"]); + assert_eq!(o.sync_eval, expected["sync_eval"]); + } + DecodeOptions::Mtp(o) => { + assert!(mtp && o.committed_history && o.capture_final_state); + assert_eq!(o.depth, 3); + assert_eq!(o.family_capture, expected["capture"]); + assert_eq!(o.lazy_history, expected["lazy_history"]); + assert_eq!(o.defer_repair_eval, expected["defer_repair"]); + } + } + settings.execution.prefill_chunk = 77; + assert_eq!( + turn_options(&settings, get).unwrap().0.prefill.chunk_size, + Some(77) + ); + count += 1; + } + assert_eq!(count, 268); +} diff --git a/src/engine/metal/qwen_mtplx/prefill.rs b/src/engine/metal/qwen_mtplx/prefill.rs new file mode 100644 index 0000000..05a5d76 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/prefill.rs @@ -0,0 +1,721 @@ +//! MTPLX generation._prefill: cold text body/tail, exact evaluation roots. +//! Session restore, vision splicing and recurrent boundary banking are separate +//! request-owner routes and must not be silently routed through cold prefill. +use super::array::{Array, Dtype}; +use super::execution::Throttle; +use super::model::{Output, OutputOptions}; +use super::stream::{Stream, Streams}; +use super::{ar, ops}; +use std::time::Instant; + +#[derive(Clone, Copy)] +pub(super) struct Options { + /// None is the original non-sustained single body span. + pub(super) chunk_size: Option, + pub(super) final_logits_only: bool, + pub(super) external_cache_only: bool, + pub(super) external_emit_logits: bool, + pub(super) return_hidden: bool, +} + +#[derive(Clone, Copy, Debug)] +pub(super) enum Progress { + CheckAbort, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + Settled { + tokens: usize, + total: usize, + }, + ChunkCompleted, + HistoryAppend, +} + +pub(super) struct Prepared { + pub(super) logits: Array, + pub(super) hidden: Option, + pub(super) eval_seconds: f64, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) chunks: usize, +} + +pub(super) struct MtpPrepared { + pub(super) target: Prepared, + pub(super) history_seconds: f64, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) history_position_base: usize, +} + +pub(super) struct Chunk { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) tokens: usize, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) total: usize, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) size: usize, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) seconds: f64, +} + +/// Original _prefill_spans_with_tail_grid: refine only the final body span. +pub(super) fn spans( + count: usize, + chunk: Option, + tail: usize, + edges: &[usize], +) -> Vec<(usize, usize)> { + let chunk = chunk.unwrap_or(count).max(1); + let mut spans = Vec::new(); + for start in (0..count).step_by(chunk) { + let end = count.min(start.saturating_add(chunk)); + let width = if end == count && tail > 0 { + tail + } else { + chunk + }; + for at in (start..end).step_by(width) { + let next = end.min(at.saturating_add(width)); + let mut cuts = edges + .iter() + .copied() + .filter(|&e| at < e && e < next) + .collect::>(); + cuts.sort_unstable(); + cuts.dedup(); + let mut begin = at; + for cut in cuts.into_iter().chain(std::iter::once(next)) { + spans.push((begin, cut)); + begin = cut; + } + } + } + spans +} + +/// _prefill_committed_mtp_history_streaming, cold text model-level route. +/// Owner-level vision, boundary snapshots, cleanup and repaging are separate. +/// The history callback receives the original explicit position; Qwen ignores +/// that argument and takes positions from its QSA cache, exactly as MTPLX does. +#[allow(clippy::too_many_arguments)] +pub(super) fn committed( + state: &mut C, + ids: &[i32], + options: &Options, + body_spans: &[(usize, usize)], + history_window: Option, + absolute_positions: bool, + streams: &Streams, + stream: Stream, + throttle: &mut Throttle, + initialize: impl FnOnce(&mut C) -> Result<(), String>, + mut forward: impl FnMut(&mut C, &Array, OutputOptions, bool) -> Result<(Output, Vec), String>, + mut append: impl FnMut(&mut C, &Array, &[i32], Option) -> Result, + mut observe: impl FnMut(Progress) -> Result<(), String>, + mut on_chunk: impl FnMut(Chunk) -> Result<(), String>, + mut on_boundary: impl FnMut(&mut C, usize, Option<&Array>) -> Result<(), String>, +) -> Result { + if ids.is_empty() { + return Err("prompt_ids must not be empty".into()); + } + observe(Progress::CheckAbort)?; + initialize(state)?; + let history_start = + history_window.map_or(1, |window| ids.len().saturating_sub(window.max(1)).max(1)); + let history_position_base = if absolute_positions { + history_start + } else { + history_start - 1 + }; + let mut elapsed = 0.0; + let mut history_seconds = 0.0; + let mut chunks = 0; + if ids.len() > 1 { + let body = ids_array(&ids[..ids.len() - 1])?; + let count = ids.len() - 1; + for &(start, end) in body_spans { + let power_started = throttle.begin(); + if start >= end || end > count { + return Err("prefill span exceeds body".into()); + } + observe(Progress::CheckAbort)?; + let input = ops::slice(&body, &[0, start as i32], &[1, end as i32], &[1, 1], stream)?; + let needs_hidden = history_window.is_none() || end + 1 > history_start; + let started = Instant::now(); + let emit = if !needs_hidden && options.external_cache_only { + options.external_emit_logits + } else { + !options.final_logits_only + }; + let cache_only = !needs_hidden && (options.external_cache_only || !emit); + let (mut output, cache_roots) = forward( + state, + &input, + OutputOptions { + emit_logits: emit, + logits_keep: 0, + return_hidden: needs_hidden, + }, + cache_only, + )?; + let roots = if needs_hidden { + let hidden = output + .hidden + .as_ref() + .ok_or("MTP prefill omitted hidden states")?; + output + .logits + .iter() + .chain(std::iter::once(hidden)) + .cloned() + .collect::>() + } else if cache_only { + output.logits = None; + cache_roots + } else { + vec![ + output + .logits + .as_ref() + .ok_or("MTP prefill omitted logits")? + .clone(), + ] + }; + if !roots.is_empty() { + ops::evaluate(streams, &roots, stream, false)?; + observe(Progress::Settled { + tokens: end, + total: ids.len(), + })?; + } + drop(roots); + elapsed += started.elapsed().as_secs_f64(); + chunks += 1; + observe(Progress::ChunkCompleted)?; + // MTPLX suppresses exceptions from the UI chunk callback; abort + // requests have their own checked path immediately afterwards. + let _ = on_chunk(Chunk { + tokens: end, + total: ids.len(), + size: end - start, + seconds: started.elapsed().as_secs_f64(), + }); + observe(Progress::CheckAbort)?; + elapsed += throttle.pause(streams, stream, power_started)?; + if let Some(hidden) = &output.hidden { + let token_start = (start + 1).max(history_start); + if token_start <= end { + let layout = hidden.layout(); + let shape = layout.shape(); + let sliced = ops::slice( + hidden, + &[0, (token_start - start - 1) as i32, 0], + &[shape[0], (end - start) as i32, shape[2]], + &[1, 1, 1], + stream, + )?; + let token_ids = &ids[token_start..end + 1]; + observe(Progress::HistoryAppend)?; + let history_power_started = throttle.begin(); + let started = Instant::now(); + let position = if absolute_positions { + Some(token_start) + } else { + history_window.map(|_| token_start - 1) + }; + let updated = append(state, &sliced, token_ids, position)?; + ops::evaluate(streams, std::slice::from_ref(&updated), stream, false)?; + observe(Progress::Settled { + tokens: end, + total: ids.len(), + })?; + history_seconds += started.elapsed().as_secs_f64(); + observe(Progress::CheckAbort)?; + history_seconds += throttle.pause(streams, stream, history_power_started)?; + } + } + let _ = on_boundary(state, end, output.hidden.as_ref()); + drop(output); + observe(Progress::CheckAbort)?; + } + } + let started = Instant::now(); + let power_started = throttle.begin(); + observe(Progress::CheckAbort)?; + let (output, _) = forward( + state, + &ids_array(&ids[ids.len() - 1..])?, + OutputOptions { + emit_logits: true, + logits_keep: if options.final_logits_only { 1 } else { 0 }, + return_hidden: true, + }, + false, + )?; + let logits = output.logits.ok_or("MTP prefill tail omitted logits")?; + let hidden = output + .hidden + .ok_or("MTP prefill tail omitted hidden states")?; + ops::evaluate(streams, &[logits.clone(), hidden.clone()], stream, false)?; + observe(Progress::Settled { + tokens: ids.len(), + total: ids.len(), + })?; + elapsed += started.elapsed().as_secs_f64(); + observe(Progress::CheckAbort)?; + elapsed += throttle.pause(streams, stream, power_started)?; + Ok(MtpPrepared { + target: Prepared { + logits: ar::last_row(&logits, stream)?, + hidden: Some(hidden), + eval_seconds: elapsed, + chunks, + }, + history_seconds, + history_position_base, + }) +} + +pub(super) fn ids_array(ids: &[i32]) -> Result { + let n = i32::try_from(ids.len()).map_err(|_| "prefill length exceeds int32")?; + Array::new( + &[1, n], + Dtype::I32, + super::scalar_buffer( + &ids.iter() + .flat_map(|id| id.to_le_bytes()) + .collect::>(), + )?, + ) +} + +/// Init is after the first cancellation check, as in _make_target_prefill_cache. +/// Forward returns raw cache roots only when requested; unused head logits in +/// the external emit route must be dropped before evaluation, not evaluated. +#[allow(clippy::too_many_arguments)] +pub(super) fn run( + state: &mut C, + ids: &[i32], + options: &Options, + body_spans: &[(usize, usize)], + streams: &Streams, + stream: Stream, + throttle: &mut Throttle, + initialize: impl FnOnce(&mut C) -> Result<(), String>, + mut forward: impl FnMut(&mut C, &Array, OutputOptions, bool) -> Result<(Output, Vec), String>, + mut observe: impl FnMut(Progress) -> Result<(), String>, + mut on_boundary: impl FnMut(&mut C, usize, Option<&Array>) -> Result<(), String>, +) -> Result { + if ids.is_empty() { + return Err("prompt_ids must not be empty".into()); + } + observe(Progress::CheckAbort)?; + initialize(state)?; + let mut elapsed = 0.0; + let mut chunks = 0; + if ids.len() > 1 { + let body = ids_array(&ids[..ids.len() - 1])?; + let count = ids.len() - 1; + for &(start, end) in body_spans { + let power_started = throttle.begin(); + if start >= end || end > count { + return Err("prefill span exceeds body".into()); + } + observe(Progress::CheckAbort)?; + let input = ops::slice(&body, &[0, start as i32], &[1, end as i32], &[1, 1], stream)?; + let started = Instant::now(); + let emit = if options.external_cache_only { + options.external_emit_logits + } else { + !options.final_logits_only + }; + let cache_only = options.external_cache_only || !emit; + let (output, roots) = forward( + state, + &input, + OutputOptions { + emit_logits: emit, + logits_keep: 0, + return_hidden: false, + }, + cache_only, + )?; + let roots = if cache_only { + drop(output); + roots + } else { + vec![ + output + .logits + .ok_or("prefill forward omitted requested logits")?, + ] + }; + if !roots.is_empty() { + ops::evaluate(streams, &roots, stream, false)?; + observe(Progress::Settled { + tokens: end, + total: ids.len(), + })?; + } + chunks += 1; + observe(Progress::ChunkCompleted)?; + elapsed += started.elapsed().as_secs_f64(); + elapsed += throttle.pause(streams, stream, power_started)?; + let _ = on_boundary(state, end, None); + observe(Progress::CheckAbort)?; + } + } + let started = Instant::now(); + let power_started = throttle.begin(); + observe(Progress::CheckAbort)?; + let (output, _) = forward( + state, + &ids_array(&ids[ids.len() - 1..])?, + OutputOptions { + emit_logits: true, + logits_keep: if options.final_logits_only { 1 } else { 0 }, + return_hidden: options.return_hidden, + }, + false, + )?; + let logits = output.logits.ok_or("prefill tail omitted logits")?; + let mut roots = vec![logits.clone()]; + roots.extend(output.hidden.iter().cloned()); + ops::evaluate(streams, &roots, stream, false)?; + observe(Progress::Settled { + tokens: ids.len(), + total: ids.len(), + })?; + elapsed += started.elapsed().as_secs_f64(); + observe(Progress::CheckAbort)?; + elapsed += throttle.pause(streams, stream, power_started)?; + Ok(Prepared { + logits: ar::last_row(&logits, stream)?, + hidden: output.hidden, + eval_seconds: elapsed, + chunks, + }) +} + +#[test] +#[ignore = "requires Apple Metal; original streaming MTP history prefill"] +fn mtplx_mtp_prefill_driver_matches_reference() { + use super::super::gpu::Context; + use super::{ + allocator, + binary::{Binary, binary}, + configure_sources, + random::scalar, + stream::Device, + }; + use std::{cell::RefCell, rc::Rc}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-mtp-prefill-driver.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 656); + for (index, case) in cases.iter().enumerate() { + eprintln!("MTP prefill reference {index}/{}", cases.len()); + let events = Rc::new(RefCell::new(Vec::new())); + let init_events = events.clone(); + let chunk_events = events.clone(); + let mut calls = ( + Vec::<(Array, OutputOptions)>::new(), + Vec::<(Array, Vec, Option)>::new(), + ); + let ids = (0..case["length"].as_u64().unwrap()) + .map(|i| (i % 37) as i32) + .collect::>(); + let mut checks = 0; + let abort_at = case["abort_at"].as_u64().unwrap(); + let mut chunks = Vec::new(); + let result = committed( + &mut calls, + &ids, + &Options { + chunk_size: case["chunk"].as_u64().map(|n| n as usize), + final_logits_only: case["final_only"].as_bool().unwrap(), + external_cache_only: case["route"] != "normal", + external_emit_logits: case["route"] == "discard", + return_hidden: true, + }, + &spans( + ids.len().saturating_sub(1), + case["chunk"].as_u64().map(|n| n as usize), + 0, + &[], + ), + case["window"].as_u64().map(|n| n as usize), + case["absolute"].as_bool().unwrap(), + &streams, + stream, + &mut Throttle::new(100).unwrap(), + |_| { + init_events.borrow_mut().extend(["init", "mtp_init"]); + Ok(()) + }, + |calls, ids, output, cache_only| { + calls.0.push((ids.clone(), output)); + let value = ops::astype(ids, Dtype::F32, false, stream)?; + let cache = binary(&value, &scalar(1.0)?, Binary::Add, stream)?; + let value = ops::expand_dims(&value, &[-1], stream)?; + Ok(( + Output { + logits: output.emit_logits.then(|| value.clone()), + hidden: output.return_hidden.then_some(value), + }, + if cache_only { vec![cache] } else { Vec::new() }, + )) + }, + |calls, hidden, ids, position| { + calls.1.push((hidden.clone(), ids.to_vec(), position)); + let ids = ops::expand_dims( + &ops::astype(&ids_array(ids)?, Dtype::F32, false, stream)?, + &[-1], + stream, + )?; + binary(hidden, &ids, Binary::Add, stream) + }, + |event| { + events.borrow_mut().push(match event { + Progress::CheckAbort => "check", + Progress::Settled { .. } => "settled", + Progress::ChunkCompleted => "chunk", + Progress::HistoryAppend => "history", + }); + if matches!(event, Progress::CheckAbort) { + checks += 1; + if abort_at > 0 && checks == abort_at { + return Err("foreground_preempted_postcommit".into()); + } + } + Ok(()) + }, + |chunk| { + chunk_events.borrow_mut().push("callback"); + assert!(chunk.seconds >= 0.0); + chunks.push(serde_json::json!({"tokens":chunk.tokens,"total":chunk.total,"size":chunk.size})); + if case["absolute"] == true { + return Err("UI callback error".into()); + } + Ok(()) + }, + |_, _, _| Ok(()), + ); + let data = |a: &Array| serde_json::json!({"shape":a.layout().shape(), "values":ops::read_f32_as_f64(a, &streams, stream).unwrap()}); + let result = match result { + Err(error) => serde_json::json!({"error":error}), + Ok(result) => { + assert!(result.target.eval_seconds >= 0.0 && result.history_seconds >= 0.0); + assert_eq!(result.target.chunks, chunks.len()); + serde_json::json!({"logits":data(&result.target.logits), "hidden":data(result.target.hidden.as_ref().unwrap()), "base":result.history_position_base}) + } + }; + assert_eq!(result, case["result"], "result {index}"); + assert_eq!( + serde_json::json!(*events.borrow()), + case["events"], + "events {index}" + ); + assert_eq!(serde_json::json!(chunks), case["chunks"], "chunks {index}"); + let forward = calls.0.iter().map(|(ids, output)| serde_json::json!({"ids":ops::read_i64(ids, &streams, stream).unwrap(), "hidden":output.return_hidden, "emit":output.emit_logits, "keep":output.logits_keep})).collect::>(); + let history = calls.1.iter().map(|(hidden, ids, position)| serde_json::json!({"hidden":data(hidden), "ids":ids, "position":position})).collect::>(); + assert_eq!(serde_json::json!(forward), case["calls"], "calls {index}"); + assert_eq!( + serde_json::json!(history), + case["history"], + "history {index}" + ); + } +} + +#[test] +#[ignore = "requires Apple Metal; original _prefill control flow and raw cache roots"] +fn mtplx_prefill_driver_matches_reference() { + use super::super::gpu::Context; + use super::{ + allocator, + binary::{Binary, binary}, + cache::{QsaCache, object}, + configure_sources, + decoder::{AttentionCache, Cache, cache_roots}, + gdn, ple, + random::scalar, + stream::Device, + }; + use std::{cell::RefCell, rc::Rc}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-prefill-driver.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 505); + let arrays = (0..18) + .map(|i| { + Array::new( + &[1, 1, 256, 1], + Dtype::F32, + super::scalar_buffer( + &(0..256) + .flat_map(|_| (i as f32).to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap() + }) + .collect::>(); + let linear = Cache { + attention: AttentionCache::Linear(gdn::Cache { + left_padding: Some(arrays[0].clone()), + lengths: Some(arrays[1].clone()), + conv: Some(arrays[2].clone()), + delta: Some(arrays[3].clone()), + capture: Some( + arrays[6..12] + .to_vec() + .try_into() + .unwrap_or_else(|_| panic!("six captures")), + ), + }), + ple: ple::Cache { + conv: Some(arrays[4].clone()), + history: Some(arrays[5].clone()), + }, + capture_ple: Some((arrays[17].clone(), arrays[17].clone())), + }; + let mut qsa = QsaCache::new(4); + qsa.kv.keys = Some(object(arrays[12].clone())); + qsa.kv.values = Some(object(arrays[3].clone())); + qsa.kv.offset = 3; + qsa.raw_keys = Some(object(arrays[14].clone())); + qsa.pooled = Some(object(arrays[15].clone())); + qsa.pooled_f32_t = Some(object(arrays[16].clone())); + let roots = cache_roots(&[ + Some(linear), + Some(Cache { + attention: AttentionCache::Qsa(qsa), + ple: Default::default(), + capture_ple: None, + }), + ]); + assert_eq!( + serde_json::json!( + roots + .iter() + .map(|root| arrays.iter().position(|a| a.id() == root.id()).unwrap()) + .collect::>() + ), + cases[0]["tags"] + ); + assert_eq!( + serde_json::json!( + roots + .iter() + .map(|a| a.layout().shape().to_vec()) + .collect::>() + ), + cases[0]["shapes"] + ); + for (index, case) in cases.iter().enumerate().skip(1) { + eprintln!("prefill driver reference {index}/{}", cases.len()); + let mut calls = Vec::<(Array, OutputOptions)>::new(); + let events = Rc::new(RefCell::new(Vec::new())); + let init_events = events.clone(); + let abort_at = case["abort_at"].as_u64().unwrap(); + let mut checks = 0; + let ids = (0..case["length"].as_u64().unwrap()) + .map(|i| (i % 37) as i32) + .collect::>(); + let options = Options { + chunk_size: case["chunk"].as_u64().map(|n| n as usize), + final_logits_only: case["final_only"].as_bool().unwrap(), + external_cache_only: case["route"] != "normal", + external_emit_logits: case["route"] == "discard", + return_hidden: case["hidden"].as_bool().unwrap(), + }; + let result = run( + &mut calls, + &ids, + &options, + &spans(ids.len().saturating_sub(1), options.chunk_size, 0, &[]), + &streams, + stream, + &mut Throttle::new(100).unwrap(), + |_| { + init_events.borrow_mut().push("init"); + Ok(()) + }, + |calls, ids, output, cache_only| { + calls.push((ids.clone(), output)); + let value = ops::astype(ids, Dtype::F32, false, stream)?; + let cache = binary(&value, &scalar(1.0)?, Binary::Add, stream)?; + Ok(( + Output { + logits: if output.emit_logits { + Some(ops::expand_dims(&value, &[-1], stream)?) + } else { + None + }, + hidden: if output.return_hidden { + Some(ops::expand_dims(&value, &[-1], stream)?) + } else { + None + }, + }, + if cache_only { vec![cache] } else { Vec::new() }, + )) + }, + |event| { + match event { + Progress::CheckAbort => { + checks += 1; + events.borrow_mut().push("check"); + if abort_at > 0 && checks == abort_at { + return Err("foreground_preempted_postcommit".into()); + } + } + Progress::Settled { .. } => events.borrow_mut().push("settled"), + Progress::ChunkCompleted => events.borrow_mut().push("chunk"), + Progress::HistoryAppend => panic!("AR prefill cannot append MTP history"), + } + Ok(()) + }, + |_, _, _| Ok(()), + ); + let actual = match result { + Err(error) => serde_json::json!({"error":error}), + Ok(prepared) => { + assert!(prepared.eval_seconds >= 0.0); + assert_eq!(serde_json::json!(prepared.chunks), case["chunks"]); + serde_json::json!({"logits":ops::read_f32_as_f64(&prepared.logits, &streams, stream).unwrap(), + "shape":prepared.logits.layout().shape(), "hidden":prepared.hidden.as_ref().map(|h| serde_json::json!({ + "values":ops::read_f32_as_f64(h, &streams, stream).unwrap(), "shape":h.layout().shape()}))}) + } + }; + assert_eq!(actual, case["result"], "result case {index}"); + assert_eq!( + serde_json::json!(*events.borrow()), + case["events"], + "events case {index}" + ); + assert_eq!( + serde_json::json!(events.borrow().iter().filter(|e| **e == "chunk").count()), + case["chunks"] + ); + let calls = calls.iter().map(|(ids, output)| serde_json::json!({ + "ids":ops::read_i64(ids, &streams, stream).unwrap(), "hidden":output.return_hidden, + "emit":output.emit_logits, "keep":output.logits_keep, + })).collect::>(); + assert_eq!( + serde_json::json!(calls), + case["calls"], + "calls case {index}" + ); + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_attention.rs b/src/engine/metal/qwen_mtplx/qsa_attention.rs new file mode 100644 index 0000000..60bf7b7 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_attention.rs @@ -0,0 +1,658 @@ +//! qwen4_exp.Attention: projection, indexer, RoPE, KV and consumer branch order. +use super::array::Array; +#[cfg(test)] +use super::array::Dtype; +use super::attention::{self, EagerSelection}; +use super::binary::{Binary, binary}; +use super::cache::QsaCache; +use super::mlp::Linear; +use super::qsa_indexer::Indexer; +use super::stream::{Stream, Streams}; +use super::{QsaIndexerOptions, indexing, ops, rope, sparse_attention, unary}; + +pub(super) enum Input<'a> { + Separate([Linear<'a>; 3], [Option<&'a Array>; 3]), + Fused(Linear<'a>, &'a [i32]), +} + +pub(super) struct Attention<'a> { + pub(super) input: Input<'a>, + pub(super) output: Linear<'a>, + pub(super) output_bias: Option<&'a Array>, + pub(super) heads: i32, + pub(super) kv_heads: i32, + pub(super) dim: i32, + pub(super) eps: f32, + pub(super) scale: f64, + pub(super) q_norm: &'a Array, + pub(super) k_norm: &'a Array, + pub(super) inv_freq: &'a Array, + pub(super) rope_scaling: f64, + pub(super) mrope_axes: Option<&'a Array>, + pub(super) indexer: Option>, +} + +/// Resolved original request-phase/environment switches, not new heuristics. +pub(super) struct Options { + pub(super) indexer: QsaIndexerOptions, + pub(super) flash_min_context: u32, + pub(super) prefill_gather: bool, + pub(super) gather_tile_rows: i32, +} + +impl Attention<'_> { + fn finish( + &self, + out: &Array, + gate: &Array, + batch: i32, + rows: i32, + stream: Stream, + ) -> Result { + let out = ops::reshape(out, &[batch, rows, -1], stream)?; + let gate = unary::unary(gate, unary::Unary::Sigmoid, stream)?; + let out = self + .output + .apply(&binary(&out, &gate, Binary::Multiply, stream)?, stream)?; + match self.output_bias { + Some(bias) => binary(&out, bias, Binary::Add, stream), + None => Ok(out), + } + } + + pub(super) fn call( + &mut self, + x: &Array, + cache: &mut QsaCache, + options: &Options, + vision: Option<(Option<&Array>, i32)>, + streams: &Streams, + stream: Stream, + ) -> Result { + let shape = x.layout().shape().to_vec(); + if shape.len() != 3 + || shape[0] != 1 + || shape[1] <= 0 + || self.heads <= 0 + || self.kv_heads <= 0 + || self.dim <= 0 + { + return Err( + "QSA attention requires a positive single sequence and head geometry".into(), + ); + } + let (batch, rows, pos) = (shape[0], shape[1], cache.kv.offset); + let end = pos + .checked_add(rows) + .ok_or("QSA attention position overflow")?; + let (q, k, v, mut selected) = match &self.input { + Input::Fused(projection, splits) => { + let projected = projection.apply(x, stream)?; + let mut values = ops::split(&projected, splits, -1, stream)?.into_iter(); + if !(3..=4).contains(&values.len()) { + return Err("QSA fused projection requires three or four leaves".into()); + } + let q = values.next().unwrap(); + let k = values.next().unwrap(); + let v = values.next().unwrap(); + let idx = values.next(); + let selected = match &mut self.indexer { + Some(indexer) => { + indexer + .call( + x, + pos, + cache, + idx.as_ref(), + &options.indexer, + streams, + stream, + )? + .0 + } + None => None, + }; + (q, k, v, selected) + } + Input::Separate(projections, biases) => { + // In the unfused reference the indexer is called first. + let selected = match &mut self.indexer { + Some(indexer) => { + indexer + .call(x, pos, cache, None, &options.indexer, streams, stream)? + .0 + } + None => None, + }; + let mut values = Vec::with_capacity(3); + for (projection, bias) in projections.iter().zip(biases) { + let a = projection.apply(x, stream)?; + values.push(match bias { + Some(bias) => binary(&a, bias, Binary::Add, stream)?, + None => a, + }); + } + let [q, k, v]: [Array; 3] = + values.try_into().map_err(|_| "QSA projection count")?; + (q, k, v, selected) + } + }; + let q = ops::reshape(&q, &[batch, rows, self.heads, -1], stream)?; + let width = *q.layout().shape().last().unwrap(); + if width % 2 != 0 { + return Err("QSA query/gate width must be even".into()); + } + let [q, gate]: [Array; 2] = ops::split(&q, &[width / 2], -1, stream)? + .try_into() + .map_err(|_| "QSA query split")?; + let gate = ops::reshape(&gate, &[batch, rows, -1], stream)?; + let k = ops::reshape(&k, &[batch, rows, self.kv_heads, -1], stream)?; + let v = ops::reshape(&v, &[batch, rows, self.kv_heads, -1], stream)?; + let q = ops::rms_norm(&q, Some(self.q_norm), self.eps, stream)?; + let k = ops::rms_norm(&k, Some(self.k_norm), self.eps, stream)?; + let plain_rope = |delta: i32| { + let start = pos + .checked_add(delta) + .ok_or("QSA vision position overflow")?; + let stop = start + .checked_add(rows) + .ok_or("QSA vision position overflow")?; + let positions = indexing::arange_range_i32(start, stop, stream)?; + rope::cos_sin(&positions, self.inv_freq, self.rope_scaling, stream) + }; + let (cos, sin) = match (vision, self.mrope_axes) { + (Some((table, delta)), Some(axes)) => { + if let Some(table) = + table.filter(|t| t.layout().shape().get(1).is_some_and(|&n| end <= n)) + { + let table = ops::slice( + table, + &[0, pos], + &[table.layout().shape()[0], end], + &[1, 1], + stream, + )?; + rope::mrope_cos_sin(&table, self.inv_freq, axes, stream)? + } else { + plain_rope(delta)? + } + } + _ => plain_rope(0)?, + }; + let q = ops::transpose( + &rope::apply_partial(&q, &cos, &sin, stream)?, + &[0, 2, 1, 3], + stream, + )?; + let k = ops::transpose( + &rope::apply_partial(&k, &cos, &sin, stream)?, + &[0, 2, 1, 3], + stream, + )?; + let v = ops::transpose(&v, &[0, 2, 1, 3], stream)?; + let (k, v) = cache.kv.update_and_fetch(&k, &v, stream)?; + let total = k.borrow().layout().shape()[2]; + // Vision bypasses selection, not the indexer/cache work above. + if vision.is_some() { + selected = None; + } + if let Some(EagerSelection::FlashBlocks(ids, tail)) = selected { + let q = ops::reshape(&q, &[self.heads, self.dim], stream)?; + let out = sparse_attention::flash_skip( + &q, + &cache.kv.keys.as_ref().unwrap().borrow(), + &cache.kv.values.as_ref().unwrap().borrow(), + &ids, + total, + tail, + self.scale, + stream, + )?; + return self.finish(&out, &gate, batch, rows, stream); + } + if let Some(EagerSelection::PrefillBlocks(ids, valid)) = &selected { + let keys = cache.kv.keys.as_ref().unwrap().borrow(); + let values = cache.kv.values.as_ref().unwrap().borrow(); + let flash = options.indexer.large_prefill(rows as u32, pos as u32) + && pos as u32 >= options.flash_min_context; + let out = if flash + && sparse_attention::prefill_supported( + &q, &keys, &values, ids, valid, pos, total, self.scale, stream, + ) { + let out = sparse_attention::prefill_flash( + &q, &keys, &values, ids, valid, pos, total, self.scale, stream, + )?; + attention::prefill_count("flash_kernel")?; + Some(out) + } else if options.prefill_gather { + let ratio = self + .indexer + .as_ref() + .ok_or("QSA block selection requires an indexer")? + .ratio; + let out = attention::prefill_gather( + &q, + &keys, + &values, + ids, + valid, + pos, + ratio, + self.scale as f32, + options.gather_tile_rows, + streams, + stream, + )?; + attention::prefill_count("gather_tier")?; + Some(out) + } else { + attention::prefill_count("dense_fallback")?; + let ratio = self + .indexer + .as_ref() + .ok_or("QSA block selection requires an indexer")? + .ratio; + selected = Some(EagerSelection::Dense(attention::blocks_to_dense_mask( + ids, valid, pos, total, ratio, stream, + )?)); + None + }; + if let Some(out) = out { + return self.finish( + &ops::transpose(&out, &[0, 2, 1, 3], stream)?, + &gate, + batch, + rows, + stream, + ); + } + } + let k = k.borrow(); + let v = v.borrow(); + if let Some(EagerSelection::RowTokens(ids, valid)) = selected { + let out = attention::rows_gather(&q, &k, &v, &ids, &valid, self.scale as f32, stream)?; + return self.finish( + &ops::transpose(&out, &[0, 2, 1, 3], stream)?, + &gate, + batch, + rows, + stream, + ); + } + let (k, v, mask) = match selected { + Some(EagerSelection::DecodeTokens(ids)) => ( + indexing::take(&k, &ids, 2, stream)?, + indexing::take(&v, &ids, 2, stream)?, + None, + ), + Some(EagerSelection::Dense(mask)) => (k.clone(), v.clone(), Some(mask)), + None => { + let mask = if rows > 1 { + let qpos = indexing::arange_range_i32(pos, end, stream)?; + let tpos = indexing::arange_i32(total, stream)?; + Some(ops::expand_dims( + &binary( + &ops::expand_dims(&tpos, &[0], stream)?, + &ops::expand_dims(&qpos, &[1], stream)?, + Binary::LessEqual, + stream, + )?, + &[0, 1], + stream, + )?) + } else { + None + }; + (k.clone(), v.clone(), mask) + } + _ => return Err("unconsumed QSA attention selection".into()), + }; + let out = + attention::scaled_dot_product(&q, &k, &v, mask.as_ref(), self.scale as f32, stream)?; + self.finish( + &ops::transpose(&out, &[0, 2, 1, 3], stream)?, + &gate, + batch, + rows, + stream, + ) + } +} + +#[test] +#[ignore = "requires Metal and unchanged whole-Attention receipts; no model download"] +fn mtplx_qsa_attention_module_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, pattern_scaled, qsa_indexer_options}, + }; + use super::{allocator, mlp, stream::Device}; + use sha2::{Digest, Sha256}; + super::configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let tf32 = super::dense::tf32_enabled(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-attention-module.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .filter(|c| c["options"]["tf32"].as_bool() == Some(tf32)) + .collect::>(); + assert_eq!(cases.len(), 28); + let source = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().product::() as u32, salt), + ) + .unwrap() + }; + let qnorm = source(&[256], 410); + let knorm = source(&[256], 411); + let iqnorm = source(&[128], 72); + let iknorm = source(&[128], 73); + let freqbytes = cases[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Array::new(&[32], Dtype::F32, super::scalar_buffer(&freqbytes).unwrap()).unwrap(); + let axes = rope::build_mrope_axes(&[8, 12, 12], true); + let axes = Array::new( + &[32], + Dtype::I32, + super::scalar_buffer( + &axes + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let layers = [ + mlp::fixture_linear(12288, 64, 4, 64, 400), + mlp::fixture_linear(512, 64, 4, 64, 402), + mlp::fixture_linear(512, 64, 4, 64, 404), + mlp::fixture_linear(64, 6144, 4, 64, 406), + mlp::fixture_linear(640, 64, 4, 64, 408), + ]; + let biases = [(12288, 440), (512, 442), (512, 444), (64, 446)].map(|(n, s)| { + Array::new(&[n], Dtype::BF16, pattern_scaled(n as u32, s, 1. / 64.)).unwrap() + }); + let digest = |a: &Array| { + let a = + ops::contiguous(&ops::astype(a, Dtype::F32, false, gpu).unwrap(), false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::() + }; + for prepared in [false, true] { + for profile in 0..10 { + let sequence = cases + .iter() + .filter(|c| c["profile"] == profile) + .collect::>(); + let first = sequence[0]; + let fused = first["fused"].as_u64().unwrap(); + let biased = first["biased"].as_bool().unwrap(); + let no_indexer = first["no_indexer"].as_bool().unwrap(); + let vision = first["vision"].as_str().unwrap(); + let prefix = first["prefix"].as_i64().unwrap() as i32; + let mut parts = vec![0, 1, 2]; + if fused == 4 { + parts.push(4); + } + let fused_pack = mlp::QuantizedLinear { + weight: ops::concatenate( + &parts + .iter() + .map(|&i| layers[i].weight.clone()) + .collect::>(), + 0, + gpu, + ) + .unwrap(), + scales: ops::concatenate( + &parts + .iter() + .map(|&i| layers[i].scales.clone()) + .collect::>(), + 0, + gpu, + ) + .unwrap(), + biases: ops::concatenate( + &parts + .iter() + .map(|&i| layers[i].biases.clone()) + .collect::>(), + 0, + gpu, + ) + .unwrap(), + bits: 4, + group: 64, + }; + if prepared && fused > 0 { + ops::evaluate( + &streams, + &[ + fused_pack.weight.clone(), + fused_pack.scales.clone(), + fused_pack.biases.clone(), + ], + gpu, + false, + ) + .unwrap(); + } + let splits = if fused == 4 { + &[12288, 12800, 13312][..] + } else { + &[12288, 12800][..] + }; + let mut attn = Attention { + input: if fused > 0 { + Input::Fused(Linear::Quantized(&fused_pack), splits) + } else { + Input::Separate( + [ + Linear::Quantized(&layers[0]), + Linear::Quantized(&layers[1]), + Linear::Quantized(&layers[2]), + ], + [0, 1, 2].map(|i| biased.then_some(&biases[i])), + ) + }, + output: Linear::Quantized(&layers[3]), + output_bias: biased.then_some(&biases[3]), + heads: 24, + kv_heads: 2, + dim: 256, + eps: 1e-6, + scale: 0.0625, + q_norm: &qnorm, + k_norm: &knorm, + inv_freq: &freq, + rope_scaling: 1., + mrope_axes: (vision == "table").then_some(&axes), + indexer: (!no_indexer).then_some(Indexer { + projection: (fused != 4).then_some(Linear::Quantized(&layers[4])), + heads: 4, + kv_heads: 1, + head_dim: 128, + block_topk: 512, + ratio: 4, + q_norm: &iqnorm, + k_norm: &iknorm, + inv_freq: &freq, + eps: 1e-6, + scaling: 1., + scratch: 32 * 1024 * 1024, + compiled: None, + }), + }; + let options = Options { + indexer: qsa_indexer_options(&first["options"]), + flash_min_context: first["flash_min"].as_u64().unwrap() as u32, + prefill_gather: first["prefill_gather"].as_bool().unwrap(), + gather_tile_rows: 64, + }; + let mut cache = QsaCache::new(4); + if prefix > 0 { + cache + .write_raw(&source(&[1, prefix, 128], 88), gpu) + .unwrap(); + attn.indexer + .as_ref() + .unwrap() + .extend_pooled(&mut cache, prefix, options.indexer.fused, gpu) + .unwrap(); + let kv = + ops::transpose(&source(&[1, prefix, 2, 256], 89), &[0, 2, 1, 3], gpu).unwrap(); + cache.kv.update_and_fetch(&kv, &kv, gpu).unwrap(); + let state = cache + .state(gpu) + .unwrap() + .into_iter() + .flatten() + .map(|a| a.borrow().clone()) + .collect::>(); + ops::evaluate(&streams, &state, gpu, false).unwrap(); + } + let table = (vision == "table").then(|| { + let size = prefix + 5; + let bytes = (0..3) + .flat_map(|axis| { + (0..size).flat_map(move |i| { + match axis { + 0 => i / 3, + 1 => i % 17, + _ => i % 11, + } + .to_le_bytes() + }) + }) + .collect::>(); + Array::new( + &[3, size], + Dtype::I32, + super::scalar_buffer(&bytes).unwrap(), + ) + .unwrap() + }); + for c in sequence { + super::eval::execution_tests::observed(|| { + let n = |key: &str| c[key].as_i64().unwrap() as i32; + let step = n("step"); + let rows = n("rows"); + if step == 2 && matches!(profile, 2 | 7) { + assert_eq!(cache.trim(2), 2); + } + assert_eq!(cache.kv.offset, n("pos")); + let x = ops::reshape( + &source(&[rows * 64], 420 + step as u32), + &[1, rows, 64], + gpu, + ) + .unwrap(); + if prepared { + ops::evaluate(&streams, std::slice::from_ref(&x), gpu, false).unwrap(); + } + let before = attention::qsa_prefill_engagement().unwrap(); + let (out, construction) = capture_dispatches(|| { + attn.call( + &x, + &mut cache, + &options, + (vision != "none").then_some((table.as_ref(), -2)), + &streams, + gpu, + ) + .unwrap() + }); + let after = attention::qsa_prefill_engagement().unwrap(); + let diff = after + .into_iter() + .filter_map(|(k, v)| { + let old = before.get(k).copied().unwrap_or(0); + (old != v).then_some((k, v - old)) + }) + .collect::>(); + assert_eq!(serde_json::json!(diff), c["counts"], "{profile}/{step}"); + let core = attn + .indexer + .as_ref() + .and_then(|i| i.compiled.as_ref()) + .map(|(_, c)| c.report()); + assert_eq!(serde_json::json!(core), c["core"], "{profile}/{step}"); + let consumers = c["consumers"].as_array().unwrap(); + if !consumers.contains(&serde_json::json!("prefill_gather")) && profile != 5 { + assert!(construction.is_empty(), "{profile}/{step} must remain lazy"); + } + let mut pending = vec![out.clone()]; + let mut seen = std::collections::HashSet::new(); + let mut flash = false; + let mut prefill = false; + while let Some(a) = pending.pop() { + if !seen.insert(a.id()) { + continue; + } + if let Some(op) = a.operation() { + match op.as_ref() { + ops::Operation::QsaFlashSkip(_) => flash = true, + ops::Operation::QsaPrefillFlash => prefill = true, + _ => {} + } + } + pending.extend(a.inputs().iter().cloned()); + } + assert_eq!(flash, consumers.contains(&serde_json::json!("flash"))); + assert_eq!( + prefill, + consumers.contains(&serde_json::json!("prefill_flash")) + ); + assert_eq!(cache.kv.offset, n("offset")); + assert_eq!(cache.pooled_len, n("pooled_len")); + let state = [ + &cache.raw_keys, + &cache.pooled, + &cache.pooled_f32_t, + &cache.kv.keys, + &cache.kv.values, + ]; + assert_eq!( + serde_json::json!(state.map(Option::is_some)), + c["state_present"] + ); + let mut leaves = vec![out]; + leaves.extend(state.into_iter().flatten().map(|a| a.borrow().clone())); + let (_, dispatches) = capture_dispatches(|| { + ops::evaluate(&streams, &leaves, gpu, false).unwrap() + }); + if flash { + assert!(dispatches.iter().any(|d| d.0.contains("qsa_flash_skip"))); + } + if prefill { + assert!(dispatches.iter().any(|d| d.0.contains("qsa_prefill_flash"))); + } + assert_eq!(leaves.len(), c["sha256"].as_array().unwrap().len()); + for (i, a) in leaves.iter().enumerate() { + assert_eq!(serde_json::json!(a.layout().shape()), c["shapes"][i]); + assert_eq!( + digest(a), + c["sha256"][i].as_str().unwrap(), + "profile{profile}/step{step}/leaf{i}/prepared{prepared}" + ); + } + }); + } + } + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_compile.rs b/src/engine/metal/qwen_mtplx/qsa_compile.rs new file mode 100644 index 0000000..63b8cc5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_compile.rs @@ -0,0 +1,567 @@ +//! Pure shape-stable QSA compiled body, replayed with explicit cache/frontier +//! leaves. Host routing, bucket ownership and engagement stats live outside it. +use super::array::{Array, Dtype, Layout}; +use super::compiled::Replay; +use super::qsa_prepare::Position; +use super::stream::Stream; +use super::{QsaCompiledMode, QsaSelectMode, compiled, ops, qsa_prepare, qsa_select}; + +#[derive(Clone, Copy)] +pub(super) enum Scalar { + Clamp { max_new: u32, max_start: u32 }, + Multiply(i32), + Add(u32), +} + +impl Scalar { + /// Existing Buffer callers share the same captured scalar backend. The + /// caller's live Buffer prevents donation, as in their previous contract. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn buffer( + self, + inputs: &[&super::super::gpu::Buffer], + ) -> Result { + let inputs = inputs + .iter() + .map(|b| Array::new(&[1], Dtype::I32, b.view(0, 4)?)) + .collect::, String>>()?; + let output = Array::unallocated(&[1], Dtype::I32)?; + self.evaluate(&inputs, &output)?; + output.buffer().view(output.offset(), 4) + } + pub(super) fn array(self, inputs: &[Array], stream: Stream) -> Result { + if inputs.len() + != if matches!(self, Self::Clamp { .. }) { + 2 + } else { + 1 + } + || inputs + .iter() + .any(|a| a.layout().dtype() != Dtype::I32 || a.layout().shape() != [1]) + { + return Err("compiled QSA scalar requires int32[1] inputs".into()); + } + Array::make_operation_with_inputs( + stream, + inputs, + Layout::new(&[1], Dtype::I32)?, + ops::Operation::QsaCompiledScalar(self), + ) + } + + pub(super) fn evaluate(self, inputs: &[Array], output: &Array) -> Result<(), String> { + let prefix = match self { + Self::Clamp { max_new, max_start } => { + super::qsa_compiled_clamp_name(max_new, max_start) + } + Self::Add(start) => format!("kernel_qwen_mtplx_qsa_pos_add_{start}"), + Self::Multiply(ratio) => format!("kernel_qwen_mtplx_qsa_raw_start_r{ratio}"), + }; + super::compile_custom(&format!("{prefix}_contiguous"), || self.source())?; + compiled::evaluate(inputs, output, &prefix) + } + + fn source(self) -> Result { + let body = match self { + Self::Clamp { max_new, max_start } => { + let prefix = super::qsa_compiled_clamp_name(max_new, max_start); + let body = super::qsa_compiled_clamp_source(max_new, max_start)?; + body.replace(&prefix, &format!("{prefix}_contiguous")) + } + Self::Add(start) => { + let prefix = format!("kernel_qwen_mtplx_qsa_pos_add_{start}"); + let body = super::qsa_compiled_row_position_source(start)?; + body.replace(&prefix, &format!("{prefix}_contiguous")) + } + Self::Multiply(ratio) => { + if ratio <= 0 { + return Err("compiled QSA ratio must be positive".into()); + } + let bank: serde_json::Value = serde_json::from_str(include_str!( + "../../../../metal/mtplx-qsa-compiled-scalars.json" + )) + .map_err(|e| e.to_string())?; + let body = bank["multiply"]["kernels"] + .as_str() + .ok_or("missing compiled QSA multiply")?; + let symbol = body + .split_once("host_name(\"") + .and_then(|(_, s)| s.split_once('"')) + .ok_or("invalid compiled QSA multiply symbol")? + .0; + let prefix = format!("kernel_qwen_mtplx_qsa_raw_start_r{ratio}"); + body.replace(symbol, &format!("{prefix}_contiguous")) + .replace( + "tmp_C = static_cast(4);", + &format!("tmp_C = static_cast({ratio});"), + ) + } + }; + Ok(format!( + "{}{body}", + include_str!("../../../../metal/mtplx-qsa-compiled-header.metal") + )) + } +} + +#[test] +#[ignore = "requires Metal and original compiled indexer receipts; no model weights"] +fn mtplx_compiled_indexer_array_replay_matches_reference() { + use super::super::gpu::Buffer; + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, pattern_scaled}, + }; + use super::{ + allocator, configure_sources, + mlp::{Linear, QuantizedLinear}, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + use std::collections::HashMap; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let mut bank = HashMap::::new(); + let mut projection: Option = None; + let mut count = 0; + let contracts = include_str!("../../../../tests/fixtures/mtplx-qsa-compiled-graphs.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + for line in include_str!("../../../../tests/fixtures/mtplx-qsa-compiled-indexer.jsonl") + .lines() + .chain(include_str!("../../../../tests/fixtures/mtplx-qsa-compiled-hidden.jsonl").lines()) + { + for retained in [true, false] { + super::eval::execution_tests::observed(|| { + let c: serde_json::Value = serde_json::from_str(line).unwrap(); + let n = |s: &str| c[s].as_u64().unwrap() as u32; + let rows = n("rows"); + let stride = n("stride"); + let budget = c["budget"].as_u64().unwrap(); + let name = c["kernel"].as_str().unwrap(); + let quant = c["bits"].as_u64().map(|bits| (bits as u32, n("group"))); + if let Some((bits, group)) = quant + && projection + .as_ref() + .is_none_or(|p| (p.bits, p.group) != (bits, group)) + { + let words = (0..640_u32 * 2560 * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let buffer = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + buffer.write(0, &words).unwrap(); + projection = Some(QuantizedLinear { + weight: Array::new(&[640, (2560 * bits / 32) as i32], Dtype::U32, buffer) + .unwrap(), + scales: Array::new( + &[640, (2560 / group) as i32], + Dtype::BF16, + pattern_scaled(640 * 2560 / group, 75, 1.0 / 64.0), + ) + .unwrap(), + biases: Array::new( + &[640, (2560 / group) as i32], + Dtype::BF16, + pattern_scaled(640 * 2560 / group, 76, 1.0 / 64.0), + ) + .unwrap(), + bits, + group, + }); + } + let source = Array::new( + &[1, rows as i32, stride as i32], + Dtype::BF16, + pattern(rows * stride, 150), + ) + .unwrap(); + let source = if quant.is_none() { + ops::slice(&source, &[0; 3], &[1, rows as i32, 640], &[1; 3], gpu).unwrap() + } else { + source + }; + let raw = + Array::new(&[1, 4096, 128], Dtype::BF16, pattern(4096 * 128, 151)).unwrap(); + let pool = + Array::new(&[1, 1024, 128], Dtype::BF16, pattern(1024 * 128, 152)).unwrap(); + let norm = Array::new(&[128], Dtype::BF16, pattern(128, 72)).unwrap(); + let freqs = c["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = + Array::new(&[32], Dtype::F32, super::scalar_buffer(&freqs).unwrap()).unwrap(); + let mut args = vec![source, raw, pool, norm.clone(), norm, freq]; + args.extend( + [n("pos"), n("pos") + rows, n("logical"), n("pooled_len")].map(|v| { + Array::new( + &[1], + Dtype::I32, + super::scalar_buffer(&v.to_le_bytes()).unwrap(), + ) + .unwrap() + }), + ); + ops::evaluate(&streams, &args, gpu, false).unwrap(); + let mode = match c["mode"].as_str().unwrap() { + "blocks" => QsaCompiledMode::Blocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "dense_mask" => QsaCompiledMode::DenseMask, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + "update_only" => QsaCompiledMode::UpdateOnly, + _ => panic!("mode"), + }; + let key = format!("{rows}:{mode:?}:{budget}:{quant:?}"); + let body = Body { + heads: 4, + dim: 128, + topk: 512, + ratio: 4, + eps: 1e-6, + scale: 1.0, + mode, + dense_capacity: 4100, + scratch: budget, + prefill_workspace: budget, + }; + let (result, dispatches) = capture_dispatches(|| { + if !bank.contains_key(&key) { + let linear = quant.map(|_| Linear::Quantized(projection.as_ref().unwrap())); + bank.insert( + key.clone(), + body.trace(&args, linear.as_ref(), gpu).unwrap(), + ); + } + bank[&key].run(&args).unwrap() + }); + assert!(dispatches.is_empty(), "trace/replay must stay lazy"); + let leaves = result.len() - 4; + let actual_contract = bank[&key].contract( + &[ + "source", "raw", "pooled", "norm", "norm", "freq", "pos", "total", + "logical", "frontier", + ], + |op| match op { + ops::Operation::QuantizedLinearBf16 { .. } => "QuantizedMatmul", + ops::Operation::Slice { .. } => "Slice", + ops::Operation::Reshape => "Reshape", + ops::Operation::DynamicSliceUpdate(_) => "DynamicSliceUpdate", + ops::Operation::DynamicSlice(_) => "DynamicSlice", + ops::Operation::QsaCompiledScalar(Scalar::Clamp { max_new, max_start }) => { + if *max_start == 0 || max_start == max_new { + "CompiledBroadcastSubtractBroadcastMaximumMinimumMinimum" + } else { + "CompiledBroadcastSubtractBroadcastMaximumMinimumBroadcastMinimum" + } + } + ops::Operation::QsaCompiledScalar(Scalar::Multiply(_)) => { + "CompiledBroadcastMultiply" + } + ops::Operation::QsaCompiledScalar(Scalar::Add(_)) => "CompiledBroadcastAdd", + ops::Operation::Concatenate(_) => "Concatenate", + ops::Operation::QsaSelect(_) + | ops::Operation::QsaPrepare { .. } + | ops::Operation::QsaPrefillScores + | ops::Operation::QsaPrefillTopK(_) => "CustomKernel", + _ => panic!("uncaptured compiled graph operation"), + }, + leaves + 2, + ); + let contract = contracts + .iter() + .find(|r| { + r["hidden"] == quant.is_some() + && r["rows"] == rows + && r["stride"] == stride + && r["mode"] == c["mode"] + && r["budget"] == c["budget"] + }) + .unwrap(); + assert_eq!( + actual_contract, contract["contract"], + "{name} graph topology" + ); + assert_eq!(result[leaves + 2].id(), args[8].id()); + assert_eq!(result[leaves + 3].id(), args[7].id()); + let identities = [ + args[1].buffer().data_identity(), + args[2].buffer().data_identity(), + ]; + let snapshots = if retained { + vec![args[1].clone(), args[2].clone()] + } else { + Vec::new() + }; + drop(args); + ops::evaluate(&streams, &result, gpu, false).unwrap(); + for i in 0..2 { + assert_eq!( + result[leaves + i].buffer().data_identity() == identities[i], + !retained, + "{name} cache donation {i}" + ); + } + let arrays = result[..leaves + 2] + .iter() + .chain(&snapshots) + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &arrays, gpu, false).unwrap(); + let mut expected = c["sha256"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_str().unwrap()) + .collect::>(); + expected.extend( + ["raw_next", "pool_next", "raw_old", "pool_old"] + [..if retained { 4 } else { 2 }] + .iter() + .map(|s| c["state_sha256"][*s].as_str().unwrap()), + ); + for (i, (a, hash)) in arrays.iter().zip(expected).enumerate() { + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + assert_eq!( + Sha256::digest(&bytes) + .iter() + .map(|v| format!("{v:02x}")) + .collect::(), + hash, + "{name} leaf{i}" + ); + } + count += 1; + }); + } + } + assert_eq!(count, 396); +} + +pub(super) struct Body { + pub(super) heads: i32, + pub(super) dim: i32, + pub(super) topk: i32, + pub(super) ratio: i32, + pub(super) eps: f64, + pub(super) scale: f64, + pub(super) mode: QsaCompiledMode, + pub(super) dense_capacity: i32, + pub(super) scratch: u64, + pub(super) prefill_workspace: u64, +} + +impl Body { + /// Original ten-argument from_qk_rows/from_hidden boundary. Captured + /// projection weights remain constants; norm/frequency weights are inputs. + pub(super) fn trace( + &self, + inputs: &[Array], + projection: Option<&super::mlp::Linear<'_>>, + stream: Stream, + ) -> Result { + if inputs.len() != 10 { + return Err("compiled QSA body requires ten inputs".into()); + } + Replay::trace(inputs, |a| self.build(a, projection, stream)) + } + + pub(super) fn build( + &self, + a: &[Array], + projection: Option<&super::mlp::Linear<'_>>, + stream: Stream, + ) -> Result, String> { + let [ + source, + raw, + pooled, + qnorm, + knorm, + freq, + pos, + total, + logical, + pooled_len, + ] = a + else { + return Err("compiled QSA body arity".into()); + }; + let qk = match projection { + Some(p) => p.apply(source, stream)?, + None => source.clone(), + }; + let qs = qk.layout(); + let rs = raw.layout(); + let ps = pooled.layout(); + let width = self + .heads + .checked_add(1) + .and_then(|n| n.checked_mul(self.dim)) + .ok_or("compiled QSA width overflow")?; + if self.heads <= 0 + || self.dim <= 0 + || self.ratio <= 0 + || qs.shape().len() != 3 + || qs.shape()[0] != 1 + || qs.shape()[2] != width + || rs.shape().len() != 3 + || ps.shape().len() != 3 + || rs.shape()[0] != 1 + || ps.shape()[0] != 1 + || rs.shape()[2] != self.dim + || ps.shape()[2] != self.dim + || qs.dtype() != rs.dtype() + || rs.dtype() != ps.dtype() + { + return Err("invalid compiled QSA body geometry/dtypes".into()); + } + let rows = qs.shape()[1]; + let max_new = rows + .checked_add(self.ratio - 1) + .ok_or("compiled QSA window overflow")? + / self.ratio; + let max_start = (rs.shape()[1] / self.ratio - max_new).min(ps.shape()[1] - max_new); + if rows <= 0 + || rs.shape()[1] < rows + || max_start < 0 + || self.scratch == 0 + || self.prefill_workspace == 0 + { + return Err("compiled QSA backing cannot hold fixed window".into()); + } + drop((qs, rs, ps)); + let qwidth = self.heads * self.dim; + let key = ops::reshape( + &ops::slice(&qk, &[0, 0, qwidth], &[1, rows, width], &[1; 3], stream)?, + &[1, rows, self.dim], + stream, + )?; + let raw_next = ops::dynamic_slice_update(raw, &key, pos, &[1], stream)?; + let block_start = Scalar::Clamp { + max_new: max_new as u32, + max_start: max_start as u32, + } + .array(&[logical.clone(), pooled_len.clone()], stream)?; + let raw_start = + Scalar::Multiply(self.ratio).array(std::slice::from_ref(&block_start), stream)?; + let window = ops::dynamic_slice( + &raw_next, + &raw_start, + &[1], + &[1, max_new * self.ratio, self.dim], + stream, + )?; + let window = qsa_prepare::pool( + &window, + knorm, + freq, + Position::Tensor(&block_start), + self.ratio, + self.eps, + self.scale, + stream, + )?; + let pooled_next = ops::dynamic_slice_update(pooled, &window, &block_start, &[1], stream)?; + let mut outputs = Vec::new(); + if self.mode != QsaCompiledMode::UpdateOnly { + let q = ops::reshape( + &ops::slice(&qk, &[0; 3], &[1, rows, qwidth], &[1; 3], stream)?, + &[1, rows, self.heads, self.dim], + stream, + )?; + let q = qsa_prepare::queries( + &q, + qnorm, + freq, + Position::Tensor(pos), + self.eps, + self.scale, + stream, + )?; + if self.mode == QsaCompiledMode::PrefillBlocks { + outputs = super::qsa_prefill::select_compiled( + &q, + &pooled_next, + [ + Position::Tensor(pos), + Position::Tensor(total), + Position::Tensor(logical), + ], + self.topk, + self.ratio, + None, + QsaSelectMode::Blocks, + self.prefill_workspace, + stream, + )?; + } else { + let mode = match self.mode { + QsaCompiledMode::Blocks => QsaSelectMode::Blocks, + QsaCompiledMode::RowTokens => QsaSelectMode::RowTokens, + QsaCompiledMode::DenseMask => QsaSelectMode::DenseMask, + _ => unreachable!(), + }; + let blocks = pooled.layout().shape()[1]; + let chunk = (self.scratch / (blocks as u64 * 4)).max(1).min(rows as u64) as i32; + let mut chunks = Vec::new(); + for start in (0..rows).step_by(chunk as usize) { + let q = ops::slice( + &q, + &[0, start, 0, 0], + &[1, (start + chunk).min(rows), self.heads, self.dim], + &[1; 4], + stream, + )?; + let pos = Scalar::Add(start as u32).array(std::slice::from_ref(pos), stream)?; + chunks.push(qsa_select::select( + &q, + &pooled_next, + [ + Position::Tensor(&pos), + Position::Tensor(total), + Position::Tensor(logical), + ], + self.topk, + self.ratio, + (mode == QsaSelectMode::DenseMask).then_some(self.dense_capacity), + mode, + stream, + )?); + } + outputs = if chunks.len() == 1 { + chunks.pop().unwrap() + } else { + (0..chunks[0].len()) + .map(|i| { + ops::concatenate( + &chunks.iter().map(|c| c[i].clone()).collect::>(), + if mode == QsaSelectMode::DenseMask { + 2 + } else { + 0 + }, + stream, + ) + }) + .collect::>()? + }; + } + } + outputs.extend([raw_next, pooled_next, logical.clone(), total.clone()]); + Ok(outputs) + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_core.rs b/src/engine/metal/qwen_mtplx/qsa_core.rs new file mode 100644 index 0000000..13baafc --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_core.rs @@ -0,0 +1,680 @@ +//! QSACompiledIndexerCore host contract. Mutable cache buffers and frontiers +//! are call inputs, never compile-key values or captured model state. +use super::array::{Array, Dtype}; +use super::compiled::Replay; +use super::mlp::Linear; +use super::qsa_compile::Body; +use super::qsa_prepare::Position; +use super::stream::Stream; +use super::{QsaCompiledMode, qsa_prefill}; +use std::collections::{BTreeMap, HashMap}; + +#[derive(Clone, Copy)] +pub(super) struct Config { + pub(super) heads: i32, + pub(super) kv_heads: i32, + pub(super) dim: i32, + pub(super) topk: i32, + pub(super) ratio: i32, + pub(super) eps: f64, + pub(super) scale: f64, + pub(super) minimum_raw: i32, + pub(super) minimum_pooled: i32, + pub(super) bucketed: bool, + pub(super) scratch: u64, + pub(super) prefill_workspace: u64, +} + +impl Default for Config { + fn default() -> Self { + Self { + heads: 4, + kv_heads: 1, + dim: 128, + topk: 512, + ratio: 4, + eps: 1e-6, + scale: 1.0, + minimum_raw: 256, + minimum_pooled: 256, + bucketed: true, + scratch: 32 * 1024 * 1024, + prefill_workspace: 128 * 1024 * 1024, + } + } +} + +#[derive(Clone, Copy, PartialEq, Eq, Hash)] +pub(super) enum Source { + Hidden, + QkRows, +} +impl Source { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn name(self) -> &'static str { + match self { + Self::Hidden => "hidden", + Self::QkRows => "qk_rows", + } + } + fn index(self) -> usize { + usize::from(self == Self::QkRows) + } +} + +impl QsaCompiledMode { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn label(self) -> &'static str { + match self { + Self::UpdateOnly => "update_only", + Self::Blocks => "blocks", + Self::PrefillBlocks => "prefill_blocks", + Self::RowTokens => "row_tokens", + Self::DenseMask => "dense_mask", + } + } + fn index(self) -> usize { + match self { + Self::Blocks => 0, + Self::PrefillBlocks => 1, + Self::DenseMask => 2, + Self::RowTokens => 3, + Self::UpdateOnly => 4, + } + } +} + +#[derive(PartialEq, Eq, Hash)] +struct Key { + source: Source, + mode: QsaCompiledMode, + shapes: [Vec; 3], + dtypes: [Dtype; 3], + geometry: [i32; 5], + dense: i32, + producer: &'static str, + chunk: i32, +} +impl Key { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn label(&self) -> String { + format!( + "{}:{}:s{}:raw{}:pool{}:out{}:score{}:chunk{}:{}/{}", + self.source.name(), + self.mode.label(), + self.shapes[0][1], + self.shapes[1][1], + self.shapes[2][1], + self.dense, + self.producer, + self.chunk, + dtype_name(self.dtypes[0]), + dtype_name(self.dtypes[2]) + ) + } + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn report(&self) -> serde_json::Value { + serde_json::json!({"source":self.source.name(),"mode":self.mode.label(), + "input_shape":self.shapes[0],"input_dtype":dtype_name(self.dtypes[0]), + "raw_shape":self.shapes[1],"raw_dtype":dtype_name(self.dtypes[1]), + "pooled_shape":self.shapes[2],"pooled_dtype":dtype_name(self.dtypes[2]), + "n_heads":self.geometry[0],"kv_heads":self.geometry[1],"head_dim":self.geometry[2], + "block_topk":self.geometry[3],"compress_ratio":self.geometry[4], + "dense_output_tokens":self.dense,"prefill_score_producer":self.producer, + "selector_chunk_rows":self.chunk,"label":self.label()}) + } +} +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn dtype_name(dtype: Dtype) -> String { + format!("mlx.core.{}", dtype.kernel_name()) +} + +#[derive(Default)] +struct Stats { + calls: u64, + compiled_calls: u64, + source: [u64; 2], + traces: u64, + selectors: u64, + transitions: u64, + producers: [u64; 2], + modes: [u64; 5], + buckets: BTreeMap, + last_capacity: Option<[i32; 2]>, +} + +pub(super) struct Core<'a> { + config: Config, + weights: [Array; 3], + projection: Option>, + // None is the original cached callable with an empty (possibly failed) + // runtime trace, not a missing Python _compiled entry. + entries: HashMap>, + stats: Stats, +} + +pub(super) struct Output { + pub(super) selection: Vec, + pub(super) raw_keys: Array, + pub(super) pooled: Array, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) pooled_len: Array, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) offset: Array, +} + +impl<'a> Core<'a> { + pub(super) fn new( + config: Config, + weights: [Array; 3], + projection: Option>, + ) -> Result { + let c = config; + if c.heads <= 0 + || c.kv_heads != 1 + || c.dim <= 0 + || !(1..=512).contains(&c.topk) + || c.ratio <= 0 + { + return Err("invalid compiled QSA head/top-k/ratio configuration".into()); + } + for w in &weights[..2] { + if w.layout().shape() != [c.dim] { + return Err("compiled QSA norm shape mismatch".into()); + } + } + let freq = weights[2].layout(); + if freq.shape().len() != 1 + || freq.dtype() != Dtype::F32 + || freq.shape()[0] <= 0 + || i64::from(freq.shape()[0]) * 2 > i64::from(c.dim) + { + return Err("compiled QSA requires valid one-dimensional float32 frequencies".into()); + } + drop(freq); + if [c.minimum_raw, c.minimum_pooled] + .iter() + .any(|&n| n <= 0 || !(n as u32).is_power_of_two()) + || !c.scale.is_finite() + || c.scale <= 0.0 + || c.scratch == 0 + || c.prefill_workspace == 0 + { + return Err("invalid compiled QSA bucket/scale/workspace configuration".into()); + } + Ok(Self { + config, + weights, + projection, + entries: HashMap::new(), + stats: Stats::default(), + }) + } + + #[expect( + clippy::too_many_arguments, + reason = "original compiled source/backing/frontier/mode contract" + )] + pub(super) fn select( + &mut self, + source: Source, + value: &Array, + raw: &Array, + pooled: &Array, + frontiers: [Position<'_>; 4], + mode: QsaCompiledMode, + dense: Option, + stream: Stream, + ) -> Result { + let c = self.config; + let v = value.layout(); + let r = raw.layout(); + let p = pooled.layout(); + if v.shape().len() != 3 || v.shape()[0] != 1 { + return Err("compiled QSA source must be [1,S,width]".into()); + } + let rows = v.shape()[1]; + if source == Source::QkRows { + let width = (i64::from(c.heads) + 1) * i64::from(c.dim); + if i64::from(v.shape()[2]) != width || v.dtype() != r.dtype() { + return Err("compiled QSA projected width/dtype mismatch".into()); + } + } else if self.projection.is_none() { + return Err("select_hidden requires project_qk".into()); + } + if r.dtype() != p.dtype() + || self.weights[1].layout().dtype() != r.dtype() + || (mode != QsaCompiledMode::UpdateOnly + && self.weights[0].layout().dtype() != v.dtype()) + { + return Err("compiled QSA cache/norm dtype mismatch".into()); + } + if mode == QsaCompiledMode::PrefillBlocks && rows <= 1 { + return Err("compiled prefill_blocks requires S > 1".into()); + } + if [r.shape(), p.shape()] + .iter() + .any(|s| s.len() != 3 || s[0] != 1 || s[2] != c.dim) + { + return Err("compiled QSA backing must be [1,capacity,D]".into()); + } + let capacity = [r.shape()[1], p.shape()[1]]; + let max_new = (i64::from(rows) + i64::from(c.ratio) - 1) / i64::from(c.ratio); + if rows <= 0 + || capacity[0] < rows + || capacity[1] <= 0 + || i64::from(capacity[0] / c.ratio) < max_new + || i64::from(capacity[1]) < max_new + { + return Err("compiled QSA backings cannot hold fixed staging window".into()); + } + if c.bucketed + && capacity + .into_iter() + .zip([c.minimum_raw, c.minimum_pooled]) + .any(|(n, min)| n < min || !(n as u32).is_power_of_two()) + { + return Err("compiled QSA backing is not a power-of-two bucket".into()); + } + let [pos, total, logical, old] = frontiers.map(|v| v.static_value().map(i64::from)); + if pos.is_some_and(|n| n < 0 || n + i64::from(rows) > i64::from(capacity[0])) { + return Err("compiled QSA raw backing must be reserved before dispatch".into()); + } + if total.is_some_and(|n| n < 0 || pos.is_some_and(|p| n != p + i64::from(rows))) { + return Err("compiled QSA total must equal position + rows".into()); + } + if logical.is_some_and(|n| { + n < 0 + || n > i64::from(capacity[1]) + || total.is_some_and(|t| n != t / i64::from(c.ratio)) + }) { + return Err( + "compiled QSA logical frontier exceeds backing or disagrees with total".into(), + ); + } + if old.is_some_and(|n| { + n < 0 || n > i64::from(capacity[1]) || logical.is_some_and(|l| l - n > max_new) + }) { + return Err("compiled QSA pooled frontier gap exceeds fixed window".into()); + } + let minimum_dense = if mode == QsaCompiledMode::DenseMask { + capacity[1] + .checked_add(1) + .and_then(|n| n.checked_mul(c.ratio)) + .ok_or("compiled QSA dense capacity overflow")? + } else { + 0 + }; + let dense = dense.unwrap_or(minimum_dense); + if (mode == QsaCompiledMode::DenseMask && dense < minimum_dense) + || (mode != QsaCompiledMode::DenseMask && dense != 0) + { + return Err("invalid compiled QSA dense output capacity".into()); + } + let states = frontiers + .into_iter() + .map(|p| p.array(stream)) + .collect::, _>>()?; + let (producer, chunk) = if mode == QsaCompiledMode::UpdateOnly { + ("none", 0) + } else if mode == QsaCompiledMode::PrefillBlocks { + let q = Array::unallocated(&[1, rows, c.heads, c.dim], v.dtype())?; + let mpp = qsa_prefill::mpp_supported(&q, pooled, stream); + ( + if mpp { "mpp" } else { "mlx" }, + qsa_prefill::chunk_rows(rows, c.heads, capacity[1], c.prefill_workspace, 32, mpp)?, + ) + } else { + ( + "none", + (c.scratch / (capacity[1] as u64 * 4)) + .max(1) + .min(rows as u64) as i32, + ) + }; + let key = Key { + source, + mode, + shapes: [v.shape().to_vec(), r.shape().to_vec(), p.shape().to_vec()], + dtypes: [v.dtype(), r.dtype(), p.dtype()], + geometry: [c.heads, c.kv_heads, c.dim, c.topk, c.ratio], + dense, + producer, + chunk, + }; + drop((v, r, p)); + let stats = &mut self.stats; + stats.calls += 1; + stats.source[source.index()] += 1; + stats.modes[mode.index()] += 1; + if mode == QsaCompiledMode::PrefillBlocks { + stats.producers[usize::from(producer == "mlx")] += 1; + } + if chunk != 0 { + stats.selectors += (rows as u64).div_ceil(chunk as u64); + } + if stats.last_capacity.is_some_and(|old| old != capacity) { + stats.transitions += 1; + } + stats.last_capacity = Some(capacity); + *stats + .buckets + .entry(format!("raw{}:pool{}:out{dense}", capacity[0], capacity[1])) + .or_default() += 1; + let entry = self.entries.entry(key).or_insert_with(|| { + stats.traces += 1; + None + }); + let mut args = vec![value.clone(), raw.clone(), pooled.clone()]; + args.extend(self.weights.iter().cloned()); + args.extend(states); + let projection = if source == Source::Hidden { + self.projection.as_ref() + } else { + None + }; + let body = Body { + heads: c.heads, + dim: c.dim, + topk: c.topk, + ratio: c.ratio, + eps: c.eps, + scale: c.scale, + mode, + dense_capacity: dense, + scratch: c.scratch, + prefill_workspace: c.prefill_workspace, + }; + let mut flat = if args.iter().any(Array::is_tracer) { + body.build(&args, projection, stream)? + } else { + if entry.is_none() { + *entry = Some(body.trace(&args, projection, stream)?); + } + entry.as_ref().unwrap().run(&args)? + }; + stats.compiled_calls += 1; + let state = flat.split_off(flat.len() - 4); + let [raw_keys, pooled, pooled_len, offset]: [Array; 4] = state + .try_into() + .map_err(|_| "compiled QSA result state arity")?; + Ok(Output { + selection: flat, + raw_keys, + pooled, + pooled_len, + offset, + }) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn report(&self) -> serde_json::Value { + let s = &self.stats; + let c = &self.config; + let mut keys = self.entries.keys().collect::>(); + keys.sort_by_key(|k| k.label()); + serde_json::json!({"calls":s.calls,"compiled_calls":s.compiled_calls,"hidden_calls":s.source[0],"qk_rows_calls":s.source[1],"traces":s.traces, + "selector_dispatches":s.selectors,"capacity_transitions":s.transitions,"prefill_score_producers":{"mpp":s.producers[0],"mlx":s.producers[1]}, + "modes":{"blocks":s.modes[0],"prefill_blocks":s.modes[1],"dense_mask":s.modes[2],"row_tokens":s.modes[3],"update_only":s.modes[4]},"buckets":s.buckets, + "entry_count":self.entries.len(),"compiled_keys":keys.iter().map(|k|k.report()).collect::>(), + "require_bucketed_backing":c.bucketed,"minimum_raw_capacity":c.minimum_raw,"minimum_pooled_capacity":c.minimum_pooled, + "selector_scratch_bytes":c.scratch,"prefill_score_workspace_bytes":c.prefill_workspace,"rope_attention_scaling":c.scale}) + } +} + +#[test] +#[ignore = "requires Metal and original host-core receipts; no model weights"] +fn mtplx_qsa_core_host_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{ + allocator, ops, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + super::configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-core-host.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 32); + let norm = Array::new(&[128], Dtype::BF16, pattern(128, 72)).unwrap(); + let freqs = cases[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Array::new(&[32], Dtype::F32, super::scalar_buffer(&freqs).unwrap()).unwrap(); + let weight = Array::new(&[640, 128], Dtype::BF16, pattern(640 * 128, 231)).unwrap(); + let config = Config { + topk: 8, + minimum_raw: 16, + minimum_pooled: 16, + scratch: 1024, + prefill_workspace: 4096, + ..Config::default() + }; + let weights = || [norm.clone(), norm.clone(), freq.clone()]; + let mut core = Core::new(config, weights(), Some(Linear::Dense(&weight))).unwrap(); + let bad_weight = ops::slice(&weight, &[0, 0], &[639, 128], &[1, 1], gpu).unwrap(); + let mut bad = Core::new(config, weights(), Some(Linear::Dense(&bad_weight))).unwrap(); + let mode = |s: &str| match s { + "blocks" => QsaCompiledMode::Blocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + "update_only" => QsaCompiledMode::UpdateOnly, + "dense_mask" => QsaCompiledMode::DenseMask, + _ => panic!("mode"), + }; + for c in &cases { + super::eval::execution_tests::observed(|| { + let name = c["kernel"].as_str().unwrap(); + if name == "qsa_core_report" || name == "qsa_core_report_after_invalid" { + assert_eq!(core.report(), c["report"], "{name}"); + return; + } + if name.starts_with("qsa_core_failed_trace_") { + let arrays = [ + Array::unallocated(&[1, 4, 128], Dtype::BF16).unwrap(), + Array::unallocated(&[1, 128, 128], Dtype::BF16).unwrap(), + Array::unallocated(&[1, 32, 128], Dtype::BF16).unwrap(), + ]; + assert!( + bad.select( + Source::Hidden, + &arrays[0], + &arrays[1], + &arrays[2], + [64, 68, 17, 16].map(Position::Host), + QsaCompiledMode::Blocks, + None, + gpu + ) + .is_err() + ); + assert_eq!(bad.report(), c["report"], "{name}"); + assert!(bad.entries.values().all(Option::is_none)); + return; + } + if name.starts_with("qsa_core_invalid_") { + let p = &c["params"]; + let n = |s: &str| p[s].as_i64().unwrap() as i32; + let arrays = [ + Array::unallocated(&[1, n("rows"), n("width")], Dtype::BF16).unwrap(), + Array::unallocated(&[1, n("raw_capacity"), 128], Dtype::BF16).unwrap(), + Array::unallocated(&[1, n("pooled_capacity"), 128], Dtype::BF16).unwrap(), + ]; + let pos = p["index_dtype"].as_str().map(|dtype| { + if dtype == "float32" { + Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&(n("pos") as f32).to_le_bytes()).unwrap(), + ) + .unwrap() + } else { + Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&n("pos").to_le_bytes()).unwrap(), + ) + .unwrap() + } + }); + let mut front = + [n("pos"), n("total"), n("logical"), n("frontier")].map(Position::Host); + if let Some(pos) = &pos { + front[0] = Position::Tensor(pos); + } + let (out, dispatches) = capture_dispatches(|| { + core.select( + Source::QkRows, + &arrays[0], + &arrays[1], + &arrays[2], + front, + mode(p["mode"].as_str().unwrap()), + p["dense"].as_i64().map(|n| n as i32), + gpu, + ) + }); + assert_eq!(out.is_err(), c["rejected"].as_bool().unwrap(), "{name}"); + assert!(dispatches.is_empty()); // Accepted tensor-boundary case MUST NOT execute. + return; + } + let n = |s: &str| c[s].as_u64().unwrap() as u32; + let i = n("case"); + let rows = n("rows"); + let pos = n("pos"); + let rc = n("raw_capacity"); + let pc = n("pooled_capacity"); + let hidden = c["hidden"].as_bool().unwrap(); + let width = if hidden { 128 } else { 640 }; + let stride = width + if i % 2 == 1 { 64 } else { 0 }; + let input = Array::new( + &[1, rows as i32, stride as i32], + Dtype::BF16, + pattern(rows * stride, 232 + i), + ) + .unwrap(); + let input = ops::slice( + &input, + &[0; 3], + &[1, rows as i32, width as i32], + &[1; 3], + gpu, + ) + .unwrap(); + let raw = Array::new( + &[1, rc as i32, 128], + Dtype::BF16, + pattern(rc * 128, 250 + i), + ) + .unwrap(); + let pool = Array::new( + &[1, pc as i32, 128], + Dtype::BF16, + pattern(pc * 128, 270 + i), + ) + .unwrap(); + let f = [pos, pos + rows, (pos + rows) / 4, pos / 4]; + let state = f.map(|n| { + Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&n.to_le_bytes()).unwrap(), + ) + .unwrap() + }); + let front = if i % 2 == 1 { + state.each_ref().map(Position::Tensor) + } else { + f.map(|n| Position::Host(n as i32)) + }; + let (out, dispatches) = capture_dispatches(|| { + core.select( + if hidden { + Source::Hidden + } else { + Source::QkRows + }, + &input, + &raw, + &pool, + front, + mode(c["mode"].as_str().unwrap()), + c["dense"].as_i64().map(|n| n as i32), + gpu, + ) + .unwrap() + }); + assert!(dispatches.is_empty()); + let mut report = core.report(); + report.as_object_mut().unwrap().remove("compiled_keys"); + assert_eq!(report, c["report"], "{name}"); + let mut outputs = out.selection; + outputs.extend([out.raw_keys, out.pooled, out.pooled_len, out.offset]); + let outputs = outputs + .iter() + .map(|a| { + ops::contiguous(&ops::astype(a, Dtype::F32, false, gpu).unwrap(), false, gpu) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + assert_eq!(outputs.len(), c["sha256"].as_array().unwrap().len()); + for (i, a) in outputs.iter().enumerate() { + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + assert_eq!( + Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(), + c["sha256"][i].as_str().unwrap(), + "{name} leaf{i}" + ); + } + }); + } + for cfg in [ + Config { heads: 0, ..config }, + Config { + kv_heads: 2, + ..config + }, + Config { + topk: 513, + ..config + }, + Config { ratio: 0, ..config }, + Config { + minimum_raw: 3, + ..config + }, + Config { + minimum_pooled: 0, + ..config + }, + Config { + scale: f64::NAN, + ..config + }, + Config { + scratch: 0, + ..config + }, + Config { + prefill_workspace: 0, + ..config + }, + ] { + assert!(Core::new(cfg, weights(), None).is_err()); + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_graph.rs b/src/engine/metal/qwen_mtplx/qsa_graph.rs new file mode 100644 index 0000000..ade7c1b --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_graph.rs @@ -0,0 +1,959 @@ +//! Fixed-signature QSA graph replay. The nodes are original runtime primitives, +//! not a cache that re-runs the Rust expression builder on every invocation. +//! Last-use graph references are released separately from GPU completion holds. +//! Cache updates donate exclusive BF16 Data; allocator/model-wide parity is open. +use super::*; +use std::collections::{HashMap, HashSet}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +struct Key { + geometry: [u32; 3], + mode: QsaCompiledMode, + quant: Option<[u32; 2]>, + chunk: u32, + tf32: bool, +} + +#[derive(Clone, Debug)] +enum Op { + Projection, + KeySlice, + QuerySlice, + Reshape, + RawUpdate, + Clamp, + Multiply, + RawWindow, + Pool, + PoolUpdate, + Query, + QueryChunk(u32, u32), + Position(u32), + Scores(u32), + Select(u32), + Topk(u32), + Concat(usize), +} + +#[derive(Clone, Debug)] +struct Node { + op: Op, + inputs: Vec, + first: usize, + count: usize, +} + +struct Graph { + key: Key, + nodes: Vec, + producer: Vec, + outputs: Vec, + raw: usize, + pooled: usize, + block_start: usize, + raw_start: usize, + order: Vec<(usize, usize)>, // producer node, evaluated output leaf + releases: Vec>, +} + +pub(in super::super) enum QsaCacheInput<'a> { + Retained([&'a Buffer; 2]), + State([&'a mut Rc; 2]), +} + +pub(in super::super) struct QsaGraphCache { + pub(in super::super) raw: Buffer, + pub(in super::super) pooled: Buffer, + pub(in super::super) _temporaries: Vec, +} + +/// GPU-side ownership survives graph detach, including unretained Metal CBs. +/// The callback holds shared Data, not graph leaves/view descriptors. Their +/// native storage is released only after both GPU and descriptor owners finish. +fn defer_data(buffers: &[&Buffer]) -> bool { + unsafe extern "C" fn release(context: *mut c_void) { + // SAFETY: this Box is transferred once, only after callback registration + // succeeds. The bridge calls this exactly once after GPU completion. + drop(unsafe { Box::from_raw(context.cast::>()) }); + } + if buffers.is_empty() { + return true; + } + if let Some(deferred) = encoder::with_active(|encoder| encoder.defer_data(buffers)) { + return deferred; + } + let data = buffers.iter().map(|b| b.hold_data()).collect::>(); + let context = Box::into_raw(Box::new(data)); + if unsafe { ds4_gpu_defer_until_completed(context.cast(), release) } != 0 { + true + } else { + // No transfer: preserve ownership in the result as the previous path + // did. In particular do not add a wait for a pending/empty batch. + drop(unsafe { Box::from_raw(context) }); + false + } +} + +fn completion_hold(buffers: Vec) -> Vec { + let mut seen = HashSet::new(); + let distinct = buffers + .iter() + .filter(|b| seen.insert(b.data_identity())) + .collect::>(); + if defer_data(&distinct) { + Vec::new() + } else { + buffers + } +} + +/// gpu::eval: inputs + siblings, deduplicated by Data, minus the selected +/// output's Data (also removes any input that donated to that output). +fn evaluator_hold( + inputs: &[&Buffer], + outputs: &[Buffer], + primary: usize, +) -> Result, String> { + let buffers = encoder::primitive_buffers(inputs, outputs, primary)?; + if let Some(result) = encoder::with_active(|encoder| encoder.eval_primitive(&buffers)) { + result?; + return Ok(Vec::new()); + } + if defer_data(&buffers) { + Ok(Vec::new()) + } else { + // Empty open/pending batches do not accept a callback. Retain Data in + // result-owned views without committing or waiting. Normal dispatches + // have a nonempty batch and do not allocate these fallback wrappers. + buffers + .iter() + .map(|b| b.view(0, unsafe { ds4_gpu_tensor_bytes(b.raw()) })) + .collect() + } +} + +#[derive(Default)] +struct GraphValues { + leaves: Vec>, + fallback: Vec, +} + +impl Drop for GraphValues { + fn drop(&mut self) { + let mut buffers = self + .leaves + .iter_mut() + .filter_map(Option::take) + .collect::>(); + buffers.append(&mut self.fallback); + // Also protect previously encoded work when a later primitive fails. + drop(completion_hold(buffers)); + } +} + +impl Graph { + fn contract(&self) -> serde_json::Value { + use sha2::{Digest, Sha256}; + let names = [ + "source", "raw", "pooled", "norm", "norm", "freq", "pos", "total", "logical", + "frontier", + ]; + let mut leaves = names.map(str::to_owned).to_vec(); + let mut hashes = Vec::new(); + for node in &self.nodes { + let label = match node.op { + Op::Projection => "QuantizedMatmul", + Op::KeySlice | Op::QuerySlice | Op::QueryChunk(..) => "Slice", + Op::Reshape => "Reshape", + Op::RawUpdate | Op::PoolUpdate => "DynamicSliceUpdate", + Op::Clamp => { + let new = self.key.geometry[0].div_ceil(4); + let limit = (self.key.geometry[1] / 4).min(self.key.geometry[2]) - new; + if limit == 0 || limit == new { + "CompiledBroadcastSubtractBroadcastMaximumMinimumMinimum" + } else { + "CompiledBroadcastSubtractBroadcastMaximumMinimumBroadcastMinimum" + } + } + Op::Multiply => "CompiledBroadcastMultiply", + Op::RawWindow => "DynamicSlice", + Op::Position(_) => "CompiledBroadcastAdd", + Op::Concat(_) => "Concatenate", + _ => "CustomKernel", + }; + let parents = node.inputs.iter().map(|&n| &leaves[n]).collect::>(); + let bytes = serde_json::to_vec(&serde_json::json!([label, parents])).unwrap(); + let hash = Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + leaves.extend((0..node.count).map(|i| format!("{hash}:{i}"))); + hashes.push(hash); + } + hashes.sort(); + let roots = self + .outputs + .iter() + .copied() + .chain([self.raw, self.pooled]) + .map(|n| &leaves[n]) + .collect::>(); + serde_json::json!([hashes, roots]) + } + + fn add(&mut self, op: Op, inputs: &[usize], count: usize) -> usize { + let first = 10 + self.producer.len(); + self.producer + .extend(std::iter::repeat_n(self.nodes.len(), count)); + self.nodes.push(Node { + op, + inputs: inputs.to_vec(), + first, + count, + }); + first + } + + fn plan(&self, rows: u32) -> QsaSelectPlan { + let mode = match self.key.mode { + QsaCompiledMode::RowTokens => QsaSelectMode::RowTokens, + QsaCompiledMode::DenseMask => QsaSelectMode::DenseMask, + _ => QsaSelectMode::Blocks, + }; + QsaSelectPlan { + rows, + blocks: self.key.geometry[2], + topk: 512, + pos: 0, + total: 0, + logical: 0, + dense_width: if self.key.mode == QsaCompiledMode::DenseMask { + (self.key.geometry[2] + 1) * 4 + } else { + 0 + }, + mode, + tf32: self.key.tf32, + input_f32: [false; 2], + } + } + + fn new(key: Key) -> Self { + let mut g = Self { + key, + nodes: Vec::new(), + producer: Vec::new(), + outputs: Vec::new(), + raw: 0, + pooled: 0, + block_start: 0, + raw_start: 0, + order: Vec::new(), + releases: Vec::new(), + }; + let rows = key.geometry[0]; + // Ten explicit array inputs match QSACompiledIndexerCore. Projection + // weights belong to the owning parameter signature, not the shape key. + let qk = if key.quant.is_some() { + g.add(Op::Projection, &[0], 1) + } else { + 0 + }; + let k = g.add(Op::KeySlice, &[qk], 1); + g.raw = g.add(Op::RawUpdate, &[1, k, 6], 1); + g.block_start = g.add(Op::Clamp, &[8, 9], 1); + g.raw_start = g.add(Op::Multiply, &[g.block_start], 1); + let window = g.add(Op::RawWindow, &[g.raw, g.raw_start], 1); + let pool = g.add(Op::Pool, &[window, 4, 5, g.block_start], 1); + g.pooled = g.add(Op::PoolUpdate, &[2, pool, g.block_start], 1); + if key.mode != QsaCompiledMode::UpdateOnly { + let q = g.add(Op::QuerySlice, &[qk], 1); + let q = g.add(Op::Reshape, &[q], 1); + let q = g.add(Op::Query, &[q, 3, 5, 6], 1); + let leaves = g.plan(rows).widths().len(); + let mut chunks = Vec::new(); + for start in (0..rows).step_by(key.chunk as usize) { + let n = key.chunk.min(rows - start); + let query = if n == rows { + q + } else { + g.add(Op::QueryChunk(start, n), &[q], 1) + }; + let pos = g.add(Op::Position(start), &[6], 1); + let selection = if key.mode == QsaCompiledMode::PrefillBlocks { + let scores = g.add(Op::Scores(n), &[query, g.pooled], 1); + g.add(Op::Topk(n), &[scores, pos, 7, 8], leaves) + } else { + g.add(Op::Select(n), &[query, g.pooled, pos, 7, 8], leaves) + }; + chunks.push(selection); + } + for leaf in 0..leaves { + let output = if chunks.len() == 1 { + chunks[0] + leaf + } else { + g.add( + Op::Concat(leaf), + &chunks.iter().map(|n| n + leaf).collect::>(), + 1, + ) + }; + g.outputs.push(output); + } + } + let roots = [g.outputs.clone(), vec![g.raw, g.pooled, 8, 7]].concat(); + g.order = g.schedule(&roots, eval::bfs_max_width()); + // detach() clears a primitive's inputs after encoding all siblings. + // Plan the last consumer once; final result leaves remain caller-owned. + let mut last = vec![None; g.producer.len()]; + for &(node, _) in &g.order { + for &input in &g.nodes[node].inputs { + if input >= 10 { + last[input - 10] = Some(node); + } + } + } + for root in roots.into_iter().filter(|n| *n >= 10) { + last[root - 10] = None; + } + g.releases = vec![Vec::new(); g.nodes.len()]; + for (leaf, consumer) in last.into_iter().enumerate() { + if let Some(node) = consumer { + g.releases[node].push(leaf); + } + } + g + } + + /// Compile the fixed, single-stream signature with the common evaluator + /// planner. The descriptor is a logical stream, not a new Metal queue; the + /// resulting tape is replayed on the caller's selected encoder/stream. + fn schedule(&self, roots: &[usize], max_width: usize) -> Vec<(usize, usize)> { + let stream = stream::Stream::new(0, stream::Device::Gpu); + let mut graph = eval::Graph { + arrays: vec![eval::Array::default(); 10], + }; + for node in &self.nodes { + assert_eq!(graph.add(stream, &node.inputs, node.count), node.first); + } + let tape = graph + .plan(roots, stream, false, max_width) + .expect("invalid compiled QSA graph"); + assert!(tape.needs_fence.is_empty()); + tape.order + .into_iter() + .filter(|&leaf| leaf != tape.synchronizer) + .map(|leaf| (self.producer[leaf - 10], leaf)) + .collect() + } + + fn run( + &self, + weights: &QsaIndexerWeights<'_>, + inputs: [&Buffer; 10], + stride: u64, + cache_state: Option<[&Rc; 2]>, + ) -> Result<(QsaGraphCache, Option, [usize; 3]), String> { + let [rows, raw_cap, pool_cap] = self.key.geometry; + let qk_stride = if self.key.quant.is_some() { + 640 + } else { + stride + }; + let max_new = rows.div_ceil(4); + let mut values = GraphValues { + leaves: (0..self.producer.len()).map(|_| None).collect(), + fallback: Vec::new(), + }; + let (mut live, mut peak) = (0, 0); + for &(index, primary) in &self.order { + let node = &self.nodes[index]; + let mut temporary = Vec::new(); + let mut args = node + .inputs + .iter() + .map(|&n| { + if n < 10 { + inputs[n] + } else { + values.leaves[n - 10] + .as_ref() + .expect("QSA graph dependency not evaluated") + } + }) + .collect::>(); + let out = match node.op { + Op::Projection => { + let out = Buffer::mtplx_bytes(u64::from(rows) * 640 * 2)?; + let [w, s, b] = weights.projection; + temporary.extend(affine_bf16( + [w, s, b, args[0], &out], + [rows, 640, 2560], + weights.quant[0], + weights.quant[1], + true, + )?); + vec![out] + } + Op::KeySlice => { + vec![args[0].view(1024, (u64::from(rows - 1) * qk_stride + 128) * 2)?] + } + Op::QuerySlice => { + vec![args[0].view(0, (u64::from(rows - 1) * qk_stride + 512) * 2)?] + } + Op::Reshape => { + vec![args[0].view(0, unsafe { ds4_gpu_tensor_bytes(args[0].raw()) })?] + } + Op::RawUpdate | Op::PoolUpdate => { + let (cap, n, stride) = if matches!(node.op, Op::RawUpdate) { + (raw_cap, rows, qk_stride) + } else { + (pool_cap, max_new, 128) + }; + let bytes = u64::from(cap) * 256; + let state = + cache_state.map(|a| a[usize::from(matches!(node.op, Op::PoolUpdate))]); + let out = if state.is_some_and(|a| QsaArray::can_donate_bf16(a, args[0], bytes)) + { + // set_copy_output_data(Vector) shares Data without a + // copy dispatch; DynamicSliceUpdate still writes rows. + args[0].view(0, bytes)? + } else { + qsa_retained_bf16_copy(args[0], cap * 128)? + }; + temporary.extend(qsa_dynamic_copy_rows( + [args[1], &out], + [stride, 128], + [n, 128], + [None, Some(args[2])], + [((n - 1) as u64 * stride + 128) as usize, cap as usize * 128], + )?); + vec![out] + } + Op::Clamp => vec![qsa_compiled_block_start( + [args[0], args[1]], + [max_new, (raw_cap / 4).min(pool_cap) - max_new], + )?], + Op::Multiply => vec![qsa_compiled_raw_start(args[0])?], + Op::RawWindow => { + let out = Buffer::mtplx_bytes(u64::from(max_new) * 4 * 128 * 2)?; + temporary.extend(qsa_dynamic_copy_rows( + [args[0], &out], + [128; 2], + [max_new * 4, 128], + [Some(args[1]), None], + [raw_cap as usize * 128, max_new as usize * 512], + )?); + vec![out] + } + Op::Pool => vec![qsa_pool_keys_bound( + [args[0], args[1], args[2]], + max_new, + [128, 1], + tensor(6, args[3]).input(1), + )?], + Op::Query => vec![qsa_prepare_queries_device( + [args[0], args[1], args[2]], + rows, + [qk_stride, 128, 1], + args[3], + )?], + Op::QueryChunk(start, n) => { + vec![args[0].view(u64::from(start) * 1024, u64::from(n) * 1024)?] + } + Op::Position(start) => vec![qsa_compiled_row_position(args[0], start)?], + Op::Scores(n) => vec![qsa_prefill_mpp_scores( + [args[0], args[1]], + [n, pool_cap], + [512, 128, 1], + [128, 1], + )?], + Op::Select(n) | Op::Topk(n) => { + let selected = if matches!(node.op, Op::Topk(_)) { + qsa_prefill_topk_device( + args[0], + [u64::from(pool_cap), 1], + self.plan(n), + [args[1], args[2], args[3]], + )? + } else { + qsa_select_device( + [args[0], args[1]], + [512, 128, 1], + [128, 1], + self.plan(n), + [args[2], args[3], args[4]], + )? + }; + temporary.extend(selected._temporaries); + selected.outputs + } + Op::Concat(leaf) => { + let (width, bytes) = self.plan(rows).widths()[leaf]; + let dtype = if bytes == 1 { + "bool_" + } else if leaf == 0 { + "int32" + } else { + "float32" + }; + let out = + Buffer::mtplx_bytes(u64::from(rows) * u64::from(width) * u64::from(bytes))?; + let _concurrent = encoder::concurrent_scope(); + for (i, input) in args.iter().enumerate() { + let start = i as u32 * self.key.chunk; + let n = self.key.chunk.min(rows - start); + let view = out.view( + u64::from(start) * u64::from(width) * u64::from(bytes), + u64::from(n) * u64::from(width) * u64::from(bytes), + )?; + qsa_copy_typed( + Some(input), + &view, + [1, n, width], + [0, u64::from(width), 1], + [0, u64::from(width), 1], + dtype, + (n) as usize * (width) as usize, + )?; + } + vec![out] + } + }; + if out.len() != node.count { + return Err("QSA primitive output arity mismatch".into()); + } + if matches!(node.op, Op::Projection) { + // Bound parameter arrays are primitive inputs too, even though + // they belong to the graph signature rather than dynamic leaves. + args.extend(weights.projection); + } + // Attach backend holds to this command before gpu::eval may commit. + values.fallback.extend(completion_hold(temporary)); + values + .fallback + .extend(evaluator_hold(&args, &out, primary - node.first)?); + if let Some(result) = encoder::with_active(|encoder| encoder.check_backpressure()) { + result?; + } + for (i, buffer) in out.into_iter().enumerate() { + values.leaves[node.first - 10 + i] = Some(buffer); + } + live += node.count; + peak = peak.max(live); + for &leaf in &self.releases[index] { + drop(values.leaves[leaf].take().expect("QSA leaf released twice")); + live -= 1; + } + } + let mut take = |n: usize| { + values.leaves[n - 10] + .take() + .expect("QSA graph output missing") + }; + let selection = if self.outputs.is_empty() { + None + } else { + let widths = self.plan(rows).widths(); + Some(QsaSelection { + outputs: self.outputs.iter().map(|&n| take(n)).collect(), + row_strides: widths.iter().map(|n| n.0).collect(), + row_widths: widths, + _temporaries: Vec::new(), + }) + }; + let cache = QsaGraphCache { + raw: take(self.raw), + pooled: take(self.pooled), + _temporaries: std::mem::take(&mut values.fallback), + }; + assert!( + values.leaves.iter().all(Option::is_none), + "QSA graph retained a non-output leaf" + ); + Ok((cache, selection, [self.producer.len(), peak, live])) + } +} + +#[derive(Default)] +pub(in super::super) struct QsaGraphBank { + signature: Option<[u64; 6]>, + entries: HashMap, + last: Option, + pub(in super::super) builds: usize, + pub(in super::super) calls: usize, + /// Graph leaves only: total produced, peak live, final caller-owned leaves. + /// This is not physical GPU memory; completion holds intentionally persist. + pub(in super::super) last_lifetime: [usize; 3], +} + +impl QsaGraphBank { + pub(in super::super) fn entry_count(&self) -> usize { + self.entries.len() + } + + pub(in super::super) fn last_contract(&self) -> serde_json::Value { + self.entries[&self.last.expect("no QSA graph invocation")].contract() + } + + /// Strides and moving frontier values are deliberately not structural keys. + /// Norm/frequency/projection replacement creates a fresh core, as in MTPLX. + #[allow(clippy::too_many_arguments)] // Dynamic leaves plus the pinned graph signature. + pub(in super::super) fn run( + &mut self, + weights: QsaIndexerWeights<'_>, + source: &Buffer, + cache_inputs: QsaCacheInput<'_>, + frontiers: [&Buffer; 4], + geometry: [u32; 3], + supplied_stride: Option, + mode: QsaCompiledMode, + budget: u64, + tf32: bool, + ) -> Result<(QsaGraphCache, Option), String> { + let state = match &cache_inputs { + QsaCacheInput::State(a) => Some(a.each_ref().map(|array| &**array)), + QsaCacheInput::Retained(_) => None, + }; + let borrowed = state.map(|a| a.map(|array| array.buffer())); + let [raw, pooled] = match &cache_inputs { + QsaCacheInput::Retained(a) => *a, + QsaCacheInput::State(_) => borrowed.as_ref().unwrap().each_ref().map(|b| &**b), + }; + let [rows, raw_cap, pool_cap] = geometry; + let source_span = u64::from(rows.saturating_sub(1)) + .checked_mul(supplied_stride.unwrap_or(2560)) + .and_then(|n| n.checked_add(if supplied_stride.is_some() { 640 } else { 2560 })) + .and_then(|n| n.checked_mul(2)); + if rows == 0 + || rows > raw_cap + || rows.div_ceil(4) > (raw_cap / 4).min(pool_cap) + || budget == 0 + || (mode == QsaCompiledMode::PrefillBlocks && rows == 1) + || [raw_cap, pool_cap] + .into_iter() + .any(|n| n < 256 || !n.is_power_of_two() || n > i32::MAX as u32 / 512) + || supplied_stride.is_some_and(|s| s < 640) + || frontiers + .into_iter() + .any(|b| unsafe { ds4_gpu_tensor_bytes(b.raw()) } < 4) + || unsafe { ds4_gpu_tensor_bytes(raw.raw()) } < u64::from(raw_cap) * 256 + || unsafe { ds4_gpu_tensor_bytes(pooled.raw()) } < u64::from(pool_cap) * 256 + || source_span.is_none_or(|n| unsafe { ds4_gpu_tensor_bytes(source.raw()) } < n) + || unsafe { ds4_gpu_tensor_bytes(weights.k_norm.raw()) } < 256 + || unsafe { ds4_gpu_tensor_bytes(weights.inv_freq.raw()) } < 128 + || (mode != QsaCompiledMode::UpdateOnly + && unsafe { ds4_gpu_tensor_bytes(weights.q_norm.raw()) } < 256) + { + return Err("invalid QSA graph input contract".into()); + } + let signature = [ + weights.q_norm, + weights.k_norm, + weights.inv_freq, + weights.projection[0], + weights.projection[1], + weights.projection[2], + ] + .map(Buffer::identity); + if self.signature != Some(signature) { + self.entries.clear(); + self.builds = 0; + self.calls = 0; + self.signature = Some(signature); + } + let chunk = if mode == QsaCompiledMode::UpdateOnly { + 0 + } else if mode == QsaCompiledMode::PrefillBlocks { + qsa_prefill_chunk_rows(rows, pool_cap, budget, 32, true)? + } else { + u64::from(rows).min((budget / (u64::from(pool_cap) * 4)).max(1)) as u32 + }; + let key = Key { + geometry, + mode, + quant: supplied_stride.is_none().then_some(weights.quant), + chunk, + tf32, + }; + let graph = self.entries.entry(key).or_insert_with(|| { + self.builds += 1; + Graph::new(key) + }); + let (cache, selection, lifetime) = graph.run( + &weights, + [ + source, + raw, + pooled, + weights.q_norm, + weights.k_norm, + weights.inv_freq, + frontiers[0], + frontiers[1], + frontiers[2], + frontiers[3], + ], + supplied_stride.unwrap_or(640), + state, + )?; + self.calls += 1; + self.last = Some(key); + self.last_lifetime = lifetime; + Ok((cache, selection)) + } +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn qsa_cache_donation_requires_descriptor_data_and_allocation_contract() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let logical = unsafe { libc::sysconf(libc::_SC_PAGESIZE) } as u64; + for extra in [0, 16384, 16386] { + let root = Buffer::mtplx_bytes(logical + extra).unwrap(); + let allocation = root.allocation_bytes(); + let view = root.view(0, logical).unwrap(); + drop(root); + let array = QsaArray::new(view, 0).unwrap(); + let input = array.buffer(); + let permitted = allocation - logical <= 16384; + assert_eq!(input.allocation_bytes(), allocation); + assert_eq!( + QsaArray::can_donate_bf16(&array, &input, logical), + permitted + ); + let alias = array.clone(); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical)); + drop(alias); + let descriptor_alias = array.storage.clone(); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical)); + assert!( + !array.shared_storage(), + "descriptor aliases do not add Data owners" + ); + drop(descriptor_alias); + let snapshot = array.slice(); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical)); + drop(snapshot); + let view = input.view(0, 128).unwrap(); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical)); + drop(view); + let outstanding = input.hold_data(); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical)); + drop(outstanding); + assert_eq!( + QsaArray::can_donate_bf16(&array, &input, logical), + permitted + ); + assert!(!QsaArray::can_donate_bf16(&array, &input, logical + 2)); + } +} + +#[test] +fn qsa_schedule_preserves_the_selected_sibling() { + let mut graph = Graph::new(Key { + geometry: [1, 256, 256], + mode: QsaCompiledMode::UpdateOnly, + quant: None, + chunk: 1, + tf32: false, + }); + let leaf = graph.add(Op::Select(1), &[], 3); + let producer = graph.producer[leaf - 10]; + // Pinned eval_impl decrements the degree of all siblings together and + // schedules the particular input leaf that makes that shared degree zero. + assert_eq!( + graph.schedule(&[leaf, leaf + 1], 20), + [(producer, leaf + 1)] + ); + assert_eq!(graph.schedule(&[leaf + 2, leaf], 20), [(producer, leaf)]); + assert_eq!( + graph.schedule(&[leaf + 1, leaf + 1], 1), + [(producer, leaf + 1)] + ); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn qsa_evaluator_retains_inputs_and_siblings_not_primary_data() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder.then(Scope::new).transpose().unwrap(); + let input = Buffer::mtplx_bytes(16).unwrap(); + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let duplicate = input.view(0, 16).unwrap(); + let donor = Buffer::mtplx_bytes(16).unwrap(); + let outputs = [Buffer::mtplx_bytes(16).unwrap(), donor.view(0, 16).unwrap()]; + let commands = scope.is_none().then(|| Commands::begin().unwrap()); + assert!(evaluator_hold(&[], &outputs, 2).is_err()); + let fallback = evaluator_hold(&[&input, &duplicate, &donor], &outputs, 1).unwrap(); + assert_eq!( + fallback.len(), + if independent_encoder { 0 } else { 2 }, + "legacy empty batch falls back; independent queue owns its callback" + ); + assert_eq!(input.data_owners(), 3, "duplicate input Data retained once"); + assert_eq!(outputs[0].data_owners(), 2); + assert_eq!(outputs[1].data_owners(), 2, "donated Data is excluded"); + drop(fallback); + if let Some(scope) = &scope { + assert_eq!(scope.commits(), 0, "retaining Data must not submit work"); + scope.synchronize().unwrap(); + assert_eq!(input.data_owners(), 2); + assert!(outputs[0].unique_data()); + } + qsa_copy_typed( + Some(&input), + &outputs[0], + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + .unwrap(); + assert!( + evaluator_hold(&[&input, &duplicate, &donor], &outputs, 1) + .unwrap() + .is_empty() + ); + assert_eq!(input.data_owners(), 3); + assert_eq!(outputs[0].data_owners(), 2); + drop(donor); + assert!( + outputs[1].unique_data(), + "primary can be reused before completion" + ); + drop(duplicate); + assert!( + !input.unique_data(), + "input retained before its next consumer" + ); + if let Some(commands) = commands { + commands.finish().unwrap(); + } else { + scope.as_ref().unwrap().synchronize().unwrap(); + } + assert!(input.unique_data()); + assert!(outputs[0].unique_data()); + let mut actual = vec![0; 16]; + outputs[0].read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + } +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn qsa_completion_owns_buffers_until_gpu_finishes() { + use std::sync::{ + Arc, + atomic::{AtomicUsize, Ordering}, + }; + struct Probe { + count: Arc, + input: Buffer, + } + unsafe extern "C" fn release(context: *mut c_void) { + let Probe { count, input } = *unsafe { Box::from_raw(context.cast::()) }; + drop(input); + count.fetch_add(1, Ordering::SeqCst); + } + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let completed = Arc::new(AtomicUsize::new(0)); + let input = Buffer::mtplx_bytes(16).unwrap(); + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let output = Buffer::mtplx_bytes(16).unwrap(); + let commands = Commands::begin().unwrap(); + // An empty batch must neither take ownership nor force a commit. + let probe = Box::into_raw(Box::new(Probe { + count: completed.clone(), + input, + })); + assert_eq!( + unsafe { ds4_gpu_defer_until_completed(probe.cast(), release) }, + 0 + ); + assert_eq!(completed.load(Ordering::SeqCst), 0); + let probe = unsafe { Box::from_raw(probe) }; + qsa_copy_typed( + Some(&probe.input), + &output, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + .unwrap(); + let probe = Box::into_raw(probe); + assert_eq!( + unsafe { ds4_gpu_defer_until_completed(probe.cast(), release) }, + 1 + ); + assert_eq!(completed.load(Ordering::SeqCst), 0); + // Flush preserves the callback's ownership while a new empty batch exists. + assert_eq!(unsafe { ds4_gpu_flush_commands() }, 1); + commands.finish().unwrap(); + assert_eq!(completed.load(Ordering::SeqCst), 1); + let mut actual = vec![0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + // With no outstanding work the bridge releases synchronously. + let probe = Box::into_raw(Box::new(Probe { + count: completed.clone(), + input: output, + })); + assert_eq!( + unsafe { ds4_gpu_defer_until_completed(probe.cast(), release) }, + 1 + ); + assert_eq!(completed.load(Ordering::SeqCst), 2); + + // Views have distinct array identities but share the root's Data. A GPU + // hold must remain visible to the ownership check after view detach. + let root = Buffer::mtplx_bytes(32).unwrap(); + root.write(8, &expected).unwrap(); + assert!(root.unique_data()); + let view = root.view(8, 16).unwrap(); + let nested = view.view(0, 16).unwrap(); + assert_ne!(root.identity(), view.identity()); + assert_ne!(view.identity(), nested.identity()); + assert!(!root.unique_data()); + drop(view); + let output = Buffer::mtplx_bytes(16).unwrap(); + let commands = Commands::begin().unwrap(); + qsa_copy_typed( + Some(&nested), + &output, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + .unwrap(); + assert!(completion_hold(vec![nested]).is_empty()); + assert!( + !root.unique_data(), + "GPU still owns Data after graph detach" + ); + commands.finish().unwrap(); + assert!( + root.unique_data(), + "completion releases the shared Data hold" + ); + output.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); + // The root wrapper must survive its array descriptor, including nested + // views, so its allocation is freed/accounted only with the final owner. + let survivor = root.view(8, 16).unwrap(); + drop(root); + assert!(survivor.unique_data()); + survivor.read(0, &mut actual).unwrap(); + assert_eq!(actual, expected); +} diff --git a/src/engine/metal/qwen_mtplx/qsa_indexer.rs b/src/engine/metal/qwen_mtplx/qsa_indexer.rs new file mode 100644 index 0000000..a64f881 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_indexer.rs @@ -0,0 +1,1555 @@ +//! QSAIndexer shared projection/preparation/cache prefix from qwen4_exp.py. +//! Original compiled/fused/eager routing shares one persistent cache and core. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::cache::QsaCache; +use super::mlp::Linear; +use super::qsa_core::{Config, Core, Source}; +use super::stream::Stream; +use super::{indexing, ops, qsa_prepare, reduce, rope}; + +pub(super) struct Indexer<'a> { + pub(super) projection: Option>, + pub(super) heads: i32, + pub(super) kv_heads: i32, + pub(super) head_dim: i32, + pub(super) block_topk: i32, + pub(super) ratio: i32, + pub(super) q_norm: &'a Array, + pub(super) k_norm: &'a Array, + pub(super) inv_freq: &'a Array, + pub(super) eps: f64, + pub(super) scaling: f64, + pub(super) scratch: u64, + pub(super) compiled: Option<(Vec, Core<'a>)>, +} + +pub(super) struct PreparedRows { + pub(super) query: Array, + pub(super) pooled: Array, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) total: i32, +} + +impl<'a> Indexer<'a> { + #[expect( + clippy::too_many_arguments, + reason = "original static compiled-route predicate" + )] + fn compiled_supported( + &self, + source: &Array, + cache: &QsaCache, + pos: i32, + supplied: bool, + decode: bool, + mode: super::QsaCompiledMode, + options: &super::QsaIndexerOptions, + stream: Stream, + ) -> bool { + use super::{QsaCompiledMode, stream::Device}; + let s = source.layout(); + if !options.fused + || !options.compiled + || stream.device() != Device::Gpu + || s.shape().len() != 3 + || s.shape()[0] != 1 + || s.shape()[1] <= 0 + || self.kv_heads != 1 + { + return false; + } + let rows = s.shape()[1]; + if !decode + && ((mode == QsaCompiledMode::UpdateOnly && options.phase_prefill) + || (rows as u32 >= options.prefill_min_rows + && (!matches!( + mode, + QsaCompiledMode::PrefillBlocks | QsaCompiledMode::UpdateOnly + ) || rows as u32 != options.prefill_compile_rows))) + { + return false; + } + if cache.ratio != self.ratio + || pos != cache.kv.offset + || !matches!(s.dtype(), Dtype::BF16 | Dtype::F16 | Dtype::F32) + || !(1..=128).contains(&self.head_dim) + || !(1..=512).contains(&self.block_topk) + || self.ratio <= 0 + { + return false; + } + let freq = self.inv_freq.layout(); + if freq.shape().len() != 1 + || freq.dtype() != Dtype::F32 + || freq.shape()[0] <= 0 + || i64::from(freq.shape()[0]) * 2 > i64::from(self.head_dim) + || [self.q_norm, self.k_norm] + .iter() + .any(|a| a.layout().shape() != [self.head_dim] || a.layout().dtype() != s.dtype()) + { + return false; + } + let width = (i64::from(self.heads) + i64::from(self.kv_heads)) * i64::from(self.head_dim); + if supplied { + if i64::from(s.shape()[2]) != width { + return false; + } + } else { + let Some(projection) = self.projection else { + return false; + }; + let weight = projection.weight().layout(); + if weight.shape().len() != 2 || i64::from(weight.shape()[0]) != width { + return false; + } + let same_dtype = match projection { + Linear::Dense(_) => weight.dtype() == s.dtype(), + Linear::Quantized(a) => { + a.scales.layout().dtype() == s.dtype() && a.biases.layout().dtype() == s.dtype() + } + }; + if !same_dtype { + return false; + } + } + for backing in [&cache.raw_keys, &cache.pooled].into_iter().flatten() { + let a = backing.borrow(); + let l = a.layout(); + if l.shape().len() != 3 + || l.shape()[0] != 1 + || l.shape()[2] != self.head_dim + || l.dtype() != s.dtype() + { + return false; + } + } + if pos > 0 + && cache + .raw_keys + .as_ref() + .is_none_or(|a| a.borrow().layout().shape()[1] < pos) + { + return false; + } + if let Some(pool) = &cache.pooled { + if !(0..=pool.borrow().layout().shape()[1]).contains(&cache.pooled_len) { + return false; + } + } else if cache.pooled_len != 0 { + return false; + } + let logical = (i64::from(pos) + i64::from(rows)) / i64::from(self.ratio); + if logical - i64::from(cache.pooled_len).min(logical) + > (i64::from(rows) + i64::from(self.ratio) - 1) / i64::from(self.ratio) + { + return false; + } + if decode + && !matches!(mode, QsaCompiledMode::UpdateOnly | QsaCompiledMode::Blocks) + && options.gather_decode + { + return false; + } + matches!( + mode, + QsaCompiledMode::UpdateOnly | QsaCompiledMode::PrefillBlocks + ) || s.dtype() != Dtype::F32 + || super::sparse_attention::nax_available() + } + + fn selector_supported(&self, q: &Array, p: &Array, prefill: bool, stream: Stream) -> bool { + let q = q.layout(); + let p = p.layout(); + stream.device() == super::stream::Device::Gpu + && [q.dtype(), p.dtype()] + .iter() + .all(|d| matches!(d, Dtype::BF16 | Dtype::F16 | Dtype::F32)) + && q.shape().len() == 4 + && p.shape().len() == 3 + && q.shape()[0] == 1 + && p.shape()[0] == 1 + && q.shape()[1] > i32::from(prefill) + && q.shape()[2] > 0 + && q.shape()[3] > 0 + && p.shape()[1] > 0 + && p.shape()[2] == q.shape()[3] + && (1..=512).contains(&self.block_topk) + && self.ratio > 0 + && (prefill + || (q.dtype() != Dtype::F32 && p.dtype() != Dtype::F32) + || super::sparse_attention::nax_available()) + } + + /// QSAIndexer.__call__/_call_rows. Eligibility alone chooses a lane; + /// errors after selection propagate, never rerun through an eager fallback. + #[expect( + clippy::too_many_arguments, + reason = "original indexer inputs and evaluator" + )] + pub(super) fn call( + &mut self, + hidden: &Array, + pos: i32, + cache: &mut QsaCache, + qk_rows: Option<&Array>, + options: &super::QsaIndexerOptions, + streams: &super::stream::Streams, + stream: Stream, + ) -> Result<(Option, &'static str), String> { + use super::{ + QsaSelectMode, + attention::{self, EagerSelection}, + qsa_prefill, + }; + let shape = hidden.layout().shape().to_vec(); + if shape.len() != 3 + || shape[0] != 1 + || shape[1] <= 0 + || pos < 0 + || self.ratio <= 0 + || self.block_topk <= 0 + { + return Err("QSA serves a positive single sequence with valid geometry".into()); + } + let rows = shape[1]; + let decode = rows == 1; + let total = pos.checked_add(rows).ok_or("QSA position overflow")?; + let mode = options.compiled_mode( + rows as u32, + total as u32, + self.ratio as u32, + self.block_topk as u32, + ); + if self.compiled_supported( + qk_rows.unwrap_or(hidden), + cache, + pos, + qk_rows.is_some(), + decode, + mode, + options, + stream, + ) { + return self + .call_compiled( + hidden, + pos, + cache, + qk_rows, + mode, + options.prefill_workspace, + stream, + ) + .map(|a| (a, "compiled")); + } + let Some(prepared) = + self.prepare_rows(hidden, pos, cache, qk_rows, options.fused, stream)? + else { + return Ok((None, "update_only")); + }; + let q = prepared.query; + let pooled = prepared.pooled; + let logical = pooled.layout().shape()[1]; + let large_prefill = !decode && options.large_prefill(rows as u32, pos as u32); + if large_prefill && self.selector_supported(&q, &pooled, true, stream) { + let mut values = qsa_prefill::select( + &q, + &pooled, + [pos, total, logical].map(qsa_prepare::Position::Host), + self.block_topk, + self.ratio, + None, + QsaSelectMode::Blocks, + options.prefill_workspace, + stream, + )? + .into_iter(); + attention::prefill_count("metal_selector")?; + return Ok(( + Some(EagerSelection::PrefillBlocks( + values.next().ok_or("QSA missing prefill ids")?, + values.next().ok_or("QSA missing prefill validity")?, + )), + "metal_prefill", + )); + } + let backing = cache.pooled.as_ref().map(|a| a.borrow().clone()); + let fused = options.fused + && (decode || (rows as u32) < options.prefill_min_rows) + && !(decode && options.gather_decode) + && backing + .as_ref() + .is_some_and(|p| self.selector_supported(&q, p, false, stream)); + if !fused { + return attention::select_eager( + &q, + pos, + cache, + total, + self.block_topk, + i32::try_from(options.tile_rows).map_err(|_| "QSA tile overflow")?, + &super::QsaEagerOptions { + large_prefill, + flash: options.flash, + gather_decode: options.gather_decode, + gather: options.gather, + gather_max_rows: options.gather_max_rows, + gather_min_context: options.gather_min_context, + }, + streams, + stream, + ) + .map(|a| (Some(a), "eager")); + } + let mode = if decode && options.flash { + QsaSelectMode::Blocks + } else if !decode + && options.gather + && rows as u32 <= options.gather_max_rows + && total as u32 >= options.gather_min_context + { + QsaSelectMode::RowTokens + } else { + QsaSelectMode::DenseMask + }; + let mut values = self + .select_fused( + &q, + pos, + backing.as_ref().unwrap(), + total, + logical, + mode, + stream, + )? + .into_iter(); + let first = values.next().ok_or("QSA missing fused selection")?; + let out = match mode { + QsaSelectMode::Blocks => { + let width = first.layout().shape()[1]; + EagerSelection::FlashBlocks( + ops::squeeze( + &ops::slice(&first, &[0, 0], &[1, width], &[1, 1], stream)?, + Some(&[0]), + stream, + )?, + ((pos + 1) / self.ratio) * self.ratio, + ) + } + QsaSelectMode::RowTokens => { + EagerSelection::RowTokens(first, values.next().ok_or("QSA missing fused validity")?) + } + QsaSelectMode::DenseMask => EagerSelection::Dense(first), + }; + Ok((Some(out), "legacy_fused")) + } + + /// Identity seal is of captured parameter descriptors, not their bytes, + /// call shapes or environment. Replacing a leaf resets the whole bank. + fn compiled_core(&mut self, prefill_workspace: u64) -> Result<&mut Core<'a>, String> { + let mut signature = vec![self.q_norm.id(), self.k_norm.id(), self.inv_freq.id()]; + if let Some(projection) = self.projection { + signature.push(projection.weight().id()); + } + if let Some(Linear::Quantized(layer)) = self.projection { + signature.extend([layer.scales.id(), layer.biases.id()]); + } + if self + .compiled + .as_ref() + .is_none_or(|(old, _)| *old != signature) + { + let core = Core::new( + Config { + heads: self.heads, + kv_heads: self.kv_heads, + dim: self.head_dim, + topk: self.block_topk, + ratio: self.ratio, + eps: self.eps, + scale: self.scaling, + scratch: self.scratch, + prefill_workspace, + ..Config::default() + }, + [ + self.q_norm.clone(), + self.k_norm.clone(), + self.inv_freq.clone(), + ], + self.projection, + )?; + self.compiled = Some((signature, core)); + } + Ok(&mut self.compiled.as_mut().unwrap().1) + } + + /// Original _call_rows_compiled: reserve first, commit explicit outputs + /// without evaluating frontiers. Attention alone advances kv.offset. + #[expect( + clippy::too_many_arguments, + reason = "original compiled indexer inputs and resolved workspace" + )] + pub(super) fn call_compiled( + &mut self, + hidden: &Array, + pos: i32, + cache: &mut QsaCache, + qk_rows: Option<&Array>, + mode: super::QsaCompiledMode, + prefill_workspace: u64, + stream: Stream, + ) -> Result, String> { + use super::{ + QsaCompiledMode, + attention::{self, EagerSelection}, + cache::object, + }; + use qsa_prepare::Position; + let rows = hidden + .layout() + .shape() + .get(1) + .copied() + .ok_or("QSA hidden rank")?; + let total = pos.checked_add(rows).ok_or("QSA total overflow")?; + if self.ratio <= 0 { + return Err("QSA ratio must be positive".into()); + } + let logical = total / self.ratio; + let value = qk_rows.unwrap_or(hidden); + let (raw, pool) = cache.ensure_compiled_backings( + value.layout().dtype(), + pos, + rows, + self.head_dim, + stream, + )?; + let out = self.compiled_core(prefill_workspace)?.select( + if qk_rows.is_some() { + Source::QkRows + } else { + Source::Hidden + }, + value, + &raw.borrow(), + &pool.borrow(), + [pos, total, logical, cache.pooled_len.min(logical)].map(Position::Host), + mode, + None, + stream, + )?; + cache.raw_keys = Some(object(out.raw_keys)); + cache.pooled = Some(object(out.pooled)); + cache.pooled_len = logical; + cache.pooled_f32_t = None; + let mut selected = out.selection.into_iter(); + Ok(Some(match mode { + QsaCompiledMode::UpdateOnly => return Ok(None), + QsaCompiledMode::Blocks => { + let ids = selected.next().ok_or("QSA missing block ids")?; + let mut end = ids.layout().shape().to_vec(); + end[0] = 1; + let first = + ops::slice(&ids, &vec![0; end.len()], &end, &vec![1; end.len()], stream)?; + EagerSelection::FlashBlocks( + ops::squeeze(&first, Some(&[0]), stream)?, + ((pos + 1) / self.ratio) * self.ratio, + ) + } + QsaCompiledMode::PrefillBlocks => { + attention::prefill_count("compiled_selector")?; + EagerSelection::PrefillBlocks( + selected.next().ok_or("QSA missing prefill ids")?, + selected.next().ok_or("QSA missing prefill validity")?, + ) + } + QsaCompiledMode::RowTokens => EagerSelection::RowTokens( + selected.next().ok_or("QSA missing row ids")?, + selected.next().ok_or("QSA missing row validity")?, + ), + QsaCompiledMode::DenseMask => { + let mask = selected.next().ok_or("QSA missing dense mask")?; + EagerSelection::Dense(ops::slice( + &mask, + &[0; 4], + &[1, 1, rows, total], + &[1; 4], + stream, + )?) + } + })) + } + + /// Original _select_fused: chunk query rows (32MiB score scratch), never + /// logical history; keep dense specialization at backing capacity+tail. + #[expect( + clippy::too_many_arguments, + reason = "original selector mode and frontier arguments" + )] + pub(super) fn select_fused( + &self, + q: &Array, + pos: i32, + pooled: &Array, + total: i32, + logical: i32, + mode: super::QsaSelectMode, + stream: Stream, + ) -> Result, String> { + use super::{QsaSelectMode, qsa_select}; + let rows = q.layout().shape().get(1).copied().ok_or("QSA query rank")?; + let blocks = pooled + .layout() + .shape() + .get(1) + .copied() + .ok_or("QSA pooled rank")?; + if rows <= 0 { + return Err("QSA fused rows must be positive".into()); + } + let chunk_rows = u64::try_from(rows) + .unwrap() + .min((self.scratch / (blocks.max(1) as u64 * 4)).max(1)) + as i32; + let capacity = if mode == QsaSelectMode::DenseMask { + Some( + blocks + .checked_add(1) + .and_then(|n| n.checked_mul(self.ratio)) + .ok_or("QSA dense capacity overflow")?, + ) + } else { + None + }; + let mut chunks = Vec::new(); + for start in (0..rows).step_by(chunk_rows as usize) { + let mut end = q.layout().shape().to_vec(); + end[1] = start.saturating_add(chunk_rows).min(rows); + let q = ops::slice(q, &[0, start, 0, 0], &end, &[1; 4], stream)?; + chunks.push(qsa_select::select( + &q, + pooled, + [ + qsa_prepare::Position::Host( + pos.checked_add(start).ok_or("QSA position overflow")?, + ), + qsa_prepare::Position::Host(total), + qsa_prepare::Position::Host(logical), + ], + self.block_topk, + self.ratio, + capacity, + mode, + stream, + )?); + } + let mut outputs = if chunks.len() == 1 { + chunks.pop().unwrap() + } else { + (0..chunks[0].len()) + .map(|leaf| { + ops::concatenate( + &chunks.iter().map(|c| c[leaf].clone()).collect::>(), + if mode == QsaSelectMode::DenseMask { + 2 + } else { + 0 + }, + stream, + ) + }) + .collect::, _>>()? + }; + if mode == QsaSelectMode::DenseMask { + outputs[0] = ops::slice(&outputs[0], &[0; 4], &[1, 1, rows, total], &[1; 4], stream)?; + } + Ok(outputs) + } + + fn prepare_queries( + &self, + q: &Array, + pos: i32, + fused: bool, + stream: Stream, + ) -> Result { + if fused && qsa_prepare::supported(q, self.q_norm, self.inv_freq, 4, stream) { + return qsa_prepare::queries( + q, + self.q_norm, + self.inv_freq, + qsa_prepare::Position::Host(pos), + self.eps, + self.scaling, + stream, + ); + } + let q = ops::rms_norm(q, Some(self.q_norm), self.eps as f32, stream)?; + let positions = indexing::arange_range_i32(pos, pos + q.layout().shape()[1], stream)?; + let (cos, sin) = rope::cos_sin(&positions, self.inv_freq, self.scaling, stream)?; + rope::apply_partial(&q, &cos, &sin, stream) + } + + fn pool_keys( + &self, + fresh: &Array, + old: i32, + total: i32, + fused: bool, + stream: Stream, + ) -> Result { + if fused && qsa_prepare::supported(fresh, self.k_norm, self.inv_freq, 3, stream) { + return qsa_prepare::pool( + fresh, + self.k_norm, + self.inv_freq, + qsa_prepare::Position::Host(old), + self.ratio, + self.eps, + self.scaling, + stream, + ); + } + let fresh = ops::reshape(fresh, &[1, total - old, self.ratio, self.head_dim], stream)?; + let pooled = reduce::mean_f32( + &ops::astype(&fresh, Dtype::F32, false, stream)?, + &[2], + false, + stream, + )?; + let pooled = ops::astype(&pooled, fresh.layout().dtype(), false, stream)?; + let pooled = ops::rms_norm(&pooled, Some(self.k_norm), self.eps as f32, stream)?; + let ratio = Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&self.ratio.to_le_bytes())?, + )?; + let positions = binary( + &indexing::arange_range_i32(old, total, stream)?, + &ratio, + Binary::Multiply, + stream, + )?; + let (cos, sin) = rope::cos_sin(&positions, self.inv_freq, self.scaling, stream)?; + ops::squeeze( + &rope::apply_partial( + &ops::expand_dims(&pooled, &[2], stream)?, + &cos, + &sin, + stream, + )?, + Some(&[2]), + stream, + ) + } + + pub(super) fn extend_pooled( + &self, + cache: &mut QsaCache, + total: i32, + fused: bool, + stream: Stream, + ) -> Result, String> { + let nb = total / self.ratio; + let old = cache.pooled_len.min(nb); + if nb > old { + let raw = cache + .raw_keys + .as_ref() + .ok_or("QSA pooling requires raw cache")? + .borrow(); + let fresh = ops::slice( + &raw, + &[0, old * self.ratio, 0], + &[1, nb * self.ratio, self.head_dim], + &[1; 3], + stream, + )?; + drop(raw); + cache.write_pooled( + &self.pool_keys(&fresh, old, nb, fused, stream)?, + old, + nb, + stream, + )?; + } + if nb == 0 { + return Ok(None); + } + let pooled = cache + .pooled + .as_ref() + .ok_or("QSA pooled cache missing")? + .borrow(); + ops::slice(&pooled, &[0; 3], &[1, nb, self.head_dim], &[1; 3], stream).map(Some) + } + + /// Common noncompiled _call_rows prefix. None means the complete-block + /// budget fits: cache updates still happen, but lazy query work is unused. + /// Cache.kv.offset is advanced by Attention, never by this indexer. + pub(super) fn prepare_rows( + &self, + hidden: &Array, + pos: i32, + cache: &mut QsaCache, + qk_rows: Option<&Array>, + fused: bool, + stream: Stream, + ) -> Result, String> { + let shape = hidden.layout().shape().to_vec(); + if shape.len() != 3 + || shape[0] != 1 + || shape[1] <= 0 + || pos < 0 + || cache.kv.offset != pos + || self.heads <= 0 + || self.head_dim <= 0 + || self.ratio <= 0 + || self.block_topk <= 0 + || cache.ratio != self.ratio + { + return Err("invalid QSA indexer dimensions/frontier".into()); + } + let total = pos.checked_add(shape[1]).ok_or("QSA position overflow")?; + let width = self + .heads + .checked_mul(self.head_dim) + .ok_or("QSA query width overflow")?; + let full_width = width + .checked_add(self.head_dim) + .ok_or("QSA projection width overflow")?; + let qk = match qk_rows { + Some(rows) => rows.clone(), + None => self + .projection + .ok_or("QSA hidden source requires a projection")? + .apply(hidden, stream)?, + }; + if qk.layout().shape() != [1, shape[1], full_width] { + return Err("QSA projection must have (heads+1)*head_dim columns".into()); + } + let parts = ops::split(&qk, &[width], -1, stream)?; + let query = ops::reshape(&parts[0], &[1, shape[1], self.heads, self.head_dim], stream)?; + let keys = ops::reshape(&parts[1], &[1, shape[1], self.head_dim], stream)?; + let query = self.prepare_queries(&query, pos, fused, stream)?; + cache.write_raw(&keys, stream)?; + let pooled = self.extend_pooled(cache, total, fused, stream)?; + if total / self.ratio <= self.block_topk { + return Ok(None); + } + Ok(Some(PreparedRows { + query, + pooled: pooled.ok_or("QSA selection requires pooled keys")?, + total, + })) + } +} + +#[test] +#[ignore = "requires Metal and original ongoing indexer routing receipts; no weights"] +fn mtplx_qsa_canonical_indexer_routes_match_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, qsa_indexer_options}, + }; + use super::{ + QsaCompiledMode, allocator, + attention::EagerSelection, + cache::object, + mlp, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + super::configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .chain(include_str!("../../../../tests/fixtures/mtplx-qsa-indexer-connected.jsonl").lines()) + .map(|l| serde_json::from_str::(l).unwrap()) + .filter(|c| c["kernel"].as_str().unwrap().starts_with("qsa_indexer_")) + .collect::>(); + assert_eq!(cases.len(), 200); + let weight = mlp::fixture_linear(640, 2560, 4, 64, 75); + let q_norm = Array::new(&[128], Dtype::BF16, pattern(128, 72)).unwrap(); + let k_norm = Array::new(&[128], Dtype::BF16, pattern(128, 73)).unwrap(); + let freqs = cases[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let inv_freq = Array::new(&[32], Dtype::F32, super::scalar_buffer(&freqs).unwrap()).unwrap(); + let make = || Indexer { + projection: Some(Linear::Quantized(&weight)), + heads: 4, + kv_heads: 1, + head_dim: 128, + block_topk: 512, + ratio: 4, + q_norm: &q_norm, + k_norm: &k_norm, + inv_freq: &inv_freq, + eps: 1e-6, + scaling: 1., + scratch: 32 * 1024 * 1024, + compiled: None, + }; + let mut indexer = make(); + let mut cache = QsaCache::new(4); + let source = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().product::() as u32, salt), + ) + .unwrap() + }; + let digest = |a: &Array| { + let a = + ops::contiguous(&ops::astype(a, Dtype::F32, false, gpu).unwrap(), false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::() + }; + for c in &cases { + super::eval::execution_tests::observed(|| { + let n = |s: &str| c[s].as_i64().unwrap() as i32; + let step = n("step"); + let rows = n("rows"); + let pos = n("pos"); + let options = qsa_indexer_options(&c["options"]); + if step == 0 { + indexer = make(); + cache = QsaCache::new(4); + let prefix = n("prefix"); + if prefix > 0 { + cache + .write_raw(&source(&[1, prefix, 128], 88), gpu) + .unwrap(); + indexer + .extend_pooled(&mut cache, prefix, options.fused, gpu) + .unwrap(); + let kv = ops::transpose(&source(&[1, prefix, 2, 256], 89), &[0, 2, 1, 3], gpu) + .unwrap(); + cache.kv.update_and_fetch(&kv, &kv, gpu).unwrap(); + let leaves = [ + &cache.raw_keys, + &cache.pooled, + &cache.pooled_f32_t, + &cache.kv.keys, + &cache.kv.values, + ] + .into_iter() + .flatten() + .map(|a| a.borrow().clone()) + .collect::>(); + ops::evaluate(&streams, &leaves, gpu, false).unwrap(); + } + } + assert_eq!(cache.kv.offset, pos); + let hidden = source(&[1, rows, 2560], 77 + step as u32); + let qk = c["supplied"].as_bool().unwrap().then(|| { + ops::slice( + &source(&[1, rows, n("stride")], 121 + step as u32), + &[0; 3], + &[1, rows, 640], + &[1; 3], + gpu, + ) + .unwrap() + }); + let ((selected, lane), dispatches) = capture_dispatches(|| { + indexer + .call( + &hidden, + pos, + &mut cache, + qk.as_ref(), + &options, + &streams, + gpu, + ) + .unwrap() + }); + assert_eq!(lane, c["lane"].as_str().unwrap(), "{}", c["kernel"]); + if matches!(lane, "compiled" | "metal_prefill" | "legacy_fused") { + assert!(dispatches.is_empty(), "{} must stay lazy", c["kernel"]); + } + if let Some(counts) = c.get("graph_counts") { + let actual = + indexer + .compiled + .as_ref() + .map_or(serde_json::json!([0, 0, 0]), |(_, core)| { + let r = core.report(); + serde_json::json!([r["compiled_calls"], r["traces"], r["entry_count"]]) + }); + assert_eq!(actual, *counts, "{}", c["kernel"]); + } + let (kind, outputs, tail) = match selected { + None => ("none", vec![], None), + Some(EagerSelection::Dense(a)) => ("dense", vec![a], None), + Some(EagerSelection::PrefillBlocks(a, b)) => ("flash_prefill", vec![a, b], None), + Some(EagerSelection::FlashBlocks(a, t)) => ("flash", vec![a], Some(t)), + Some(EagerSelection::RowTokens(a, b)) => ("gather_rows", vec![a, b], None), + Some(EagerSelection::DecodeTokens(a)) => ("decode_tokens", vec![a], None), + }; + assert_eq!(kind, c["kind"].as_str().unwrap(), "{}", c["kernel"]); + assert_eq!(tail, c["tail"].as_i64().map(|v| v as i32)); + let mut leaves = outputs.clone(); + leaves.extend( + [&cache.raw_keys, &cache.pooled, &cache.pooled_f32_t] + .into_iter() + .flatten() + .map(|a| a.borrow().clone()), + ); + ops::evaluate(&streams, &leaves, gpu, false).unwrap(); + assert_eq!( + serde_json::json!(outputs.iter().map(&digest).collect::>()), + c["sha256"], + "{} output", + c["kernel"] + ); + assert_eq!(cache.kv.offset, pos); + assert_eq!(cache.pooled_len, n("pooled_len")); + for (key, leaf, axis) in [ + ("raw_cap", &cache.raw_keys, 1), + ("pooled_cap", &cache.pooled, 1), + ("mirror_cap", &cache.pooled_f32_t, 3), + ] { + assert_eq!( + leaf.as_ref() + .map_or(0, |a| a.borrow().layout().shape()[axis]), + n(key), + "{} {key}", + c["kernel"] + ); + } + for (key, a) in [ + ("raw", &cache.raw_keys), + ("pooled", &cache.pooled), + ("mirror", &cache.pooled_f32_t), + ] { + let hash = a.as_ref().map(|a| digest(&a.borrow())); + assert_eq!( + serde_json::json!(hash), + c["state_sha256"][key], + "{} {key}", + c["kernel"] + ); + } + let kv = ops::transpose( + &source(&[1, rows, 2, 256], 140 + step as u32), + &[0, 2, 1, 3], + gpu, + ) + .unwrap(); + let (k, v) = cache.kv.update_and_fetch(&kv, &kv, gpu).unwrap(); + ops::evaluate( + &streams, + &[k.borrow().clone(), v.borrow().clone()], + gpu, + false, + ) + .unwrap(); + }); + } + // Reuse the original 720 pre-reservation eligibility receipts, including + // inconsistent frontiers and present-but-nonbucketed or empty backings. + let routing: serde_json::Value = serde_json::from_str(include_str!( + "../../../../tests/fixtures/mtplx-qsa-compiled-routes.json" + )) + .unwrap(); + let indexer = make(); + let mut checked = 0; + for c in routing["cases"].as_array().unwrap() { + let options = qsa_indexer_options(&routing["options"][c[0].as_u64().unwrap() as usize]); + let state = &routing["states"][c[1].as_u64().unwrap() as usize]; + let n = |i: usize| state[i].as_i64().unwrap_or(0) as i32; + let mut cache = QsaCache::new(4); + cache.kv.offset = n(2); + cache.pooled_len = n(5); + cache.raw_keys = state[3] + .as_i64() + .map(|cap| object(Array::unallocated(&[1, cap as i32, 128], Dtype::BF16).unwrap())); + cache.pooled = state[4] + .as_i64() + .map(|cap| object(Array::unallocated(&[1, cap as i32, 128], Dtype::BF16).unwrap())); + let mode = match c[2].as_str().unwrap() { + "update_only" => QsaCompiledMode::UpdateOnly, + "blocks" => QsaCompiledMode::Blocks, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "dense_mask" => QsaCompiledMode::DenseMask, + _ => panic!("unknown mode"), + }; + assert_eq!( + options.compiled_mode(n(1) as u32, (n(0) + n(1)) as u32, 4, 512), + mode + ); + for supplied in [false, true] { + let source = + Array::unallocated(&[1, n(1), if supplied { 640 } else { 2560 }], Dtype::BF16) + .unwrap(); + let (accepted, dispatches) = capture_dispatches(|| { + indexer.compiled_supported( + &source, + &cache, + n(0), + supplied, + n(1) == 1, + mode, + &options, + gpu, + ) + }); + assert!(dispatches.is_empty()); + assert_eq!( + accepted, + c[if supplied { 4 } else { 3 }].as_bool().unwrap(), + "{c} {state} supplied{supplied}" + ); + checked += 1; + } + } + assert_eq!(checked, 720); + assert!(indexer.compiled.is_none()); +} + +#[test] +#[ignore = "requires Metal and original indexer lifecycle receipts; no model weights"] +fn mtplx_qsa_indexer_compiled_commit_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern}, + }; + use super::{ + QsaCompiledMode, allocator, + attention::{self, EagerSelection}, + mlp, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + super::configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-indexer-commit.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 26); + let renewed = |a: &Array| { + Array::new( + a.layout().shape(), + a.layout().dtype(), + a.buffer() + .view(a.offset(), a.layout().nbytes() as u64) + .unwrap(), + ) + .unwrap() + }; + let norm = |salt| Array::new(&[128], Dtype::BF16, pattern(128, salt)).unwrap(); + let replacement = norm(72); + let q_norm = [norm(72), replacement.clone(), replacement]; + let k_norm = [norm(73), norm(73)]; + let invalid = Array::unallocated(&[127], Dtype::BF16).unwrap(); + let bytes = cases[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Array::new(&[32], Dtype::F32, super::scalar_buffer(&bytes).unwrap()).unwrap(); + let freq = [renewed(&freq), freq]; + let weight = Array::new(&[640, 128], Dtype::BF16, pattern(640 * 128, 231)).unwrap(); + let weights = [renewed(&weight), weight]; + let mut layers = vec![mlp::fixture_linear(640, 128, 4, 64, 75)]; + for leaf in 0..3 { + let a = layers.last().unwrap(); + layers.push(mlp::QuantizedLinear { + weight: if leaf == 0 { + renewed(&a.weight) + } else { + a.weight.clone() + }, + scales: if leaf == 1 { + renewed(&a.scales) + } else { + a.scales.clone() + }, + biases: if leaf == 2 { + renewed(&a.biases) + } else { + a.biases.clone() + }, + bits: a.bits, + group: a.group, + }); + } + for retain in [true, false] { + for quantized in [false, true] { + let mut indexer = Indexer { + projection: Some(if quantized { + Linear::Quantized(&layers[0]) + } else { + Linear::Dense(&weights[0]) + }), + heads: 4, + kv_heads: 1, + head_dim: 128, + block_topk: 8, + ratio: 4, + q_norm: &q_norm[0], + k_norm: &k_norm[0], + inv_freq: &freq[0], + eps: 1e-6, + scaling: 1., + scratch: 32 * 1024 * 1024, + compiled: None, + }; + let mut cache = QsaCache::new(4); + for c in cases.iter().filter(|c| c["quantized"] == quantized) { + super::eval::execution_tests::observed(|| { + let n = |key: &str| c[key].as_i64().unwrap() as i32; + let step = n("step"); + let rows = n("rows"); + if step >= 2 { + indexer.scratch = 1024 * 1024; + } + if step == 3 { + indexer.q_norm = &q_norm[1]; + } + if step == 4 { + indexer.k_norm = &k_norm[1]; + } + if step == 5 { + indexer.inv_freq = &freq[1]; + } + if step == 6 { + indexer.projection = Some(if quantized { + Linear::Quantized(&layers[1]) + } else { + Linear::Dense(&weights[1]) + }); + } + if quantized && step == 7 { + indexer.projection = Some(Linear::Quantized(&layers[2])); + } + if quantized && step == 8 { + indexer.projection = Some(Linear::Quantized(&layers[3])); + } + if step == 9 { + cache.reserve_indexer_capacity(2048, 512, gpu).unwrap(); + } + if step == 10 { + assert_eq!(cache.trim(3), 3); + } + let pos = cache.kv.offset; + assert_eq!(pos, n("pos")); + let workspace = if step >= 2 { + 2 * 1024 * 1024 + } else { + 128 * 1024 * 1024 + }; + if step == 11 { + let report = indexer.compiled.as_ref().unwrap().1.report(); + let signature = indexer.compiled.as_ref().unwrap().0.clone(); + indexer.q_norm = &invalid; + assert!(indexer.compiled_core(workspace).is_err()); + assert_eq!(indexer.compiled.as_ref().unwrap().0, signature); + assert_eq!(indexer.compiled.as_ref().unwrap().1.report(), report); + indexer.q_norm = &q_norm[1]; + } + if step == 12 { + // A new Rust handle of the same descriptor is not a new leaf. + indexer.q_norm = &q_norm[2]; + } + let hidden = Array::new( + &[1, rows, 128], + Dtype::BF16, + pattern(rows as u32 * 128, 300 + step as u32), + ) + .unwrap(); + let supplied = c["supplied"].as_bool().unwrap(); + let qk = supplied.then(|| { + let a = Array::new( + &[1, rows, 704], + Dtype::BF16, + pattern(rows as u32 * 704, 320 + step as u32), + ) + .unwrap(); + ops::slice(&a, &[0; 3], &[1, rows, 640], &[1; 3], gpu).unwrap() + }); + if cache.pooled.is_some() { + cache.pooled_f32_view(cache.pooled_len, gpu).unwrap(); + } + let old = [cache.raw_keys.clone(), cache.pooled.clone()]; + let before = old + .iter() + .flatten() + .map(|a| a.borrow().clone()) + .collect::>(); + ops::evaluate(&streams, &before, gpu, false).unwrap(); + drop(before); + let old = if retain { + Some(old) + } else { + drop(old); + None + }; + let mode = match c["mode"].as_str().unwrap() { + "update_only" => QsaCompiledMode::UpdateOnly, + "blocks" => QsaCompiledMode::Blocks, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "dense_mask" => QsaCompiledMode::DenseMask, + _ => panic!("mode"), + }; + let engagement = attention::qsa_prefill_engagement() + .unwrap() + .get("compiled_selector") + .copied() + .unwrap_or(0); + let (result, dispatches) = capture_dispatches(|| { + indexer + .call_compiled( + &hidden, + pos, + &mut cache, + qk.as_ref(), + mode, + workspace, + gpu, + ) + .unwrap() + }); + assert!(dispatches.is_empty(), "cache commit must stay lazy"); + assert_eq!(cache.kv.offset, pos); + assert_eq!(cache.pooled_len, n("pooled_len")); + assert!(cache.pooled_f32_t.is_none()); + assert_eq!( + indexer.compiled.as_ref().unwrap().1.report(), + c["report"], + "{step}/{quantized}" + ); + assert_eq!( + attention::qsa_prefill_engagement() + .unwrap() + .get("compiled_selector") + .copied() + .unwrap_or(0), + engagement + u64::from(mode == QsaCompiledMode::PrefillBlocks) + ); + let (kind, mut outputs, tail) = match result { + None => ("none", vec![], None), + Some(EagerSelection::FlashBlocks(a, tail)) => { + ("flash", vec![a], Some(tail)) + } + Some(EagerSelection::PrefillBlocks(a, b)) => { + ("flash_prefill", vec![a, b], None) + } + Some(EagerSelection::RowTokens(a, b)) => ("gather_rows", vec![a, b], None), + Some(EagerSelection::Dense(a)) => ("dense", vec![a], None), + _ => panic!("unexpected return contract"), + }; + assert_eq!(kind, c["kind"].as_str().unwrap()); + assert_eq!(tail, c["tail"].as_i64().map(|v| v as i32)); + outputs.extend([ + cache.raw_keys.as_ref().unwrap().borrow().clone(), + cache.pooled.as_ref().unwrap().borrow().clone(), + ]); + if let Some(old) = old { + for (old, new) in old.iter().zip([&cache.raw_keys, &cache.pooled]) { + if let Some(old) = old { + assert!(!std::rc::Rc::ptr_eq(old, new.as_ref().unwrap())); + outputs.push(old.borrow().clone()); + } + } + } + for (a, shape) in outputs.iter().zip(c["shapes"].as_array().unwrap()) { + assert_eq!(serde_json::json!(a.layout().shape()), *shape); + } + let outputs = outputs + .iter() + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + for (leaf, a) in outputs.iter().enumerate() { + let mut bytes = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut bytes).unwrap(); + let hash = Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + assert_eq!( + hash, + c["sha256"][leaf].as_str().unwrap(), + "step{step} quant{quantized} retain{retain} leaf{leaf}" + ); + } + // A real attention invocation advances this after indexer commit. + cache.kv.offset = pos + rows; + }); + } + } + } +} + +#[test] +#[ignore = "requires Apple Metal, original stateful QSAIndexer receipts, no model weights"] +fn mtplx_qsa_indexer_prefix_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + QsaEagerOptions, allocator, + attention::{self, EagerSelection}, + configure_sources, mlp, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let tf32 = std::env::var("MLX_ENABLE_TF32").ok().as_deref() != Some("0"); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-indexer-prefix.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|case| case["tf32"].as_bool() == Some(tf32)) + .collect::>(); + assert_eq!(cases.len(), 153); + for prepared in [false, true] { + for tag in ["bfloat16", "float16", "float32"] { + let dtype = match tag { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + _ => Dtype::F32, + }; + for profile in 0..if dtype == Dtype::BF16 { 7 } else { 5 } { + let sequence = cases + .iter() + .filter(|c| c["dtype"] == tag && c["profile"] == profile) + .collect::>(); + assert_eq!(sequence.len(), 9); + let first = sequence[0]; + let dim = first["dim"].as_i64().unwrap() as i32; + let rot = first["rot"].as_i64().unwrap() as i32; + let fused = first["fused"].as_bool().unwrap(); + let kind = first["kind"].as_str().unwrap(); + let source = |shape: &[i32], salt: u32, dtype: Dtype| { + let count = shape.iter().product::(); + ops::astype( + &Array::new(shape, Dtype::BF16, pattern(count as u32, salt)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + let weight = source(&[5 * dim, 64], 187, dtype); + let quant = match kind { + "q4" => Some(mlp::fixture_linear(5 * dim as u32, 64, 4, 64, 187)), + "q8" => Some(mlp::fixture_linear(5 * dim as u32, 64, 8, 64, 187)), + _ => None, + }; + let norm_dtype = if kind == "promoted" { + Dtype::F32 + } else { + dtype + }; + let q_norm = source(&[dim], 185, norm_dtype); + let k_norm = source(&[dim], 186, norm_dtype); + let frequencies = (0..rot / 2) + .flat_map(|i| ((1. / f64::from(i + 1)) as f32).to_le_bytes()) + .collect::>(); + let inv_freq = Array::new( + &[rot / 2], + Dtype::F32, + super::scalar_buffer(&frequencies).unwrap(), + ) + .unwrap(); + let indexer = Indexer { + projection: Some( + quant + .as_ref() + .map_or(Linear::Dense(&weight), Linear::Quantized), + ), + heads: 4, + kv_heads: 1, + head_dim: dim, + block_topk: 512, + ratio: 4, + q_norm: &q_norm, + k_norm: &k_norm, + inv_freq: &inv_freq, + eps: 1e-6, + scaling: 1.125, + scratch: 32 * 1024 * 1024, + compiled: None, + }; + let options = QsaEagerOptions { + large_prefill: false, + flash: false, + gather_decode: true, + gather: true, + gather_max_rows: 8, + gather_min_context: 0, + }; + let mut cache = QsaCache::new(4); + cache.reserve_indexer_capacity(256, 256, gpu).unwrap(); + for case in sequence { + super::eval::execution_tests::observed(|| { + let num = |s: &str| case[s].as_i64().unwrap() as i32; + let rows = num("rows"); + let step = num("step"); + if num("trim") > 0 { + assert_eq!(cache.trim(num("trim")), num("trim")); + } + let pos = cache.kv.offset; + assert_eq!(pos, num("pos")); + let old = cache.pooled_len; + let hidden = source(&[1, rows, 64], 190 + step as u32 * 7, dtype); + let qk = if kind == "supplied" { + Some( + ops::slice( + &source(&[1, rows, 5 * dim * 2], 191 + step as u32 * 7, dtype), + &[0; 3], + &[1, rows, 5 * dim * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + ) + } else { + None + }; + if prepared { + let mut inputs = vec![ + hidden.clone(), + q_norm.clone(), + k_norm.clone(), + weight.clone(), + ]; + if let Some(qk) = &qk { + inputs.push(qk.clone()); + } + ops::evaluate(&streams, &inputs, gpu, false).unwrap(); + } + let (prefix, calls) = capture_dispatches(|| { + indexer + .prepare_rows(&hidden, pos, &mut cache, qk.as_ref(), fused, gpu) + .unwrap() + }); + assert!(calls.is_empty(), "QSA prefix must remain lazy"); + assert_eq!(cache.kv.offset, num("offset")); + assert_eq!(cache.pooled_len, num("pooled_len")); + let mut outputs = vec![cache.raw_keys.as_ref().unwrap().borrow().clone()]; + if let Some(pooled) = &cache.pooled { + outputs.extend([ + pooled.borrow().clone(), + cache.pooled_f32_t.as_ref().unwrap().borrow().clone(), + ]); + } + let lane = if let Some(prefix) = prefix { + assert_eq!(prefix.total, pos + rows); + assert_eq!(prefix.pooled.layout().shape(), [1, cache.pooled_len, dim]); + let selection = attention::select_eager( + &prefix.query, + pos, + &mut cache, + prefix.total, + 512, + 0, + &options, + &streams, + gpu, + ) + .unwrap(); + match selection { + EagerSelection::RowTokens(ids, valid) => { + outputs.extend([ids, valid]); + "gather_rows" + } + EagerSelection::DecodeTokens(ids) => { + outputs.push(ids); + "decode_tokens" + } + EagerSelection::Dense(mask) => { + outputs.push(mask); + "dense" + } + _ => panic!("unexpected eager route"), + } + } else { + "none" + }; + assert_eq!(lane, case["lane"].as_str().unwrap()); + for (i, a) in outputs.iter().enumerate() { + let shape = case["shapes"][i] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(a.layout().shape(), shape, "{} output{i}", case["kernel"]); + } + drop((hidden, qk)); + let outputs = outputs + .iter() + // NumPy's reference tobytes is logical row order; + // the cache's F32 mirror is a transposed view. + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &outputs, gpu, false).unwrap() + }); + let custom = fused && dim <= 128 && norm_dtype == dtype; + assert_eq!( + calls + .iter() + .filter(|c| c.0.contains("qsa_prepare_q")) + .count(), + usize::from(custom && lane != "none") + ); + assert_eq!( + calls.iter().filter(|c| c.0.contains("qsa_pool_k")).count(), + usize::from(custom && cache.pooled_len > old) + ); + let buffers = outputs.iter().map(Array::buffer).collect::>(); + let checks = buffers + .iter() + .zip(&outputs) + .map(|(b, a)| (&**b, a.layout().size() as u32, 4)) + .collect::>(); + verify_typed(case["kernel"].as_str().unwrap(), &checks); + cache.kv.offset = pos + rows; // Attention's frontier advance. + }); + } + } + } + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_prefill.rs b/src/engine/metal/qwen_mtplx/qsa_prefill.rs new file mode 100644 index 0000000..9ce2e3a --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_prefill.rs @@ -0,0 +1,800 @@ +//! Original producer-selected two-stage QSA prefill graph. No error fallback. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::qsa_prepare::Position; +use super::stream::{Device, Stream}; +use super::{QsaSelectMode, bytes, ops, qsa_select, tensor, views}; + +#[test] +#[ignore = "requires Metal and original two-stage prefill receipts, no weights"] +fn mtplx_qsa_prefill_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + allocator, + binary::{Binary, binary}, + configure_sources, + stream::Streams, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let tf32 = std::env::var("MLX_ENABLE_TF32").ok().as_deref() != Some("0"); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-prefill-graph.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .filter(|c| c["tf32"].as_bool() == Some(tf32)) + .collect::>(); + assert_eq!(cases.len(), 72); + for prepared in [false, true] { + for dynamic in [false, true] { + for c in &cases { + super::eval::execution_tests::observed(|| { + let n = |s: &str| c[s].as_i64().unwrap() as i32; + let (rows, blocks, k, ratio, pos) = + (n("rows"), n("blocks"), n("topk"), n("ratio"), n("pos")); + let total = pos + rows; + let kind = c["kind"].as_str().unwrap(); + let mode = match c["mode"].as_str().unwrap() { + "blocks" => QsaSelectMode::Blocks, + "row_tokens" => QsaSelectMode::RowTokens, + _ => QsaSelectMode::DenseMask, + }; + let direct = c["kernel"] + .as_str() + .unwrap() + .starts_with("qsa_prefill_topk_"); + let dtype = |tag: &str| match tag { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => panic!("unknown dtype"), + }; + let source = |shape: &[i32], salt, dtype, perturb| { + let count = shape.iter().product::(); + let mut a = ops::astype( + &Array::new(shape, Dtype::BF16, pattern(count as u32, salt)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + if dtype == Dtype::F32 && perturb { + let bytes = (0..count) + .flat_map(|i| ((i % 7) as f32 / 65536.).to_le_bytes()) + .collect::>(); + let d = Array::new( + shape, + Dtype::F32, + super::scalar_buffer(&bytes).unwrap(), + ) + .unwrap(); + a = binary(&a, &d, Binary::Add, gpu).unwrap(); + } + a + }; + let (q, p) = if direct { + let shape = if kind == "transpose" { + vec![blocks, rows] + } else { + vec![ + if kind == "broadcast" { 1 } else { rows }, + blocks * if kind == "stride" { 2 } else { 1 }, + ] + }; + let mut a = source(&shape, 213, Dtype::F32, false); + if kind == "transpose" { + a = ops::transpose(&a, &[1, 0], gpu).unwrap(); + } + if kind == "stride" { + a = ops::slice(&a, &[0, 0], &shape, &[1, 2], gpu).unwrap(); + } + if kind == "broadcast" { + a = ops::broadcast_to(&a, &[rows, blocks], gpu).unwrap(); + } + (a, None) + } else { + let (heads, dim) = (n("heads"), n("dim")); + let qs = if kind == "transpose" { + vec![1, rows, dim, heads] + } else { + vec![ + 1, + if kind == "broadcast" { 1 } else { rows }, + heads, + dim * if kind == "strided" { 2 } else { 1 }, + ] + }; + let ps = if kind == "transpose" { + vec![1, dim, blocks] + } else { + vec![1, blocks, dim * if kind == "strided" { 2 } else { 1 }] + }; + let mut q = source(&qs, 211, dtype(c["dtype"].as_str().unwrap()), true); + let mut p = source(&ps, 212, dtype(c["pdtype"].as_str().unwrap()), true); + if kind == "transpose" { + q = ops::transpose(&q, &[0, 1, 3, 2], gpu).unwrap(); + p = ops::transpose(&p, &[0, 2, 1], gpu).unwrap(); + } + if kind == "strided" { + q = ops::slice(&q, &[0; 4], &qs, &[1, 1, 1, 2], gpu).unwrap(); + p = ops::slice(&p, &[0; 3], &ps, &[1, 1, 2], gpu).unwrap(); + } + if kind == "broadcast" { + q = ops::broadcast_to(&q, &[1, rows, heads, dim], gpu).unwrap(); + } + assert_eq!(mpp_supported(&q, &p, gpu), c["mpp"].as_bool().unwrap()); + assert_eq!( + chunk_rows( + rows, + heads, + blocks, + c["budget"].as_u64().unwrap(), + 32, + c["mpp"].as_bool().unwrap() + ) + .unwrap(), + n("chunk") + ); + (q, Some(p)) + }; + if prepared { + let mut inputs = vec![q.clone()]; + inputs.extend(p.iter().cloned()); + ops::evaluate(&streams, &inputs, gpu, false).unwrap(); + } + let scalars = [pos, total, total / ratio].map(|n| { + Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&n.to_le_bytes()).unwrap(), + ) + .unwrap() + }); + let frontiers = if dynamic { + scalars.each_ref().map(Position::Tensor) + } else { + [pos, total, total / ratio].map(Position::Host) + }; + let (outputs, construction) = capture_dispatches(|| { + if let Some(p) = &p { + select( + &q, + p, + frontiers, + k, + ratio, + Some(total + 3), + mode, + c["budget"].as_u64().unwrap(), + gpu, + ) + .unwrap() + } else { + topk(&q, frontiers, k, ratio, Some(total + 3), mode, gpu).unwrap() + } + }); + assert!(construction.is_empty()); + if direct { + assert_eq!(outputs[0].outputs().len(), outputs.len()); + } + drop((q, p, scalars)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &[outputs[0].clone()], gpu, false).unwrap() + }); + let chunk = if direct { rows } else { n("chunk") }; + let chunk_lengths = (0..rows) + .step_by(chunk as usize) + .map(|start| (rows - start).min(chunk) as u32) + .collect::>(); + let width = (k as u32).max(256).next_power_of_two(); + let selectors = calls + .iter() + .filter(|(name, _, _, _)| { + name.starts_with("kernel_qwen_mtplx_qsa_prefill_topk_") + }) + .collect::>(); + assert_eq!(selectors.len(), chunk_lengths.len()); + let mut actual = selectors + .iter() + .map(|(_, grid, threads, individual)| { + assert_eq!(*threads, [width, 1, 1]); + assert!(*individual); + *grid + }) + .collect::>(); + let mut expected = chunk_lengths + .iter() + .map(|r| [r * width, 1, 1]) + .collect::>(); + actual.sort(); + expected.sort(); + assert_eq!(actual, expected); + let mpp = calls + .iter() + .filter(|(name, _, _, _)| { + name.starts_with("kernel_qwen_mtplx_qsa_prefill_mpp_scores_") + }) + .collect::>(); + if !direct && c["mpp"] == true { + let mut actual = mpp + .iter() + .map(|(_, grid, threads, individual)| { + assert_eq!(*threads, [128, 1, 1]); + assert!(*individual); + *grid + }) + .collect::>(); + let mut expected = chunk_lengths + .iter() + .map(|r| [r.div_ceil(16) * (blocks as u32).div_ceil(32) * 128, 1, 1]) + .collect::>(); + actual.sort(); + expected.sort(); + assert_eq!(actual, expected); + if prepared && !dynamic { + assert_eq!( + calls.len(), + chunk_lengths.len() * if chunk < rows { 3 } else { 2 } + ); + } + } else { + assert!(mpp.is_empty()); + } + if direct && prepared && !dynamic { + assert_eq!( + calls.len(), + 2, + "one General copy plus one original top-k dispatch" + ); + } + for (a, s) in outputs.iter().zip(c["shapes"].as_array().unwrap()) { + assert_eq!( + a.layout().shape(), + s.as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap() as i32) + .collect::>() + ); + } + let outputs = outputs + .iter() + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + let buffers = outputs.iter().map(Array::buffer).collect::>(); + verify_typed( + c["kernel"].as_str().unwrap(), + &outputs + .iter() + .zip(&buffers) + .map(|(a, b)| (&**b, a.layout().size() as u32, 4)) + .collect::>(), + ); + }); + } + } + } +} + +#[derive(Clone, Copy)] +pub(super) struct TopK { + pub(super) blocks: u32, + pub(super) topk: u32, + pub(super) ratio: u32, + pub(super) dense_width: u32, + pub(super) mode: QsaSelectMode, +} + +impl TopK { + pub(super) fn prefill_kernel(self) -> String { + format!( + "kernel_qwen_mtplx_qsa_prefill_topk_{}_n{}_k{}_r{}_w{}_t{}", + self.mode.name(), + self.blocks, + self.topk, + self.ratio, + self.topk.max(256).next_power_of_two(), + if self.mode == QsaSelectMode::DenseMask { + self.dense_width + } else { + 0 + } + ) + } + + pub(super) fn prefill_source(self) -> Result { + let parts: serde_json::Value = + serde_json::from_str(include_str!("../../../../metal/mtplx-qsa-select.json")) + .map_err(|e| e.to_string())?; + let p = &parts["prefill"]; + let mut constants = p["topk_header"] + .as_str() + .ok_or("missing prefill constants")? + .to_owned(); + for (key, value) in [ + ("blocks", self.blocks), + ("topk", self.topk), + ("ratio", self.ratio), + ("width", self.topk.max(256).next_power_of_two()), + ("_RADIX_BINS", 2048), + ("_FINAL_CANDIDATES", 2048), + ("_INSERTION_CANDIDATES", 64), + ( + "output_tokens", + if self.mode == QsaSelectMode::DenseMask { + self.dense_width + } else { + 0 + }, + ), + ] { + constants = constants.replace(&format!("@{key}@"), &value.to_string()); + } + constants = constants.replace( + "@str(mode == 'row_tokens').lower()@", + if self.mode == QsaSelectMode::RowTokens { + "true" + } else { + "false" + }, + ); + if constants.contains('@') { + return Err("unresolved QSA prefill constant".into()); + } + let header = parts["header"] + .as_str() + .ok_or("missing QSA shared header")? + .to_owned() + + &constants; + let section = &parts["epilogues"][self.mode.name()]; + let body = p["topk_body"] + .as_str() + .ok_or("missing prefill body")? + .to_owned() + + section["source"].as_str().ok_or("missing QSA epilogue")?; + let mut args = vec![ + "device const float* scores".into(), + "device const int* pos_start".into(), + "device const int* total_tokens".into(), + "device const int* logical_blocks".into(), + ]; + args.extend(super::qsa_output_args(section)?); + Ok(super::qsa_shader_source( + &header, + &self.prefill_kernel(), + &args, + &body, + )) + } +} + +impl TopK { + pub(super) fn layouts(self, rows: i32) -> Result, String> { + qsa_select::selection_layouts( + rows, + self.topk as i32, + self.ratio as i32, + self.dense_width as i32, + self.mode, + ) + } +} + +pub(super) fn chunk_rows( + rows: i32, + heads: i32, + blocks: i32, + budget: u64, + alignment: i32, + mpp: bool, +) -> Result { + if rows <= 0 || heads <= 0 || blocks <= 0 || budget == 0 || alignment <= 0 { + return Err("invalid QSA prefill budget".into()); + } + let planes = if mpp { 1 } else { heads as u64 + 1 }; + let bytes = (blocks as u64) + .checked_mul(4) + .and_then(|n| n.checked_mul(planes)) + .ok_or("QSA workspace overflow")?; + let mut chunk = (rows as u64).min((budget / bytes).max(1)) as i32; + if chunk >= alignment && chunk < rows { + chunk = alignment.max(chunk / alignment * alignment); + } + Ok(chunk) +} + +pub(super) fn mpp_supported(q: &Array, pooled: &Array, stream: Stream) -> bool { + let q = q.layout(); + let p = pooled.layout(); + stream.device() == Device::Gpu + && super::sparse_attention::nax_available() + && matches!(q.dtype(), Dtype::BF16 | Dtype::F16) + && q.dtype() == p.dtype() + && q.shape().len() == 4 + && q.shape()[0] == 1 + && q.shape()[1] > 0 + && q.shape()[2..] == [4, 128] + && p.shape().len() == 3 + && p.shape()[0] == 1 + && p.shape()[1] > 0 + && p.shape()[2] == 128 +} + +pub(super) fn mpp_scores(q: &Array, pooled: &Array, stream: Stream) -> Result { + if !mpp_supported(q, pooled, stream) { + return Err("unsupported QSA MPP score signature".into()); + } + Array::make_operation_with_inputs( + stream, + &[q.clone(), pooled.clone()], + Layout::new( + &[q.layout().shape()[1], pooled.layout().shape()[1]], + Dtype::F32, + )?, + ops::Operation::QsaPrefillScores, + ) +} + +pub(super) fn mpp_evaluate(inputs: &[Array], output: &Array) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + mpp_encode(inputs, output) +} + +pub(super) fn mpp_encode(inputs: &[Array], output: &Array) -> Result<(), String> { + let q = &inputs[0]; + let p = &inputs[1]; + let qs = q.layout(); + let ps = p.layout(); + let tag = if qs.dtype() == Dtype::BF16 { + "bf16" + } else { + "f16" + }; + let name = format!("kernel_qwen_mtplx_qsa_prefill_mpp_scores_h4d128_{tag}"); + super::compile_custom(&name, || { + let parts: serde_json::Value = + serde_json::from_str(include_str!("../../../../metal/mtplx-qsa-select.json")) + .map_err(|e| e.to_string())?; + let p = &parts["prefill"]; + let header = format!( + "#include \n{}\nusing InT = {};\n", + p["mpp_header"].as_str().ok_or("missing MPP header")?, + if qs.dtype() == Dtype::BF16 { + "bfloat" + } else { + "half" + } + ); + let args = [ + "device const InT* q", + "constant const int* q_shape", + "constant const int64_t* q_strides", + "device const InT* pooled", + "constant const int* pooled_shape", + "constant const int64_t* pooled_strides", + "device float* scores", + ] + .map(str::to_owned); + Ok(super::qsa_shader_source( + &header, + &name, + &args, + p["mpp_body"].as_str().ok_or("missing MPP body")?, + )) + })?; + let grid = (qs.shape()[1] as u32) + .div_ceil(16) + .checked_mul((ps.shape()[1] as u32).div_ceil(32)) + .and_then(|n| n.checked_mul(128)) + .ok_or("QSA MPP grid overflow")?; + super::dispatch_geometry( + &name, + &[ + tensor(0, &q.buffer()) + .at_byte_offset(q.offset()) + .input(q.data_size()), + bytes(1, qs.shape()), + bytes(2, qs.strides()), + tensor(3, &p.buffer()) + .at_byte_offset(p.offset()) + .input(p.data_size()), + bytes(4, ps.shape()), + bytes(5, ps.strides()), + tensor(6, &output.buffer()).output(output.layout().size()), + ], + &[], + [grid, 1, 1], + [128, 1, 1], + true, + ) +} + +pub(super) fn topk( + scores: &Array, + frontiers: [Position<'_>; 3], + topk: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, + stream: Stream, +) -> Result, String> { + let shape = scores.layout(); + if stream.device() != Device::Gpu + || shape.dtype() != Dtype::F32 + || shape.shape().len() != 2 + || shape.shape().iter().any(|&n| n <= 0) + { + return Err("QSA prefill scores require positive F32 [rows,blocks]".into()); + } + let rows = shape.shape()[0]; + let blocks = shape.shape()[1]; + let dense_width = + qsa_select::selection_width(&frontiers, rows, blocks, topk, ratio, output_tokens, mode)?; + let kernel = TopK { + blocks: blocks as u32, + topk: topk as u32, + ratio: ratio as u32, + dense_width: dense_width as u32, + mode, + }; + drop(shape); + let [pos, total, logical] = frontiers.map(|p| p.array(stream)); + Array::make_operations( + stream, + &[scores.clone(), pos?, total?, logical?], + &kernel.layouts(rows)?, + ops::Operation::QsaPrefillTopK(kernel), + ) +} + +pub(super) fn topk_evaluate( + inputs: &[Array], + outputs: &[Array], + kernel: TopK, +) -> Result<(), String> { + for out in outputs { + let nbytes = out.layout().nbytes(); + out.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + topk_encode(inputs, outputs, kernel) +} + +pub(super) fn topk_encode(inputs: &[Array], outputs: &[Array], kernel: TopK) -> Result<(), String> { + // Original CustomKernel: outputs allocated first; General-copy every + // non-row-contiguous input (including scalar views), then compile/encode. + let mut temporary = Vec::new(); + let inputs = inputs + .iter() + .map(|a| { + if a.layout().flags().row_contiguous { + return Ok(a.clone()); + } + let shape = a.layout(); + let copy = Array::new( + shape.shape(), + shape.dtype(), + Buffer::mtplx_bytes(shape.nbytes() as u64)?, + )?; + views::general_copy_inplace(a, ©)?; + temporary.push(copy.buffer().view(0, copy.layout().nbytes() as u64)?); + Ok(copy) + }) + .collect::, String>>()?; + let name = kernel.prefill_kernel(); + super::compile_custom(&name, || kernel.prefill_source())?; + let ib = inputs.iter().map(Array::buffer).collect::>(); + let ob = outputs.iter().map(Array::buffer).collect::>(); + let mut bindings = inputs + .iter() + .zip(&ib) + .enumerate() + .map(|(i, (a, b))| { + tensor(i as u32, b) + .at_byte_offset(a.offset()) + .input(a.data_size()) + }) + .collect::>(); + bindings.extend( + outputs + .iter() + .zip(&ob) + .enumerate() + .map(|(i, (a, b))| tensor(i as u32 + 4, b).output(a.layout().size())), + ); + let width = kernel.topk.max(256).next_power_of_two(); + let grid = (inputs[0].layout().shape()[0] as u32) + .checked_mul(width) + .ok_or("QSA topk grid overflow")?; + super::dispatch_geometry(&name, &bindings, &[], [grid, 1, 1], [width, 1, 1], true)?; + super::encoder::add_temporaries(&temporary); + Ok(()) +} + +#[expect( + clippy::too_many_arguments, + reason = "original prefill factory arguments" +)] +pub(super) fn select( + q: &Array, + pooled: &Array, + frontiers: [Position<'_>; 3], + topk_count: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, + workspace: u64, + stream: Stream, +) -> Result, String> { + select_impl( + q, + pooled, + frontiers, + topk_count, + ratio, + output_tokens, + mode, + workspace, + stream, + false, + ) +} + +#[expect( + clippy::too_many_arguments, + reason = "original compiled prefill factory arguments" +)] +pub(super) fn select_compiled( + q: &Array, + pooled: &Array, + frontiers: [Position<'_>; 3], + topk_count: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, + workspace: u64, + stream: Stream, +) -> Result, String> { + select_impl( + q, + pooled, + frontiers, + topk_count, + ratio, + output_tokens, + mode, + workspace, + stream, + true, + ) +} + +#[expect( + clippy::too_many_arguments, + reason = "shared eager/compiled prefill body" +)] +fn select_impl( + q: &Array, + pooled: &Array, + frontiers: [Position<'_>; 3], + topk_count: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, + workspace: u64, + stream: Stream, + compiled: bool, +) -> Result, String> { + let qs = q.layout(); + let ps = pooled.layout(); + if stream.device() != Device::Gpu + || qs.shape().len() != 4 + || qs.shape()[0] != 1 + || qs.shape()[1] <= 1 + || ps.shape().len() != 3 + || ps.shape()[0] != 1 + || ps.shape()[1] <= 0 + || ps.shape()[2] != qs.shape()[3] + || [qs.dtype(), ps.dtype()] + .iter() + .any(|d| !matches!(d, Dtype::BF16 | Dtype::F16 | Dtype::F32)) + { + return Err("invalid QSA prefill input".into()); + } + let (rows, heads, dim, blocks) = (qs.shape()[1], qs.shape()[2], qs.shape()[3], ps.shape()[1]); + drop((qs, ps)); + let mpp = mpp_supported(q, pooled, stream); + let chunk = chunk_rows(rows, heads, blocks, workspace, 32, mpp)?; + let mut pooled_t = None; + let mut chunks = Vec::new(); + for start in (0..rows).step_by(chunk as usize) { + let q = ops::slice( + q, + &[0, start, 0, 0], + &[1, (start + chunk).min(rows), heads, dim], + &[1; 4], + stream, + )?; + let scores = if mpp { + mpp_scores(&q, pooled, stream)? + } else { + if pooled_t.is_none() { + pooled_t = Some(ops::expand_dims( + &ops::transpose( + &ops::astype(pooled, Dtype::F32, false, stream)?, + &[0, 2, 1], + stream, + )?, + &[1], + stream, + )?); + } + super::attention::qsa_scores(&q, pooled_t.as_ref().unwrap(), dim, stream)? + }; + let pos_array = match frontiers[0] { + Position::Host(_) => None, + Position::Tensor(a) if compiled => Some( + super::qsa_compile::Scalar::Add(start as u32) + .array(std::slice::from_ref(a), stream)?, + ), + Position::Tensor(a) => { + // Even zero adds an original graph operation for traced input. + let scalar = + Array::new(&[], Dtype::I32, super::scalar_buffer(&start.to_le_bytes())?)?; + Some(super::binary::binary( + a, + &scalar, + super::binary::Binary::Add, + stream, + )?) + } + }; + let pos = match &pos_array { + Some(a) => Position::Tensor(a), + None => Position::Host( + frontiers[0] + .static_value() + .unwrap() + .checked_add(start) + .ok_or("QSA position overflow")?, + ), + }; + chunks.push(topk( + &scores, + [pos, frontiers[1], frontiers[2]], + topk_count, + ratio, + output_tokens, + mode, + stream, + )?); + } + if chunks.len() == 1 { + return Ok(chunks.pop().unwrap()); + } + (0..chunks[0].len()) + .map(|leaf| { + ops::concatenate( + &chunks.iter().map(|c| c[leaf].clone()).collect::>(), + if mode == QsaSelectMode::DenseMask { + 2 + } else { + 0 + }, + stream, + ) + }) + .collect() +} diff --git a/src/engine/metal/qwen_mtplx/qsa_prepare.rs b/src/engine/metal/qwen_mtplx/qsa_prepare.rs new file mode 100644 index 0000000..5f29088 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_prepare.rs @@ -0,0 +1,503 @@ +//! Original MTPLX QSA query/pool CustomKernel primitives, including traced positions. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, compile_custom, dispatch_geometry, ops, tensor}; + +#[derive(Clone, Copy)] +pub(super) enum Position<'a> { + Host(i32), + Tensor(&'a Array), +} + +impl Position<'_> { + pub(super) fn array(self, stream: Stream) -> Result { + match self { + Self::Host(n) => Array::new(&[1], Dtype::I32, super::scalar_buffer(&n.to_le_bytes())?), + Self::Tensor(a) => { + if a.layout().dtype() != Dtype::I32 || a.layout().size() != 1 { + return Err("QSA position tensor must be one int32 value".into()); + } + ops::reshape(a, &[1], stream) + } + } + } + + pub(super) fn static_value(&self) -> Option { + match self { + Self::Host(n) => Some(*n), + Self::Tensor(_) => None, + } + } +} + +fn validate_common( + values: &Array, + norm: &Array, + freq: &Array, + ndim: usize, + stream: Stream, +) -> Result<(i32, i32), String> { + let v = values.layout(); + let n = norm.layout(); + let f = freq.layout(); + if stream.device() != Device::Gpu + || v.shape().len() != ndim + || v.shape().first() != Some(&1) + || !matches!(v.dtype(), Dtype::BF16 | Dtype::F16 | Dtype::F32) + { + return Err("QSA preparation requires single-sequence floating GPU inputs".into()); + } + let dim = *v + .shape() + .last() + .ok_or("QSA input must have a head dimension")?; + if n.shape() != [dim] + || n.dtype() != v.dtype() + || f.shape().len() != 1 + || f.dtype() != Dtype::F32 + { + return Err("QSA norm/frequency dimensions or types do not match".into()); + } + let rotary = f.shape()[0] + .checked_mul(2) + .ok_or("QSA rotary dimension overflow")?; + if !(1..=128).contains(&dim) || rotary <= 0 || rotary > dim || rotary % 2 != 0 { + return Err("QSA preparation requires head width <=128 and valid even rotary width".into()); + } + Ok((dim, rotary)) +} + +pub(super) fn supported( + values: &Array, + norm: &Array, + freq: &Array, + ndim: usize, + stream: Stream, +) -> bool { + validate_common(values, norm, freq, ndim, stream).is_ok() +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn queries( + raw: &Array, + norm: &Array, + freq: &Array, + pos: Position<'_>, + eps: f64, + scale: f64, + stream: Stream, +) -> Result { + validate_common(raw, norm, freq, 4, stream)?; + let shape = raw.layout().shape().to_vec(); + if shape[1] <= 0 || shape[2] <= 0 { + return Err("QSA query rows and heads must be positive".into()); + } + make(raw, norm, freq, pos, shape, None, eps, scale, stream) +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn pool( + raw: &Array, + norm: &Array, + freq: &Array, + start: Position<'_>, + ratio: i32, + eps: f64, + scale: f64, + stream: Stream, +) -> Result { + let (dim, _) = validate_common(raw, norm, freq, 3, stream)?; + let tokens = raw.layout().shape()[1]; + if ratio <= 0 || tokens <= 0 || tokens % ratio != 0 { + return Err("QSA pool requires a positive multiple of its compression ratio".into()); + } + make( + raw, + norm, + freq, + start, + vec![1, tokens / ratio, dim], + Some(ratio), + eps, + scale, + stream, + ) +} + +#[allow(clippy::too_many_arguments)] +fn make( + raw: &Array, + norm: &Array, + freq: &Array, + pos: Position<'_>, + shape: Vec, + pool_ratio: Option, + eps: f64, + scale: f64, + stream: Stream, +) -> Result { + let pos = pos.array(stream)?; + if !scale.is_finite() || scale <= 0.0 { + return Err("QSA attention scaling must be finite and positive".into()); + } + Array::make_operation_with_inputs( + stream, + &[raw.clone(), norm.clone(), freq.clone(), pos], + Layout::new(&shape, raw.layout().dtype())?, + ops::Operation::QsaPrepare { + pool_ratio, + eps, + scale, + }, + ) +} + +fn family(pool: bool) -> &'static str { + if pool { "qsa_pool_k" } else { "qsa_prepare_q" } +} + +/// Reuse the checked original body/ABI; only Python's specialization constants +/// and the template/export type change. No rewriting of arithmetic statements. +#[allow(clippy::too_many_arguments)] +fn source( + name: &str, + dtype: Dtype, + heads: i32, + dim: i32, + rotary: i32, + ratio: Option, + eps: f64, + scale: f64, +) -> Result { + let family = family(ratio.is_some()); + let source = include_str!("../../../../metal/mtplx_qwen.metal"); + let scope = source + .split_once(&format!("namespace mtplx_{family} {{")) + .ok_or("missing QSA preparation source")? + .1 + .split_once("\ntypedef") + .ok_or("missing QSA preparation template")? + .0; + let (header, body) = scope + .split_once("// Source: ") + .ok_or("missing QSA source boundary")?; + let constants = [ + ("HEADS", heads.to_string()), + ("HEAD_DIM", dim.to_string()), + ("ROTARY_DIM", rotary.to_string()), + ("HALF_ROTARY", (rotary / 2).to_string()), + ("RATIO", ratio.unwrap_or(1).to_string()), + ("RMS_EPS", format!("{eps:?}f")), + ("ROPE_ATTENTION_SCALE", format!("{scale:?}f")), + ]; + let mut generated = String::from("#include \nusing namespace metal;\n"); + for line in header.lines() { + if let Some((prefix, _)) = line.split_once('=') + && let Some((_, value)) = constants + .iter() + .find(|(key, _)| prefix.split_whitespace().last() == Some(key)) + { + generated.push_str(&format!("{prefix}= {value};\n")); + } else { + generated.push_str(line); + generated.push('\n'); + } + } + generated.push_str("// Source: "); + generated.push_str(body); + let ty = match dtype { + Dtype::BF16 => "bfloat", + Dtype::F16 => "half", + Dtype::F32 => "float", + _ => return Err("unsupported QSA preparation dtype".into()), + }; + generated.push_str(&format!("\ntypedef decltype(kernel_qwen_mtplx_{family}<{ty}>) prepared_type;\ntemplate [[host_name(\"{name}\")]]\nkernel prepared_type kernel_qwen_mtplx_{family}<{ty}>;\n")); + Ok(generated) +} + +pub(super) fn evaluate( + inputs: &[Array], + out: &Array, + ratio: Option, + eps: f64, + scale: f64, +) -> Result<(), String> { + let [raw, norm, freq, pos] = inputs else { + return Err("QSA preparation requires four inputs".into()); + }; + let shape = out.layout().shape().to_vec(); + let dim = *shape.last().unwrap(); + let rotary = freq.layout().shape()[0] * 2; + let heads = if ratio.is_some() { 1 } else { shape[2] }; + let dtype = out.layout().dtype(); + let name = format!( + "kernel_qwen_mtplx_{}_h{heads}_d{dim}_r{rotary}_c{}_e{:016x}_s{:016x}_{}", + family(ratio.is_some()), + ratio.unwrap_or(1), + eps.to_bits(), + scale.to_bits(), + dtype.kernel_name() + ); + // CustomKernel allocates outputs before compiling and binds the original + // views directly (ensure_row_contiguous=False), including singleton strides. + let nbytes = out.layout().nbytes(); + out.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + compile_custom(&name, || { + source(&name, dtype, heads, dim, rotary, ratio, eps, scale) + })?; + let threads = u32::try_from(i64::from(shape[1]) * i64::from(heads) * 32) + .map_err(|_| "QSA preparation grid overflow")?; + dispatch_geometry( + &name, + &[ + tensor(0, &raw.buffer()) + .at_byte_offset(raw.offset()) + .input(raw.data_size()), + bytes(1, raw.layout().strides()), + tensor(2, &norm.buffer()) + .at_byte_offset(norm.offset()) + .input(norm.data_size()), + bytes(3, norm.layout().strides()), + tensor(4, &freq.buffer()) + .at_byte_offset(freq.offset()) + .input(freq.data_size()), + bytes(5, freq.layout().strides()), + tensor(6, &pos.buffer()) + .at_byte_offset(pos.offset()) + .input(pos.data_size()), + tensor(7, &out.buffer()).output(out.data_size()), + ], + &[], + [threads, 1, 1], + [32, 1, 1], + true, + ) +} + +#[test] +#[ignore = "requires Apple Metal; parameterized original QSA preparation and traced positions"] +fn mtplx_qsa_prepare_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-prepare-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 72); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [rows, heads, dim, rotary, ratio, pos] = + ["rows", "heads", "dim", "rotary", "ratio", "pos"] + .map(|k| case[k].as_i64().unwrap() as i32); + let eps = case["eps"].as_f64().unwrap(); + let scale = case["scale"].as_f64().unwrap(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let layout = case["layout"].as_str().unwrap(); + let source_array = |shape: &[i32], salt: u32, dtype: Dtype| { + let count = shape.iter().product::(); + let n = match layout { + "broadcast" => 1, + "offset" => count + 1, + "strided" => count * 2, + _ => count, + }; + let a = ops::astype( + &Array::new(&[n], Dtype::BF16, pattern(n as u32, salt)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + if layout == "broadcast" { + return ops::broadcast_to(&a, shape, gpu).unwrap(); + } + let a = if layout == "offset" { + ops::slice(&a, &[1], &[n], &[1], gpu).unwrap() + } else { + a + }; + let mut physical = shape.to_vec(); + if layout == "strided" { + *physical.last_mut().unwrap() *= 2; + } + let a = ops::reshape(&a, &physical, gpu).unwrap(); + if layout == "strided" { + let mut steps = vec![1; shape.len()]; + *steps.last_mut().unwrap() = 2; + ops::slice(&a, &vec![0; shape.len()], &physical, &steps, gpu).unwrap() + } else { + a + } + }; + let q = source_array(&[1, rows, heads, dim], 160, dtype); + let k = source_array(&[1, rows * ratio, dim], 161, dtype); + let norm = source_array(&[dim], 162, dtype); + let freq = source_array(&[rotary / 2], 163, Dtype::F32); + let scalar = |n: i32| { + Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&n.to_le_bytes()).unwrap(), + ) + .unwrap() + }; + let start = match layout { + "offset" => { + let a = Array::new( + &[2], + Dtype::I32, + super::scalar_buffer( + &[123_i32.to_le_bytes(), pos.to_le_bytes()].concat(), + ) + .unwrap(), + ) + .unwrap(); + ops::reshape( + &ops::slice(&a, &[1], &[2], &[1], gpu).unwrap(), + &[1, 1], + gpu, + ) + .unwrap() + } + "strided" => super::binary::binary( + &ops::reshape(&scalar(pos + 5), &[1, 1], gpu).unwrap(), + &scalar(5), + super::binary::Binary::Subtract, + gpu, + ) + .unwrap(), + _ => scalar(pos), + }; + assert!(supported(&q, &norm, &freq, 4, gpu)); + assert!(supported(&k, &norm, &freq, 3, gpu)); + if prepared { + ops::evaluate( + &streams, + &[ + q.clone(), + k.clone(), + norm.clone(), + freq.clone(), + start.clone(), + ], + gpu, + false, + ) + .unwrap(); + } + let position = || { + if layout == "plain" { + Position::Host(pos) + } else { + Position::Tensor(&start) + } + }; + let out = queries(&q, &norm, &freq, position(), eps, scale, gpu).unwrap(); + let pooled = pool(&k, &norm, &freq, position(), ratio, eps, scale, gpu).unwrap(); + assert_eq!(out.layout().shape(), &[1, rows, heads, dim]); + assert_eq!(pooled.layout().shape(), &[1, rows, dim]); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &[out.clone(), pooled.clone()], gpu, false).unwrap() + }); + let custom = calls + .iter() + .filter(|c| c.0.contains("qsa_prepare_q") || c.0.contains("qsa_pool_k")) + .collect::>(); + assert_eq!(custom.len(), 2); + for call in custom { + assert_eq!(call.2, [32, 1, 1]); + assert!(call.3); + } + if prepared { + assert_eq!( + calls.len(), + 2, + "QSA preparation must not copy strided inputs: {calls:?}" + ); + } + let read = |a: &Array| { + ops::contiguous(&ops::astype(a, Dtype::F32, false, gpu).unwrap(), false, gpu) + .unwrap() + }; + let (out, pooled) = (read(&out), read(&pooled)); + ops::evaluate(&streams, &[out.clone(), pooled.clone()], gpu, false).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[ + (&out.buffer(), (rows * heads * dim) as u32, 4), + (&pooled.buffer(), (rows * dim) as u32, 4), + ], + ); + // Specialization changes the header/export, never the body. + for ratio in [None, Some(ratio)] { + let generated = + source("checked_body", dtype, heads, dim, rotary, ratio, eps, scale) + .unwrap(); + let marker = format!( + "// Source: mtplx/kernels/qsa_indexer_prepare.py::{}", + if ratio.is_some() { + "_pool_keys_kernel" + } else { + "_prepare_queries_kernel" + } + ); + let body = |s: &str| { + s.split_once(") {") + .unwrap() + .1 + .split_once("}\ntypedef") + .unwrap() + .0 + .to_owned() + }; + let original = include_str!("../../../../metal/mtplx_qwen.metal") + .split_once(&marker) + .unwrap() + .1; + assert_eq!(body(&generated), body(original)); + } + }); + } + } + let q = Array::new( + &[1, 1, 1, 2], + Dtype::F32, + super::scalar_buffer(&[0; 8]).unwrap(), + ) + .unwrap(); + let norm = Array::new(&[2], Dtype::F32, super::scalar_buffer(&[0; 8]).unwrap()).unwrap(); + let freq = Array::new(&[1], Dtype::F32, super::scalar_buffer(&[0; 4]).unwrap()).unwrap(); + assert!(!supported(&q, &norm, &freq, 3, gpu)); + assert!(!supported( + &q, + &norm, + &freq, + 4, + streams.default_stream(Device::Cpu).unwrap() + )); + for scale in [0.0, -1.0, f64::INFINITY, f64::NAN] { + assert!(queries(&q, &norm, &freq, Position::Host(0), 1e-6, scale, gpu).is_err()); + } + let wrong = Array::new(&[1], Dtype::I64, super::scalar_buffer(&[0; 8]).unwrap()).unwrap(); + assert!(queries(&q, &norm, &freq, Position::Tensor(&wrong), 1e-6, 1.0, gpu).is_err()); + let wrong = Array::new(&[2], Dtype::I32, super::scalar_buffer(&[0; 8]).unwrap()).unwrap(); + assert!(queries(&q, &norm, &freq, Position::Tensor(&wrong), 1e-6, 1.0, gpu).is_err()); + let k = ops::reshape(&q, &[1, 1, 2], gpu).unwrap(); + for ratio in [0, -1, 2] { + assert!(pool(&k, &norm, &freq, Position::Host(0), ratio, 1e-6, 1.0, gpu).is_err()); + } +} diff --git a/src/engine/metal/qwen_mtplx/qsa_select.rs b/src/engine/metal/qwen_mtplx/qsa_select.rs new file mode 100644 index 0000000..0275b5b --- /dev/null +++ b/src/engine/metal/qwen_mtplx/qsa_select.rs @@ -0,0 +1,487 @@ +//! Original qsa_indexer_select_metal CustomKernel: static geometry, device +//! frontiers, strided floating inputs and a private scratch sibling. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::qsa_prepare::Position; +use super::stream::{Device, Stream}; +use super::{QsaSelectMode, bytes, ops, tensor}; + +#[derive(Clone, Copy)] +pub(super) struct Kernel { + pub(super) heads: i32, + pub(super) dim: i32, + pub(super) blocks: i32, + pub(super) topk: i32, + pub(super) ratio: i32, + pub(super) dense_width: i32, + pub(super) mode: QsaSelectMode, + pub(super) tf32: bool, + pub(super) dtypes: [Dtype; 2], +} + +impl Kernel { + pub(super) fn width(self) -> u32 { + (self.topk as u32).max(256).next_power_of_two() + } + + pub(super) fn name(self) -> String { + let tag = |d| match d { + Dtype::BF16 => "bf16", + Dtype::F16 => "f16", + _ => "f32", + }; + format!( + "kernel_qwen_mtplx_qsa_select_{}_h{}_d{}_n{}_k{}_r{}_w{}_t{}_tf{}_{}_{}", + self.mode.name(), + self.heads, + self.dim, + self.blocks, + self.topk, + self.ratio, + self.width(), + self.dense_width, + u8::from(self.tf32), + tag(self.dtypes[0]), + tag(self.dtypes[1]) + ) + } + + pub(super) fn source(self) -> Result { + let parts: serde_json::Value = + serde_json::from_str(include_str!("../../../../metal/mtplx-qsa-select.json")) + .map_err(|e| e.to_string())?; + let section = &parts["epilogues"][self.mode.name()]; + let string = |v: &serde_json::Value| { + v.as_str() + .map(str::to_owned) + .ok_or("invalid QSA source section".to_owned()) + }; + let mut source = string(&parts["header"])?; + source.push_str(&format!( + "\nconstant constexpr uint HEADS = {};\nconstant constexpr uint HEAD_DIM = {};\nconstant constexpr uint BACKING_BLOCKS = {};\nconstant constexpr uint TOP_K = {};\nconstant constexpr uint RATIO = {};\nconstant constexpr uint WIDTH = {};\nconstant constexpr uint RADIX_BINS = 256;\nconstant constexpr uint OUTPUT_TOKENS = {};\nconstant constexpr bool ENABLE_TF32 = {};\nconstant constexpr bool ROW_TOKEN_MODE = {};\nconstant constexpr bool Q_INPUT_IS_FLOAT32 = {};\nconstant constexpr bool POOLED_INPUT_IS_FLOAT32 = {};\nconstant constexpr float SQRT_HEAD_DIM = {:?}f;\n", + self.heads,self.dim,self.blocks,self.topk,self.ratio,self.width(),self.dense_width,self.tf32, + self.mode==QsaSelectMode::RowTokens,self.dtypes[0]==Dtype::F32,self.dtypes[1]==Dtype::F32,f64::from(self.dim).sqrt())); + let dtype = |d| match d { + Dtype::BF16 => "bfloat", + Dtype::F16 => "half", + _ => "float", + }; + let mut args = vec![ + format!("device const {}* q", dtype(self.dtypes[0])), + "constant const int* q_shape".into(), + "constant const int64_t* q_strides".into(), + format!("device const {}* pooled", dtype(self.dtypes[1])), + "constant const int64_t* pooled_strides".into(), + "device const int* pos_start".into(), + "device const int* total_tokens".into(), + "device const int* logical_blocks".into(), + ]; + args.extend(super::qsa_output_args(section)?); + args.push("device float* score_scratch".into()); + Ok(super::qsa_shader_source( + &source, + &self.name(), + &args, + &(string(&parts["body"])? + &string(§ion["source"])?), + )) + } + + pub(super) fn layouts(self, rows: i32) -> Result, String> { + let mut outputs = + selection_layouts(rows, self.topk, self.ratio, self.dense_width, self.mode)?; + outputs.push(Layout::new(&[rows, self.blocks], Dtype::F32)?); + Ok(outputs) + } +} + +pub(super) fn selection_layouts( + rows: i32, + topk: i32, + ratio: i32, + dense_width: i32, + mode: QsaSelectMode, +) -> Result, String> { + Ok(match mode { + QsaSelectMode::Blocks => vec![ + Layout::new(&[rows, topk], Dtype::I32)?, + Layout::new(&[rows, topk], Dtype::Bool)?, + Layout::new(&[rows, topk], Dtype::F32)?, + ], + QsaSelectMode::DenseMask => { + vec![Layout::new(&[1, 1, rows, dense_width], Dtype::Bool)?] + } + QsaSelectMode::RowTokens => { + let width = topk + .checked_add(1) + .and_then(|k| k.checked_mul(ratio)) + .ok_or("QSA token width overflow")?; + vec![ + Layout::new(&[rows, width], Dtype::I32)?, + Layout::new(&[rows, width], Dtype::Bool)?, + ] + } + }) +} + +/// Same host-vs-device validation as _validate; traced scalars are never read. +#[expect( + clippy::too_many_arguments, + reason = "original custom-kernel factory parameters" +)] +pub(super) fn select( + q: &Array, + pooled: &Array, + frontiers: [Position<'_>; 3], + topk: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, + stream: Stream, +) -> Result, String> { + let qs = q.layout(); + let ps = pooled.layout(); + if stream.device() != Device::Gpu + || qs.shape().len() != 4 + || qs.shape()[0] != 1 + || ps.shape().len() != 3 + || ps.shape()[0] != 1 + || qs.shape()[1..].iter().any(|&d| d <= 0) + || ps.shape()[2] != qs.shape()[3] + || [qs.dtype(), ps.dtype()] + .iter() + .any(|d| !matches!(d, Dtype::BF16 | Dtype::F16 | Dtype::F32)) + || !(1..=512).contains(&topk) + || ratio <= 0 + { + return Err("invalid QSA fused selector geometry/dtypes".into()); + } + let rows = qs.shape()[1]; + let blocks = ps.shape()[1]; + let dense_width = selection_width(&frontiers, rows, blocks, topk, ratio, output_tokens, mode)?; + let kernel = Kernel { + heads: qs.shape()[2], + dim: qs.shape()[3], + blocks, + topk, + ratio, + dense_width, + mode, + tf32: super::sparse_attention::nax_available() && super::dense::tf32_enabled(), + dtypes: [qs.dtype(), ps.dtype()], + }; + drop((qs, ps)); + let [pos, total, logical] = frontiers.map(|n| n.array(stream)); + let mut outputs = Array::make_operations( + stream, + &[q.clone(), pooled.clone(), pos?, total?, logical?], + &kernel.layouts(rows)?, + ops::Operation::QsaSelect(kernel), + )?; + // Private scratch remains a sibling, alive whenever any public result is. + outputs.pop(); + Ok(outputs) +} + +pub(super) fn selection_width( + frontiers: &[Position<'_>; 3], + rows: i32, + blocks: i32, + topk: i32, + ratio: i32, + output_tokens: Option, + mode: QsaSelectMode, +) -> Result { + if !(1..=512).contains(&topk) || ratio <= 0 { + return Err("invalid QSA topk/ratio".into()); + } + let [start, total, logical] = frontiers.each_ref().map(Position::static_value); + if start.is_some_and(|n| n < 0) + || total.is_some_and(|n| n < 0) + || start + .zip(total) + .is_some_and(|(p, t)| i64::from(t) < i64::from(p) + i64::from(rows)) + || logical.is_some_and(|n| n < 0 || n > blocks) + || logical.zip(total).is_some_and(|(n, t)| n != t / ratio) + { + return Err("invalid QSA selector logical frontier".into()); + } + let dense_width = if mode == QsaSelectMode::DenseMask { + let width = output_tokens + .or(total) + .ok_or("dynamic QSA total requires static output width")?; + if width < 0 || total.is_some_and(|n| width < n) { + return Err("QSA output width smaller than total".into()); + } + width + } else { + 0 + }; + Ok(dense_width) +} + +pub(super) fn evaluate(inputs: &[Array], outputs: &[Array], kernel: Kernel) -> Result<(), String> { + if inputs.len() != 5 || outputs.len() != kernel.layouts(inputs[0].layout().shape()[1])?.len() { + return Err("invalid QSA selector input/output count".into()); + } + // Original CustomKernel allocates every sibling before shader compilation. + for output in outputs { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + encode(inputs, outputs, kernel) +} + +/// Shared with the legacy Buffer adapter; no duplicate shader/launch path. +pub(super) fn encode(inputs: &[Array], outputs: &[Array], kernel: Kernel) -> Result<(), String> { + let q = &inputs[0]; + let pooled = &inputs[1]; + let qs = q.layout(); + let ps = pooled.layout(); + let input_buffers = inputs.iter().map(Array::buffer).collect::>(); + let output_buffers = outputs.iter().map(Array::buffer).collect::>(); + let name = kernel.name(); + super::compile_custom(&name, || kernel.source())?; + let mut bindings = vec![ + tensor(0, &input_buffers[0]) + .at_byte_offset(q.offset()) + .input(q.data_size()), + bytes(1, qs.shape()), + bytes(2, qs.strides()), + tensor(3, &input_buffers[1]) + .at_byte_offset(pooled.offset()) + .input(pooled.data_size()), + bytes(4, ps.strides()), + ]; + for i in 2..5 { + bindings.push( + tensor(i as u32 + 3, &input_buffers[i]) + .at_byte_offset(inputs[i].offset()) + .input(1), + ); + } + for (i, buffer) in output_buffers.iter().enumerate() { + bindings.push(tensor(i as u32 + 8, buffer).output(outputs[i].layout().size())); + } + let width = kernel.width(); + let threads = (qs.shape()[1] as u32) + .checked_mul(width) + .ok_or("QSA dispatch width overflow")?; + super::dispatch_geometry(&name, &bindings, &[], [threads, 1, 1], [width, 1, 1], true) +} + +#[test] +#[ignore = "requires Apple Metal and original QSA selector receipts; no model weights"] +fn mtplx_qsa_fused_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + allocator, + binary::{self, Binary}, + configure_sources, eval, + mlp::Linear, + qsa_indexer::Indexer, + stream::Streams, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let tf32 = std::env::var("MLX_ENABLE_TF32").ok().as_deref() != Some("0"); + let cases = include_str!("../../../../tests/fixtures/mtplx-qsa-fused-graph.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|case| case["tf32"].as_bool() == Some(tf32)) + .collect::>(); + assert_eq!(cases.len(), 63); + let dtype = |tag: &str| match tag { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => panic!("unexpected dtype {tag}"), + }; + for prepared in [false, true] { + for dynamic in [false, true] { + for case in &cases { + let kind = case["kind"].as_str().unwrap(); + if dynamic && kind == "chunk" { + continue; + } + eval::execution_tests::observed(|| { + let num = |s: &str| case[s].as_i64().unwrap() as i32; + let (rows, heads, dim, blocks) = + (num("rows"), num("heads"), num("dim"), num("blocks")); + let (topk, ratio, pos) = (num("topk"), num("ratio"), num("pos")); + let total = pos + rows; + let mode = match case["mode"].as_str().unwrap() { + "blocks" => QsaSelectMode::Blocks, + "row_tokens" => QsaSelectMode::RowTokens, + _ => QsaSelectMode::DenseMask, + }; + let source = |shape: &[i32], salt, dtype| { + let count = shape.iter().product::(); + let mut a = ops::astype( + &Array::new(shape, Dtype::BF16, pattern(count as u32, salt)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + if dtype == Dtype::F32 { + let bytes = (0..count) + .flat_map(|i| ((i % 7) as f32 / 65536.).to_le_bytes()) + .collect::>(); + let delta = Array::new( + shape, + Dtype::F32, + super::scalar_buffer(&bytes).unwrap(), + ) + .unwrap(); + a = binary::binary(&a, &delta, Binary::Add, gpu).unwrap(); + } + a + }; + let qshape = if kind == "transpose" { + vec![1, rows, dim, heads] + } else { + vec![ + 1, + if kind == "broadcast" { 1 } else { rows }, + heads, + dim * if kind == "strided" { 2 } else { 1 }, + ] + }; + let pshape = if kind == "transpose" { + vec![1, dim, blocks] + } else { + vec![1, blocks, dim * if kind == "strided" { 2 } else { 1 }] + }; + let mut q = source(&qshape, 201, dtype(case["dtype"].as_str().unwrap())); + let mut p = source(&pshape, 202, dtype(case["pdtype"].as_str().unwrap())); + if kind == "transpose" { + q = ops::transpose(&q, &[0, 1, 3, 2], gpu).unwrap(); + p = ops::transpose(&p, &[0, 2, 1], gpu).unwrap(); + } else if kind == "strided" { + q = ops::slice(&q, &[0; 4], &qshape, &[1, 1, 1, 2], gpu).unwrap(); + p = ops::slice(&p, &[0; 3], &pshape, &[1, 1, 2], gpu).unwrap(); + } else if kind == "broadcast" { + q = ops::broadcast_to(&q, &[1, rows, heads, dim], gpu).unwrap(); + } + if prepared { + ops::evaluate(&streams, &[q.clone(), p.clone()], gpu, false).unwrap(); + } + let scalars = [pos, total, total / ratio].map(|n| { + Array::new( + &[], + Dtype::I32, + super::scalar_buffer(&n.to_le_bytes()).unwrap(), + ) + .unwrap() + }); + let (outputs, construction) = capture_dispatches(|| { + if kind == "chunk" { + let indexer = Indexer { + projection: Some(Linear::Dense(&q)), + heads, + kv_heads: 1, + head_dim: dim, + block_topk: topk, + ratio, + q_norm: &q, + k_norm: &q, + inv_freq: &q, + eps: 1e-6, + scaling: 1., + scratch: 32 * 1024 * 1024, + compiled: None, + }; + indexer + .select_fused(&q, pos, &p, total, total / ratio, mode, gpu) + .unwrap() + } else { + let frontiers = if dynamic { + scalars.each_ref().map(Position::Tensor) + } else { + [pos, total, total / ratio].map(Position::Host) + }; + select(&q, &p, frontiers, topk, ratio, Some(total + 3), mode, gpu) + .unwrap() + } + }); + assert!(construction.is_empty()); + if kind != "chunk" { + let siblings = outputs[0].outputs(); + assert_eq!(siblings.len(), outputs.len() + 1); + let scratch = siblings.last().unwrap().layout(); + assert_eq!(scratch.shape(), &[rows, blocks]); + assert_eq!(scratch.dtype(), Dtype::F32); + } + drop((q, p, scalars)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &[outputs[0].clone()], gpu, false).unwrap() + }); + let selectors = calls + .iter() + .filter(|(name, _, _, _)| name.starts_with("kernel_qwen_mtplx_qsa_select_")) + .collect::>(); + let chunks = if kind == "chunk" { + vec![127, 2] + } else { + vec![rows] + }; + assert_eq!(selectors.len(), chunks.len()); + let width = (topk as u32).max(256).next_power_of_two(); + // Scheduler order need not match chunk order; geometry must. + let mut actual = selectors + .iter() + .map(|(_, grid, threads, individual)| { + assert_eq!(*threads, [width, 1, 1]); + assert!(*individual); + *grid + }) + .collect::>(); + let mut expected = chunks + .iter() + .map(|&r| [r as u32 * width, 1, 1]) + .collect::>(); + actual.sort(); + expected.sort(); + assert_eq!(actual, expected); + for (out, shape) in outputs.iter().zip(case["shapes"].as_array().unwrap()) { + assert_eq!( + out.layout().shape(), + shape + .as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap() as i32) + .collect::>() + ); + } + let outputs = outputs + .iter() + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &outputs, gpu, false).unwrap(); + let buffers = outputs.iter().map(Array::buffer).collect::>(); + verify_typed( + case["kernel"].as_str().unwrap(), + &outputs + .iter() + .zip(&buffers) + .map(|(a, b)| (&**b, a.layout().size() as u32, 4)) + .collect::>(), + ); + }); + } + } + } +} diff --git a/src/engine/metal/qwen_mtplx/random.rs b/src/engine/metal/qwen_mtplx/random.rs new file mode 100644 index 0000000..78b5be3 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/random.rs @@ -0,0 +1,545 @@ +//! Keyed resident sampling from MTPLX's pinned runtime random.cpp. The GPU +//! Threefry implementation is loaded unchanged from the original metallib. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::binary::{Binary, binary}; +use super::stream::Stream; +use super::{bytes, dispatch_geometry, indexing, ops, reduce, sort, tensor, unary}; + +/// The pinned runtime's thread-local default KeySequence. Keep one instance +/// on the inference owner, shared by unkeyed operations, not one per sampler +/// call. Splits use the default stream even when the draw uses another stream. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) struct KeySequence { + key: Array, + default_stream: Stream, +} + +impl KeySequence { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn new(seed: u64, default_stream: Stream) -> Result { + Ok(Self { + key: key(seed)?, + default_stream, + }) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn seed(&mut self, seed: u64) -> Result<(), String> { + self.key = key(seed)?; + Ok(()) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn next(&mut self) -> Result { + let (next, sub) = split(&self.key, self.default_stream)?; + self.key = next; + Ok(sub) + } +} + +pub(super) fn key(seed: u64) -> Result { + Array::new( + &[2], + Dtype::U32, + super::scalar_buffer( + &[(seed >> 32) as u32, seed as u32] + .into_iter() + .flat_map(u32::to_le_bytes) + .collect::>(), + )?, + ) +} + +pub(super) fn bits_u32(key: &Array, shape: &[i32], stream: Stream) -> Result { + if key.layout().dtype() != Dtype::U32 || key.layout().shape() != [2] { + return Err("[bits] Expected key shape (2) and dtype uint32".into()); + } + Array::make_operation( + stream, + key, + Layout::new(shape, Dtype::U32)?, + ops::Operation::RandomBits, + ) +} + +pub(super) fn split(key: &Array, stream: Stream) -> Result<(Array, Array), String> { + let bits = bits_u32(key, &[2, 2], stream)?; + let parts = ops::split(&bits, &[1], 0, stream)?; + Ok(( + ops::reshape(&parts[0], &[2], stream)?, + ops::reshape(&parts[1], &[2], stream)?, + )) +} + +pub(super) fn bits_evaluate(key: &Array, output: &Array) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if nbytes == 0 { + return Ok(()); + } + let words = nbytes / 4; + let odd = !words.is_multiple_of(2); + let grid = [ + 1, + u32::try_from(words.div_ceil(2)).map_err(|_| "random grid overflow")?, + 1, + ]; + let layout = key.layout(); + let ndim = layout.shape().len() as i32; + let kb = key.buffer(); + let ob = output.buffer(); + let mut bindings = vec![ + tensor(0, &kb) + .at_byte_offset(key.offset()) + .input(key.data_size()), + tensor(1, &ob).output(output.data_size()), + bytes(2, &odd), + bytes(3, &nbytes), + ]; + let contiguous = layout.flags().row_contiguous; + if !contiguous { + bindings.extend([ + bytes(4, &ndim), + bytes(5, layout.shape()), + bytes(6, layout.strides()), + ]); + } + dispatch_geometry( + if contiguous { "rbitsc" } else { "rbits" }, + &bindings, + &[], + grid, + super::block_dims(grid), + true, + ) +} + +pub(super) fn uniform_f32(key: &Array, shape: &[i32], stream: Stream) -> Result { + // Retain all original graph operations, including 1 * u + 0. Pipeline + // compilation may simplify them; the eager sampler must not do so here. + let lo = scalar(0.0)?; + let hi = scalar(1.0)?; + let range = binary(&hi, &lo, Binary::Subtract, stream)?; + let bits = bits_u32(key, shape, stream)?; + let out = binary(&bits, &scalar(u32::MAX as f32)?, Binary::Divide, stream)?; + let out = binary( + &out, + &scalar(f32::from_bits(0x3f7fffff))?, + Binary::Minimum, + stream, + )?; + binary( + &binary(&range, &out, Binary::Multiply, stream)?, + &lo, + Binary::Add, + stream, + ) +} + +pub(super) fn scalar(value: f32) -> Result { + Array::new(&[], Dtype::F32, super::scalar_buffer(&value.to_le_bytes())?) +} + +/// categorical(sv[None], key): the pinned runtime selects inverse CDF for +/// one distribution with output shape [1], not the Gumbel-max route. +pub(super) fn categorical_row( + logits: &Array, + key: &Array, + stream: Stream, +) -> Result { + if logits.layout().shape().len() != 1 || logits.layout().size() == 0 { + return Err("resident categorical requires a nonempty logits row".into()); + } + ops::reshape( + &categorical_inverse_cdf(logits, key, &[1], stream)?, + &[], + stream, + ) +} + +/// random.categorical(axis=-1): singleton prefixes use inverse CDF; a vector +/// without prefix and multi-row batches use the original Gumbel-max graph. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) fn categorical_last( + logits: &Array, + key: &Array, + stream: Stream, +) -> Result { + let layout = logits.layout(); + let mut shape = layout.shape().to_vec(); + let n = shape + .pop() + .ok_or("categorical requires a valid last axis")?; + let inverse_cdf = n > 0 && layout.size() == n as usize && !shape.is_empty(); + drop(layout); + if inverse_cdf { + return categorical_inverse_cdf(&ops::reshape(logits, &[n], stream)?, key, &shape, stream); + } + let uniform = uniform_f32(key, logits.layout().shape(), stream)?; + let log = unary::unary(&uniform, unary::Unary::Log, stream)?; + let negative = unary::unary(&log, unary::Unary::Negative, stream)?; + let log = unary::unary(&negative, unary::Unary::Log, stream)?; + let gumbel = unary::unary(&log, unary::Unary::Negative, stream)?; + reduce::argmax( + &binary(&gumbel, logits, Binary::Add, stream)?, + -1, + false, + stream, + ) +} + +fn categorical_inverse_cdf( + logits: &Array, + key: &Array, + shape: &[i32], + stream: Stream, +) -> Result { + let x = ops::astype(logits, Dtype::F32, false, stream)?; + let m = reduce::max(&x, &[0], false, stream)?; + let isinf = binary( + &binary(&m, &scalar(f32::INFINITY)?, Binary::Equal, stream)?, + &binary(&m, &scalar(f32::NEG_INFINITY)?, Binary::Equal, stream)?, + Binary::LogicalOr, + stream, + )?; + let w = indexing::select( + &isinf, + &ops::astype( + &binary(&x, &m, Binary::Equal, stream)?, + Dtype::F32, + false, + stream, + )?, + &unary::unary( + &binary(&x, &m, Binary::Subtract, stream)?, + unary::Unary::Exp, + stream, + )?, + stream, + )?; + let cdf = indexing::cumsum_last_f32(&w, false, stream)?; + let u = binary( + &uniform_f32(key, shape, stream)?, + &reduce::sum(&w, &[0], false, stream)?, + Binary::Multiply, + stream, + )?; + let found = sort::searchsorted(&cdf, &u, true, stream)?; + let one = Array::new(&[], Dtype::U32, super::scalar_buffer(&1_u32.to_le_bytes())?)?; + binary(&found, &one, Binary::Subtract, stream) +} + +#[test] +#[ignore = "requires Apple Metal; original target-prefix sampler and default RNG"] +fn mtplx_sampler_prefix_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{ + allocator, configure_sources, + sampling::{SamplerConfig, sample_token_ids}, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-prefix.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 162); + let configs = [ + (0.6, 0.95, 20), + (0.0, 0.95, 20), + (0.6, 0.95, 0), + (0.6, 0.95, 33), + (0.6, 1.0, 0), + (0.6, 0.95, 32), + (0.6, 1.0, 33), + (1e-7, 0.01, 20), + (0.6, 1.0, 1), + (0.6, 1.0, 999999), + (0.6, 0.95, 20), + ]; + for (index, case) in cases.iter().enumerate() { + eprintln!("prefix sampler reference {index}/{}", cases.len()); + let vocab = case["vocab"].as_i64().unwrap() as i32; + let layout = case["layout"].as_str().unwrap(); + let shape = match layout { + "vector" => vec![vocab], + "singleton" => vec![1, vocab], + _ => vec![2, 2, vocab], + }; + let size = if layout == "broadcast" { + vocab + } else { + shape.iter().product::() * if layout == "strided" { 2 } else { 1 } + }; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let data = (0..size) + .flat_map(|i| { + let v = if case["mode"] == "equal" { + 1.0 + } else if case["mode"] == "nonfinite" && i % 7 < 3 { + [f32::NAN, f32::INFINITY, f32::NEG_INFINITY][i as usize % 7] + } else { + ((i * 17 + 96 * 13) % 257 - 128) as f32 / 131.0 + }; + v.to_le_bytes() + }) + .collect::>(); + let row = ops::astype( + &Array::new(&[size], Dtype::F32, super::scalar_buffer(&data).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + let row = binary( + &row, + &ops::astype(&scalar(0.0).unwrap(), dtype, false, gpu).unwrap(), + Binary::Add, + gpu, + ) + .unwrap(); + let row = match layout { + "strided" => ops::slice(&row, &[1], &[size], &[2], gpu).unwrap(), + "reverse" => ops::slice(&row, &[size - 1], &[-size - 1], &[-1], gpu).unwrap(), + _ => row, + }; + let row = if layout == "broadcast" { + ops::broadcast_to(&row, &shape, gpu).unwrap() + } else { + ops::reshape(&row, &shape, gpu).unwrap() + }; + let mut rng = KeySequence::new(4294967297, gpu).unwrap(); + for (step, &(temperature, top_p, top_k)) in configs.iter().enumerate() { + if step == 8 { + rng.seed(17).unwrap(); + } + let expected = &case["outputs"][step]; + let before = streams.with_gpu(gpu, |s| Ok(s.commits())).unwrap(); + let (result, calls) = capture_dispatches(|| { + sample_token_ids( + &row, + &SamplerConfig { + temperature, + top_p, + top_k, + ..SamplerConfig::default() + }, + &mut rng, + gpu, + ) + }); + assert!(calls.is_empty(), "prefix construction dispatched GPU work"); + assert_eq!(streams.with_gpu(gpu, |s| Ok(s.commits())).unwrap(), before); + let mut actual = match result { + Err(error) => serde_json::json!({"error":error}), + Ok(None) => serde_json::json!({"none":true}), + Ok(Some(token)) => { + ops::evaluate(&streams, std::slice::from_ref(&token), gpu, false).unwrap(); + serde_json::json!({"tokens": ops::read_i64(&token, &streams, gpu).unwrap(), "shape":token.layout().shape()}) + } + }; + actual["key"] = serde_json::json!(ops::read_i64(&rng.key, &streams, gpu).unwrap()); + assert_eq!( + actual, *expected, + "prefix case {index}, step {step}: {case}" + ); + } + } +} + +#[test] +#[ignore = "requires Apple Metal; original MTPLX resident sampling and keyed RNG"] +fn mtplx_sampler_resident_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, hex_digest}, + }; + use super::{ + allocator, configure_sources, + eval::Status, + sampling::{SamplerConfig, lazy_sample}, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-resident.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 387); + let commits = || streams.with_gpu(gpu, |s| Ok(s.commits())).unwrap(); + let hash = |a: &Array| { + let mut data = vec![0; a.layout().nbytes()]; + a.buffer().read(a.offset(), &mut data).unwrap(); + hex_digest(&data) + }; + for (index, case) in cases.iter().enumerate() { + eprintln!("resident sampler reference {index}/{}", cases.len()); + let before = commits(); + let layout = case["layout"].as_str().unwrap(); + if case["kind"] == "rng" { + let seed = case["seed"].as_u64().unwrap(); + let raw = if layout == "strided" { + let data = [ + (seed >> 32) as u32, + (seed >> 32) as u32, + seed as u32, + seed as u32, + ] + .into_iter() + .flat_map(u32::to_le_bytes) + .collect::>(); + ops::slice( + &Array::new(&[4], Dtype::U32, super::scalar_buffer(&data).unwrap()).unwrap(), + &[0], + &[4], + &[2], + gpu, + ) + .unwrap() + } else if layout == "reverse" { + ops::slice(&key(seed).unwrap(), &[1], &[-3], &[-1], gpu).unwrap() + } else { + key(seed).unwrap() + }; + let shape = case["shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + let bits = bits_u32(&raw, &[shape.iter().product(), 2], gpu).unwrap(); + let uniform = uniform_f32(&raw, &shape, gpu).unwrap(); + let mut lane_key = raw; + let mut keys = Vec::new(); + for _ in 0..4 { + let (next, sub) = split(&lane_key, gpu).unwrap(); + lane_key = next; + keys.push(sub); + } + assert_eq!(commits(), before, "RNG graph construction synchronized"); + let mut roots = vec![bits.clone(), uniform.clone(), lane_key.clone()]; + roots.extend(keys.iter().cloned()); + ops::evaluate(&streams, &roots, gpu, false).unwrap(); + assert_eq!(hash(&bits), case["bits"], "bits case {index}"); + assert_eq!(hash(&uniform), case["uniform"], "uniform case {index}"); + for (k, expected) in keys.iter().zip(case["keys"].as_array().unwrap()) { + assert_eq!( + serde_json::json!(ops::read_i64(k, &streams, gpu).unwrap()), + *expected + ); + } + assert_eq!( + serde_json::json!(ops::read_i64(&lane_key, &streams, gpu).unwrap()), + case["final_key"] + ); + continue; + } + let vocab = case["vocab"].as_i64().unwrap() as i32; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let size = if layout == "strided" { + 2 * vocab + } else if layout == "broadcast" { + 1 + } else { + vocab + }; + let data = (0..size) + .flat_map(|i| { + let value = if case["mode"] == "equal" { + 1.0 + } else if case["mode"] == "nonfinite" && i % 7 < 3 { + [f32::NAN, f32::INFINITY, f32::NEG_INFINITY][i as usize % 7] + } else { + ((i * 17 + 96 * 13) % 257 - 128) as f32 / 131.0 + }; + value.to_le_bytes() + }) + .collect::>(); + let row = ops::astype( + &Array::new(&[size], Dtype::F32, super::scalar_buffer(&data).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + let row = binary( + &row, + &ops::astype(&scalar(0.0).unwrap(), dtype, false, gpu).unwrap(), + Binary::Add, + gpu, + ) + .unwrap(); + let row = match layout { + "strided" => ops::slice(&row, &[1], &[size], &[2], gpu).unwrap(), + "reverse" => ops::slice(&row, &[size - 1], &[-size - 1], &[-1], gpu).unwrap(), + "broadcast" => ops::broadcast_to(&row, &[vocab], gpu).unwrap(), + _ => row, + }; + let config = SamplerConfig { + temperature: case["temperature"].as_f64().unwrap(), + top_p: case["top_p"].as_f64().unwrap(), + top_k: case["k"].as_i64().unwrap() as i32, + ..SamplerConfig::default() + }; + let mut lane_key = key(17).unwrap(); + let mut tokens = Vec::new(); + let (_, build_calls) = capture_dispatches(|| { + for _ in 0..4 { + let (next, sub) = split(&lane_key, gpu).unwrap(); + lane_key = next; + let token = lazy_sample(&row, &config, &sub, gpu).unwrap(); + assert_eq!(token.status(), Status::Unscheduled); + assert_eq!(token.layout().shape(), &[] as &[i32]); + tokens.push(token); + } + }); + assert!(build_calls.is_empty()); + assert_eq!( + commits(), + before, + "resident graph construction synchronized" + ); + let mut roots = tokens.clone(); + roots.push(lane_key.clone()); + let (_, calls) = + capture_dispatches(|| ops::evaluate(&streams, &roots, gpu, false).unwrap()); + assert_eq!(calls.iter().filter(|c| c.0 == "rbitsc").count(), 8); + assert_eq!( + calls + .iter() + .filter(|c| c.0 == "searchsorted_float32_right") + .count(), + 4 + ); + let actual = tokens + .iter() + .map(|t| ops::read_i64(t, &streams, gpu).unwrap()[0]) + .collect::>(); + assert_eq!( + serde_json::json!(actual), + case["tokens"], + "sampler case {index}: {case}" + ); + assert_eq!( + serde_json::json!(ops::read_i64(&lane_key, &streams, gpu).unwrap()), + case["final_key"] + ); + } +} diff --git a/src/engine/metal/qwen_mtplx/reduce.rs b/src/engine/metal/qwen_mtplx/reduce.rs new file mode 100644 index 0000000..3e6e5af --- /dev/null +++ b/src/engine/metal/qwen_mtplx/reduce.rs @@ -0,0 +1,1217 @@ +//! Reduction planning/dispatch from the pinned runtime's common/reduce.cpp and +//! metal/reduce.cpp. The shader bodies come from the original metallib. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::Stream; +use super::{bytes, dispatch_geometry, encoder, ops, tensor, views}; + +/// ops.cpp::argmax(axis): singleton axes produce uint32 zeros; otherwise +/// preserve the reduction axis until the optional final squeeze. +pub(super) fn argmax( + input: &Array, + axis: i32, + keepdims: bool, + stream: Stream, +) -> Result { + let layout = input.layout(); + if layout.size() == 0 { + return Err("argmax cannot reduce a zero-size array".into()); + } + let axis = ops::axes(&[axis], layout.shape().len())?[0]; + let mut shape = layout.shape().to_vec(); + let singleton = shape[axis] == 1; + shape[axis] = 1; + drop(layout); + let output = if singleton { + ops::zeros(&shape, Dtype::U32, stream)? + } else { + Array::make_operation( + stream, + input, + Layout::new(&shape, Dtype::U32)?, + ops::Operation::ArgMax(axis), + )? + }; + if keepdims { + Ok(output) + } else { + ops::squeeze(&output, Some(&[axis as i32]), stream) + } +} + +/// metal/primitives.cpp::ArgReduce::eval_gpu, using the pinned metallib. +/// Neither materialize a contiguous input nor donate its allocation. +pub(super) fn argmax_evaluate(input: &Array, output: &Array, axis: usize) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let layout = input.layout(); + let name = format!("argmax_{}", layout.dtype().kernel_name()); + let mut shape = layout.shape().to_vec(); + let mut strides = layout.strides().to_vec(); + let axis_size = shape.remove(axis) as usize; + let axis_stride = strides.remove(axis); + let ndim = shape.len(); + let out = output.layout(); + let mut out_strides = out.strides().to_vec(); + if out_strides.len() == layout.strides().len() { + out_strides.remove(axis); + } + let max_threads = views::kernel_max_threads(&name)?; + let group = (axis_size.div_ceil(4).min(max_threads as usize) as u32).div_ceil(32) * 32; + if group > max_threads { + return Err("argmax threadgroup exceeds pipeline limit".into()); + } + let grid = views::shape_grid(out.shape(), out.strides(), 1)?; + dispatch_geometry( + &name, + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &output.buffer()) + .at_byte_offset(output.offset()) + .output(output.data_size()), + bytes::<[i32]>(2, if ndim == 0 { &[0] } else { &shape }), + bytes::<[i64]>(3, if ndim == 0 { &[0] } else { &strides }), + bytes::<[i64]>(4, if ndim == 0 { &[0] } else { &out_strides }), + bytes(5, &ndim), + bytes(6, &axis_stride), + bytes(7, &axis_size), + ], + &[], + [group, grid[0], grid[1]], + [group, 1, 1], + true, + ) +} + +#[test] +#[ignore = "requires Apple Metal; original MTPLX greedy ArgReduce and storage"] +fn mtplx_sampler_argmax_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, hex_digest}, + }; + use super::{ + allocator, configure_sources, scalar_buffer, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-argmax.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 480); + for (index, case) in cases.iter().enumerate() { + let cols = case["cols"].as_i64().unwrap() as i32; + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let values = |shape: &[i32]| { + let data = (0..shape.iter().map(|&d| d as usize).product()) + .flat_map(|i| { + let value = if case["mode"] == "nonfinite" && i % 7 < 3 { + [f32::NAN, f32::INFINITY, f32::NEG_INFINITY][i % 7] + } else { + (((i * 17 + 96 * 13) % 257) as i32 - 128) as f32 / 131_f32 + }; + value.to_le_bytes() + }) + .collect::>(); + ops::astype( + &Array::new(shape, Dtype::F32, scalar_buffer(&data).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + let input = match case["layout"].as_str().unwrap() { + "offset" => ops::reshape( + &ops::slice(&values(&[6 * cols + 1]), &[1], &[6 * cols + 1], &[1], gpu).unwrap(), + &[2, 3, cols], + gpu, + ) + .unwrap(), + "strided" => ops::slice( + &values(&[2, 3, cols * 2]), + &[0, 0, 1], + &[2, 3, cols * 2], + &[1, 1, 2], + gpu, + ) + .unwrap(), + "broadcast" => ops::broadcast_to(&values(&[cols]), &[2, 3, cols], gpu).unwrap(), + "vector" => values(&[cols]), + "swapped" => ops::transpose(&values(&[2, 3, cols]), &[1, 0, 2], gpu).unwrap(), + "middle" => ops::transpose(&values(&[2, 3, cols]), &[0, 2, 1], gpu).unwrap(), + "reverse" => ops::slice( + &values(&[2, 3, cols]), + &[0, 0, cols - 1], + &[2, 3, -cols - 1], + &[1, 1, -1], + gpu, + ) + .unwrap(), + _ => values(&[2, 3, cols]), + }; + ops::evaluate(&streams, std::slice::from_ref(&input), gpu, false).unwrap(); + let identity = input.buffer().data_identity(); + let output = argmax( + &input, + case["axis"].as_i64().unwrap() as i32, + case["keepdims"].as_bool().unwrap(), + gpu, + ) + .unwrap(); + drop(input); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&output), gpu, false).unwrap(); + }); + assert_eq!(output.layout().dtype(), Dtype::U32); + assert_eq!(serde_json::json!(output.layout().shape()), case["shape"]); + if cols > 1 { + assert_ne!( + output.buffer().data_identity(), + identity, + "ArgReduce cannot donate" + ); + let name = format!("argmax_{}", dtype.kernel_name()); + let threads = (cols as u32) + .div_ceil(4) + .min(views::kernel_max_threads(&name).unwrap()) + .div_ceil(32) + * 32; + assert_eq!( + calls, + vec![( + name, + [threads, output.layout().size() as u32, 1], + [threads, 1, 1], + true + )], + "case {index}: no input copy or sort" + ); + } else { + assert!(!calls.iter().any(|call| call.0.starts_with("argmax_"))); + } + let mut bytes = vec![0; output.layout().nbytes()]; + output.buffer().read(output.offset(), &mut bytes).unwrap(); + assert_eq!( + hex_digest(&bytes), + case["sha256"].as_str().unwrap(), + "case {index}: {case}" + ); + eprintln!("MTPLX argmax {index}: exact token IDs and original dispatch"); + } + let empty = Array::new(&[0], Dtype::F32, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + let scalar = Array::new( + &[], + Dtype::F32, + scalar_buffer(&0_f32.to_le_bytes()).unwrap(), + ) + .unwrap(); + assert!(argmax(&empty, -1, false, gpu).is_err()); + assert!(argmax(&scalar, 0, false, gpu).is_err()); + streams.clear_streams().unwrap(); +} + +#[derive(Clone, Copy)] +pub(super) enum Reduction { + Sum, + Min, + Max, +} + +impl Reduction { + /// metal/reduce.cpp remap_reduce_types reads Bool sum as signed bytes; + /// no array conversion or additional GPU pass is performed. + fn input_dtype(self, dtype: Dtype) -> Dtype { + if matches!(self, Self::Sum) && dtype == Dtype::Bool { + Dtype::I8 + } else { + dtype + } + } + + fn name(self) -> &'static str { + match self { + Self::Sum => "sum", + Self::Min => "min", + Self::Max => "max", + } + } +} + +pub(super) fn sum( + input: &Array, + axes: &[i32], + keepdims: bool, + stream: Stream, +) -> Result { + reduction(input, axes, keepdims, stream, Reduction::Sum) +} + +pub(super) fn min( + input: &Array, + axes: &[i32], + keepdims: bool, + stream: Stream, +) -> Result { + reduction(input, axes, keepdims, stream, Reduction::Min) +} + +pub(super) fn max( + input: &Array, + axes: &[i32], + keepdims: bool, + stream: Stream, +) -> Result { + reduction(input, axes, keepdims, stream, Reduction::Max) +} + +fn reduction( + input: &Array, + axes: &[i32], + keepdims: bool, + stream: Stream, + op: Reduction, +) -> Result { + if axes.is_empty() { + return Ok(input.clone()); + } + let layout = input.layout(); + let dtype = layout.dtype(); + if !matches!(dtype, Dtype::BF16 | Dtype::F16 | Dtype::F32 | Dtype::I32) + && !(dtype == Dtype::Bool && matches!(op, Reduction::Sum)) + { + return Err("Qwen reduction requires BF16/F16/F32/I32".into()); + } + let mut axes = ops::axes(axes, layout.shape().len())?; + if matches!(op, Reduction::Min | Reduction::Max) && axes.iter().any(|&a| layout.shape()[a] == 0) + { + return Err("min/max cannot reduce over an empty axis".into()); + } + axes.sort_unstable(); + let mut shape = layout.shape().to_vec(); + for &axis in &axes { + shape[axis] = 1; + } + let out_dtype = if dtype == Dtype::Bool { + Dtype::I32 + } else { + dtype + }; + let out = if shape == layout.shape() { + ops::astype(input, out_dtype, false, stream)? + } else { + Array::make_operation( + stream, + input, + Layout::new(&shape, out_dtype)?, + match op { + Reduction::Sum => ops::Operation::Sum(axes.clone()), + Reduction::Min => ops::Operation::Min(axes.clone()), + Reduction::Max => ops::Operation::Max(axes.clone()), + }, + )? + }; + if keepdims { + Ok(out) + } else { + ops::squeeze( + &out, + Some(&axes.iter().map(|&a| a as i32).collect::>()), + stream, + ) + } +} + +/// The QSA eager pool explicitly casts to F32 BEFORE mean. Preserve sum then +/// multiply by the host-double reciprocal (not a division or fused reduction). +pub(super) fn mean_f32( + input: &Array, + axes: &[i32], + keepdims: bool, + stream: Stream, +) -> Result { + if input.layout().dtype() != Dtype::F32 { + return Err("QSA mean requires its original F32 input cast".into()); + } + let normalized = ops::axes(axes, input.layout().shape().len())?; + let count = normalized + .iter() + .fold(1.0_f64, |n, &a| n * f64::from(input.layout().shape()[a])); + let normalizer = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&((1.0 / count) as f32).to_le_bytes())?, + )?; + super::binary::binary( + &sum(input, axes, keepdims, stream)?, + &normalizer, + super::binary::Binary::Multiply, + stream, + ) +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum Kind { + All, + Row, + Col, + GeneralRow, + GeneralCol, + Copy, +} + +struct Plan { + kind: Kind, + shape: Vec, + strides: Vec, +} + +fn plan(input: &Array, axes: &[usize]) -> Plan { + let x = input.layout(); + let make = |kind, shape, strides| Plan { + kind, + shape, + strides, + }; + if x.size() == input.data_size() && axes.len() == x.shape().len() && x.flags().contiguous { + return make(Kind::All, vec![], vec![]); + } + if x.flags().row_contiguous { + let mut shape = vec![x.shape()[axes[0]]]; + let mut strides = vec![x.strides()[axes[0]]]; + for (i, &axis) in axes.iter().enumerate().skip(1) { + if axis - 1 == axes[i - 1] && x.shape()[axis] > 1 { + *shape.last_mut().unwrap() *= x.shape()[axis]; + *strides.last_mut().unwrap() = x.strides()[axis]; + } else { + shape.push(x.shape()[axis]); + strides.push(x.strides()[axis]); + } + } + for i in (0..shape.len()).rev() { + if shape[i] == 1 { + shape.remove(i); + strides.remove(i); + } + } + if let Some(&stride) = strides.last() + && stride > 0 + { + return make( + if stride == 1 { Kind::Row } else { Kind::Col }, + shape, + strides, + ); + } + } + let mut reductions = axes + .iter() + .filter_map(|&a| (x.shape()[a] > 1).then_some((x.shape()[a], x.strides()[a]))) + .collect::>(); + reductions.sort_unstable_by(|a, b| { + if (a.1 == 0) != (b.1 == 0) { + a.1.cmp(&b.1) + } else { + b.1.cmp(&a.1) + } + }); + for i in (1..reductions.len()).rev() { + let (a, b) = (reductions[i], reductions[i - 1]); + if b.1 == i64::from(a.0) * a.1 { + reductions.remove(i); + reductions[i - 1] = (a.0 * b.0, a.1); + } + } + let (shape, strides): (Vec<_>, Vec<_>) = reductions.into_iter().unzip(); + if strides.last() == Some(&1) { + return make(Kind::GeneralRow, shape, strides); + } + if let Some(&stride) = strides.last().filter(|&&s| s > 1) { + let (mut size, mut expanded) = (1_i64, false); + for i in (0..x.shape().len()).rev() { + if axes.last() == Some(&i) { + continue; + } + let (s, d) = (x.strides()[i], x.shape()[i]); + if s == 0 { + if d == 1 { + continue; + } + expanded = true; + break; + } + if s != size && d != 1 { + break; + } + size *= i64::from(d); + } + if size > stride || (size == stride && !expanded) { + return make(Kind::GeneralCol, shape, strides); + } + } + make(Kind::Copy, shape, strides) +} + +// RowReduceArgs and ColReduceArgs share the same shape bindings, but binding3 +// and the column-only binding10 have different meanings in the original ABI. +struct Args { + size: usize, + stride: i64, + non_reductions: usize, + shape: Vec, + strides: Vec, + reduced: Vec, + reduced_strides: Vec, +} + +impl Args { + fn new(input: &Array, plan: &Plan, axes: &[usize], column: bool) -> Self { + let size = *plan.shape.last().unwrap() as usize; + let stride = *plan.strides.last().unwrap(); + let reduced = plan.shape[..plan.shape.len() - 1].to_vec(); + let reduced_strides = plan.strides[..plan.strides.len() - 1].to_vec(); + let non_reductions = reduced.iter().map(|&d| d as usize).product(); + let x = input.layout(); + let (mut shape, mut strides): (Vec<_>, Vec<_>) = x + .shape() + .iter() + .zip(x.strides()) + .enumerate() + .filter_map(|(i, (&d, &s))| (!axes.contains(&i)).then_some((d, s))) + .unzip(); + if column { + let mut back = 1_i64; + while !shape.is_empty() && back < stride { + back *= i64::from(shape.pop().unwrap()); + strides.pop(); + } + } + let (shape, strides) = views::collapse_shape_strides(&shape, &strides); + Self { + size, + stride, + non_reductions, + shape, + strides, + reduced, + reduced_strides, + } + } + + fn append_column(&mut self) { + self.reduced.push(self.size as i32); + self.reduced_strides.push(self.stride); + } + + fn kernel_ndim(&self) -> usize { + match self.reduced.len() { + 0 | 1 => 1, + 2 => 2, + _ => 5, + } + } + + fn column_grid(&self, output: &Array) -> Result<[u32; 3], String> { + let x = output.layout(); + let mut n = x.shape().len(); + while n > 0 && x.strides()[n - 1] < self.stride { + n -= 1; + } + views::shape_grid(&x.shape()[..n], &x.strides()[..n], 1) + } + + #[allow(clippy::too_many_arguments)] + fn dispatch( + &self, + name: &str, + input: &Array, + output: &Array, + column: bool, + extra: Option, + grid: [u32; 3], + threads: [u32; 3], + individual: bool, + ) -> Result<(), String> { + let x = input.buffer(); + let out = output.buffer(); + let ndim = self.shape.len() as i32; + let reduced_ndim = self.reduced.len() as i32; + let mut bindings = vec![ + tensor(0, &x) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &out).output(output.data_size()), + bytes(2, &self.size), + if column { + bytes(3, &self.stride) + } else { + bytes(3, &self.non_reductions) + }, + bytes::<[i32]>( + 4, + if self.shape.is_empty() { + &[0] + } else { + &self.shape + }, + ), + bytes::<[i64]>( + 5, + if self.strides.is_empty() { + &[0] + } else { + &self.strides + }, + ), + bytes(6, &ndim), + bytes::<[i32]>( + 7, + if self.reduced.is_empty() { + &[0] + } else { + &self.reduced + }, + ), + bytes::<[i64]>( + 8, + if self.reduced_strides.is_empty() { + &[0] + } else { + &self.reduced_strides + }, + ), + bytes(9, &reduced_ndim), + ]; + if column { + bindings.push(bytes(10, &self.non_reductions)); + } + if let Some(ref extra) = extra { + bindings.push(bytes(11, extra)); + } + dispatch_geometry(name, &bindings, &[], grid, threads, individual) + } +} + +fn temporary(shape: &[i32], dtype: Dtype) -> Result { + let a = Array::unallocated(shape, dtype)?; + let size = a.layout().nbytes(); + a.set_data(Buffer::mtplx_bytes(size as u64)?)?; + encoder::add_temporaries(std::slice::from_ref(&*a.buffer())); + Ok(a) +} + +fn row_threads(size: usize) -> u32 { + match size { + 0..=512 => 32, + 513..=1024 => 128, + _ => (size.div_ceil(4).div_ceil(32) * 32).min(1024) as u32, + } +} + +fn name(family: &str, input: &Array, args: &Args, tiled: bool, op: Reduction) -> String { + format!( + "{family}{}_{}{}_reduce_{}{}", + if input.layout().size() > i32::MAX as usize { + "_large" + } else { + "" + }, + args.kernel_ndim(), + if tiled { "_32_32" } else { "" }, + op.name(), + op.input_dtype(input.layout().dtype()).kernel_name() + ) +} + +fn all_pass( + input: &Array, + output: &Array, + row_size: usize, + grid: [u32; 3], + threads: u32, + op: Reduction, +) -> Result<(), String> { + dispatch_geometry( + &format!( + "all_reduce_{}{}", + op.name(), + op.input_dtype(input.layout().dtype()).kernel_name() + ), + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &output.buffer()).output(output.data_size()), + bytes(2, &input.layout().size()), + bytes(3, &row_size), + ], + &[], + grid, + [threads, 1, 1], + true, + ) +} + +pub(super) fn all(input: &Array, output: &Array) -> Result<(), String> { + all_reduce(input, output, Reduction::Sum) +} + +fn all_reduce(input: &Array, output: &Array, op: Reduction) -> Result<(), String> { + let x = input.layout(); + let size = x.size(); + if size <= 4096 { + let threads = (size.div_ceil(4).div_ceil(32) * 32) as u32; + return all_pass(input, output, size, [threads, 1, 1], threads, op); + } + let (rows, final_threads) = if x.nbytes() <= 1 << 26 { + (128, 32) + } else { + (4096, 1024) + }; + let intermediate = temporary(&[rows], output.layout().dtype())?; + let width = size.div_ceil(rows as usize); + let threads = (width.div_ceil(4).min(1024).div_ceil(32) * 32) as u32; + all_pass( + input, + &intermediate, + width, + [threads, rows as u32, 1], + threads, + op, + )?; + all_pass( + &intermediate, + output, + rows as usize, + [final_threads, 1, 1], + final_threads, + op, + ) +} + +fn row( + input: &Array, + output: &Array, + plan: &Plan, + axes: &[usize], + op: Reduction, +) -> Result<(), String> { + let args = Args::new(input, plan, axes, false); + let g = views::large_copy_grid(&output.layout(), 1)?; + if args.size <= 64 { + let (grid, threads) = + if (args.non_reductions < 32 && args.size <= 8) || args.non_reductions <= 8 { + (g, [g[0].min(1024), 1, 1]) + } else { + ([32, g[0], g[1]], [32, 1, 1]) + }; + return args.dispatch( + &name("row_reduce_small", input, &args, false, op), + input, + output, + false, + None, + grid, + threads, + true, + ); + } + let threads = row_threads(args.size); + if plan.kind == Kind::Row && args.reduced.is_empty() && input.layout().size() / args.size >= 32 + { + return dispatch_geometry( + &format!( + "row_reduce_simple_{}{}", + op.name(), + op.input_dtype(input.layout().dtype()).kernel_name() + ), + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &output.buffer()).output(output.data_size()), + bytes(2, &args.size), + bytes(3, &output.layout().size()), + ], + &[], + [threads, g[0].div_ceil(4), g[1]], + [threads, 1, 1], + true, + ); + } + args.dispatch( + &name("row_reduce_looped", input, &args, false, op), + input, + output, + false, + None, + [threads, g[0], g[1]], + [threads, 1, 1], + true, + ) +} + +fn column( + input: &Array, + output: &Array, + plan: &Plan, + axes: &[usize], + op: Reduction, +) -> Result<(), String> { + let mut args = Args::new(input, plan, axes, true); + let total = args.size * args.non_reductions; + args.append_column(); + let g = args.column_grid(output)?; + let stride = args.stride as usize; + if total < 32 { + let name = name("col_reduce_small", input, &args, false, op); + let blocks = stride.div_ceil(4) as u32; + let x = blocks.min(32); + let y = 8.min((views::kernel_max_threads(&name)? / x).min(total as u32)); + return args.dispatch( + &name, + input, + output, + true, + None, + [blocks.div_ceil(x), g[0], g[1]], + [x, y, 1], + false, + ); + } + let longcolumn = stride < 32 && total >= 1024; + if longcolumn || (total > 256 && output.layout().size() / 32 < 1024) { + let outer = if longcolumn && total >= 32768 { + 128 + } else { + 32 + }; + let out_size = output.layout().size(); + let mut shape = vec![outer]; + shape.extend_from_slice(output.layout().shape()); + let intermediate = temporary(&shape, output.layout().dtype())?; + let (family, grid, threads, extra) = if longcolumn { + ( + "col_reduce_longcolumn", + [g[0], g[1], outer as u32], + [ + stride as u32, + total.div_ceil(outer as usize).min(32) as u32, + 1, + ], + out_size, + ) + } else { + ( + "col_reduce_2pass", + [256 * stride.div_ceil(32) as u32, g[0] * outer as u32, g[1]], + [256, 1, 1], + out_size / stride, + ) + }; + args.dispatch( + &name(family, input, &args, !longcolumn, op), + input, + &intermediate, + true, + Some(extra), + grid, + threads, + !longcolumn, + )?; + let second = Args { + size: outer as usize, + stride: out_size as i64, + non_reductions: 1, + shape: vec![], + strides: vec![], + reduced: vec![outer], + reduced_strides: vec![out_size as i64], + }; + return second.dispatch( + &name("col_reduce_looped", &intermediate, &second, true, op), + &intermediate, + output, + true, + None, + [256 * out_size.div_ceil(32) as u32, 1, 1], + [256, 1, 1], + true, + ); + } + args.dispatch( + &name("col_reduce_looped", input, &args, true, op), + input, + output, + true, + None, + [256 * stride.div_ceil(32) as u32, g[0], g[1]], + [256, 1, 1], + true, + ) +} + +pub(super) fn evaluate( + input: &Array, + output: &Array, + axes: &[usize], + op: Reduction, +) -> Result<(), String> { + if axes.is_empty() { + return Err("Reduce requires axes".into()); + } + if input.layout().size() > 0 && output.layout().size() == input.layout().size() { + if input.layout().flags().contiguous { + return views::astype(input, output); + } + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + return views::general_copy_inplace(input, output); + } + let nbytes = output.layout().nbytes().max(4); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if input.layout().size() == 0 { + let size = output.layout().size(); + if size == 0 { + return Ok(()); + } + let name = format!( + "init_reduce_{}{}", + op.name(), + output.layout().dtype().kernel_name() + ); + return dispatch_geometry( + &name, + &[tensor(0, &output.buffer()).output(output.data_size())], + &[], + [size as u32, 1, 1], + [(size as u32).min(views::kernel_max_threads(&name)?), 1, 1], + true, + ); + } + let mut plan = plan(input, axes); + let copy; + let input = if plan.kind == Kind::Copy { + copy = temporary(input.layout().shape(), input.layout().dtype())?; + views::general_copy_inplace(input, ©)?; + plan = self::plan(©, axes); + © + } else { + input + }; + match plan.kind { + Kind::All => all_reduce(input, output, op), + Kind::Row | Kind::GeneralRow => row(input, output, &plan, axes, op), + Kind::Col | Kind::GeneralCol => column(input, output, &plan, axes, op), + Kind::Copy => Err("contiguous copy did not yield a reduction plan".into()), + } +} + +#[test] +#[ignore = "requires Apple Metal; original shared sum dispatch and QSA mean"] +fn mtplx_sum_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sum-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 232); + let mut selected = std::collections::BTreeSet::new(); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let shape = case["shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + let axes = case["axes"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let layout = case["layout"].as_str().unwrap(); + let keep = case["keep"].as_bool().unwrap(); + let mut base = shape.clone(); + if layout == "broadcast" { + base[0] = 1; + } + if layout == "strided" { + *base.last_mut().unwrap() *= 2; + } + let n = if layout == "scalar" { + 1 + } else { + base.iter().product::() + i32::from(layout == "offset") + }; + let mut a = ops::astype( + &Array::new(&[n], Dtype::BF16, pattern(n as u32, 170)).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + if layout == "offset" { + a = ops::slice(&a, &[1], &[n], &[1], gpu).unwrap(); + } + a = if layout == "scalar" { + ops::broadcast_to(&ops::reshape(&a, &[], gpu).unwrap(), &shape, gpu).unwrap() + } else { + ops::reshape(&a, &base, gpu).unwrap() + }; + if layout == "strided" || layout == "reverse" { + let mut start = vec![0; base.len()]; + let mut stop = base.clone(); + let mut steps = vec![1; base.len()]; + if layout == "strided" { + *steps.last_mut().unwrap() = 2; + } else { + *start.last_mut().unwrap() = base.last().unwrap() - 1; + *stop.last_mut().unwrap() = -base.last().unwrap() - 1; + *steps.last_mut().unwrap() = -1; + } + a = ops::slice(&a, &start, &stop, &steps, gpu).unwrap(); + } + if layout == "broadcast" { + a = ops::broadcast_to(&a, &shape, gpu).unwrap(); + } + if layout == "transpose" { + let mut perm = (0..base.len() as i32).collect::>(); + perm.swap(0, 1); + a = ops::transpose(&a, &perm, gpu).unwrap(); + } + if prepared { + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + } + let out = sum(&a, &axes, keep, gpu).unwrap(); + let mean = mean_f32( + &ops::astype(&a, Dtype::F32, false, gpu).unwrap(), + &axes, + keep, + gpu, + ) + .unwrap(); + let expected_shape = case["output_shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(out.layout().shape(), expected_shape); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &[out.clone(), mean.clone()], gpu, false).unwrap() + }); + if prepared && dtype == Dtype::F32 { + // Literal metal/reduce.cpp dispatch contracts, independently + // of the numerical hashes (exact sums can hide reordering). + let contract = match case["profile"].as_u64().unwrap() { + 0 => Some(("all_reduce_sumfloat32", [1024, 1, 1], [1024, 1, 1], true, 2)), + 1 => Some(("all_reduce_sumfloat32", [32, 128, 1], [32, 1, 1], true, 2)), + 2 => Some(( + "row_reduce_looped_1_reduce_sumfloat32", + [32, 31, 1], + [32, 1, 1], + true, + 2, + )), + 3 => Some(( + "row_reduce_simple_sumfloat32", + [32, 8, 1], + [32, 1, 1], + true, + 2, + )), + 5 => Some(( + "row_reduce_simple_sumfloat32", + [128, 8, 1], + [128, 1, 1], + true, + 2, + )), + 7 => Some(( + "row_reduce_simple_sumfloat32", + [288, 8, 1], + [288, 1, 1], + true, + 2, + )), + 10 => Some(( + "col_reduce_small_1_reduce_sumfloat32", + [1, 1024, 1], + [32, 4, 1], + false, + 2, + )), + 11 => Some(( + "col_reduce_small_1_reduce_sumfloat32", + [5, 137, 1], + [32, 4, 1], + false, + 2, + )), + 13 => Some(( + "col_reduce_looped_1_32_32_reduce_sumfloat32", + [1024, 1, 1], + [256, 1, 1], + true, + 2, + )), + 15 => Some(( + "col_reduce_2pass_1_32_32_reduce_sumfloat32", + [1024, 32, 1], + [256, 1, 1], + true, + 2, + )), + 17 => Some(( + "col_reduce_longcolumn_1_reduce_sumfloat32", + [1, 1, 32], + [17, 32, 1], + false, + 2, + )), + 18 => Some(( + "col_reduce_longcolumn_1_reduce_sumfloat32", + [1, 1, 128], + [2, 32, 1], + false, + 2, + )), + 38 => Some(( + "col_reduce_looped_1_32_32_reduce_sumfloat32", + [262144, 1, 1], + [256, 1, 1], + true, + 2, + )), + 39 => Some(( + "all_reduce_sumfloat32", + [1024, 4096, 1], + [1024, 1, 1], + true, + 2, + )), + _ => None, + }; + if let Some((name, grid, threads, individual, count)) = contract { + assert_eq!( + calls + .iter() + .filter(|c| c.0 == name + && c.1 == grid + && c.2 == threads + && c.3 == individual) + .count(), + count, + "{} dispatch contract: {calls:?}", + case["kernel"] + ); + } + } + for call in calls { + if call.0.contains("reduce") { + selected.insert(call.0); + } + } + let read = |a: &Array| { + ops::contiguous(&ops::astype(a, Dtype::F32, false, gpu).unwrap(), false, gpu) + .unwrap() + }; + let (out, mean) = (read(&out), read(&mean)); + ops::evaluate(&streams, &[out.clone(), mean.clone()], gpu, false).unwrap(); + let elements = out.layout().size() as u32; + // No-op views can still carry an offset; read into a compact + // buffer explicitly, without altering the graph being checked. + let compact = |a: &Array| { + let buffer = Buffer::mtplx_bytes((elements as u64 * 4).max(4)).unwrap(); + let mut data = vec![0; elements as usize * 4]; + a.buffer().read(a.offset(), &mut data).unwrap(); + buffer.write(0, &data).unwrap(); + buffer + }; + verify_typed( + case["kernel"].as_str().unwrap(), + &[ + (&compact(&out), elements, 4), + (&compact(&mean), elements, 4), + ], + ); + }); + } + } + for family in [ + "all_reduce_sum", + "row_reduce_small", + "row_reduce_simple", + "row_reduce_looped", + "col_reduce_small", + "col_reduce_looped", + "col_reduce_longcolumn", + "col_reduce_2pass", + "init_reduce_sum", + ] { + assert!( + selected.iter().any(|s| s.starts_with(family)), + "missing dispatch family {family}: {selected:?}" + ); + } + assert!(selected.iter().any(|s| s.contains("_5_"))); + assert!(selected.iter().any(|s| s.contains("_2_reduce_"))); + let a = Array::new(&[1, 2], Dtype::F32, super::scalar_buffer(&[0; 8]).unwrap()).unwrap(); + for axes in [&[0, 0][..], &[1, -1][..], &[2][..], &[-3][..]] { + assert!(sum(&a, axes, false, gpu).is_err()); + assert!(mean_f32(&a, axes, false, gpu).is_err()); + } + assert_eq!(sum(&a, &[], false, gpu).unwrap().id(), a.id()); + assert_eq!(sum(&a, &[0], true, gpu).unwrap().id(), a.id()); + // Reduce::eval_gpu's runtime identity branch (e.g. a captured dimension + // becomes one). Vector copy preserves broadcast storage, not a Full fill. + let scalar = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&3_f32.to_le_bytes()).unwrap(), + ) + .unwrap(); + let a = ops::broadcast_to(&scalar, &[1, 8], gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + let out = Array::make_operation( + gpu, + &a, + Layout::new(&[1, 8], Dtype::F32).unwrap(), + ops::Operation::Sum(vec![0]), + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.data_size(), 1); + assert_eq!(out.layout().strides(), a.layout().strides()); +} diff --git a/src/engine/metal/qwen_mtplx/request.rs b/src/engine/metal/qwen_mtplx/request.rs new file mode 100644 index 0000000..cfc3ae1 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/request.rs @@ -0,0 +1,549 @@ +//! Text/request boundary for the canonical whole-turn executor. The caller +//! owns the session bank; never treat a partially streamed turn as a final KV. +use super::execution::Execution; +use super::session_cache::{ + DecodeOptions, SessionSnapshot, SessionTurn, TurnOptions, TurnProgress, +}; +use crate::engine::{ + ChatTurn, GeneratedText, GeneratedToken, GenerationOutput, ModelRef, conversation_tag, + qwen::QwenMetadata, render_text_prompt, tokenizer::Tokenizer, +}; +use crate::metrics::{DecodeTimer, Metrics}; +use crate::settings::{ReasoningMode, TurnSettings}; +use std::cell::{Cell, RefCell}; +use std::sync::atomic::{AtomicBool, Ordering}; +use std::time::{Duration, Instant}; + +/// The same (used, limit, optional decode speed) callback consumed by runtime.rs +/// for UI and model-eval. GPU lookahead is not counted as emitted completion. +struct RequestProgress<'a, F> { + metrics: &'a Metrics, + prompt: u32, + context: u32, + report: F, + decode: Option<(Instant, DecodeTimer<'a>)>, +} + +impl<'a, F: FnMut(u32, u32, Option)> RequestProgress<'a, F> { + fn new(metrics: &'a Metrics, prompt: u32, cached: u32, context: u32, mut report: F) -> Self { + metrics.set_prompt_timing(None); + metrics.kv_prefix_reused(cached as usize); + report(cached, context, None); + Self { + metrics, + prompt, + context, + report, + decode: None, + } + } + + fn phase(&mut self, event: &TurnProgress) { + match event { + TurnProgress::PromptReady(timing) => self.metrics.set_prompt_timing(Some(*timing)), + TurnProgress::Prefill(super::prefill::Progress::Settled { tokens, .. }) => { + // Cold and restored-suffix progress both report the absolute + // frontier. Adding cached again would double-count warm input. + (self.report)(*tokens as u32, self.context, None); + } + TurnProgress::Decode => { + let started = Instant::now(); + self.decode = Some((started, self.metrics.measure_decode(started))); + (self.report)(self.prompt, self.context, Some(0.0)); + } + TurnProgress::Finalize { decode_seconds } => { + if let Some((_, timer)) = self.decode.take() { + timer.finish(Duration::from_secs_f64(*decode_seconds)); + } + } + _ => {} + } + } + + fn token(&mut self, completion_tokens: u32) -> Result<(), String> { + let (started, _) = self + .decode + .as_ref() + .ok_or("Qwen token outside decode phase")?; + (self.report)( + self.prompt.saturating_add(completion_tokens), + self.context, + Some(completion_tokens as f32 / started.elapsed().as_secs_f32().max(1.0e-6)), + ); + Ok(()) + } +} + +pub(super) struct TextTurn { + pub(super) output: GenerationOutput, + /// None on a controlled text stop/cancel. A previously stored prompt + /// prefix is independent and remains owned by the caller's bank. + pub(super) session: Option, +} + +#[derive(Clone, Copy, PartialEq, Eq)] +enum Interrupted { + Cancelled, + TextStop, +} + +/// Active request state, separate from the GPU executor and the existing disk +/// KV index. Only committed snapshots enter this owner; partial output never +/// acquires a completed-conversation tag. +#[derive(Default)] +pub(in crate::engine) struct LiveSession { + pub(super) current: Option, + pub(super) prefix: Option, + pub(super) tag: [u8; 32], +} + +impl LiveSession { + pub(super) fn prompt( + &self, + model: &QwenMetadata, + messages: &[ChatTurn], + settings: &TurnSettings, + ) -> Vec { + render_text_prompt( + ModelRef::Qwen(model), + self.current.as_ref().map_or(&[], |s| &s.token_ids), + self.tag, + messages, + settings, + ) + } + + /// Product settings own sampling, output/context bounds, seed, reasoning + /// and literal stops. TurnOptions contributes only backend execution policy. + #[allow(clippy::too_many_arguments)] + pub(super) fn generate( + &mut self, + execution: &mut Execution, + model: &QwenMetadata, + messages: &[ChatTurn], + settings: &TurnSettings, + policy: &TurnOptions<'_>, + cancelled: &AtomicBool, + metrics: &Metrics, + progress: impl FnMut(u32, u32, Option), + emit: impl FnMut(bool, String), + observe: impl FnMut(TurnProgress) -> Result<(), String>, + ) -> Result { + let prompt = self.prompt(model, messages, settings); + let context = u32::try_from(settings.context_tokens) + .ok() + .filter(|&n| n > 0) + .ok_or("Qwen context must be positive")?; + let mut options = request_options(policy, settings, &prompt, context)?; + let mut stop_ids = vec![i64::from(model.tokenizer.eos())]; + if settings.reasoning_mode == ReasoningMode::Direct { + for marker in ["", ""] { + stop_ids.extend( + model + .tokenizer + .tokenize_rendered(marker) + .into_iter() + .map(i64::from), + ); + } + } + match &mut options.decode { + DecodeOptions::Ar(o) => o.stop_tokens = &stop_ids, + DecodeOptions::Mtp(o) => { + o.prompt_ids = &prompt; + o.stops = &stop_ids; + } + } + let saved = [&self.current, &self.prefix] + .into_iter() + .flatten() + .filter(|s| prompt.starts_with(&s.token_ids)) + .max_by_key(|s| s.token_ids.len()); + let mut captured_prefix = None; + let result = execution.generate_text( + &prompt, + saved, + &options, + &model.tokenizer, + settings.reasoning_mode, + &settings.stops, + cancelled, + context, + metrics, + progress, + emit, + observe, + |snapshot| { + captured_prefix = Some(snapshot); + Ok(()) + }, + ); + // A valid prefill capture survives cancellation and unrelated callback + // errors. Never tag those partial turns as a completed conversation. + if let Some(prefix) = captured_prefix { + self.prefix = Some(prefix); + } + let mut result = result?; + if let Some(snapshot) = result + .session + .as_mut() + .and_then(|turn| turn.snapshot.take()) + { + let mut completed = messages.to_vec(); + completed.push(result.output.message.clone()); + self.tag = + conversation_tag(&settings.system_prompt, settings.reasoning_mode, &completed); + self.current = Some(snapshot); + } + Ok(result) + } +} + +fn request_options<'a>( + policy: &TurnOptions<'a>, + settings: &TurnSettings, + prompt: &[i32], + context: u32, +) -> Result, String> { + if prompt.is_empty() { + return Err("the rendered prompt is empty".into()); + } + if prompt.len() >= context as usize { + return Err(format!( + "Prompt has {} tokens, but the configured context size is {context} tokens", + prompt.len() + )); + } + if !settings.temperature.is_finite() || !settings.top_p.is_finite() { + return Err("Qwen sampling parameters must be finite".into()); + } + // MTPLX's sampler has no min-p filter. Do not silently claim that a + // nonzero product override is covered by the ordinary reference lane. + if settings.min_p != 0.0 { + return Err("MTPLX Qwen sampling does not support min_p".into()); + } + let limit = usize::try_from(settings.max_generated_tokens) + .ok() + .filter(|&n| n > 0) + .ok_or("Qwen output token limit must be positive")? + .min(context as usize - prompt.len()); + let seed = settings.seed.unwrap_or_else(|| { + // _fresh_seed: OS entropy, with the same signed-31-bit exclusive bound. + u64::from(unsafe { libc::arc4random_uniform((1 << 31) - 1) }) + }); + let mut options = policy.clone(); + options.sampler.temperature = f64::from(settings.temperature); + options.sampler.top_p = f64::from(settings.top_p); + options.sampler.top_k = settings.top_k; + options.draft_sampler = options.sampler; + match &mut options.decode { + DecodeOptions::Ar(o) => { + o.max_tokens = limit; + o.seed = seed; + } + DecodeOptions::Mtp(o) => { + o.max_tokens = limit; + o.seed = seed; + } + } + Ok(options) +} + +#[test] +fn qwen_request_settings_override_backend_policy() { + use super::{ar, prefill, sampling::SamplerConfig, speculative}; + let mut settings = TurnSettings { + kv_cache: crate::settings::KvCachePreferences::default().settings(), + context_tokens: 16, + max_generated_tokens: 99, + system_prompt: String::new(), + temperature: 0.7, + top_p: 0.8, + min_p: 0.0, + top_k: 12, + stops: vec![], + seed: Some(42), + reasoning_mode: ReasoningMode::Low, + }; + for decode in [ + DecodeOptions::Ar(ar::Options { + max_tokens: 1, + seed: 1, + stop_tokens: &[], + pipeline: true, + sync_eval: true, + return_hidden: false, + capture_final_state: true, + }), + DecodeOptions::Mtp(speculative::Options { + prompt_ids: &[], + depth: 3, + max_tokens: 1, + seed: 1, + stops: &[], + committed_history: true, + family_capture: true, + lazy_history: false, + defer_repair_eval: false, + capture_final_state: true, + }), + ] { + let policy = TurnOptions { + prefill: prefill::Options { + chunk_size: Some(2048), + final_logits_only: true, + external_cache_only: false, + external_emit_logits: true, + return_hidden: matches!(&decode, DecodeOptions::Mtp(_)), + }, + decode, + sampler: SamplerConfig::default(), + draft_sampler: SamplerConfig::default(), + lazy_kv: true, + store_min_suffix: Some(256), + fused_max: 0, + }; + let mapped = request_options(&policy, &settings, &[1, 2, 3], 16).unwrap(); + for sampler in [mapped.sampler, mapped.draft_sampler] { + assert_eq!(sampler.temperature, f64::from(settings.temperature)); + assert_eq!(sampler.top_p, f64::from(settings.top_p)); + assert_eq!(sampler.top_k, 12); + } + assert_eq!(mapped.prefill.chunk_size, Some(2048)); + assert_eq!(mapped.store_min_suffix, Some(256)); + assert!(mapped.lazy_kv); + let params = |o: &TurnOptions<'_>| match &o.decode { + DecodeOptions::Ar(o) => (o.max_tokens, o.seed), + DecodeOptions::Mtp(o) => (o.max_tokens, o.seed), + }; + assert_eq!(params(&mapped), (13, 42)); + assert_eq!(params(&policy), (1, 1)); + settings.max_generated_tokens = 2; + assert_eq!( + params(&request_options(&policy, &settings, &[1], 16).unwrap()), + (2, 42) + ); + settings.seed = None; + assert!(params(&request_options(&policy, &settings, &[1], 16).unwrap()).1 < (1 << 31) - 1); + settings.seed = Some(42); + assert!(request_options(&policy, &settings, &[], 16).is_err()); + assert!(request_options(&policy, &settings, &[1], 1).is_err()); + settings.max_generated_tokens = 0; + assert!(request_options(&policy, &settings, &[1], 16).is_err()); + settings.max_generated_tokens = 99; + settings.min_p = 0.1; + assert_eq!( + request_options(&policy, &settings, &[1], 16) + .err() + .as_deref(), + Some("MTPLX Qwen sampling does not support min_p") + ); + settings.min_p = 0.0; + settings.temperature = f32::NAN; + assert!(request_options(&policy, &settings, &[1], 16).is_err()); + settings.temperature = 0.7; + settings.top_p = f32::INFINITY; + assert!(request_options(&policy, &settings, &[1], 16).is_err()); + settings.top_p = 0.8; + } +} + +#[test] +fn qwen_request_progress_uses_ui_frontiers_and_decode_timer() { + use super::prefill; + use crate::metrics::{PromptTiming, WorkSource}; + use std::path::Path; + let metrics = Metrics::new(Path::new("/nonexistent-request-metrics")); + let timing = PromptTiming { + evaluated_tokens: 20, + eval_seconds: 0.125, + mtp_history_seconds: 0.025, + restore_seconds: 0.010, + }; + assert_eq!(metrics.snapshot().prompt_timing, None); + metrics.set_prompt_timing(Some(timing)); + let mut events = Vec::new(); + { + let mut progress = RequestProgress::new(&metrics, 100, 80, 1024, |used, limit, speed| { + events.push((used, limit, speed)) + }); + assert_eq!(metrics.snapshot().prompt_timing, None); + assert!(progress.token(1).is_err()); + progress.phase(&TurnProgress::Prefill(prefill::Progress::Settled { + tokens: 90, + total: 100, + })); + progress.phase(&TurnProgress::Prefill(prefill::Progress::Settled { + tokens: 100, + total: 100, + })); + progress.phase(&TurnProgress::PromptReady(timing)); + assert_eq!(metrics.snapshot().prompt_timing, Some(timing)); + progress.phase(&TurnProgress::Decode); + progress.token(1).unwrap(); + progress.token(2).unwrap(); + progress.phase(&TurnProgress::Finalize { + decode_seconds: 0.007, + }); + assert_eq!(metrics.snapshot().decode_duration_ns, Some(7_000_000)); + assert!(progress.token(3).is_err()); + } + // Later decode/checkpoint work must not inflate completed prompt timings. + metrics.kv_write_started(); + metrics.kv_write_finished(Duration::from_secs(2), false); + assert_eq!(metrics.snapshot().prompt_timing, Some(timing)); + metrics.request_queued(WorkSource::LocalChat); + metrics.request_started(WorkSource::LocalChat); + assert_eq!(metrics.snapshot().prompt_timing, None); + // An exact cache hit is measured zero, distinct from an unreported backend. + let exact_hit = PromptTiming { + evaluated_tokens: 0, + eval_seconds: 0.0, + mtp_history_seconds: 0.0, + ..timing + }; + metrics.set_prompt_timing(Some(exact_hit)); + assert_eq!(metrics.snapshot().prompt_timing, Some(exact_hit)); + metrics.unloaded(); + assert_eq!(metrics.snapshot().prompt_timing, None); + assert_eq!( + events.iter().map(|(used, _, _)| *used).collect::>(), + [80, 90, 100, 100, 101, 102] + ); + assert!(events.iter().all(|(_, limit, _)| *limit == 1024)); + assert!(events[..3].iter().all(|(_, _, speed)| speed.is_none())); + assert_eq!(events[3].2, Some(0.0)); + assert!( + events[4..] + .iter() + .all(|(_, _, speed)| speed.is_some_and(|v| v.is_finite() && v > 0.0)) + ); + // No finalize callback on an exception/cancel: the shared RAII timer + // records the partial decode, not the preceding request's duration. + { + let mut progress = RequestProgress::new(&metrics, 100, 100, 1024, |_, _, _| {}); + progress.phase(&TurnProgress::Decode); + assert_eq!(metrics.snapshot().decode_duration_ns, None); + } + assert!(metrics.snapshot().decode_duration_ns.is_some_and(|n| n > 0)); +} + +impl Execution { + /// Decode is owned entirely by session_turn, not Generator's old scalar + /// outer loop. Errors from GPU/IO remain errors; only a stop/cancel actually + /// observed by these callbacks becomes a successful partial UI response. + #[allow(clippy::too_many_arguments)] + pub(super) fn generate_text( + &mut self, + prompt: &[i32], + saved: Option<&SessionSnapshot>, + options: &TurnOptions<'_>, + tokenizer: &Tokenizer, + reasoning: ReasoningMode, + stops: &[String], + cancelled: &AtomicBool, + context: u32, + metrics: &Metrics, + progress: impl FnMut(u32, u32, Option), + mut emit: impl FnMut(bool, String), + mut observe: impl FnMut(TurnProgress) -> Result<(), String>, + store_prefix: impl FnOnce(SessionSnapshot) -> Result<(), String>, + ) -> Result { + let prompt_tokens = u32::try_from(prompt.len()).map_err(|_| "prompt exceeds u32")?; + let cached_tokens = u32::try_from(saved.map_or(0, |s| s.token_ids.len())) + .map_err(|_| "cached prompt exceeds u32")?; + let progress = RefCell::new(RequestProgress::new( + metrics, + prompt_tokens, + cached_tokens, + context, + progress, + )); + let mut text = GeneratedText::new(reasoning); + let mut completion_tokens = 0_u32; + let interrupted = Cell::new(None); + let check_cancel = || { + if cancelled.load(Ordering::Relaxed) { + interrupted.set(Some(Interrupted::Cancelled)); + Err("generation cancelled".to_owned()) + } else { + Ok(()) + } + }; + let session = self.session_turn( + prompt, + saved, + options, + |event| { + check_cancel()?; + progress.borrow_mut().phase(&event); + observe(event)?; + check_cancel() + }, + |id| { + check_cancel()?; + let id = i32::try_from(id).map_err(|_| "generated token exceeds int32")?; + let token = if tokenizer.is_think_start(id) { + Some(GeneratedToken::ThinkStart) + } else if tokenizer.is_think_end(id) { + Some(GeneratedToken::ThinkEnd) + } else { + tokenizer.token_bytes(id).map(GeneratedToken::Bytes) + }; + completion_tokens = completion_tokens + .checked_add(1) + .ok_or("completion count exceeds u32")?; + if token.is_some_and(|token| text.push(token, stops, &mut emit)) { + interrupted.set(Some(Interrupted::TextStop)); + return Err("generation reached text stop".into()); + } + progress.borrow_mut().token(completion_tokens)?; + Ok(()) + }, + store_prefix, + ); + // Error/cancel paths have no finalization event; Drop still records + // their decode time before text draining or outer checkpoint work. + drop(progress); + let session = match session { + Ok(session) => Some(session), + Err(_) if interrupted.get().is_some() => None, + Err(error) => return Err(error), + }; + if interrupted.get() != Some(Interrupted::TextStop) { + text.finish(stops, &mut emit); + } + let finish_reason = match &session { + None => "stop", + Some(session) => { + let (limit, stop_ids) = match &options.decode { + DecodeOptions::Ar(o) => (o.max_tokens, o.stop_tokens), + DecodeOptions::Mtp(o) => (o.max_tokens, o.stops), + }; + if session + .decoded + .tokens() + .iter() + .any(|id| stop_ids.contains(id)) + || session.decoded.tokens().len() < limit + { + "stop" + } else { + "length" + } + } + }; + Ok(TextTurn { + output: GenerationOutput { + message: text.message, + prompt_tokens, + cached_tokens, + completion_tokens, + finish_reason, + previous_checkpoint_bytes: None, + checkpoint_bytes: 0, + }, + session, + }) + } +} diff --git a/src/engine/metal/qwen_mtplx/residency.rs b/src/engine/metal/qwen_mtplx/residency.rs new file mode 100644 index 0000000..61d3252 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/residency.rs @@ -0,0 +1,467 @@ +//! ResidencySets from the pinned MTPLX runtime. Metal calls stay in the bridge; +//! set selection, budgets, membership and commit scheduling stay in Rust. +use super::super::gpu::*; +use std::collections::HashMap; +use std::ffi::c_void; +use std::ptr::NonNull; +use std::sync::{ + Mutex, OnceLock, + atomic::{AtomicUsize, Ordering}, +}; + +struct Set { + raw: NonNull, + bytes: usize, +} + +// SAFETY: all operations on these owned Metal sets are serialized by State's +// mutex. Queue attachment borrows handles while that same lock is held. +unsafe impl Send for Set {} + +impl Drop for Set { + fn drop(&mut self) { + unsafe { ds4_gpu_mtplx_residency_free(self.raw.as_ptr()) }; + } +} + +struct Placement { + set: Option, + bytes: usize, +} + +struct State { + sets: Vec, + placements: HashMap, + capacity: usize, + wired: usize, + max_per_set: usize, + debug: bool, +} + +impl State { + fn add_set(&mut self, count: &AtomicUsize) -> bool { + let Some(raw) = NonNull::new(unsafe { ds4_gpu_mtplx_residency_create() }) else { + return false; + }; + self.sets.push(Set { raw, bytes: 0 }); + count.store(self.sets.len(), Ordering::Release); + if self.debug { + eprintln!( + "[residency] created residency set {} (max_bytes_per_set={} MB)", + self.sets.len() - 1, + self.max_per_set >> 20 + ); + } + true + } + + fn choose(&mut self, bytes: usize, count: &AtomicUsize) -> usize { + if self.max_per_set == 0 { + return 0; + } + let mut empty = None; + let mut emptiest = 0; + for (i, set) in self.sets.iter().enumerate() { + if set.bytes + bytes <= self.max_per_set { + return i; + } + if i != 0 && set.bytes == 0 && empty.is_none() { + empty = Some(i); + } + if set.bytes < self.sets[emptiest].bytes { + emptiest = i; + } + } + if let Some(i) = empty { + i + } else if self.sets.len() < 32 && self.add_set(count) { + self.sets.len() - 1 + } else { + emptiest + } + } + + fn add(&mut self, key: usize, at: &mut Placement, count: &AtomicUsize) -> usize { + let i = self.choose(at.bytes, count); + unsafe { + ds4_gpu_mtplx_residency_allocation(self.sets[i].raw.as_ptr(), key as *mut c_void, 1) + }; + self.sets[i].bytes += at.bytes; + self.wired += at.bytes; + at.set = Some(i); + i + } + + fn remove(&mut self, key: usize, at: &mut Placement) -> usize { + let i = at.set.take().unwrap(); + unsafe { + ds4_gpu_mtplx_residency_allocation(self.sets[i].raw.as_ptr(), key as *mut c_void, 0) + }; + self.sets[i].bytes -= at.bytes; + self.wired -= at.bytes; + i + } + + fn commit(&self, i: usize) { + unsafe { ds4_gpu_mtplx_residency_commit(self.sets[i].raw.as_ptr()) }; + } +} + +pub(super) struct ResidencySets { + enabled: bool, + count: AtomicUsize, + state: Mutex, +} + +impl ResidencySets { + pub(super) fn new(recommended: usize) -> Result { + let enabled = unsafe { ds4_gpu_mtplx_residency_supported() } != 0; + static ENV: OnceLock<(i32, bool)> = OnceLock::new(); + let (pct, debug) = if enabled { + *ENV.get_or_init(|| { + let integer = |name: &std::ffi::CStr, default| unsafe { + let value = libc::getenv(name.as_ptr()); + if value.is_null() { + default + } else { + libc::atoi(value) + } + }; + ( + integer(c"MLX_RESIDENCY_SET_MAX_PCT", 5), + integer(c"MLX_RESIDENCY_DEBUG", 0) != 0, + ) + }) + } else { + (0, false) + }; + let count = AtomicUsize::new(0); + let mut state = State { + sets: Vec::new(), + placements: HashMap::new(), + capacity: 0, + wired: 0, + debug, + max_per_set: if pct <= 0 || pct >= 100 { + 0 + } else { + (recommended / 100 * pct as usize).max(64 << 20) + }, + }; + if enabled && !state.add_set(&count) { + return Err("cannot construct initial Metal residency set".into()); + } + Ok(Self { + enabled, + count, + state: Mutex::new(state), + }) + } + + /// SAFETY: key is a live Metal allocation kept alive until erase or until + /// this residency owner is destroyed. Heap-backed buffers use their heap. + pub(super) unsafe fn insert(&self, key: usize) { + if !self.enabled { + return; + } + let bytes = unsafe { ds4_gpu_mtplx_allocated_size(key as *mut c_void) } as usize; + let mut state = self.state.lock().unwrap(); + assert!( + !state.placements.contains_key(&key), + "duplicate residency allocation" + ); + let mut at = Placement { set: None, bytes }; + if state.wired + bytes <= state.capacity { + let i = state.add(key, &mut at, &self.count); + state.commit(i); + } + state.placements.insert(key, at); + } + + pub(super) fn erase(&self, key: usize) { + if !self.enabled { + return; + } + let mut state = self.state.lock().unwrap(); + let mut at = state + .placements + .remove(&key) + .expect("unknown residency allocation"); + if at.set.is_some() { + let i = state.remove(key, &mut at); + state.commit(i); + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn resize(&self, capacity: usize) { + if !self.enabled { + return; + } + let mut state = self.state.lock().unwrap(); + if state.capacity == capacity { + return; + } + state.capacity = capacity; + let mut touched = vec![false; state.sets.len()]; + // Like the reference's unordered_map walk: membership is not sorted or + // ranked. Moving the map preserves its iteration order and buckets; + // only values change while set operations borrow the rest of State. + let mut placements = std::mem::take(&mut state.placements); + if state.wired < capacity { + for (&key, at) in &mut placements { + if at.set.is_some() || state.wired + at.bytes > capacity { + continue; + } + let i = state.add(key, at, &self.count); + touched.resize(state.sets.len(), false); + touched[i] = true; + } + } else { + for (&key, at) in &mut placements { + if state.wired <= capacity { + break; + } + if at.set.is_none() { + continue; + } + let i = state.remove(key, at); + touched[i] = true; + } + } + state.placements = placements; + for (i, changed) in touched.into_iter().enumerate() { + if changed { + state.commit(i); + } + } + } + + /// SAFETY: queue is live, and attached belongs to that queue and this owner. + /// Call immediately before commit, including after new sets appeared. + pub(super) unsafe fn attach_new_sets(&self, queue: *mut c_void, attached: &mut usize) { + if self.count.load(Ordering::Acquire) == *attached { + return; + } + let state = self.state.lock().unwrap(); + assert!(!queue.is_null() && *attached <= state.sets.len()); + let sets = state.sets[*attached..] + .iter() + .map(|s| s.raw.as_ptr()) + .collect::>(); + unsafe { ds4_gpu_mtplx_residency_attach(queue, sets.as_ptr(), sets.len() as u64) }; + *attached = state.sets.len(); + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn wired_size(&self) -> usize { + self.state.lock().unwrap().wired + } + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn num_sets(&self) -> usize { + self.count.load(Ordering::Acquire) + } + + // Same test-only cap override as the reference's residency_tests.cpp. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn set_max_per_set(&self, bytes: usize) { + self.state.lock().unwrap().max_per_set = bytes; + } +} + +#[test] +#[ignore = "requires Apple Metal 3 / macOS 15, no model weights"] +fn mtplx_residency_matches_reference_lifecycle_cases() { + use super::super::*; + use super::allocator::Allocator; + const MB: usize = 1 << 20; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + let residency = &allocator.residency; + assert!( + residency.enabled, + "this test requires native Metal residency support" + ); + allocator.set_cache_limit(0); + assert_eq!(residency.wired_size(), 0); + assert_eq!(residency.num_sets(), 1); + let alloc = |bytes| allocator.allocate(bytes).unwrap().unwrap(); + let check_native = || { + let state = residency.state.lock().unwrap(); + for (i, set) in state.sets.iter().enumerate() { + let expected = state + .placements + .values() + .filter(|at| at.set == Some(i)) + .count(); + assert_eq!( + unsafe { ds4_gpu_mtplx_residency_count(set.raw.as_ptr()) } as usize, + expected + ); + for (&key, at) in &state.placements { + assert_eq!( + unsafe { + ds4_gpu_mtplx_residency_contains(set.raw.as_ptr(), key as *mut c_void) + } != 0, + at.set == Some(i) + ); + } + assert_eq!( + set.bytes, + state + .placements + .values() + .filter(|at| at.set == Some(i)) + .map(|at| at.bytes) + .sum::() + ); + } + assert_eq!( + state.wired, + state.sets.iter().map(|set| set.bytes).sum::() + ); + }; + let mut attached = 0; + let check_gpu_work = |attached: &mut usize| { + let input = alloc(16); + let output = alloc(16); + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let commands = Commands::begin().unwrap(); + assert!( + super::qsa_dynamic_copy_rows([&input, &output], [8, 8], [1, 8], [None, None], [8; 2]) + .unwrap() + .is_empty() + ); + // This is the reference commit boundary, not an early attach on malloc. + unsafe { residency.attach_new_sets(ds4_gpu_mtplx_command_queue(), attached) }; + assert_eq!(*attached, residency.num_sets()); + commands.finish().unwrap(); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + check_native(); + }; + check_gpu_work(&mut attached); + + // These scenarios follow the pinned tests/residency_tests.cpp, including + // its test-only set cap, rather than inventing a different budget policy. + let buffers = (0..4).map(|_| alloc(4 * MB)).collect::>(); + assert_eq!(residency.wired_size(), 0); + drop(buffers); + assert_eq!(residency.wired_size(), 0); + assert_eq!(allocator.set_wired_limit(256 * MB).unwrap(), 0); + let baseline = residency.wired_size(); + assert!( + baseline >= MB, + "the heap is wired once, not once per tiny buffer" + ); + allocator.set_wired_limit(baseline + 8 * MB).unwrap(); + let mut buffers = Vec::new(); + for _ in 0..8 { + buffers.push(alloc(4 * MB)); + assert!(residency.wired_size() <= baseline + 8 * MB); + } + assert!(residency.wired_size() >= baseline + 4 * MB); + drop(buffers); + assert_eq!(residency.wired_size(), baseline); + + allocator.set_wired_limit(0).unwrap(); + let buffer = alloc(8 * MB); + assert_eq!(residency.wired_size(), 0); + allocator.set_wired_limit(64 * MB).unwrap(); + assert!(residency.wired_size() >= baseline + 8 * MB); + allocator.set_wired_limit(0).unwrap(); + assert_eq!(residency.wired_size(), 0); + allocator.set_wired_limit(64 * MB).unwrap(); + assert!(residency.wired_size() >= baseline + 8 * MB); + drop(buffer); + for _ in 0..32 { + let buffer = alloc(8 * MB); + assert!(residency.wired_size() >= baseline + 8 * MB); + drop(buffer); + assert_eq!(residency.wired_size(), baseline); + } + + residency.set_max_per_set(8 * MB); + allocator.set_wired_limit(128 * MB).unwrap(); + let previous_sets = residency.num_sets(); + let buffers = (0..8).map(|_| alloc(5 * MB)).collect::>(); + assert_eq!(residency.wired_size(), baseline + 40 * MB); + assert!(residency.num_sets() >= 8 && residency.num_sets() > previous_sets); + assert!( + residency + .state + .lock() + .unwrap() + .sets + .iter() + .all(|s| s.bytes <= 8 * MB) + ); + check_gpu_work(&mut attached); + let count = residency.num_sets(); + drop(buffers); + for _ in 0..4 { + let buffers = (0..8).map(|_| alloc(5 * MB)).collect::>(); + assert_eq!(residency.num_sets(), count); + drop(buffers); + } + assert_eq!(residency.wired_size(), baseline); + + residency.set_max_per_set(2 * MB); + allocator.set_wired_limit(256 * MB).unwrap(); + let buffers = (0..64).map(|_| alloc(2 * MB)).collect::>(); + assert_eq!(residency.num_sets(), 32); + assert_eq!(residency.wired_size(), baseline + 128 * MB); + check_gpu_work(&mut attached); + drop(buffers); + assert_eq!(residency.wired_size(), baseline); + + residency.set_max_per_set(4 * MB); + let buffer = alloc(32 * MB); + assert_eq!(residency.wired_size(), baseline + 32 * MB); + check_gpu_work(&mut attached); + drop(buffer); + assert_eq!(residency.wired_size(), baseline); + residency.set_max_per_set(0); + let count = residency.num_sets(); + let buffers = (0..16).map(|_| alloc(4 * MB)).collect::>(); + assert_eq!(residency.num_sets(), count); + assert_eq!(residency.wired_size(), baseline + 64 * MB); + drop(buffers); + assert_eq!(residency.wired_size(), baseline); + + allocator.set_wired_limit(baseline + 4 * MB).unwrap(); + let first = alloc(4 * MB); + let second = alloc(4 * MB); + assert_eq!(residency.wired_size(), baseline + 4 * MB); + drop(first); + assert_eq!( + residency.wired_size(), + baseline, + "free must not promote an unwired allocation" + ); + // Reapplying the same limit also does not promote it. + allocator.set_wired_limit(baseline + 4 * MB).unwrap(); + assert_eq!(residency.wired_size(), baseline); + drop(second); + assert!(allocator.set_wired_limit(usize::MAX).is_err()); + assert_eq!(residency.wired_size(), baseline); + + allocator.set_wired_limit(64 * MB).unwrap(); + allocator.set_cache_limit(16 * MB); + let buffer = alloc(4 * MB); + drop(buffer); + assert_eq!( + residency.wired_size(), + baseline + 4 * MB, + "cached storage stays wired" + ); + check_native(); + allocator.clear_cache(); + assert_eq!(residency.wired_size(), baseline); + allocator.set_wired_limit(0).unwrap(); + assert_eq!(residency.wired_size(), 0); + check_native(); +} diff --git a/src/engine/metal/qwen_mtplx/rope.rs b/src/engine/metal/qwen_mtplx/rope.rs new file mode 100644 index 0000000..05729ab --- /dev/null +++ b/src/engine/metal/qwen_mtplx/rope.rs @@ -0,0 +1,438 @@ +//! qwen4_exp.py RoPE graphs. Frequencies and trigonometry stay on the original +//! runtime primitives; host f64 is used only where MTPLX uses Python math. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::stream::Stream; +use super::unary::{Unary, unary}; +use super::{indexing, ops}; + +/// Numeric static-YaRN settings after the model configuration's type conversion. +pub(super) struct Yarn { + pub factor: f64, + pub original_max: i64, + pub attention_factor: Option, + pub mscale: Option, + pub mscale_all_dim: Option, + pub beta_fast: f64, + pub beta_slow: f64, + pub truncate: bool, +} + +fn scalar(value: f64) -> Result { + Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&(value as f32).to_le_bytes())?, + ) +} + +pub(super) fn inv_freq_and_scaling( + rotary_dim: i32, + base: f64, + yarn: Option<&Yarn>, + stream: Stream, +) -> Result<(Array, f64), String> { + if rotary_dim <= 0 || rotary_dim % 2 != 0 { + return Err("rotary_dim must be a positive even integer".into()); + } + if !base.is_finite() || base <= 1.0 { + return Err("rope_theta must be finite and greater than 1".into()); + } + let positions = indexing::arange_f32(0.0, f64::from(rotary_dim), 2.0, stream)?; + let position_frequencies = binary( + &scalar(base)?, + &binary( + &positions, + &scalar(f64::from(rotary_dim))?, + Binary::Divide, + stream, + )?, + Binary::Power, + stream, + )?; + let Some(yarn) = yarn else { + return Ok(( + binary(&scalar(1.0)?, &position_frequencies, Binary::Divide, stream)?, + 1.0, + )); + }; + let factor = yarn.factor; + if !factor.is_finite() || factor < 1.0 || yarn.original_max <= 0 { + return Err( + "static YaRN requires finite factor >= 1 and positive original_max_position_embeddings" + .into(), + ); + } + let mscale = |multiplier: f64| { + if factor <= 1.0 { + 1.0 + } else { + 0.1 * multiplier * factor.ln() + 1.0 + } + }; + let attention_scaling = + yarn.attention_factor + .unwrap_or_else(|| match (yarn.mscale, yarn.mscale_all_dim) { + (Some(a), Some(b)) if a != 0.0 && b != 0.0 => mscale(a) / mscale(b), + _ => mscale(1.0), + }); + if !attention_scaling.is_finite() || attention_scaling <= 0.0 { + return Err("YaRN attention_factor must be finite and positive".into()); + } + let beta_fast = if yarn.beta_fast == 0.0 { + 32.0 + } else { + yarn.beta_fast + }; + let beta_slow = if yarn.beta_slow == 0.0 { + 1.0 + } else { + yarn.beta_slow + }; + if beta_fast < beta_slow || beta_fast <= 0.0 || beta_slow <= 0.0 { + return Err( + "YaRN beta_fast must be >= beta_slow, with positive logarithm arguments".into(), + ); + } + let correction_dimension = |rotations: f64| { + f64::from(rotary_dim) + * (yarn.original_max as f64 / (rotations * 2.0 * std::f64::consts::PI)).ln() + / (2.0 * base.ln()) + }; + let (mut low, mut high) = ( + correction_dimension(beta_fast), + correction_dimension(beta_slow), + ); + if yarn.truncate { + if !low.is_finite() || !high.is_finite() { + return Err("YaRN correction dimensions cannot be truncated".into()); + } + low = low.floor(); + high = high.ceil(); + } + // Python max/min keep a NaN first argument, unlike Rust f64::max/min. + if low < 0.0 { + low = 0.0; + } + if high > f64::from(rotary_dim - 1) { + high = f64::from(rotary_dim - 1); + } + if low == high { + high += 0.001; + } + let ramp = binary( + &binary( + &binary( + &indexing::arange_f32(0.0, f64::from(rotary_dim / 2), 1.0, stream)?, + &scalar(low)?, + Binary::Subtract, + stream, + )?, + &scalar(high - low)?, + Binary::Divide, + stream, + )?, + &scalar(0.0)?, + Binary::Maximum, + stream, + )?; + let ramp = binary(&ramp, &scalar(1.0)?, Binary::Minimum, stream)?; + let inv_freq_extrapolation = + binary(&scalar(1.0)?, &position_frequencies, Binary::Divide, stream)?; + let inv_freq_interpolation = binary( + &inv_freq_extrapolation, + &scalar(factor)?, + Binary::Divide, + stream, + )?; + let extrapolation_factor = binary(&scalar(1.0)?, &ramp, Binary::Subtract, stream)?; + let inv_freq = binary( + &binary( + &inv_freq_interpolation, + &binary( + &scalar(1.0)?, + &extrapolation_factor, + Binary::Subtract, + stream, + )?, + Binary::Multiply, + stream, + )?, + &binary( + &inv_freq_extrapolation, + &extrapolation_factor, + Binary::Multiply, + stream, + )?, + Binary::Add, + stream, + )?; + Ok(( + ops::astype(&inv_freq, Dtype::F32, false, stream)?, + attention_scaling, + )) +} + +pub(super) fn cos_sin( + positions: &Array, + inv_freq: &Array, + attention_scaling: f64, + stream: Stream, +) -> Result<(Array, Array), String> { + let positions = ops::astype(positions, Dtype::F32, false, stream)?; + let angles = binary( + &ops::expand_dims(&positions, &[1], stream)?, + &ops::expand_dims(inv_freq, &[0], stream)?, + Binary::Multiply, + stream, + )?; + let emb = ops::concatenate(&[angles.clone(), angles], -1, stream)?; + let mut cosine = unary(&emb, Unary::Cos, stream)?; + let mut sine = unary(&emb, Unary::Sin, stream)?; + if attention_scaling != 1.0 { + cosine = binary( + &cosine, + &scalar(attention_scaling)?, + Binary::Multiply, + stream, + )?; + sine = binary(&sine, &scalar(attention_scaling)?, Binary::Multiply, stream)?; + } + Ok((cosine, sine)) +} + +pub(super) fn build_mrope_axes(section: &[i32], interleaved: bool) -> Vec { + let mut remaining = section.to_vec(); + let mut axes = Vec::new(); + if interleaved { + let mut axis = 0; + while remaining.iter().map(|&v| i64::from(v)).sum::() > 0 { + if remaining[axis] > 0 { + axes.push(axis as i32); + remaining[axis] -= 1; + } + axis = (axis + 1) % remaining.len(); + } + } else { + for (axis, &count) in remaining.iter().enumerate() { + axes.extend(std::iter::repeat_n(axis as i32, count.max(0) as usize)); + } + } + axes +} + +pub(super) fn mrope_cos_sin( + positions3: &Array, + inv_freq: &Array, + axes: &Array, + stream: Stream, +) -> Result<(Array, Array), String> { + let pos = indexing::take( + &ops::astype(positions3, Dtype::F32, false, stream)?, + axes, + 0, + stream, + )?; + let angles = binary( + &ops::transpose(&pos, &[1, 0], stream)?, + &ops::expand_dims(inv_freq, &[0], stream)?, + Binary::Multiply, + stream, + )?; + let emb = ops::concatenate(&[angles.clone(), angles], -1, stream)?; + Ok(( + unary(&emb, Unary::Cos, stream)?, + unary(&emb, Unary::Sin, stream)?, + )) +} + +pub(super) fn apply_partial( + x: &Array, + cos: &Array, + sin: &Array, + stream: Stream, +) -> Result { + let shape = x.layout().shape().to_vec(); + let cos_shape = cos.layout().shape().to_vec(); + if shape.len() < 3 + || cos_shape.len() != 2 + || sin.layout().shape() != cos_shape + || cos_shape[0] != shape[shape.len() - 3] + || cos_shape[1] < 0 + || cos_shape[1] % 2 != 0 + || cos_shape[1] > *shape.last().unwrap() + { + return Err("partial RoPE requires [..., S, H, D] and [S, rot] matching tables".into()); + } + let rot = cos_shape[1]; + let part = |input: &Array, start, stop| { + let mut starts = vec![0; shape.len()]; + *starts.last_mut().unwrap() = start; + let mut stops = shape.clone(); + *stops.last_mut().unwrap() = stop; + ops::slice(input, &starts, &stops, &vec![1; shape.len()], stream) + }; + let x_rope = part(x, 0, rot)?; + let x_pass = part(x, rot, *shape.last().unwrap())?; + let x1 = part(&x_rope, 0, rot / 2)?; + let x2 = part(&x_rope, rot / 2, rot)?; + let rotated = ops::concatenate(&[unary(&x2, Unary::Negative, stream)?, x1], -1, stream)?; + let cos = ops::expand_dims(cos, &[1], stream)?; + let sin = ops::expand_dims(sin, &[1], stream)?; + let x_rope = binary( + &binary( + &ops::astype(&x_rope, Dtype::F32, false, stream)?, + &cos, + Binary::Multiply, + stream, + )?, + &binary( + &ops::astype(&rotated, Dtype::F32, false, stream)?, + &sin, + Binary::Multiply, + stream, + )?, + Binary::Add, + stream, + )?; + let x_rope = ops::astype(&x_rope, x.layout().dtype(), false, stream)?; + ops::concatenate(&[x_rope, x_pass], -1, stream) +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX RoPE, static YaRN and multi-axis receipts"] +fn mtplx_rope_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-rope-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 48); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [rot, rows, pos, heads] = + ["rot", "rows", "pos", "heads"].map(|key| case[key].as_i64().unwrap() as i32); + let p = &case["parameters"]; + let yarn = (p["rope_type"] == "yarn").then(|| Yarn { + factor: p["factor"].as_f64().unwrap(), + original_max: p["original_max_position_embeddings"].as_i64().unwrap(), + attention_factor: p["attention_factor"].as_f64(), + mscale: p["mscale"].as_f64(), + mscale_all_dim: p["mscale_all_dim"].as_f64(), + beta_fast: p["beta_fast"].as_f64().unwrap_or(32.0), + beta_slow: p["beta_slow"].as_f64().unwrap_or(1.0), + truncate: p["truncate"].as_bool().unwrap_or(true), + }); + let (inv, scale) = + inv_freq_and_scaling(rot, case["base"].as_f64().unwrap(), yarn.as_ref(), gpu) + .unwrap(); + assert_eq!(scale, case["scale"].as_f64().unwrap()); + let section = case["section"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap() as i32) + .collect::>(); + let mode = case["mode"].as_str().unwrap(); + let axes = build_mrope_axes(§ion, mode != "sections"); + assert_eq!(serde_json::json!(axes), case["axes"]); + let (cos, sin) = if mode == "text" { + let positions = indexing::arange_range_i32(pos, pos + rows, gpu).unwrap(); + cos_sin(&positions, &inv, scale, gpu).unwrap() + } else { + let positions = (0..3) + .flat_map(|axis| { + (pos..pos + rows).flat_map(move |v| { + (v + if mode == "equal" { 0 } else { [0, 7, 19][axis] }) + .to_le_bytes() + }) + }) + .collect::>(); + let positions = Array::new( + &[3, rows], + Dtype::I32, + super::scalar_buffer(&positions).unwrap(), + ) + .unwrap(); + let axes = Array::new( + &[rot / 2], + Dtype::I32, + super::scalar_buffer( + &axes + .into_iter() + .flat_map(i32::to_le_bytes) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + mrope_cos_sin(&positions, &inv, &axes, gpu).unwrap() + }; + let strided = case["strided"].as_bool().unwrap(); + let width = if strided { 512 } else { 256 }; + let x = Array::new( + &[1, rows, heads, width], + Dtype::BF16, + pattern((rows * heads * width) as u32, 103), + ) + .unwrap(); + let x = if strided { + ops::slice( + &x, + &[0, 0, 0, 1], + &[1, rows, heads, width], + &[1, 1, 1, 2], + gpu, + ) + .unwrap() + } else { + x + }; + if prepared { + ops::evaluate( + &streams, + &[inv.clone(), cos.clone(), sin.clone(), x.clone()], + gpu, + false, + ) + .unwrap(); + } + let out = apply_partial(&x, &cos, &sin, gpu).unwrap(); + drop(x); + ops::evaluate( + &streams, + &[inv.clone(), cos.clone(), sin.clone(), out.clone()], + gpu, + false, + ) + .unwrap(); + assert_eq!(out.layout().shape(), [1, rows, heads, 256]); + verify_typed( + case["kernel"].as_str().unwrap(), + &[ + (&inv.buffer(), (rot / 2) as u32, 4), + (&cos.buffer(), (rows * rot) as u32, 4), + (&sin.buffer(), (rows * rot) as u32, 4), + (&out.buffer(), (rows * heads * 256) as u32, 2), + ], + ); + }); + } + } + for (dim, base) in [(0, 10000.0), (3, 10000.0), (64, 1.0), (64, f64::NAN)] { + assert!(inv_freq_and_scaling(dim, base, None, gpu).is_err()); + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/sampling.rs b/src/engine/metal/qwen_mtplx/sampling.rs new file mode 100644 index 0000000..ee3dcc3 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/sampling.rs @@ -0,0 +1,2549 @@ +//! Runtime sampling graphs from the pinned MTPLX fast_sampling.py. +use super::array::{Array, Dtype}; +use super::binary::{Binary, binary}; +use super::stream::{Stream, Streams}; +use super::{indexing, normalization, ops, reduce, sort, unary}; +use crate::engine::Rng; +use std::borrow::Cow; + +#[derive(Clone, Copy)] +pub(super) struct SamplerConfig { + pub(super) temperature: f64, + pub(super) top_p: f64, + pub(super) top_k: i32, + pub(super) presence_penalty: f64, + pub(super) frequency_penalty: f64, +} + +impl Default for SamplerConfig { + fn default() -> Self { + Self { + temperature: 0.6, + top_p: 0.95, + top_k: 20, + presence_penalty: 0.0, + frequency_penalty: 0.0, + } + } +} + +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) const MAX_DEVICE_TOP_K_ORDER: i32 = 32; + +/// fast_sampling.sample_token_ids_from_mlx_logits: exact target-prefix lane, +/// distinct from p/q residual sampling and from the resident AR lane. The +/// caller shares the owner's default RNG; a rejected route does not advance it. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) fn sample_token_ids( + logits: &Array, + config: &SamplerConfig, + rng: &mut super::random::KeySequence, + stream: Stream, +) -> Result, String> { + use super::random::{categorical_last, scalar}; + if config.temperature <= 0.0 { + return reduce::argmax(logits, -1, false, stream).map(Some); + } + let rows = binary( + &ops::astype(logits, Dtype::F32, false, stream)?, + &scalar(config.temperature as f32)?, + Binary::Divide, + stream, + )?; + let vocab = rows.layout().dim(-1)?; + let top_p = config.top_p > 0.0 && config.top_p < 1.0; + if config.top_k <= 0 { + return if top_p { + Ok(None) + } else { + categorical_last(&rows, &rng.next()?, stream).map(Some) + }; + } + let k = config.top_k.min(vocab); + if k <= 0 { + return Ok(None); + } + if top_p && k > MAX_DEVICE_TOP_K_ORDER { + return Err("device top-p sampling requires top_k <= 32".into()); + } + let (mut top_idx, mut top_vals) = deterministic_top_k(&rows, k, stream)?; + if top_p { + (top_idx, top_vals) = order_bounded_support(&top_idx, &top_vals, stream)?; + let log_total = normalization::logsumexp_last(&rows, true, stream)?; + let probs = unary::unary( + &binary(&top_vals, &log_total, Binary::Subtract, stream)?, + unary::Unary::Exp, + stream, + )?; + let higher_mass = binary( + &indexing::cumsum_last_f32(&probs, true, stream)?, + &probs, + Binary::Subtract, + stream, + )?; + let zero = Array::new(&[], Dtype::I32, super::scalar_buffer(&0_i32.to_le_bytes())?)?; + let first = binary( + &indexing::arange_i32(k, stream)?, + &zero, + Binary::Equal, + stream, + )?; + let keep = binary( + &binary( + &higher_mass, + &scalar(config.top_p as f32)?, + Binary::Less, + stream, + )?, + &first, + Binary::LogicalOr, + stream, + )?; + top_vals = indexing::select(&keep, &top_vals, &scalar(f32::NEG_INFINITY)?, stream)?; + } else { + let order = sort::sort(&top_idx, Some(-1), true, None, stream)?; + top_idx = indexing::take_along_axis(&top_idx, &order, -1, stream)?; + top_vals = indexing::take_along_axis(&top_vals, &order, -1, stream)?; + } + let offsets = categorical_last(&top_vals, &rng.next()?, stream)?; + let selected = indexing::take_along_axis( + &top_idx, + &ops::expand_dims(&offsets, &[-1], stream)?, + -1, + stream, + )?; + ops::squeeze(&selected, Some(&[-1]), stream).map(Some) +} + +/// Original bounded pairwise rank: values descending, then token IDs ascending. +/// Do not replace it by a full sort of the logits or order tied scores alone. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn order_bounded_support( + ids: &Array, + values: &Array, + stream: Stream, +) -> Result<(Array, Array), String> { + let candidate_values = ops::expand_dims(values, &[-1], stream)?; + let other_values = ops::expand_dims(values, &[-2], stream)?; + let candidate_ids = ops::expand_dims(ids, &[-1], stream)?; + let other_ids = ops::expand_dims(ids, &[-2], stream)?; + let higher = binary(&other_values, &candidate_values, Binary::Greater, stream)?; + let tied = binary(&other_values, &candidate_values, Binary::Equal, stream)?; + let lower_ids = binary(&other_ids, &candidate_ids, Binary::Less, stream)?; + let ranks = reduce::sum( + &binary( + &higher, + &binary(&tied, &lower_ids, Binary::LogicalAnd, stream)?, + Binary::LogicalOr, + stream, + )?, + &[-1], + false, + stream, + )?; + let order = sort::sort(&ranks, Some(-1), true, None, stream)?; + Ok(( + indexing::take_along_axis(ids, &order, -1, stream)?, + indexing::take_along_axis(values, &order, -1, stream)?, + )) +} + +/// generation._mx_lazy_sample. Keep selection in the original model dtype, +/// promote only the selected k logits, and return an unevaluated scalar token. +/// The AR lane owns key splitting; neither this graph nor its RNG reads back. +pub(super) fn lazy_sample( + row: &Array, + config: &SamplerConfig, + key: &Array, + stream: Stream, +) -> Result { + use super::random::{categorical_row, scalar}; + let k = config.top_k; + if row.layout().shape().len() != 1 + || k <= 1 + || k as usize >= row.layout().size() + || config.temperature <= 0.0 + { + return Err( + "resident sampler requires a row, positive temperature and 1 < k < vocab".into(), + ); + } + let indices = sort::sort( + &unary::unary(row, unary::Unary::Negative, stream)?, + Some(-1), + true, + Some(k - 1), + stream, + )?; + let top_idx = ops::slice(&indices, &[0], &[k], &[1], stream)?; + // Python max(temperature, 1e-6) preserves NaN in the first argument. + let temperature = if config.temperature < 1e-6 { + 1e-6 + } else { + config.temperature + }; + let top_vals = binary( + &ops::astype( + &indexing::take(row, &top_idx, 0, stream)?, + Dtype::F32, + false, + stream, + )?, + &scalar((1.0 / temperature) as f32)?, + Binary::Multiply, + stream, + )?; + let local = if config.top_p > 0.0 && config.top_p < 1.0 { + let order = sort::sort( + &unary::unary(&top_vals, unary::Unary::Negative, stream)?, + Some(-1), + true, + None, + stream, + )?; + let sv = indexing::take(&top_vals, &order, 0, stream)?; + let sp = normalization::softmax_last(&sv, false, stream)?; + let keep = binary( + &binary( + &indexing::cumsum_last_f32(&sp, true, stream)?, + &sp, + Binary::Subtract, + stream, + )?, + &scalar(config.top_p as f32)?, + Binary::Less, + stream, + )?; + let one = Array::new(&[], Dtype::I32, super::scalar_buffer(&1_i32.to_le_bytes())?)?; + let keep_n = binary( + &reduce::sum(&keep, &[0], false, stream)?, + &one, + Binary::Maximum, + stream, + )?; + let sv = indexing::select( + &binary( + &indexing::arange_i32(k, stream)?, + &keep_n, + Binary::Less, + stream, + )?, + &sv, + &scalar(f32::NEG_INFINITY)?, + stream, + )?; + indexing::take(&order, &categorical_row(&sv, key, stream)?, 0, stream)? + } else { + categorical_row(&top_vals, key, stream)? + }; + indexing::take(&top_idx, &local, 0, stream) +} + +/// generation._distribution_from_mlx_logits, including the single-row GPU +/// sparse entry and its distinct bad-mass fallback. Dense penalties must be +/// applied on the host, not reused from the lower-precision GPU path. +pub(super) fn distribution_from_logits( + logits: &Array, + config: &SamplerConfig, + counts: &[(i64, i64)], + overlay: &[(i64, f64)], + streams: &Streams, + stream: Stream, +) -> Result { + if !(config.temperature <= 0.0 || config.top_k <= 0) { + let row = apply_penalties_gpu( + &ops::reshape(logits, &[-1], stream)?, + counts, + config.presence_penalty, + config.frequency_penalty, + overlay, + stream, + )?; + let row = ops::astype(&row, Dtype::F32, false, stream)?; + let support = serial_support( + &row, + config.temperature, + config.top_p, + config.top_k, + streams, + stream, + )?; + let distribution = match support.distribution(0)? { + Some(p) => p, + None => host_sparse( + &ops::read_f32_as_f64(&row, streams, stream)?, + config.temperature, + config.top_p, + config.top_k, + )?, + }; + Ok(Distribution::Sparse(distribution)) + } else { + let logits = ops::astype(logits, Dtype::F32, false, stream)?; + let values = ops::read_f32_as_f64(&logits, streams, stream)?; + let values = apply_penalties_host( + &values, + counts, + config.presence_penalty, + config.frequency_penalty, + overlay, + )?; + Ok(Distribution::Dense(dense_probabilities( + &values, + config.temperature, + config.top_p, + config.top_k, + )?)) + } +} + +/// The ordinary generation._sample_from_logits path. Greedy evaluates model +/// logits before constructing/evaluating ArgMax and never advances PCG64. +/// The resident pipelined keyed-device sampler is a separate reference lane. +pub(super) fn sample_from_logits( + logits: &Array, + config: &SamplerConfig, + rng: &mut Rng, + counts: &[(i64, i64)], + overlay: &[(i64, f64)], + streams: &Streams, + stream: Stream, +) -> Result<(i64, Option), String> { + if config.temperature <= 0.0 { + let logits = if !overlay.is_empty() + || (!counts.is_empty() + && (config.presence_penalty != 0.0 || config.frequency_penalty != 0.0)) + { + apply_penalties_gpu( + &ops::reshape(logits, &[-1], stream)?, + counts, + config.presence_penalty, + config.frequency_penalty, + overlay, + stream, + )? + } else { + logits.clone() + }; + ops::evaluate(streams, std::slice::from_ref(&logits), stream, false)?; + let token = reduce::argmax(&logits, -1, false, stream)?; + if token.layout().size() != 1 { + return Err("greedy sampler requires a scalar token result".into()); + } + Ok((ops::read_i64(&token, streams, stream)?[0], None)) + } else { + let p = distribution_from_logits(logits, config, counts, overlay, streams, stream)?; + Ok((p.sample(rng)?, Some(p))) + } +} + +/// Sparse maps retain their iteration order. Counts cover generated tokens, +/// not prompt tokens. A disabled penalty is an identity, including storage. +pub(super) fn apply_penalties_host<'a>( + logits: &'a [f64], + counts: &[(i64, i64)], + presence: f64, + frequency: f64, + overlay: &[(i64, f64)], +) -> Result, String> { + let presence = presence.clamp(-2.0, 2.0); + let frequency = frequency.clamp(-2.0, 2.0); + let active = !counts.is_empty() && (presence != 0.0 || frequency != 0.0); + if !active && overlay.is_empty() { + return Ok(Cow::Borrowed(logits)); + } + let mut out = logits.to_vec(); + if active { + // NumPy indexed -= reads all selected values before writing. Preserve + // that order even when negative and positive keys alias the same ID. + let updates = counts + .iter() + .map(|&(id, count)| { + let i = dense_index(id, out.len())?; + Ok(( + i, + out[i] - (frequency * count as f64 + presence * f64::from(count > 0)), + )) + }) + .collect::, String>>()?; + for (i, value) in updates { + out[i] = value; + } + } + if !overlay.is_empty() { + let updates = overlay + .iter() + .map(|&(id, value)| { + let i = dense_index(id, out.len())?; + Ok((i, out[i] - value)) + }) + .collect::, String>>()?; + for (i, value) in updates { + out[i] = value; + } + } + Ok(Cow::Owned(out)) +} + +/// fast_sampling.apply_penalties_mlx: two independent raw-dtype Scatter(Sum) +/// operations, with Float64 deltas rounded to Float32 before the GPU cast. +pub(super) fn apply_penalties_gpu( + logits: &Array, + counts: &[(i64, i64)], + presence: f64, + frequency: f64, + overlay: &[(i64, f64)], + stream: Stream, +) -> Result { + let presence = presence.clamp(-2.0, 2.0); + let frequency = frequency.clamp(-2.0, 2.0); + let active = !counts.is_empty() && (presence != 0.0 || frequency != 0.0); + let scatter = |logits: &Array, updates: Vec<(i64, f32)>| { + for &(id, _) in &updates { + dense_index(id, logits.layout().size())?; + } + let shape = [i32::try_from(updates.len()).map_err(|_| "penalty index count overflow")?]; + let ids = Array::new( + &shape, + Dtype::I64, + super::scalar_buffer( + &updates + .iter() + .flat_map(|&(id, _)| id.to_le_bytes()) + .collect::>(), + )?, + )?; + let values = Array::new( + &shape, + Dtype::F32, + super::scalar_buffer( + &updates + .iter() + .flat_map(|&(_, p)| p.to_le_bytes()) + .collect::>(), + )?, + )?; + indexing::scatter_add_row(logits, &ids, &values, stream) + }; + let mut row = logits.clone(); + if active { + row = scatter( + &row, + counts + .iter() + .map(|&(id, count)| { + ( + id, + -((frequency * count as f64 + presence * f64::from(count > 0)) as f32), + ) + }) + .collect(), + )?; + } + if !overlay.is_empty() { + row = scatter( + &row, + overlay.iter().map(|&(id, p)| (id, -(p as f32))).collect(), + )?; + } + Ok(row) +} + +/// MTPLX retains dense distributions when the sparse GPU entry declines the +/// request. Do not pass these through SparseDistribution's extra normalization. +#[derive(Clone)] +pub(super) enum Distribution { + Dense(Vec), + Sparse(SparseDistribution), +} + +impl Distribution { + pub(super) fn probability(&self, token: i64) -> Result { + match self { + Self::Sparse(p) => Ok(p.probability(token)), + Self::Dense(p) => Ok(p[dense_index(token, p.len())?]), + } + } + + fn dense(&self) -> Result, String> { + match self { + Self::Dense(p) => Ok(Cow::Borrowed(p)), + Self::Sparse(p) => { + let mut out = vec![0.0; p.vocabulary]; + for (&id, &probability) in p.ids.iter().zip(&p.probabilities) { + out[dense_index(id, p.vocabulary)?] = probability; + } + Ok(Cow::Owned(out)) + } + } + } + + pub(super) fn sample(&self, rng: &mut Rng) -> Result { + match self { + Self::Sparse(p) => Ok(p.sample(rng)), + Self::Dense(p) => { + let total = pairwise_sum(p); + let normalized = p.iter().map(|v| v / total).collect::>(); + Ok(checked_choice_index(&normalized, rng)? as i64) + } + } + } + + pub(super) fn residual(&self, draft: &Self) -> Result, String> { + if let (Self::Sparse(p), Self::Sparse(q)) = (self, draft) { + return Ok(match p.residual(q)? { + Cow::Borrowed(_) => Cow::Borrowed(self), + Cow::Owned(p) => Cow::Owned(Self::Sparse(p)), + }); + } + let p = self.dense()?; + let q = draft.dense()?; + let size = if p.len() == q.len() || q.len() == 1 { + p.len() + } else if p.len() == 1 { + q.len() + } else { + return Err("residual distribution shapes cannot broadcast".into()); + }; + let positive = |v: f64| if v.is_finite() && v > 0.0 { v } else { 0.0 }; + let mut residual = (0..size) + .map(|i| { + positive(p[if p.len() == 1 { 0 } else { i }] - q[if q.len() == 1 { 0 } else { i }]) + }) + .collect::>(); + let mut total = pairwise_sum(&residual); + if !total.is_finite() || total <= 0.0 { + residual = p.iter().copied().map(positive).collect(); + total = pairwise_sum(&residual); + } + if !total.is_finite() || total <= 0.0 { + return Err("cannot build residual distribution from empty target".into()); + } + for p in &mut residual { + *p /= total; + } + Ok(Cow::Owned(Self::Dense(residual))) + } + + pub(super) fn verify( + &self, + draft: &Self, + token: i64, + rng: &mut Rng, + ) -> Result<(bool, i64, f64), String> { + if let (Self::Sparse(p), Self::Sparse(q)) = (self, draft) { + return p.verify(q, token, rng); + } + let p = self.probability(token)?; + let q = draft.probability(token)?; + let acceptance = if q <= 0.0 { + if p > 0.0 { 1.0 } else { 0.0 } + } else { + (p / q).min(1.0) + }; + if rng.unit_f64() <= acceptance { + Ok((true, token, acceptance)) + } else { + Ok((false, self.residual(draft)?.sample(rng)?, acceptance)) + } + } +} + +fn dense_index(token: i64, size: usize) -> Result { + let token = if token < 0 { + token + size as i64 + } else { + token + }; + usize::try_from(token) + .ok() + .filter(|&i| i < size) + .ok_or_else(|| "distribution token index out of bounds".into()) +} + +fn checked_choice_index(probabilities: &[f64], rng: &mut Rng) -> Result { + // NumPy choice validates p before drawing. Do not normalize here: the + // dense wrapper does so explicitly; BatchedSparseDistributions does not. + let (mut sum, mut correction) = (0.0, 0.0); + for &p in probabilities { + if !p.is_finite() || p < 0.0 { + return Err("invalid sampling probabilities".into()); + } + let y = p - correction; + let t = sum + y; + correction = (t - sum) - y; + sum = t; + } + if probabilities.is_empty() || (sum - 1.0_f64).abs() > f64::EPSILON.sqrt() { + return Err("sampling probabilities do not sum to one".into()); + } + Ok(choice_index(probabilities, rng)) +} + +fn choice_index(probabilities: &[f64], rng: &mut Rng) -> usize { + // NumPy Generator.choice(p=...): sequential cumsum, divide by final + // CDF, then searchsorted(side="right"). A point mass still draws once. + let mut sum = 0.0; + let mut cdf = probabilities + .iter() + .map(|p| { + sum += p; + sum + }) + .collect::>(); + for p in &mut cdf { + *p /= sum; + } + let draw = rng.unit_f64(); + cdf.partition_point(|p| *p <= draw) +} + +/// MTPLX sampling.SparseDistribution, retaining original normalization order. +#[derive(Clone)] +pub(super) struct SparseDistribution { + ids: Vec, + probabilities: Vec, + vocabulary: usize, +} + +impl SparseDistribution { + pub(super) fn new( + mut ids: Vec, + mut probabilities: Vec, + vocabulary: usize, + ) -> Result { + if ids.is_empty() || ids.len() != probabilities.len() { + return Err("sparse distribution requires matching nonempty arrays".into()); + } + if probabilities.iter().any(|p| p.is_finite() && *p < 0.0) { + return Err("sparse distribution probabilities must be nonnegative".into()); + } + for p in &mut probabilities { + if !p.is_finite() || *p <= 0.0 { + *p = 0.0; + } + } + let mut total = pairwise_sum(&probabilities); + if !total.is_finite() || total <= 0.0 { + let token = ids + .iter() + .copied() + .find(|&i| i >= 0 && (i as u64) < vocabulary as u64) + .ok_or("sparse distribution has neither positive mass nor a valid token")?; + ids = vec![token]; + probabilities = vec![1.0]; + total = 1.0; + } + for p in &mut probabilities { + *p /= total; + } + Ok(Self { + ids, + probabilities, + vocabulary, + }) + } + + pub(super) fn probability(&self, token: i64) -> f64 { + self.ids + .iter() + .position(|&i| i == token) + .map_or(0.0, |i| self.probabilities[i]) + } + + pub(super) fn sample(&self, rng: &mut Rng) -> i64 { + self.ids[choice_index(&self.probabilities, rng)] + } + + pub(super) fn residual(&self, draft: &Self) -> Result, String> { + let mut tokens = self + .ids + .iter() + .chain(&draft.ids) + .copied() + .collect::>(); + tokens.sort_unstable(); + tokens.dedup(); + let mut ids = Vec::new(); + let mut probabilities = Vec::new(); + for token in tokens { + let p = (self.probability(token) - draft.probability(token)).max(0.0); + if p.is_finite() && p > 0.0 { + ids.push(token); + probabilities.push(p); + } + } + let total = pairwise_sum(&probabilities); + if !total.is_finite() || total <= 0.0 { + return Ok(Cow::Borrowed(self)); + } + for p in &mut probabilities { + *p /= total; + } + Self::new(ids, probabilities, self.vocabulary).map(Cow::Owned) + } + + /// Original verify_one_token: acceptance draw, and only on rejection an + /// additional residual sample. Tuple is (accepted, token, acceptance mass). + pub(super) fn verify( + &self, + draft: &Self, + token: i64, + rng: &mut Rng, + ) -> Result<(bool, i64, f64), String> { + let p = self.probability(token); + let q = draft.probability(token); + let acceptance = if q <= 0.0 { + if p > 0.0 { 1.0 } else { 0.0 } + } else { + (p / q).min(1.0) + }; + if rng.unit_f64() <= acceptance { + Ok((true, token, acceptance)) + } else { + Ok((false, self.residual(draft)?.sample(rng), acceptance)) + } + } +} + +/// fast_sampling.BatchedSparseDistributions: keep padded zero entries and +/// normalize once as a matrix. Conversion to SparseDistribution is a separate, +/// second normalization; direct batch sampling must not take that route. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) struct BatchedDistributions { + ids: Vec>, + probabilities: Vec>, + vocabulary: usize, +} + +impl BatchedDistributions { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn from_rows( + mut ids: Vec>, + mut probabilities: Vec>, + vocabulary: usize, + order_by_id: bool, + ) -> Result { + let width = ids.first().map_or(0, Vec::len); + if ids.len() != probabilities.len() + || ids.iter().any(|r| r.len() != width) + || probabilities.iter().any(|r| r.len() != width) + { + return Err("batched token_ids/probs shape mismatch".into()); + } + for (ids, probs) in ids.iter_mut().zip(&mut probabilities) { + // Sum BEFORE vocabulary ordering, including zero/negative values. + // The reference validates row mass, not every individual entry. + let total = pairwise_sum(probs); + if !total.is_finite() || total <= 0.0 { + return Err("each sparse distribution row needs finite positive mass".into()); + } + if order_by_id { + let mut order = (0..width).collect::>(); + order.sort_unstable_by_key(|&i| ids[i]); + *ids = order.iter().map(|&i| ids[i]).collect(); + *probs = order.iter().map(|&i| probs[i]).collect(); + } + for p in probs { + *p /= total; + } + } + Ok(Self { + ids, + probabilities, + vocabulary, + }) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn from_execution(support: Support) -> Result { + Self::from_rows( + support + .ids + .into_iter() + .map(|r| r.into_iter().map(i64::from).collect()) + .collect(), + support.probabilities, + support.vocabulary, + true, + ) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn probability(&self, row: i64, token: i64) -> Result { + let row = dense_index(row, self.ids.len())?; + Ok(self.ids[row] + .iter() + .position(|&id| id == token) + .map_or(0.0, |i| self.probabilities[row][i])) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + fn positive_row(&self, row: i64) -> Result<(Vec, Vec), String> { + let row = dense_index(row, self.ids.len())?; + Ok(self.ids[row] + .iter() + .copied() + .zip(self.probabilities[row].iter().copied()) + .filter(|(_, p)| *p > 0.0) + .unzip()) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn to_distribution(&self, row: i64) -> Result { + let (ids, probabilities) = self.positive_row(row)?; + SparseDistribution::new(ids, probabilities, self.vocabulary) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn sample(&self, row: i64, rng: &mut Rng) -> Result { + let (ids, probabilities) = self.positive_row(row)?; + Ok(ids[checked_choice_index(&probabilities, rng)?]) + } +} + +/// Original bind_batched_top_k_distributions: bind the route once before +/// decoding. Unlike the serial path, this route uses full-vocabulary host F64 +/// softmax, and propagates invalid mass instead of substituting a one-hot row. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) struct BoundBatchedDistributions { + temperature: f64, + top_p: Option, + top_k: i32, + vocabulary: usize, +} + +impl BoundBatchedDistributions { + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn bind(config: &SamplerConfig, vocabulary: usize) -> Result { + if config.temperature <= 0.0 || config.top_k <= 0 || vocabulary == 0 { + return Err("fixed batched sampling requires temperature, top_k and vocabulary".into()); + } + Ok(Self { + temperature: config.temperature, + top_p: (config.top_p > 0.0 && config.top_p < 1.0).then_some(config.top_p), + top_k: (config.top_k as usize).min(vocabulary) as i32, + vocabulary, + }) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn evaluate( + &self, + logits: &Array, + streams: &Streams, + stream: Stream, + ) -> Result { + let vocab = logits.layout().dim(-1)?; + let rows = ops::astype( + &ops::reshape(logits, &[-1, vocab], stream)?, + Dtype::F32, + false, + stream, + )?; + let (top_idx, _top_vals) = deterministic_top_k(&rows, self.top_k, stream)?; + ops::evaluate(streams, &[rows.clone(), top_idx.clone()], stream, false)?; + let mut ids = read_words(&top_idx)?; + // NumPy astype(float64, order='K') sorts absolute strides, including + // zero broadcast strides. For a 2D (0,1) view it creates Fortran order; + // sum(axis=1) then accumulates across columns sequentially. Preserve + // that reduction order even though the Rust readback is row-major. + // NumPy 2.4.4: ctors.c NewLikeArrayWithShape and shape.c stride comparator. + let pairwise_rows = rows.layout().shape()[0] <= 1 + || rows.layout().strides()[0].unsigned_abs() + >= rows.layout().strides()[1].unsigned_abs(); + let host_rows = ops::read_f32_as_f64(&rows, streams, stream)?; + let mut probabilities = Vec::with_capacity(ids.len()); + for (row, tokens) in host_rows.chunks_exact(vocab as usize).zip(&mut ids) { + // Not dense_probabilities: that helper applies a second full-row + // normalization, absent from this fixed-route reference. + let mut full = row.iter().map(|x| x / self.temperature).collect::>(); + let maximum = if full.iter().any(|v| v.is_nan()) { + f64::NAN + } else { + full.iter().copied().fold(f64::NEG_INFINITY, f64::max) + }; + for p in &mut full { + *p = (*p - maximum).exp(); + } + let total = if pairwise_rows { + pairwise_sum(&full) + } else { + full.iter().fold(0.0, |sum, p| sum + p) + }; + for p in &mut full { + *p /= total; + } + let mut probs = tokens + .iter() + .map(|&id| full[id as usize]) + .collect::>(); + if let Some(top_p) = self.top_p { + let ranked = order(tokens, &probs); + *tokens = ranked.iter().map(|&i| tokens[i]).collect(); + probs = ranked.iter().map(|&i| probs[i]).collect(); + top_p_mask(&mut probs, top_p); + } + probabilities.push(probs); + } + BatchedDistributions::from_execution(Support { + ids, + probabilities, + vocabulary: self.vocabulary, + }) + } +} + +/// generation._batched_distributions_from_mlx_logits. A bad row switches the +/// ENTIRE batch to host distributions, unlike the per-row sparse-list fallback. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) fn batched_distributions( + logits: &Array, + config: &SamplerConfig, + streams: &Streams, + stream: Stream, +) -> Result, String> { + if config.temperature <= 0.0 || config.top_k <= 0 { + return Ok(None); + } + let vocab = logits.layout().dim(-1)?; + let rows = ops::astype( + &ops::reshape(logits, &[-1, vocab], stream)?, + Dtype::F32, + false, + stream, + )?; + let k = config.top_k.min(vocab); + if k <= 0 { + return Ok(None); + } + let support = serial_support( + &rows, + config.temperature, + config.top_p, + config.top_k, + streams, + stream, + )?; + if let Ok(batch) = BatchedDistributions::from_execution(support) { + return Ok(Some(batch)); + } + let host_rows = ops::read_f32_as_f64(&rows, streams, stream)?; + let mut ids = Vec::new(); + let mut probabilities = Vec::new(); + for row in host_rows.chunks_exact(vocab as usize) { + let mut distribution = host_sparse(row, config.temperature, config.top_p, config.top_k)?; + distribution.ids.resize(k as usize, -1); + distribution.probabilities.resize(k as usize, 0.0); + ids.push(distribution.ids); + probabilities.push(distribution.probabilities); + } + BatchedDistributions::from_rows(ids, probabilities, vocab as usize, false).map(Some) +} + +pub(super) struct Support { + pub(super) ids: Vec>, + pub(super) probabilities: Vec>, + pub(super) vocabulary: usize, +} + +/// sampling.softmax + apply_top_p_top_k on the full host Float64 row. +/// Keep zero entries during the final reduction: summing only sparse support +/// would change NumPy's pairwise grouping and subsequent RNG thresholds. +pub(super) fn dense_probabilities( + logits: &[f64], + temperature: f64, + top_p: f64, + top_k: i32, +) -> Result, String> { + if logits.is_empty() { + return Err("cannot normalize empty logits".into()); + } + let first_max = |values: &[f64]| { + values.iter().position(|v| v.is_nan()).unwrap_or_else(|| { + (1..values.len()).fold(0, |best, i| if values[i] > values[best] { i } else { best }) + }) + }; + let mut probabilities = if temperature <= 0.0 { + let mut p = vec![0.0; logits.len()]; + p[first_max(logits)] = 1.0; + p + } else { + let scaled = logits.iter().map(|v| v / temperature).collect::>(); + let maximum = scaled[first_max(&scaled)]; + let mut p = scaled + .iter() + .map(|v| (v - maximum).exp()) + .collect::>(); + let total = pairwise_sum(&p); + if !total.is_finite() || total <= 0.0 { + return Err("cannot normalize logits into a probability distribution".into()); + } + for value in &mut p { + *value /= total; + } + p + }; + let bounded_k = top_k > 0 && (top_k as usize) < logits.len(); + let active_p = top_p > 0.0 && top_p < 1.0; + if bounded_k || active_p { + let count = if bounded_k { + top_k as usize + } else { + logits.len() + }; + // The reference needs only the partition cutoff, then takes higher + // values and the first tied IDs. Do not replace partition with a full + // vocabulary sort when only k candidates are needed. + let mut ranked = if bounded_k { + let mut work = probabilities.clone(); + let position = work.len() - count; + let (_, cutoff, _) = work.select_nth_unstable_by(position, f64::total_cmp); + let cutoff = *cutoff; + let mut selected = probabilities + .iter() + .enumerate() + .filter_map(|(i, &p)| (p > cutoff).then_some(i)) + .collect::>(); + let missing = count - selected.len(); + selected.extend( + probabilities + .iter() + .enumerate() + .filter_map(|(i, &p)| (p == cutoff).then_some(i)) + .take(missing), + ); + selected + } else { + (0..logits.len()).collect() + }; + ranked.sort_unstable_by(|&a, &b| { + probabilities[b] + .total_cmp(&probabilities[a]) + .then(a.cmp(&b)) + }); + let mut keep = vec![false; logits.len()]; + let mut before = 0.0; + for i in ranked { + keep[i] = !active_p || before < top_p; + before += probabilities[i]; + } + let best = first_max(&probabilities); + for (p, keep) in probabilities.iter_mut().zip(keep) { + if !keep { + *p = 0.0; + } + } + let total = pairwise_sum(&probabilities); + if total <= 0.0 { + probabilities[best] = 1.0; + return Ok(probabilities); + } + for p in &mut probabilities { + *p /= total; + } + } else { + // apply_top_p_top_k normalizes even when both filters are inactive. + let total = pairwise_sum(&probabilities); + for p in &mut probabilities { + *p /= total; + } + } + Ok(probabilities) +} + +/// Original fast_sampling._host_sparse_distribution. Its invalid-mass result +/// is token zero; the ordinary dense generator path instead propagates error. +fn host_sparse( + logits: &[f64], + temperature: f64, + top_p: f64, + top_k: i32, +) -> Result { + let probabilities = match dense_probabilities(logits, temperature, top_p, top_k) { + Ok(p) => p, + Err(_) => return SparseDistribution::new(vec![0], vec![1.0], logits.len()), + }; + let (ids, probabilities) = probabilities + .into_iter() + .enumerate() + .filter(|(_, p)| *p > 0.0) + .map(|(i, p)| (i as i64, p)) + .unzip(); + SparseDistribution::new(ids, probabilities, logits.len()) +} + +/// fast_sampling.sparse_distributions_from_mlx_logits, including lazy full-row +/// fallback shared by all invalid rows. None delegates to the generator's +/// dense or greedy route; it does not silently change the requested sampler. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +pub(super) fn sparse_distributions( + logits: &Array, + temperature: f64, + top_p: f64, + top_k: i32, + streams: &Streams, + stream: Stream, +) -> Result>, String> { + if temperature <= 0.0 || top_k <= 0 { + return Ok(None); + } + let vocab = logits.layout().dim(-1)?; + let rows = ops::astype( + &ops::reshape(logits, &[-1, vocab], stream)?, + Dtype::F32, + false, + stream, + )?; + let support = serial_support(&rows, temperature, top_p, top_k, streams, stream)?; + let mut host_rows = None; + let mut result = Vec::with_capacity(support.ids.len()); + for i in 0..support.ids.len() { + if let Some(distribution) = support.distribution(i)? { + result.push(distribution); + } else { + if host_rows.is_none() { + host_rows = Some(ops::read_f32_as_f64(&rows, streams, stream)?); + } + result.push(host_sparse( + &host_rows.as_ref().unwrap()[i * vocab as usize..(i + 1) * vocab as usize], + temperature, + top_p, + top_k, + )?); + } + } + Ok(Some(result)) +} + +impl Support { + pub(super) fn distribution(&self, row: usize) -> Result, String> { + let ids = self.ids.get(row).ok_or("sparse support row out of range")?; + let probs = self + .probabilities + .get(row) + .ok_or("sparse support probability row out of range")?; + let mut kept = ids + .iter() + .copied() + .zip(probs.iter().copied()) + .filter(|(_, p)| *p > 0.0) + .collect::>(); + let total = pairwise_sum(&kept.iter().map(|(_, p)| *p).collect::>()); + if !total.is_finite() || total <= 0.0 { + return Ok(None); + } + kept.sort_unstable_by_key(|(id, _)| *id); + let (ids, probabilities) = kept + .into_iter() + .map(|(id, p)| (i64::from(id), p / total)) + .unzip(); + SparseDistribution::new(ids, probabilities, self.vocabulary).map(Some) + } +} + +// Pairwise summation port: NumPy 2.4.4, numpy/_core/src/umath/loops_utils.h.src. +// Copyright (c) 2005-2025, NumPy Developers. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the NumPy Developers nor the names of any contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +/// NumPy 2.4.4 DOUBLE_pairwise_sum ordering. +/// This is also needed by distribution normalization; ordinary Iterator::sum +/// changes the rounding order for the reference's k=20 candidate mass. +fn pairwise_sum(values: &[f64]) -> f64 { + if values.len() < 8 { + return values.iter().fold(-0.0, |a, b| a + b); + } + if values.len() > 128 { + let half = (values.len() / 2) & !7; + return pairwise_sum(&values[..half]) + pairwise_sum(&values[half..]); + } + let mut lanes: [f64; 8] = values[..8].try_into().unwrap(); + let end = values.len() & !7; + for chunk in values[8..end].chunks_exact(8) { + for (sum, value) in lanes.iter_mut().zip(chunk) { + *sum += value; + } + } + let sum = ((lanes[0] + lanes[1]) + (lanes[2] + lanes[3])) + + ((lanes[4] + lanes[5]) + (lanes[6] + lanes[7])); + values[end..].iter().fold(sum, |a, b| a + b) +} + +/// Read only the selected columns, even when an ArgPartition slice retains a +/// full-vocabulary row stride. No GPU pack/copy or additional eval is needed. +fn read_words(array: &Array) -> Result>, String> { + let layout = array.layout(); + if layout.shape().len() != 2 || layout.stride(-1)? != 1 || array.itemsize() != 4 { + return Err("sampler readback requires two-dimensional contiguous four-byte rows".into()); + } + let mut result = Vec::with_capacity(layout.shape()[0] as usize); + let mut bytes = vec![0; layout.shape()[1] as usize * 4]; + for row in 0..layout.shape()[0] { + let offset = u64::try_from(i64::from(row) * layout.strides()[0]) + .map_err(|_| "negative sampler row offset")? + .checked_mul(4) + .and_then(|n| n.checked_add(array.offset())) + .ok_or("sampler readback offset overflow")?; + array.buffer().read(offset, &mut bytes)?; + result.push( + bytes + .chunks_exact(4) + .map(|b| u32::from_le_bytes(b.try_into().unwrap())) + .collect(), + ); + } + Ok(result) +} + +fn read_floats(array: &Array) -> Result>, String> { + Ok(read_words(array)? + .into_iter() + .map(|r| { + r.into_iter() + .map(|v| f64::from(f32::from_bits(v))) + .collect() + }) + .collect()) +} + +fn order(ids: &[u32], values: &[f64]) -> Vec { + let mut indices = (0..ids.len()).collect::>(); + indices.sort_unstable_by(|&a, &b| match (values[a].is_nan(), values[b].is_nan()) { + (true, false) => std::cmp::Ordering::Greater, + (false, true) => std::cmp::Ordering::Less, + _ => values[b] + .partial_cmp(&values[a]) + .unwrap_or(std::cmp::Ordering::Equal) + .then_with(|| ids[a].cmp(&ids[b])), + }); + indices +} + +fn top_p_mask(probabilities: &mut [f64], top_p: f64) { + let mut before = 0.0; + for probability in probabilities { + let next = before + *probability; + if before.partial_cmp(&top_p) != Some(std::cmp::Ordering::Less) { + *probability = 0.0; + } + before = next; + } +} + +/// Exact `_device_serial_support_arrays` route: M=4k hot support, then the +/// deterministic device fallback for every row if any cutoff group spills. +pub(super) fn serial_support( + logits: &Array, + temperature: f64, + top_p: f64, + top_k: i32, + streams: &Streams, + stream: Stream, +) -> Result { + let vocabulary = logits.layout().dim(-1)?; + if vocabulary <= 0 || top_k <= 0 || temperature <= 0.0 { + return Err("serial top-k support requires positive vocabulary, k and temperature".into()); + } + let rows = ops::astype( + &ops::reshape(logits, &[-1, vocabulary], stream)?, + Dtype::F32, + false, + stream, + )?; + let k = top_k.min(vocabulary); + let m = (i64::from(k) * 4).min(i64::from(vocabulary)) as i32; + let scale = Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&((1.0 / temperature) as f32).to_le_bytes())?, + )?; + let scaled = binary(&rows, &scale, Binary::Multiply, stream)?; + let partition = sort::sort( + &unary::unary(&scaled, unary::Unary::Negative, stream)?, + Some(-1), + true, + Some(m - 1), + stream, + )?; + let candidates = ops::slice( + &partition, + &[0, 0], + &[rows.layout().shape()[0], m], + &[1, 1], + stream, + )?; + let values = indexing::take_along_axis(&scaled, &candidates, -1, stream)?; + let active_top_p = top_p > 0.0 && top_p < 1.0; + let probability_graph = |values: &Array| { + unary::unary( + &binary( + values, + &normalization::logsumexp_last(&scaled, true, stream)?, + Binary::Subtract, + stream, + )?, + unary::Unary::Exp, + stream, + ) + }; + let masses = active_top_p + .then(|| probability_graph(&values)) + .transpose()?; + let mut outputs = vec![candidates.clone(), values.clone()]; + outputs.extend(masses.iter().cloned()); + ops::evaluate(streams, &outputs, stream, false)?; + let masses = masses.as_ref().map(read_floats).transpose()?; + let candidate_ids = read_words(&candidates)?; + let candidate_values = read_floats(&values)?; + let mut support = Support { + ids: Vec::new(), + probabilities: Vec::new(), + vocabulary: vocabulary as usize, + }; + let mut spill = Vec::new(); + for (row, (ids, values)) in candidate_ids.iter().zip(&candidate_values).enumerate() { + let order = order(ids, values); + let selected = &order[..k as usize]; + let minimum = values + .iter() + .copied() + .filter(|v| !v.is_nan()) + .fold(f64::INFINITY, f64::min); + spill.push(m > k && minimum >= values[selected[k as usize - 1]]); + support.ids.push(selected.iter().map(|&i| ids[i]).collect()); + let mut probs = if let Some(masses) = &masses { + selected.iter().map(|&i| masses[row][i]).collect::>() + } else { + let max = selected + .iter() + .map(|&i| values[i]) + .fold(f64::NEG_INFINITY, |a, b| { + if a.is_nan() || b.is_nan() { + f64::NAN + } else { + a.max(b) + } + }); + let mut probs = selected + .iter() + .map(|&i| (values[i] - max).exp()) + .collect::>(); + let sum = pairwise_sum(&probs); + for p in &mut probs { + *p /= sum; + } + probs + }; + if active_top_p { + top_p_mask(&mut probs, top_p); + } + support.probabilities.push(probs); + } + if spill.iter().any(|s| *s) { + let (ids, values) = deterministic_top_k(&scaled, k, stream)?; + let probabilities = if active_top_p { + probability_graph(&values)? + } else { + normalization::softmax_last(&values, false, stream)? + }; + ops::evaluate( + streams, + &[ids.clone(), probabilities.clone()], + stream, + false, + )?; + let ids = read_words(&ids)?; + let probabilities = read_floats(&probabilities)?; + for row in 0..spill.len() { + if !spill[row] { + continue; + } + let indices = if active_top_p { + order(&ids[row], &probabilities[row]) + } else { + (0..k as usize).collect() + }; + support.ids[row] = indices.iter().map(|&i| ids[row][i]).collect(); + support.probabilities[row] = indices.iter().map(|&i| probabilities[row][i]).collect(); + if active_top_p { + top_p_mask(&mut support.probabilities[row], top_p); + } + } + } + Ok(support) +} + +/// `_deterministic_mlx_top_k_support`: cutoff ties retain lower vocabulary IDs. +/// Keep the original lazy graph, including both ArgPartition operations. No +/// host readback or replacement ordering kernel is introduced here. +pub(super) fn deterministic_top_k( + scaled: &Array, + top_k: i32, + stream: Stream, +) -> Result<(Array, Array), String> { + let layout = scaled.layout(); + let vocab = layout.dim(-1)?; + if top_k <= 0 || top_k > vocab { + return Err("top-k must be within the vocabulary".into()); + } + let mut shape = layout.shape().to_vec(); + *shape.last_mut().unwrap() = top_k; + let dtype = layout.dtype(); + drop(layout); + let rows = ops::reshape(scaled, &[-1, vocab], stream)?; + let partition = |values: &Array| { + let negative = unary::unary(values, unary::Unary::Negative, stream)?; + let indices = sort::sort(&negative, Some(-1), true, Some(top_k - 1), stream)?; + ops::slice( + &indices, + &[0, 0], + &[rows.layout().shape()[0], top_k], + &[1, 1], + stream, + ) + }; + let provisional = partition(&rows)?; + let provisional_values = indexing::take_along_axis(&rows, &provisional, -1, stream)?; + let cutoff = reduce::min(&provisional_values, &[-1], true, stream)?; + let higher = binary(&rows, &cutoff, Binary::Greater, stream)?; + let tied = binary(&rows, &cutoff, Binary::Equal, stream)?; + let higher_count = reduce::sum( + &ops::astype(&higher, Dtype::I32, false, stream)?, + &[-1], + true, + stream, + )?; + let tied_rank = + indexing::cumsum_last_i32(&ops::astype(&tied, Dtype::I32, false, stream)?, stream)?; + let k = Array::new(&[], Dtype::I32, super::scalar_buffer(&top_k.to_le_bytes())?)?; + let quota = binary(&k, &higher_count, Binary::Subtract, stream)?; + let tied_keep = binary(&tied_rank, "a, Binary::LessEqual, stream)?; + let chosen = binary( + &higher, + &binary(&tied, &tied_keep, Binary::LogicalAnd, stream)?, + Binary::LogicalOr, + stream, + )?; + let negative_infinity = ops::astype( + &Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&f32::NEG_INFINITY.to_le_bytes())?, + )?, + dtype, + false, + stream, + )?; + let selected = indexing::select(&chosen, &rows, &negative_infinity, stream)?; + let indices = partition(&selected)?; + let values = indexing::take_along_axis(&rows, &indices, -1, stream)?; + Ok(( + ops::reshape(&indices, &shape, stream)?, + ops::reshape(&values, &shape, stream)?, + )) +} + +#[test] +#[ignore = "requires Apple Metal; original MTPLX bound and serial batch distributions"] +fn mtplx_sampler_batched_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::hex_digest}; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-batched.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 653); + let hash_ids = + |ids: &[i64]| hex_digest(&ids.iter().flat_map(|v| v.to_le_bytes()).collect::>()); + let hash_probs = |probs: &[f64]| { + hex_digest( + &probs + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + }; + let receipt = |batch: &BatchedDistributions| { + let mut rng = Rng::new_qwen(43210); + let samples = (0..32) + .map(|i| batch.sample((i % batch.ids.len()) as i64, &mut rng).ok()) + .collect::>(); + let converted = (0..batch.ids.len()).map(|row| match batch.to_distribution(row as i64) { + Ok(p) => serde_json::json!({"ids":hash_ids(&p.ids), "probs":hash_probs(&p.probabilities)}), + Err(_) => serde_json::json!({"error":true}), + }).collect::>(); + let mut lookups = Vec::new(); + for row in [0, -1, batch.ids.len() as i64, -(batch.ids.len() as i64) - 1] { + for token in [ + -1, + 0, + 3, + batch.vocabulary as i64 - 1, + batch.vocabulary as i64, + ] { + lookups.push(batch.probability(row, token).ok().map(f64::to_bits)); + } + } + serde_json::json!({ + "ids":hash_ids(&batch.ids.iter().flatten().copied().collect::>()), + "probs":hash_probs(&batch.probabilities.iter().flatten().copied().collect::>()), + "shape":[batch.ids.len(), batch.ids[0].len()], "samples":samples, + "next_rng":rng.unit_f64().to_bits(), "converted":converted, "lookups":lookups, "vocab":batch.vocabulary, + }) + }; + let commits = || { + streams + .with_gpu(gpu, |s| Ok(s.commits() - s.primitive_commits())) + .unwrap() + }; + for (index, case) in cases.iter().enumerate() { + eprintln!("batched sampler reference {index}/{}", cases.len()); + if let Some(name) = case["constructor"].as_str() { + let (ids, probabilities) = match name { + "padded" => ( + vec![vec![3, 0, -1, 7], vec![0, 3, 3, -1]], + vec![vec![1., 3., 0., 2.], vec![0., 1., 2., 0.]], + ), + "negative" => ( + vec![vec![0, 1, 2], vec![0, 1, 2]], + vec![vec![2., -1., 1.], vec![1., 0., 0.]], + ), + "zero" => (vec![vec![0, 1]], vec![vec![0., 0.]]), + "nonfinite" => (vec![vec![0, 1]], vec![vec![f64::INFINITY, 1.]]), + "mismatch" => (vec![vec![0, 1]], vec![vec![1., 2., 3.]]), + _ => unreachable!(), + }; + let result = BatchedDistributions::from_rows(ids, probabilities, 17, false); + let actual = result + .as_ref() + .map(&receipt) + .unwrap_or_else(|_| serde_json::json!({"error":true})); + assert_eq!(actual, case["result"], "constructor {name}"); + continue; + } + let vocab = case["vocab"].as_i64().unwrap() as i32; + let layout = case["layout"].as_str().unwrap(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let cols = if layout == "strided" { + 2 * vocab + } else { + vocab + }; + let count = if layout == "broadcast" { + cols + } else { + 4 * cols + }; + let data = (0..count) + .flat_map(|i| { + let value = if case["mode"] == "mixed" && i >= count - cols { + f32::NAN + } else if case["mode"] == "equal" { + 1.0 + } else { + ((i * 17 + 96 * 13) % 257 - 128) as f32 / 131.0 + }; + value.to_le_bytes() + }) + .collect::>(); + let row = ops::astype( + &Array::new(&[count], Dtype::F32, super::scalar_buffer(&data).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + let row = binary( + &row, + &ops::astype(&super::random::scalar(0.0).unwrap(), dtype, false, gpu).unwrap(), + Binary::Add, + gpu, + ) + .unwrap(); + let row = ops::reshape(&row, &[-1, cols], gpu).unwrap(); + let row = match layout { + "strided" => ops::slice(&row, &[0, 1], &[4, cols], &[1, 2], gpu).unwrap(), + "reverse" => ops::slice(&row, &[0, cols - 1], &[4, -cols - 1], &[1, -1], gpu).unwrap(), + "broadcast" => ops::broadcast_to(&row, &[4, vocab], gpu).unwrap(), + _ => row, + }; + let config = SamplerConfig { + temperature: case["temperature"].as_f64().unwrap(), + top_p: case["top_p"].as_f64().unwrap(), + top_k: case["k"].as_i64().unwrap() as i32, + ..SamplerConfig::default() + }; + let before = commits(); + let result = if case["route"] == "bound" { + let bound = BoundBatchedDistributions::bind(&config, vocab as usize).unwrap(); + assert_eq!(commits(), before, "binding must not evaluate logits"); + bound.evaluate(&row, &streams, gpu).map(Some) + } else { + batched_distributions(&row, &config, &streams, gpu) + }; + assert_eq!( + commits() - before, + case["evals"].as_array().unwrap().len() + - usize::from(case["host_calls"].as_u64().unwrap() > 0), + "case {index}: materialization boundaries" + ); + let actual = match result { + Ok(Some(batch)) => receipt(&batch), + Ok(None) => serde_json::json!({"none":true}), + Err(_) => serde_json::json!({"error":true}), + }; + assert_eq!(actual, case["result"], "case {index}: {case}"); + } + let row = super::random::scalar(1.0).unwrap(); + let before = commits(); + for config in [ + SamplerConfig { + temperature: 0.0, + ..SamplerConfig::default() + }, + SamplerConfig { + top_k: 0, + ..SamplerConfig::default() + }, + ] { + assert!(BoundBatchedDistributions::bind(&config, 17).is_err()); + assert!( + batched_distributions(&row, &config, &streams, gpu) + .unwrap() + .is_none() + ); + } + assert!(BoundBatchedDistributions::bind(&SamplerConfig::default(), 0).is_err()); + assert_eq!(commits(), before); +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX generator sampling entry"] +fn mtplx_sampler_entry_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, hex_digest}, + }; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-entry.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 1080); + let commits = || { + streams + .with_gpu(gpu, |s| Ok(s.commits() - s.primitive_commits())) + .unwrap() + }; + for (index, case) in cases.iter().enumerate() { + let vocab = case["vocab"].as_i64().unwrap() as i32; + let layout = case["layout"].as_str().unwrap(); + let mode = case["mode"].as_str().unwrap(); + let profile = case["profile"].as_str().unwrap(); + let penalties = case["penalties"].as_bool().unwrap(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let size = if layout == "strided" { + 2 * vocab + } else { + vocab + }; + let values = (0..size) + .flat_map(|i| { + let value = match mode { + "equal" => 1.0, + "nonfinite" if i % 7 < 3 => { + [f32::NAN, f32::INFINITY, f32::NEG_INFINITY][i as usize % 7] + } + _ => ((i * 17 + 96 * 13) % 257 - 128) as f32 / 131_f32, + }; + value.to_le_bytes() + }) + .collect::>(); + let config = SamplerConfig { + temperature: if profile == "greedy" { 0.0 } else { 0.6 }, + top_k: if matches!(profile, "greedy" | "sparse") { + 20 + } else { + 0 + }, + top_p: if profile == "dense_all" { 1.0 } else { 0.95 }, + presence_penalty: if penalties { 0.17 } else { 0.0 }, + frequency_penalty: if penalties { 0.13 } else { 0.0 }, + }; + let mut counts = vec![(i64::from(vocab / 2), 2)]; + let overlay = if penalties { + vec![(1, 0.10009)] + } else { + vec![] + }; + let mut rng = Rng::new_qwen(12345); + for (step, expected) in case["steps"].as_array().unwrap().iter().enumerate() { + // Match mx.array(values, dtype): settle input construction outside + // the sampler, then leave the model-like Add and views lazy. + let base = ops::astype( + &Array::new(&[size], Dtype::F32, super::scalar_buffer(&values).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&base), gpu, false).unwrap(); + let zero = Array::new( + &[], + dtype, + super::scalar_buffer(&vec![0; dtype.itemsize()]).unwrap(), + ) + .unwrap(); + let input = binary(&base, &zero, Binary::Add, gpu).unwrap(); + let input = match layout { + "rank3" => ops::reshape(&input, &[1, 1, vocab], gpu).unwrap(), + "strided" => ops::slice(&input, &[1], &[size], &[2], gpu).unwrap(), + "reverse" => ops::slice(&input, &[vocab - 1], &[-vocab - 1], &[-1], gpu).unwrap(), + "broadcast" => ops::broadcast_to( + &ops::slice(&input, &[0], &[1], &[1], gpu).unwrap(), + &[vocab], + gpu, + ) + .unwrap(), + _ => input, + }; + let before = commits(); + let (result, calls) = capture_dispatches(|| { + sample_from_logits(&input, &config, &mut rng, &counts, &overlay, &streams, gpu) + }); + let explicit_evals = expected["trace"] + .as_array() + .unwrap() + .iter() + .filter(|v| **v == "eval") + .count(); + let expected_commits = if profile == "greedy" { + explicit_evals + 1 + } else if profile == "sparse" && mode == "nonfinite" { + explicit_evals - 1 + } else { + explicit_evals + }; + assert_eq!( + commits() - before, + expected_commits, + "case {index} step {step}: evaluation boundaries" + ); + assert_eq!( + calls.iter().filter(|c| c.0.starts_with("argmax_")).count(), + usize::from(profile == "greedy") + ); + if profile.starts_with("dense") { + assert!( + !calls + .iter() + .any(|c| c.0.starts_with("kernel_qwen_mtplx_scatter_")), + "dense penalties must run on the host" + ); + } + if expected["error"] == true { + assert!(result.is_err(), "case {index} step {step}: expected error"); + continue; + } + let (token, p) = result.unwrap_or_else(|e| panic!("case {index} step {step}: {e}")); + assert_eq!( + token, + expected["token"].as_i64().unwrap(), + "case {index} step {step}" + ); + match p { + None => assert_eq!(expected["kind"], "none"), + Some(p) => { + let probabilities = match p { + Distribution::Sparse(p) => { + assert_eq!(expected["kind"], "sparse"); + assert_eq!( + hex_digest( + &p.ids + .iter() + .flat_map(|i| i.to_le_bytes()) + .collect::>() + ), + expected["ids"].as_str().unwrap() + ); + p.probabilities + } + Distribution::Dense(p) => { + assert_eq!(expected["kind"], "dense"); + p + } + }; + assert_eq!( + hex_digest( + &probabilities + .iter() + .flat_map(|p| p.to_le_bytes()) + .collect::>() + ), + expected["probabilities"].as_str().unwrap(), + "case {index} step {step}: complete probability bits" + ); + } + } + if let Some((_, count)) = counts.iter_mut().find(|(id, _)| *id == token) { + *count += 1; + } else { + counts.push((token, 1)); + } + } + assert_eq!( + serde_json::json!(counts), + case["counts"], + "case {index}: completion counts" + ); + assert_eq!( + rng.unit_f64().to_bits(), + case["next_rng"].as_u64().unwrap(), + "case {index}: RNG continuation" + ); + eprintln!( + "MTPLX sampler entry {index}: exact three-step sequence and evaluation boundaries" + ); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original GPU and CPU raw-logit penalties"] +fn mtplx_sampler_penalties_match_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, hex_digest}, + }; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-penalties.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 360); + let read = |input: &Array| { + let packed = ops::contiguous( + &ops::astype(input, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + bytes + }; + for (index, case) in cases.iter().enumerate() { + let vocab = case["vocab"].as_i64().unwrap() as i32; + let layout = case["layout"].as_str().unwrap(); + let size = match layout { + "strided" => 2 * vocab, + "offset" => vocab + 1, + _ => vocab, + }; + let values = (0..size) + .flat_map(|i| (((i * 17 + 96 * 13) % 257 - 128) as f32 / 131_f32).to_le_bytes()) + .collect::>(); + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + _ => unreachable!(), + }; + let input = ops::astype( + &Array::new(&[size], Dtype::F32, super::scalar_buffer(&values).unwrap()).unwrap(), + dtype, + false, + gpu, + ) + .unwrap(); + let input = match layout { + "strided" => ops::slice(&input, &[1], &[size], &[2], gpu).unwrap(), + "offset" => ops::slice(&input, &[1], &[size], &[1], gpu).unwrap(), + "reverse" => ops::slice(&input, &[vocab - 1], &[-vocab - 1], &[-1], gpu).unwrap(), + "broadcast" => ops::broadcast_to( + &ops::slice(&input, &[0], &[1], &[1], gpu).unwrap(), + &[vocab], + gpu, + ) + .unwrap(), + _ => input, + }; + let raw_bytes = read(&input); + let raw = raw_bytes + .chunks_exact(4) + .map(|v| f64::from(f32::from_le_bytes(v.try_into().unwrap()))) + .collect::>(); + let counts: Vec<(i64, i64)> = serde_json::from_value(case["counts"].clone()).unwrap(); + let overlay: Vec<(i64, f64)> = serde_json::from_value(case["overlay"].clone()).unwrap(); + let presence = case["presence"].as_f64().unwrap(); + let frequency = case["frequency"].as_f64().unwrap(); + let cpu = apply_penalties_host(&raw, &counts, presence, frequency, &overlay).unwrap(); + assert_eq!( + matches!(cpu, Cow::Borrowed(_)), + case["cpu_identity"].as_bool().unwrap() + ); + assert_eq!( + hex_digest(&cpu.iter().flat_map(|v| v.to_le_bytes()).collect::>()), + case["cpu"].as_str().unwrap(), + "case {index}: Float64 penalties" + ); + let (out, calls) = capture_dispatches(|| { + let out = + apply_penalties_gpu(&input, &counts, presence, frequency, &overlay, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + out + }); + assert_eq!( + out.id() == input.id(), + case["gpu_identity"].as_bool().unwrap() + ); + assert_eq!(out.layout().dtype(), dtype); + let expected_scatters = + usize::from(!counts.is_empty() && (presence != 0.0 || frequency != 0.0)) + + usize::from(!overlay.is_empty()); + assert_eq!( + calls + .iter() + .filter(|c| c.0.starts_with("kernel_qwen_mtplx_scatter_")) + .count(), + expected_scatters, + "case {index}: scatter stages" + ); + if expected_scatters == 0 { + assert!( + calls.is_empty(), + "disabled penalties cannot submit GPU work" + ); + } + assert_eq!( + hex_digest(&read(&out)), + case["gpu"].as_str().unwrap(), + "case {index}: GPU raw-dtype penalties" + ); + assert_eq!( + read(&input), + raw_bytes, + "case {index}: input storage is still owned by caller" + ); + eprintln!("MTPLX penalties {index}: exact CPU/GPU results, identity and scatter stages"); + } + streams.clear_streams().unwrap(); +} + +#[test] +fn mtplx_sampler_mixed_distributions_match_reference() { + use super::super::qwen_mtplx_tests::hex_digest; + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-mixed.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 100); + for (index, case) in cases.iter().enumerate() { + let vocab = case["vocab"].as_u64().unwrap() as usize; + let mut p = (0..vocab) + .map(|i| ((i * 17 + 3) % 31) as f64 / 31.0) + .collect::>(); + let mut q = p.iter().rev().copied().collect::>(); + match case["mode"].as_str().unwrap() { + "same" => q = p.clone(), + "disjoint" => { + for i in (1..vocab).step_by(2) { + p[i] = 0.0; + } + for i in (0..vocab).step_by(2) { + q[i] = 0.0; + } + } + "nonfinite" => { + p[0] = f64::NAN; + q[vocab - 1] = f64::INFINITY; + } + "zero" => p.fill(0.0), + _ => {} + } + let make = |p: Vec, kind: u8| { + if kind == b's' { + let count = vocab.min(20); + let ids = (0..count) + .map(|i| (i * (vocab - 1) / (count - 1).max(1)) as i64) + .collect::>(); + let selected = ids.iter().map(|&i| p[i as usize]).collect(); + Distribution::Sparse(SparseDistribution::new(ids, selected, vocab).unwrap()) + } else { + let total = pairwise_sum(&p); + Distribution::Dense(p.iter().map(|p| p / total).collect()) + } + }; + let kinds = case["kinds"].as_str().unwrap().as_bytes(); + let target = make(p, kinds[0]); + let draft = make(q, kinds[1]); + let mut rng = Rng::new_qwen(12345); + let samples = (0..32) + .map(|_| target.sample(&mut rng)) + .collect::, _>>(); + if case["sampled"]["error"] == true { + assert!(samples.is_err(), "case {index}"); + } else { + assert_eq!( + serde_json::json!(samples.unwrap()), + case["sampled"]["tokens"], + "case {index}" + ); + } + assert_eq!( + rng.unit_f64().to_bits(), + case["sampled"]["next"].as_u64().unwrap(), + "case {index}: sample RNG" + ); + let residual = target.residual(&draft); + if case["residual"]["error"] == true { + assert!(residual.is_err(), "case {index}: residual"); + } else { + let residual = residual.unwrap(); + assert_eq!( + matches!(residual, Cow::Borrowed(_)), + case["residual"]["borrowed"].as_bool().unwrap() + ); + let probabilities = match residual.as_ref() { + Distribution::Sparse(p) => { + assert_eq!(case["residual"]["kind"], "s"); + assert_eq!( + hex_digest( + &p.ids + .iter() + .flat_map(|i| i.to_le_bytes()) + .collect::>() + ), + case["residual"]["ids"].as_str().unwrap() + ); + &p.probabilities + } + Distribution::Dense(p) => { + assert_eq!(case["residual"]["kind"], "d"); + p + } + }; + assert_eq!( + hex_digest( + &probabilities + .iter() + .flat_map(|p| p.to_le_bytes()) + .collect::>() + ), + case["residual"]["probabilities"].as_str().unwrap(), + "case {index}: residual bits" + ); + } + let mut rng = Rng::new_qwen(43210); + for (i, expected) in case["decisions"].as_array().unwrap().iter().enumerate() { + let result = target.verify(&draft, ((i * 7 + 5) % vocab) as i64, &mut rng); + if expected.is_null() { + assert!(result.is_err(), "case {index}: verify {i}"); + } else { + let (accepted, token, probability) = result.unwrap(); + assert_eq!( + serde_json::json!([accepted, token, probability.to_bits()]), + *expected, + "case {index}: verify {i}" + ); + } + } + assert_eq!( + rng.unit_f64().to_bits(), + case["next_verify"].as_u64().unwrap(), + "case {index}: verify RNG" + ); + eprintln!("MTPLX mixed distribution {index}: exact sample, residual, verify and RNG state"); + } +} + +#[test] +#[ignore = "requires Apple Metal; original sparse fallback and host dense sampler"] +fn mtplx_sampler_fallback_matches_reference() { + use super::super::gpu::Context; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-fallback.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 150); + for (index, case) in cases.iter().enumerate() { + let vocab = case["vocab"].as_i64().unwrap() as i32; + let mode = case["mode"].as_str().unwrap(); + let top_p = case["top_p"].as_f64().unwrap(); + let mut values = (0..4 * vocab) + .map(|i| { + let unique = (i % vocab) as f32 / vocab as f32; + let sharp = -((i % vocab - vocab / 2).abs() as f32) * 0.2_f32; + match mode { + "equal" => 1., + "sharp" => sharp, + "mixed" if i / vocab == 0 => 1., + "mixed" if i / vocab == 2 => (i % 7) as f32, + "mixed" if i / vocab > 2 => sharp, + _ => unique, + } + }) + .collect::>(); + if mode == "nonfinite" { + values[..3].copy_from_slice(&[f32::NAN, f32::INFINITY, f32::NEG_INFINITY]); + } + if case["kind"] == "dense" { + let result = dense_probabilities( + &values[..vocab as usize] + .iter() + .map(|&v| f64::from(v)) + .collect::>(), + case["temperature"].as_f64().unwrap(), + top_p, + case["top_k"].as_i64().unwrap() as i32, + ); + if case["error"] == true { + assert!(result.is_err(), "case {index}"); + } else { + let result = result.unwrap(); + let hash = super::super::qwen_mtplx_tests::hex_digest( + &result + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ); + assert_eq!( + hash, + case["sha256"].as_str().unwrap(), + "case {index}: dense {mode}" + ); + } + } else { + let logits = Array::new( + &[4, vocab], + Dtype::F32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let result = sparse_distributions(&logits, 0.6, top_p, 20, &streams, gpu) + .unwrap() + .unwrap(); + assert_eq!(result.len(), 4); + for (row, distribution) in result.iter().enumerate() { + assert_eq!( + serde_json::json!(distribution.ids), + case["ids"][row], + "case {index} row {row}" + ); + assert_eq!( + serde_json::json!( + distribution + .probabilities + .iter() + .map(|v| v.to_bits()) + .collect::>() + ), + case["probabilities"][row], + "case {index} row {row}" + ); + } + assert!( + sparse_distributions(&logits, 0.0, top_p, 20, &streams, gpu) + .unwrap() + .is_none() + ); + assert!( + sparse_distributions(&logits, 0.6, top_p, 0, &streams, gpu) + .unwrap() + .is_none() + ); + } + eprintln!("MTPLX sampler fallback {index}: exact"); + } + streams.clear_streams().unwrap(); +} + +#[test] +fn mtplx_sampler_distribution_and_rng_match_reference() { + let sources = include_str!("../../../../tests/fixtures/mtplx-sampler-serial.jsonl") + .lines() + .collect::>(); + let results = include_str!("../../../../tests/fixtures/mtplx-sampler-distributions.jsonl") + .lines() + .collect::>(); + assert_eq!(sources.len(), 108); + assert_eq!(sources.len(), results.len()); + let mut accepted = 0; + let mut rejected = 0; + for (source, result) in sources.iter().zip(results) { + let case: serde_json::Value = serde_json::from_str(source).unwrap(); + let expected: serde_json::Value = serde_json::from_str(result).unwrap(); + let support = Support { + ids: serde_json::from_value(case["ids"].clone()).unwrap(), + probabilities: serde_json::from_value::>>( + case["probability_bits"].clone(), + ) + .unwrap() + .into_iter() + .map(|r| r.into_iter().map(f64::from_bits).collect()) + .collect(), + vocabulary: case["vocabulary"].as_u64().unwrap() as usize, + }; + for row in 0..support.ids.len() { + let distribution = support.distribution(row).unwrap(); + if expected[row].is_null() { + assert!(distribution.is_none()); + continue; + } + let distribution = distribution.unwrap(); + let bits = |values: &[f64]| { + serde_json::json!(values.iter().map(|p| p.to_bits()).collect::>()) + }; + assert_eq!(serde_json::json!(distribution.ids), expected[row]["ids"]); + assert_eq!( + bits(&distribution.probabilities), + expected[row]["probabilities"] + ); + let mut rng = Rng::new_qwen(12345); + let samples = (0..32) + .map(|_| distribution.sample(&mut rng)) + .collect::>(); + assert_eq!(serde_json::json!(samples), expected[row]["samples"]); + assert_eq!( + rng.unit_f64().to_bits(), + expected[row]["next_sample"].as_u64().unwrap() + ); + let draft = SparseDistribution::new( + distribution.ids.clone(), + distribution.probabilities.iter().rev().copied().collect(), + support.vocabulary, + ) + .unwrap(); + let mut rng = Rng::new_qwen(43210); + for decision in expected[row]["decisions"].as_array().unwrap() { + let token = draft.sample(&mut rng); + let (keep, output, probability) = + distribution.verify(&draft, token, &mut rng).unwrap(); + assert_eq!( + serde_json::json!([token, keep, output, probability.to_bits()]), + *decision + ); + if keep { + accepted += 1; + } else { + rejected += 1; + } + } + assert_eq!( + rng.unit_f64().to_bits(), + expected[row]["next_verify"].as_u64().unwrap() + ); + let residual = distribution.residual(&draft).unwrap(); + assert_eq!( + serde_json::json!(residual.ids), + expected[row]["residual_ids"] + ); + assert_eq!( + bits(&residual.probabilities), + expected[row]["residual_probabilities"] + ); + } + } + assert!(accepted > 0 && rejected > 0); + assert!(SparseDistribution::new(vec![], vec![], 10).is_err()); + assert!(SparseDistribution::new(vec![1], vec![-0.1], 10).is_err()); + assert!(SparseDistribution::new(vec![-1, 10], vec![0.0, f64::NAN], 10).is_err()); + let fallback = + SparseDistribution::new(vec![-1, 7, 3], vec![f64::NAN, f64::INFINITY, 0.0], 10).unwrap(); + assert_eq!(fallback.ids, [7]); + assert_eq!(fallback.probabilities, [1.0]); + eprintln!( + "MTPLX distributions: {accepted} accepts and {rejected} corrections; exact probabilities, samples and subsequent RNG draws" + ); +} + +#[test] +#[ignore = "requires Apple Metal; actual MTPLX serial candidate route, no weights"] +fn mtplx_sampler_serial_support_matches_reference() { + use super::super::{gpu::Context, qwen_mtplx_tests::capture_dispatches}; + use super::{allocator, configure_sources, stream::Device}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-serial.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 108); + for (case_no, case) in cases.iter().enumerate() { + let vocab = case["vocab"].as_i64().unwrap() as i32; + let batch = case["batch"].as_i64().unwrap() as i32; + let mode = case["mode"].as_str().unwrap(); + let mut values = (0..batch * vocab) + .map(|i| { + let unique = (i % vocab) as f32 / vocab as f32; + let sharp = -((i % vocab - vocab / 2).abs() as f32) * 0.2_f32; + match mode { + "ties" => (i % 7) as f32, + "equal" => 1., + "sharp" => sharp, + "mixed" if i / vocab == 0 => 1., + "mixed" if i / vocab == 2 => (i % 7) as f32, + "mixed" if i / vocab > 2 => sharp, + _ => unique, + } + }) + .collect::>(); + if mode == "nonfinite" { + values[..3].copy_from_slice(&[f32::NAN, f32::INFINITY, f32::NEG_INFINITY]); + } + let logits = Array::new( + &[batch, vocab], + Dtype::F32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let commits = || { + streams + .with_gpu(gpu, |s| Ok(s.commits() - s.primitive_commits())) + .unwrap() + }; + let before = commits(); + let (support, calls) = capture_dispatches(|| { + serial_support( + &logits, + case["temperature"].as_f64().unwrap(), + case["top_p"].as_f64().unwrap(), + 20, + &streams, + gpu, + ) + .unwrap() + }); + assert_eq!( + commits() - before, + case["eval_calls"].as_u64().unwrap() as usize, + "case {case_no}: eval boundaries" + ); + assert_eq!( + calls + .iter() + .filter(|d| d.0.contains("scan_inclusive_sum_int32_int32")) + .count(), + case["selector_calls"].as_u64().unwrap() as usize, + "case {case_no}: spill route" + ); + assert_eq!(support.vocabulary, vocab as usize); + assert_eq!( + serde_json::json!(support.ids), + case["ids"], + "case {case_no}: candidate IDs" + ); + for (row, probabilities) in support.probabilities.iter().enumerate() { + for (col, &probability) in probabilities.iter().enumerate() { + let bits = if probability.is_nan() { + f64::NAN.to_bits() + } else { + probability.to_bits() + }; + assert_eq!( + bits, + case["probability_bits"][row][col].as_u64().unwrap(), + "case {case_no}, row {row}, col {col}: {mode}, p={probability:?}" + ); + } + } + eprintln!("MTPLX serial support {case_no}: exact IDs, Float64 mass, eval and spill route"); + } + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; original MTPLX sampler selection, no model weights"] +fn mtplx_sampler_selection_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sampler-selection.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 48); + for case in cases { + let vocab = case["vocab"].as_i64().unwrap() as i32; + let batch = case["batch"].as_i64().unwrap() as i32; + let k = case["top_k"].as_i64().unwrap() as i32; + let mode = case["mode"].as_str().unwrap(); + let mut values = (0..batch * vocab) + .map(|i| match mode { + "ties" => (i % 7) as f32, + "equal" => 1., + _ => ((i * 17 + 96 * 13) % 257 - 128) as f32 / 128., + }) + .collect::>(); + if mode == "nonfinite" { + values[..3].copy_from_slice(&[f32::NAN, f32::INFINITY, f32::NEG_INFINITY]); + } + let input = Array::new( + &[batch, vocab], + Dtype::F32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let (ids, vals) = deterministic_top_k(&input, k, gpu).unwrap(); + let (_, dispatches) = capture_dispatches(|| { + ops::evaluate(&streams, &[ids.clone(), vals.clone()], gpu, false).unwrap(); + }); + assert!( + dispatches + .iter() + .any(|d| d.0 == "contig_scan_inclusive_sum_int32_int32") + ); + assert!(dispatches.iter().any(|d| d.0.contains("reduce_sumint32"))); + if k > 1 { + assert!(dispatches.iter().any(|d| d.0.contains("reduce_minfloat32"))); + } + let packed_ids = ops::astype(&ids, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed_ids), gpu, false).unwrap(); + assert_eq!(ids.layout().shape(), &[batch, k]); + verify_typed( + case["kernel"].as_str().unwrap(), + &[ + (&packed_ids.buffer(), (batch * k) as u32, 4), + (&vals.buffer(), (batch * k) as u32, 4), + ], + ); + } + // The shared Scan backend has distinct four-byte geometry. Verify all + // thread-size branches and both physical axis layouts used by Scan. + for width in [17, 4096, 4097, 8192, 8193] { + for column in [false, true] { + let values = (0..2 * width) + .map(|i| (i * 17) % 31 - 15) + .collect::>(); + let shape = if column { [width, 2] } else { [2, width] }; + let input = Array::new( + &shape, + Dtype::I32, + super::scalar_buffer( + &values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let input = if column { + ops::transpose(&input, &[1, 0], gpu).unwrap() + } else { + input + }; + let result = indexing::cumsum_last_i32(&input, gpu).unwrap(); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&result), gpu, false).unwrap(); + }); + let scan = calls + .iter() + .find(|r| r.0.contains("scan_inclusive_sum_int32_int32")) + .unwrap(); + assert_eq!(scan.0.starts_with("strided_"), column); + if column { + assert_eq!(scan.2, [256, 1, 1]); + } + let packed = ops::contiguous(&result, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&packed), gpu, false).unwrap(); + let mut bytes = vec![0; packed.layout().nbytes()]; + packed.buffer().read(packed.offset(), &mut bytes).unwrap(); + for batch in 0..2_usize { + let mut sum = 0_i32; + for i in 0..width as usize { + let source = if column { + i * 2 + batch + } else { + batch * width as usize + i + }; + sum += values[source]; + let offset = (batch * width as usize + i) * 4; + assert_eq!( + i32::from_le_bytes(bytes[offset..offset + 4].try_into().unwrap()), + sum + ); + } + } + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/scheduler.rs b/src/engine/metal/qwen_mtplx/scheduler.rs new file mode 100644 index 0000000..5a7cce5 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/scheduler.rs @@ -0,0 +1,587 @@ +//! Task accounting and CPU stream queues from the pinned runtime scheduler. +//! GPU encoding stays on its caller's thread; only CPU tasks use these workers. +use super::super::gpu::Buffer; +use super::encoder::{Event, SharedError}; +use std::collections::{HashMap, VecDeque}; +use std::panic::{AssertUnwindSafe, catch_unwind}; +use std::sync::atomic::{AtomicI32, Ordering}; +use std::sync::{Arc, Condvar, Mutex, OnceLock, RwLock, mpsc}; +use std::thread::{self, JoinHandle, ThreadId}; + +#[derive(Default)] +pub(super) struct Activity { + active: AtomicI32, + mutex: Mutex<()>, + completed: Condvar, +} + +impl Activity { + pub(super) fn count(&self) -> i32 { + self.active.load(Ordering::Relaxed) + } + + pub(super) fn start(self: &Arc) -> Completion { + { + let _lock = self.mutex.lock().unwrap(); + self.active.fetch_add(1, Ordering::Relaxed); + } + self.completed.notify_all(); + Completion(self.clone()) + } + + pub(super) fn wait_for_one(&self) { + let lock = self.mutex.lock().unwrap(); + let old = self.count(); + if old > 1 { + drop( + self.completed + .wait_while(lock, |_| self.count() >= old) + .unwrap(), + ); + } + } + + pub(super) fn needs_throttle(&self, active_memory: usize, memory_limit: usize) -> bool { + self.count() > 10 || (active_memory > memory_limit && self.count() > 0) + } +} + +/// Also balances a failed submission before its completion callback transfers. +pub(super) struct Completion(Arc); + +impl Drop for Completion { + fn drop(&mut self) { + { + let _lock = self.0.mutex.lock().unwrap(); + assert!(self.0.active.fetch_sub(1, Ordering::Relaxed) > 0); + } + self.0.completed.notify_all(); + } +} + +type Task = Box; + +#[derive(Default)] +struct Queue { + tasks: VecDeque, + stop: bool, +} + +#[derive(Default)] +struct ThreadState { + queue: Mutex, + ready: Condvar, + error: SharedError, +} + +struct StreamThread { + state: Arc, + thread: Option>, +} + +impl StreamThread { + fn new() -> Result { + let state = Arc::new(ThreadState::default()); + let worker = state.clone(); + let thread = thread::Builder::new() + .name("mtplx-cpu-stream".into()) + .spawn(move || { + loop { + let task = { + let mut queue = worker + .ready + .wait_while(worker.queue.lock().unwrap(), |queue| { + queue.tasks.is_empty() && !queue.stop + }) + .unwrap(); + if queue.tasks.is_empty() && queue.stop { + return; + } + queue.tasks.pop_front().unwrap() + }; + task(); + } + }) + .map_err(|error| format!("creating MTPLX stream worker: {error}"))?; + Ok(Self { + state, + thread: Some(thread), + }) + } + + fn enqueue(&self, task: Task, main_thread: bool) -> Result<(), String> { + if main_thread { + self.check_error()?; + } + { + let mut queue = self.state.queue.lock().unwrap(); + if queue.stop { + return Err("Cannot enqueue work after stream is stopped.".into()); + } + queue.tasks.push_back(task); + } + self.state.ready.notify_one(); + Ok(()) + } + + fn check_error(&self) -> Result<(), String> { + self.state.error.lock().unwrap().take().map_or(Ok(()), Err) + } +} + +impl Drop for StreamThread { + fn drop(&mut self) { + self.state.queue.lock().unwrap().stop = true; + self.state.ready.notify_one(); + // Stop drains the FIFO before joining, including already queued work. + let _ = self.thread.take().unwrap().join(); + } +} + +pub(super) struct Scheduler { + main_thread: ThreadId, + threads: RwLock>>, + pub(super) activity: Arc, +} + +impl Scheduler { + pub(super) fn new() -> Self { + Self { + main_thread: thread::current().id(), + threads: RwLock::new(HashMap::new()), + activity: Arc::default(), + } + } + + pub(super) fn is_main_thread(&self) -> bool { + thread::current().id() == self.main_thread + } + + fn stream_thread(&self, stream: u32) -> Result, String> { + if let Some(thread) = self.threads.read().unwrap().get(&stream) { + return Ok(thread.clone()); + } + let mut threads = self.threads.write().unwrap(); + if let std::collections::hash_map::Entry::Vacant(entry) = threads.entry(stream) { + entry.insert(Arc::new(StreamThread::new()?)); + } + Ok(threads[&stream].clone()) + } + + pub(super) fn enqueue( + &self, + stream: u32, + task: impl FnOnce() -> Result<(), String> + Send + 'static, + ) -> Result<(), String> { + let worker = self.stream_thread(stream)?; + let error = worker.state.error.clone(); + worker.enqueue( + Box::new(move || { + let result = catch_unwind(AssertUnwindSafe(task)).unwrap_or_else(|panic| { + Err(panic + .downcast_ref::() + .cloned() + .or_else(|| panic.downcast_ref::<&str>().map(|s| (*s).to_owned())) + .unwrap_or_else(|| "MTPLX stream task panicked".into())) + }); + if let Err(message) = result { + error.lock().unwrap().get_or_insert(message); + } + }), + thread::current().id() == self.main_thread, + ) + } + + /// CPU event waits copy the source error, without consuming it. + pub(super) fn wait_event( + &self, + stream: u32, + event: Arc, + value: u64, + ) -> Result<(), String> { + let worker = self.stream_thread(stream)?; + let target = worker.state.error.clone(); + worker.enqueue( + Box::new(move || { + event.wait_raw(value); + let source = event.error.lock().unwrap().clone(); + let message = source + .filter(|source| !Arc::ptr_eq(source, &target)) + .and_then(|source| source.lock().unwrap().clone()); + if let Some(message) = message { + *target.lock().unwrap() = Some(message); + } + }), + thread::current().id() == self.main_thread, + ) + } + + /// Poison the event before signaling so dependent streams cannot hang. + pub(super) fn signal_event( + &self, + stream: u32, + event: Arc, + value: u64, + ) -> Result<(), String> { + let worker = self.stream_thread(stream)?; + let error = worker.state.error.clone(); + worker.enqueue( + Box::new(move || { + if error.lock().unwrap().is_some() { + *event.error.lock().unwrap() = Some(error); + } + event.signal(value); + }), + thread::current().id() == self.main_thread, + ) + } + + pub(super) fn check_error(&self, stream: u32) -> Result<(), String> { + self.stream_thread(stream)?.check_error() + } + + pub(super) fn synchronize(&self, stream: u32) -> Result<(), String> { + let (sender, receiver) = mpsc::channel(); + self.enqueue(stream, move || { + sender.send(()).map_err(|error| error.to_string()) + })?; + receiver.recv().map_err(|error| error.to_string())?; + self.check_error(stream) + } +} + +// Like the reference singleton, this is not destructed at static shutdown. +pub(super) fn global() -> &'static Scheduler { + static SCHEDULER: OnceLock = OnceLock::new(); + SCHEDULER.get_or_init(Scheduler::new) +} + +/// CPU CommandEncoder::dispatch from the pinned backend: ten dispatches per +/// counted scheduler task. Completion is separate because the work may fail. +pub(super) struct CpuEncoder { + stream: u32, + num_ops: u8, + temporaries: Vec, +} + +/// Ownership-only transfer. No CPU/GPU read or write is exposed on a worker; +/// dropping the native descriptor and shared allocation is thread-safe, as for +/// existing Metal completion holds. Buffer itself remains !Send and !Sync. +struct CpuTemporaries(Vec); + +// SAFETY: the wrapper is private and only constructed for a drop-only task. +unsafe impl Send for CpuTemporaries {} + +impl Drop for CpuTemporaries { + fn drop(&mut self) { + self.0.clear(); + } +} + +impl CpuEncoder { + pub(super) fn new(stream: u32) -> Self { + Self { + stream, + num_ops: 0, + temporaries: Vec::new(), + } + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn add_temporary(&mut self, buffer: Buffer) { + self.temporaries.push(buffer); + } + + /// cpu::eval queues its Data/temporary release after the primitive's work. + /// This cleanup dispatch participates in the original ten-dispatch count. + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn finish_primitive( + &mut self, + scheduler: &Scheduler, + inputs: &[&Buffer], + outputs: &[Buffer], + primary: usize, + ) -> Result<(), String> { + self.finish_buffers( + scheduler, + &super::encoder::primitive_buffers(inputs, outputs, primary)?, + ) + } + + pub(super) fn finish_buffers( + &mut self, + scheduler: &Scheduler, + buffers: &[&Buffer], + ) -> Result<(), String> { + let data = buffers + .iter() + .copied() + .map(Buffer::hold_data) + .collect::>(); + let temporaries = CpuTemporaries(std::mem::take(&mut self.temporaries)); + self.dispatch(scheduler, move || { + drop((data, temporaries)); + Ok(()) + }) + } + + pub(super) fn dispatch( + &mut self, + scheduler: &Scheduler, + task: impl FnOnce() -> Result<(), String> + Send + 'static, + ) -> Result<(), String> { + self.num_ops = (self.num_ops + 1) % 10; + if self.num_ops == 0 { + let completion = scheduler.activity.start(); + scheduler.enqueue(self.stream, task)?; + scheduler.enqueue(self.stream, move || { + drop(completion); + Ok(()) + }) + } else { + scheduler.enqueue(self.stream, task) + } + } +} + +#[test] +#[ignore = "requires Apple Metal shared storage, no GPU dispatch or model weights"] +fn mtplx_cpu_primitive_holds_data_and_temporaries_in_fifo_order() { + use super::super::*; + use std::time::Duration; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let scheduler = Scheduler::new(); + let mut encoder = CpuEncoder::new(0); + let input = Buffer::mtplx_bytes(16).unwrap(); + let duplicate = input.view(0, 16).unwrap(); + let donor = Buffer::mtplx_bytes(16).unwrap(); + let outputs = vec![donor.view(0, 16).unwrap(), Buffer::mtplx_bytes(16).unwrap()]; + let temporary = Buffer::mtplx_bytes(16).unwrap(); + let witness = temporary.view(0, 16).unwrap(); + encoder.add_temporary(temporary); + assert!( + encoder + .finish_primitive(&scheduler, &[], &outputs, 2) + .is_err() + ); + assert_eq!(encoder.temporaries.len(), 1, "validation preserves storage"); + let (release, gate) = mpsc::channel(); + scheduler + .enqueue(0, move || gate.recv().map_err(|error| error.to_string())) + .unwrap(); + for _ in 0..9 { + encoder.dispatch(&scheduler, || Ok(())).unwrap(); + } + encoder + .finish_primitive(&scheduler, &[&input, &duplicate, &donor], &outputs, 0) + .unwrap(); + assert_eq!(encoder.num_ops, 0, "cleanup is the tenth dispatch"); + assert_eq!(scheduler.activity.count(), 1); + assert!(encoder.temporaries.is_empty()); + assert_eq!(input.data_owners(), 3, "one hold for duplicate input Data"); + assert_eq!(donor.data_owners(), 2, "donated primary Data is excluded"); + assert_eq!(outputs[1].data_owners(), 2, "sibling output is held"); + assert_eq!(witness.data_owners(), 2, "temporary survives pending work"); + let (done, finished) = mpsc::channel(); + scheduler + .enqueue(0, move || done.send(()).map_err(|error| error.to_string())) + .unwrap(); + release.send(()).unwrap(); + finished.recv_timeout(Duration::from_secs(5)).unwrap(); + assert_eq!(scheduler.activity.count(), 0); + assert_eq!(input.data_owners(), 2); + assert_eq!(donor.data_owners(), 2); + assert_eq!(outputs[1].data_owners(), 1); + assert_eq!(witness.data_owners(), 1); + scheduler.synchronize(0).unwrap(); +} + +#[test] +fn mtplx_cpu_dispatch_counts_tenth_and_completes_after_failed_work() { + use std::time::Duration; + let scheduler = Scheduler::new(); + let mut encoder = CpuEncoder::new(0); + let (release, gate) = mpsc::channel(); + // Gate is direct scheduler work, not a CPU primitive dispatch. + scheduler + .enqueue(0, move || gate.recv().map_err(|error| error.to_string())) + .unwrap(); + let observed = Arc::new(Mutex::new(Vec::new())); + for i in 1..=20 { + let observed = observed.clone(); + let activity = scheduler.activity.clone(); + encoder + .dispatch(&scheduler, move || { + observed.lock().unwrap().push((i, activity.count())); + if i == 10 || i == 20 { + Err(format!("CPU dispatch {i}")) + } else { + Ok(()) + } + }) + .unwrap(); + assert_eq!(scheduler.activity.count(), i / 10); + } + let (done, finished) = mpsc::channel(); + scheduler + .enqueue(0, move || done.send(()).map_err(|error| error.to_string())) + .unwrap(); + release.send(()).unwrap(); + finished.recv_timeout(Duration::from_secs(5)).unwrap(); + assert_eq!(scheduler.activity.count(), 0); + assert_eq!(scheduler.check_error(0), Err("CPU dispatch 10".into())); + assert_eq!( + *observed.lock().unwrap(), + (1..=20) + .map(|i| (i, if i <= 10 { 2 } else { 1 })) + .collect::>() + ); + assert_eq!(encoder.num_ops, 0); + + // A rejected enqueue must not strand the tenth-dispatch activity guard. + *scheduler + .stream_thread(0) + .unwrap() + .state + .error + .lock() + .unwrap() = Some("prior failure".into()); + encoder.num_ops = 9; + assert_eq!( + encoder.dispatch(&scheduler, || Ok(())), + Err("prior failure".into()) + ); + assert_eq!(scheduler.activity.count(), 0); + scheduler.synchronize(0).unwrap(); +} + +#[test] +fn mtplx_scheduler_activity_preserves_reference_pressure_and_wait_rules() { + use std::time::Duration; + let activity = Arc::new(Activity::default()); + activity.wait_for_one(); + assert!(!activity.needs_throttle(2, 1)); + let first = activity.start(); + activity.wait_for_one(); // Exactly one task never blocks. + assert!(!activity.needs_throttle(1, 1)); + assert!(activity.needs_throttle(2, 1)); + let second = activity.start(); + let waiter = activity.clone(); + let (ready, started) = mpsc::channel(); + let (done, finished) = mpsc::channel(); + let thread = thread::spawn(move || { + ready.send(()).unwrap(); + waiter.wait_for_one(); + done.send(()).unwrap(); + }); + started.recv_timeout(Duration::from_secs(5)).unwrap(); + assert!(matches!( + finished.recv_timeout(Duration::from_millis(20)), + Err(mpsc::RecvTimeoutError::Timeout) + )); + drop(second); + finished.recv_timeout(Duration::from_secs(5)).unwrap(); + thread.join().unwrap(); + drop(first); + assert_eq!(activity.count(), 0); + let mut tasks = (0..10).map(|_| activity.start()).collect::>(); + assert!(!activity.needs_throttle(1, 1)); + tasks.push(activity.start()); + assert!(activity.needs_throttle(1, 1)); + drop(tasks); // Includes cancellation/error before callback transfer. + assert_eq!(activity.count(), 0); +} + +#[test] +fn mtplx_scheduler_streams_preserve_fifo_errors_and_shutdown() { + use std::time::Duration; + let scheduler = Scheduler::new(); + let (release, gate) = mpsc::channel(); + scheduler + .enqueue(0, move || gate.recv().map_err(|error| error.to_string())) + .unwrap(); + let output = Arc::new(Mutex::new(Vec::new())); + for i in 0..8 { + let output = output.clone(); + scheduler + .enqueue(0, move || { + output.lock().unwrap().push(i); + if i == 1 || i == 2 { + Err(format!("error {i}")) + } else { + Ok(()) + } + }) + .unwrap(); + } + let (done, finished) = mpsc::channel(); + scheduler + .enqueue(0, move || done.send(()).map_err(|error| error.to_string())) + .unwrap(); + scheduler.synchronize(1).unwrap(); // Another stream is not held by stream 0. + assert!(output.lock().unwrap().is_empty()); + release.send(()).unwrap(); + finished.recv_timeout(Duration::from_secs(5)).unwrap(); + assert_eq!(*output.lock().unwrap(), (0..8).collect::>()); + thread::scope(|scope| { + scope + .spawn(|| scheduler.enqueue(0, || Ok(())).unwrap()) + .join() + .unwrap(); + }); + assert_eq!(scheduler.enqueue(0, || Ok(())), Err("error 1".into())); + scheduler.synchronize(0).unwrap(); // Checking consumed the earliest error. + assert_eq!(scheduler.threads.read().unwrap().len(), 2); + for i in 8..16 { + let output = output.clone(); + scheduler + .enqueue(0, move || { + output.lock().unwrap().push(i); + Ok(()) + }) + .unwrap(); + } + drop(scheduler); // Destruction drains, it does not discard queued tasks. + assert_eq!(*output.lock().unwrap(), (0..16).collect::>()); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_scheduler_cpu_events_propagate_errors_without_consuming_source() { + use super::super::*; + use std::time::Duration; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let scheduler = Scheduler::new(); + let event = Event::new().unwrap(); + let (release, gate) = mpsc::channel(); + scheduler + .enqueue(0, move || gate.recv().map_err(|error| error.to_string())) + .unwrap(); + scheduler.enqueue(0, || Err("source error".into())).unwrap(); + scheduler.signal_event(0, event.clone(), 1).unwrap(); + scheduler.wait_event(1, event.clone(), 1).unwrap(); + let (done, finished) = mpsc::channel(); + scheduler + .enqueue(1, move || done.send(()).map_err(|error| error.to_string())) + .unwrap(); + release.send(()).unwrap(); + finished.recv_timeout(Duration::from_secs(5)).unwrap(); + assert_eq!(scheduler.check_error(1), Err("source error".into())); + assert_eq!(scheduler.check_error(0), Err("source error".into())); + scheduler.check_error(0).unwrap(); + scheduler.check_error(1).unwrap(); + assert!( + event + .error + .lock() + .unwrap() + .as_ref() + .unwrap() + .lock() + .unwrap() + .is_none() + ); + drop(scheduler); +} diff --git a/src/engine/metal/qwen_mtplx/sdpa.rs b/src/engine/metal/qwen_mtplx/sdpa.rs new file mode 100644 index 0000000..2ef29ca --- /dev/null +++ b/src/engine/metal/qwen_mtplx/sdpa.rs @@ -0,0 +1,499 @@ +//! MTPLX runtime vector SDPA, BF16/D256 on the evaluation M5 Max (applegpu_g17s). +//! Original 1/2-pass kernels. Full attention and surrounding model routing are open. +use super::super::gpu::{Buffer, MetalConstant}; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, dispatch_specialized, encoder, ops, tensor, views}; + +pub(super) fn vector( + q: &Array, + k: &Array, + v: &Array, + mask: Option<&Array>, + scale: f32, + causal: bool, + stream: Stream, +) -> Result { + let qs = q.layout().shape().to_vec(); + let ks = k.layout().shape().to_vec(); + if stream.device() != Device::Gpu + || qs.len() != 4 + || ks.len() != 4 + || k.layout().shape() != v.layout().shape() + || qs[0] != ks[0] + || qs[3] != 256 + || ks[3] != 256 + || ks[1] <= 0 + || qs[1] % ks[1] != 0 + || !(1..=8).contains(&qs[2]) + || qs[2] > ks[2] + || qs[2] * (qs[1] / ks[1]) > 32 + || [q, k, v] + .iter() + .any(|a| a.layout().dtype() != Dtype::BF16 || a.layout().size() == 0) + || !scale.is_finite() + || (causal && mask.is_some()) + { + return Err( + "vector SDPA requires compatible BF16/D256 GPU inputs, S<=8 and S*GQA<=32".into(), + ); + } + let mut inputs = vec![q.clone(), k.clone(), v.clone()]; + if let Some(mask) = mask { + let dtype = mask.layout().dtype(); + if dtype.promote(Dtype::BF16) != Dtype::BF16 { + return Err("SDPA mask must promote to BF16".into()); + } + let mask = ops::astype( + mask, + if dtype == Dtype::Bool { + dtype + } else { + Dtype::BF16 + }, + false, + stream, + )?; + inputs.push(ops::broadcast_to( + &mask, + &[qs[0], qs[1], qs[2], ks[2]], + stream, + )?); + } + Array::make_operation_with_inputs( + stream, + &inputs, + Layout::new(&qs, Dtype::BF16)?, + ops::Operation::SdpaVector { scale, causal }, + ) +} + +fn copy(input: &Array) -> Result { + let layout = input.layout(); + let out = Array::new( + layout.shape(), + layout.dtype(), + Buffer::mtplx_bytes(layout.nbytes() as u64)?, + )?; + drop(layout); + views::general_copy_inplace(input, &out)?; + Ok(out) +} + +fn blocks(n: i32, simds: i32, override_value: i32, arch: Option) -> Result { + let default = if arch == Some('d') { + if simds <= 2 && n > 8192 { + 256 + } else if simds >= 6 && n >= 65536 { + 1024 + } else if simds >= 6 && n >= 16384 { + 512 + } else { + 128 + } + } else if arch != Some('s') { + if simds >= 4 { 64 } else { 32 } + } else if n <= 1024 || simds <= 4 { + 64 + } else if n <= 8192 { + 128 + } else if n <= 32768 { + 256 + } else if n <= 65536 { + 512 + } else { + 1024 + }; + if override_value > 0 { + override_value + .checked_add(31) + .map(|v| v / 32 * 32) + .ok_or("SDPA block count overflow".into()) + } else { + Ok(default) + } +} + +#[test] +#[ignore = "requires Apple M5 Max; actual pinned fused SDPA kernels"] +fn mtplx_sdpa_vector_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + assert!( + std::env::var("MLX_SDPA_BLOCKS").is_err(), + "reference receipt uses default blocks" + ); + for (n, s, over, want) in [ + (1024, 24, 0, 64), + (16383, 24, 0, 256), + (16384, 24, 0, 256), + (65535, 24, 0, 512), + (65536, 24, 0, 512), + (65537, 24, 0, 1024), + (8193, 2, 0, 64), + (1, 1, 33, 64), + (1, 1, 31, 32), + ] { + assert_eq!(blocks(n, s, over, Some('s')).unwrap(), want); + } + let cases = include_str!("../../../../tests/fixtures/mtplx-sdpa-vector.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 48); + let bf16 = |shape: &[i32], salt| { + Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().map(|&v| v as u32).product(), salt), + ) + .unwrap() + }; + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let [batch, heads, rows, total] = + ["batch", "heads", "rows", "total"].map(|k| case[k].as_i64().unwrap() as i32); + let step = if case["copied"].as_bool().unwrap() { + 2 + } else { + 1 + }; + let mode = case["mode"].as_str().unwrap(); + let q = ops::transpose( + &ops::slice( + &bf16(&[batch, rows, heads, 256 * step], 103), + &[0, 0, 0, 0], + &[batch, rows, heads, 256 * step], + &[1, 1, 1, step], + gpu, + ) + .unwrap(), + &[0, 2, 1, 3], + gpu, + ) + .unwrap(); + let kv = |salt| { + ops::slice( + &bf16(&[batch, 2, total + 7, 256 * step], salt), + &[0, 0, 2, 0], + &[batch, 2, total + 2, 256 * step], + &[1, 1, 1, step], + gpu, + ) + .unwrap() + }; + let (k, v) = (kv(104), kv(105)); + let mask = if matches!(mode, "bool" | "add") { + let data = (0..rows * total) + .flat_map(|i| { + if mode == "bool" { + vec![u8::from(i % 3 != 1)] + } else { + (if i % 3 != 1 { 0u16 } else { 0xc120 }) + .to_le_bytes() + .to_vec() + } + }) + .collect::>(); + Some( + Array::new( + &[1, 1, rows, total], + if mode == "bool" { + Dtype::Bool + } else { + Dtype::BF16 + }, + super::scalar_buffer(&data).unwrap(), + ) + .unwrap(), + ) + } else { + None + }; + if prepared { + ops::evaluate(&streams, &[q.clone(), k.clone(), v.clone()], gpu, false) + .unwrap(); + } + let out = if mode == "causal" { + vector(&q, &k, &v, None, 0.0625, true, gpu) + } else { + super::attention::scaled_dot_product(&q, &k, &v, mask.as_ref(), 0.0625, gpu) + } + .unwrap(); + drop((q, k, v, mask)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap() + }); + let names = calls + .iter() + .filter(|r| r.0.starts_with("sdpa_vector")) + .map(|r| r.0.as_str()) + .collect::>(); + assert_eq!( + names, + if total >= 1024 { + vec![ + "sdpa_vector_2pass_1_bfloat16_t_256_256", + "sdpa_vector_2pass_2_bfloat16_t_256", + ] + } else { + vec!["sdpa_vector_bfloat16_t_256_256"] + } + ); + let mut data = vec![0; out.layout().nbytes()]; + out.buffer().read(out.offset(), &mut data).unwrap(); + verify( + case["kernel"].as_str().unwrap(), + &[( + &super::scalar_buffer(&data).unwrap(), + out.layout().size() as u32, + )], + ); + }); + } + } + streams.clear_streams().unwrap(); +} + +pub(super) fn evaluate( + inputs: &[Array], + out: &Array, + scale: f32, + causal: bool, +) -> Result<(), String> { + let qp = &inputs[0]; + let ql = qp.layout(); + let shape = ql.shape().to_vec(); + let st = ql.strides(); + let bidx = if shape[0] == 1 { 1 } else { 0 }; + let q_ok = ql.flags().row_contiguous + || ((shape[0] == 1 || shape[1] == 1) + && st[3] == 1 + && st[2] == i64::from(shape[3]) * i64::from(shape[bidx]) + && st[bidx] == i64::from(shape[3])); + drop(ql); + let q = if q_ok { qp.clone() } else { copy(qp)? }; + let mut copies = Vec::new(); + let copy_unless = + |a: &Array, predicate: bool, copies: &mut Vec| -> Result { + if predicate { + Ok(a.clone()) + } else { + let c = copy(a)?; + copies.push(c.clone()); + Ok(c) + } + }; + let kv_ok = |a: &Array| { + let l = a.layout(); + let s = l.shape(); + let t = l.strides(); + t[3] == 1 && (s[0] == 1 || s[1] == 1 || t[0] == t[1] * i64::from(s[1])) + }; + let k = copy_unless(&inputs[1], kv_ok(&inputs[1]), &mut copies)?; + let v = copy_unless(&inputs[2], kv_ok(&inputs[2]), &mut copies)?; + // A non-copied q has the extra descriptor held by the primitive, just as + // the original's local `array q` does. Only a unique copied query donates. + let ql = q.layout(); + if q.is_donatable() && ql.flags().row_contiguous && ql.size() == out.layout().size() { + out.copy_shared_buffer(&q, ql.strides(), ql.flags(), q.data_size(), 0)?; + } else { + if !q_ok { + copies.push(q.clone()); + } + let nbytes = out.layout().nbytes(); + out.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + drop(ql); + let mask = if let Some(m) = inputs.get(3) { + let l = m.layout(); + let s = l.shape(); + let t = l.strides(); + let ok = l.flags().row_contiguous + || shape[0] == 1 + || shape[1] == 1 + || t[0] == t[1] * i64::from(s[1]); + drop(l); + Some(copy_unless(m, ok, &mut copies)?) + } else { + None + }; + let kl = k.layout(); + let vl = v.layout(); + let n = kl.shape()[2]; + let gqa = shape[1] / kl.shape()[1]; + let kh = kl.strides()[if kl.shape()[1] == 1 { 0 } else { 1 }] as u64; + let ks = kl.strides()[2] as u64; + let vh = vl.strides()[if vl.shape()[1] == 1 { 0 } else { 1 }] as u64; + let vs = vl.strides()[2] as u64; + let arch = encoder::arch_suffix(); + let two = (matches!(arch, Some('s' | 'd')) && n >= 1024) || (gqa > 1 && n >= 4096); + let bool_mask = mask + .as_ref() + .is_some_and(|a| a.layout().dtype() == Dtype::Bool); + let mut constants = [ + (20, mask.is_some()), + (21, !q.layout().flags().row_contiguous), + (22, causal && shape[2] > 1), + (23, bool_mask), + (24, mask.is_some() && !bool_mask), + (25, false), + ] + .map(|(index, value)| MetalConstant { + index, + value: u32::from(value), + kind: 0, + }) + .into_iter() + .collect::>(); + let mask_layout = mask.as_ref().map(Array::layout); + let mask_strides = mask_layout + .as_ref() + .map(|l| -> Result<[i32; 3], String> { + let s = l.shape(); + let t = l.strides(); + let raw = [ + if s[3] > 1 { t[3] } else { 0 }, + if s[2] > 1 { t[2] } else { 0 }, + if s[1] > 1 { + t[1] + } else if s[0] > 1 { + t[0] + } else { + 0 + }, + ]; + let [a, b, c] = raw.map(|v| i32::try_from(v).map_err(|_| "SDPA mask stride overflow")); + Ok([a?, b?, c?]) + }) + .transpose()?; + let qb = q.buffer(); + let kb = k.buffer(); + let vb = v.buffer(); + let ob = out.buffer(); + let mb = mask.as_ref().map(Array::buffer); + let base = vec![ + tensor(0, &qb) + .at_byte_offset(q.offset()) + .input(q.data_size()), + tensor(1, &kb) + .at_byte_offset(k.offset()) + .input(k.data_size()), + tensor(2, &vb) + .at_byte_offset(v.offset()) + .input(v.data_size()), + ]; + let mask_bindings = |offset: u32| { + let mut bindings = Vec::new(); + if let (Some(m), Some(ms)) = (&mb, &mask_strides) { + bindings.push( + tensor(offset + u32::from(!bool_mask), m) + .at_byte_offset(mask.as_ref().unwrap().offset()) + .input(mask.as_ref().unwrap().data_size()), + ); + bindings.extend([ + bytes(offset + 2, &ms[0]), + bytes(offset + 3, &ms[1]), + bytes(offset + 4, &ms[2]), + ]); + } + bindings + }; + if two { + let count = blocks( + n, + gqa * shape[2], + { + let value = unsafe { libc::getenv(c"MLX_SDPA_BLOCKS".as_ptr()) }; + if value.is_null() { + 0 + } else { + unsafe { libc::atoi(value) } + } + }, + arch, + )?; + constants.push(MetalConstant { + index: 26, + value: count as u32, + kind: 1, + }); + let rows = shape[..3].iter().map(|&v| v as u64).product::(); + let temporaries = [ + Buffer::mtplx_bytes(rows * count as u64 * 256 * 2)?, + Buffer::mtplx_bytes(rows * count as u64 * 4)?, + Buffer::mtplx_bytes(rows * count as u64 * 4)?, + ]; + encoder::add_temporaries(&temporaries); + let [partial, sums, maxs] = &temporaries; + let mut bindings = base; + bindings.extend([ + tensor(3, partial).output((rows * count as u64 * 256) as usize), + tensor(4, sums).output((rows * count as u64) as usize), + tensor(5, maxs).output((rows * count as u64) as usize), + bytes(7, &n), + bytes(8, &kh), + bytes(9, &ks), + bytes(10, &vh), + bytes(11, &vs), + bytes(12, &scale), + ]); + bindings.extend(mask_bindings(13)); + dispatch_specialized( + "sdpa_vector_2pass_1_bfloat16_t_256_256", + &bindings, + &constants, + [kl.shape()[1] as u32, shape[0] as u32, count as u32], + [32, gqa as u32, shape[2] as u32], + )?; + dispatch_specialized( + "sdpa_vector_2pass_2_bfloat16_t_256", + &[ + tensor(0, partial).input((rows * count as u64 * 256) as usize), + tensor(1, sums).input((rows * count as u64) as usize), + tensor(2, maxs).input((rows * count as u64) as usize), + tensor(3, &ob) + .at_byte_offset(out.offset()) + .output(out.data_size()), + bytes(4, &count), + ], + &[], + [(shape[0] * shape[1]) as u32, shape[2] as u32, 1], + [1024, 1, 1], + )?; + } else { + let mut bindings = base; + bindings.extend([ + tensor(3, &ob) + .at_byte_offset(out.offset()) + .output(out.data_size()), + bytes(4, &gqa), + bytes(5, &n), + bytes(6, &kh), + bytes(7, &ks), + bytes(8, &vh), + bytes(9, &vs), + bytes(10, &scale), + ]); + bindings.extend(mask_bindings(11)); + dispatch_specialized( + "sdpa_vector_bfloat16_t_256_256", + &bindings, + &constants, + [(shape[0] * shape[1]) as u32, shape[2] as u32, 1], + [1024, 1, 1], + )?; + } + for copy in &copies { + encoder::add_temporaries(std::slice::from_ref(&*copy.buffer())); + } + Ok(()) +} diff --git a/src/engine/metal/qwen_mtplx/session_cache.rs b/src/engine/metal/qwen_mtplx/session_cache.rs new file mode 100644 index 0000000..bcbcb2e --- /dev/null +++ b/src/engine/metal/qwen_mtplx/session_cache.rs @@ -0,0 +1,1336 @@ +//! Qwen's snapshot_cache[_lazy_hybrid] / restore_cache state contracts. +//! Padding, verify captures and the derived QSA mirror are not state leaves. +use super::array::Array; +use super::binary::{Binary, binary}; +use super::cache::object; +use super::decoder::{AttentionCache, Cache}; +use super::execution::Execution; +use super::model::ArraySnapshot; +use super::ops; +use super::stream::Stream; + +#[derive(Clone)] +pub(super) enum State { + Recurrent(ArraySnapshot), + Qsa([Option; 4]), +} + +#[test] +#[ignore = "full installed model; external guard and DS4_QWEN38_CHAT_REFERENCE required"] +fn mtplx_full_installed_chat_matches_reference() { + use super::prefill; + use crate::engine::qwen::QwenMetadata; + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use crate::settings::ReasoningMode; + use std::sync::{ + Arc, + atomic::{AtomicBool, AtomicU8, Ordering}, + }; + let receipts = std::fs::read_to_string(std::env::var_os("DS4_QWEN38_CHAT_REFERENCE").unwrap()) + .unwrap() + .lines() + .filter_map(|line| serde_json::from_str::(line).ok()) + .collect::>(); + let config = receipts + .iter() + .find(|r| r["event"] == "chat_config") + .unwrap(); + let turns = receipts + .iter() + .filter(|r| r["event"] == "chat_turn") + .collect::>(); + assert_eq!(turns.len(), 3); + assert_eq!( + receipts.iter().find(|r| r["event"] == "chat_end").unwrap()["turns"], + turns.len() + ); + assert!(!super::ngram::resident_policy(), "SSD-only safety run"); + let mtp = config["mtp"].as_bool().unwrap(); + let stops = config["stops"] + .as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap()) + .collect::>(); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Loading as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let outcome = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + eprintln!("chat: loading installed Qwen; mtp={mtp}"); + let root = std::path::PathBuf::from(std::env::var("DS4_QWEN38_ARTIFACTS").unwrap()); + let metadata = QwenMetadata::open(&root, mtp).unwrap(); + let execution_preferences = crate::settings::ExecutionPreferences { + power_percent: Some( + std::env::var("DS4_QWEN38_TEST_POWER") + .map(|value| value.parse::().unwrap()) + .unwrap_or(100), + ), + ..Default::default() + }; + let effective = crate::settings::effective_settings( + crate::model::ModelChoice::Qwen38FlashNext, + &crate::settings::GenerationPreferences { + context_tokens: 32768, + max_generated_tokens: i32::MAX, + system_prompt: String::new(), + temperature: Some(0.6), + top_p: Some(0.95), + min_p: Some(0.0), + reasoning_mode: ReasoningMode::Low, + ..Default::default() + }, + &crate::settings::RuntimePreferences { + execution: execution_preferences, + speculative: crate::settings::SpeculativePreferences { + glm_mtp: mtp, + ..Default::default() + }, + ..Default::default() + }, + root.parent().unwrap(), + ) + .unwrap(); + assert_eq!(effective.engine.artifacts.model, root); + let power = effective.engine.execution.power_percent; + let (mut execution, policy) = Execution::open(&effective.engine).unwrap(); + eprintln!("chat execution: power_percent={power}"); + for env in receipts + .iter() + .filter(|r| r["event"] == "reference_environment") + { + for (key, value) in env["overrides"].as_object().unwrap() { + assert_eq!(execution.runtime_value(key).as_deref(), value.as_str()); + println!( + "{}", + serde_json::json!({"event":"qwen_runtime_setting", "key":key, + "ambient":std::env::var(key).ok(), "effective":execution.runtime_value(key)}) + ); + } + } + assert_eq!( + policy.prefill.chunk_size, + config["chunk_size"].as_u64().map(|n| n as usize) + ); + assert_eq!(policy.prefill.final_logits_only, config["final_only"]); + assert_eq!(policy.lazy_kv, config["lazy_kv"]); + assert_eq!(policy.fused_max, config["fused_max"]); + assert_eq!( + policy.store_min_suffix.is_some(), + config["store_on_prefill"] + ); + assert_eq!(policy.store_min_suffix.unwrap(), config["store_min_suffix"]); + assert_eq!( + execution.boundary_policy.is_some(), + config["boundary_capture"] + ); + assert_eq!( + execution.boundary_policy.unwrap().tail_interval, + config["boundary_tail"] + ); + assert_eq!( + execution.boundary_policy.unwrap().max_count, + config["boundary_max"] + ); + if let DecodeOptions::Mtp(o) = &policy.decode { + assert_eq!(o.depth, config["depth"]); + } + let mut live = super::request::LiveSession::default(); + let mut messages = Vec::new(); + let mut settings = effective.turn; + // Frozen runtime oracle uses seed 0; the preferences UI currently + // accepts positive explicit seeds only. This is an executor fixture, + // not evidence that the seed-0 preferences input is supported. + settings.seed = Some(config["seed"].as_u64().unwrap()); + assert_eq!( + settings.temperature, + config["temperature"].as_f64().unwrap() as f32 + ); + assert_eq!(settings.top_p, config["top_p"].as_f64().unwrap() as f32); + assert_eq!(settings.top_k, config["top_k"]); + for (step, expected) in turns.iter().enumerate() { + let pauses_before = ( + execution.prefill_throttle.pauses, + execution.decode_throttle.pauses, + ); + messages.push(crate::engine::ChatTurn { + user: true, tool: false, system: false, skip_previous_eos: false, + reasoning: None, reasoning_complete: true, + content: match step { + 0 => receipts.iter().find(|r| r["event"] == "reference_prompt") + .unwrap()["text"].as_str().unwrap().to_owned(), + 1 => "Tell me a complete short story about a lighthouse keeper. Do not ask questions.".into(), + 2 => "Write a Python function is_prime(n: int) -> bool, followed by five assert examples. No tools.".into(), + _ => unreachable!(), + }, + }); + assert_eq!(expected["step"], step); + assert_eq!(expected["finish_reason"], "stop"); + assert_eq!(expected["safe_to_commit"], true); + let ids = expected["prompt_ids"] + .as_array() + .unwrap() + .iter() + .map(|n| i32::try_from(n.as_i64().unwrap()).unwrap()) + .collect::>(); + assert_eq!( + live.prompt(&metadata, &messages, &settings), + ids, + "product prompt rendering diverged on turn {step}" + ); + let tokens = expected["tokens"] + .as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap()) + .collect::>(); + assert!(stops.contains(tokens.last().unwrap())); + let observe = |event| { + match event { + TurnProgress::Prefill(event) => { + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + if let prefill::Progress::Settled { tokens, total } = event { + eprintln!("chat turn {step} prefill {tokens}/{total}"); + } + } + TurnProgress::Decode => { + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed) + } + TurnProgress::Finalize { .. } => { + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed) + } + TurnProgress::MtpCycle { .. } | TurnProgress::PromptReady(_) => {} + } + Ok(()) + }; + let wire = tokens + .iter() + .copied() + .filter(|id| !stops.contains(id)) + .collect::>(); + let mut chunks = Vec::new(); + let emit = |reasoning, chunk: String| { + eprintln!("chat turn {step} text chunk: {} bytes", chunk.len()); + chunks.push((reasoning, chunk)); + }; + let mut turn_options: TurnOptions<'_> = policy.clone(); + let cancelled = AtomicBool::new(false); + let metrics = + crate::metrics::Metrics::new(std::path::Path::new("/nonexistent-request-metrics")); + let mut reported_progress = Vec::new(); + let text_turn = live + .generate( + &mut execution, + &metadata, + &messages, + &settings, + &turn_options, + &cancelled, + &metrics, + |used, limit, speed| reported_progress.push((used, limit, speed)), + emit, + observe, + ) + .unwrap(); + assert_eq!(text_turn.output.prompt_tokens as usize, ids.len()); + assert_eq!(text_turn.output.completion_tokens as usize, wire.len()); + assert_eq!(text_turn.output.cached_tokens, expected["cached_tokens"]); + assert_eq!(text_turn.output.finish_reason, "stop"); + let text = text_turn.output.message; + messages.push(text.clone()); + let turn = text_turn + .session + .expect("completed request has a session outcome"); + assert_eq!( + metrics.snapshot().decode_duration_ns, + Some( + std::time::Duration::from_secs_f64(turn.decoded.decode_seconds()).as_nanos() + as u64 + ) + ); + assert_eq!( + reported_progress.first().unwrap().0 as usize, + turn.cached_tokens + ); + assert_eq!( + reported_progress.last().unwrap().0 as usize, + ids.len() + wire.len() + ); + assert_eq!( + reported_progress + .iter() + .filter(|(_, _, speed)| speed.is_some()) + .count(), + wire.len() + 1 + ); + assert!( + reported_progress + .iter() + .all(|(_, limit, _)| *limit == 32768) + ); + assert!( + turn.prefix_snapshot_error.is_none(), + "{:?}", + turn.prefix_snapshot_error + ); + assert!( + turn.final_snapshot_error.is_none(), + "{:?}", + turn.final_snapshot_error + ); + assert_eq!(expected["cached_tokens"], turn.cached_tokens); + assert!(turn.restore_seconds >= 0.0); + if let TurnDecoded::Mtp(decoded) = &turn.decoded { + assert!(decoded.final_state_error.is_none()); + assert!(decoded.pending.is_none()); + assert_eq!( + serde_json::json!(decoded.cycles), + expected["cycles"], + "chat turn {step} MTP cycles" + ); + assert_eq!( + serde_json::json!(execution.mtp_offset().unwrap()), + expected["history_offset"] + ); + } + let actual = turn.decoded.tokens(); + let (logits, hidden) = turn.decoded.final_arrays(true).expect("safe final state"); + assert_eq!(actual, tokens); + let expected_text = expected["text"].as_str().unwrap(); + assert_eq!(expected_text.matches("").count(), 1); + let (expected_reasoning, expected_content) = + expected_text.split_once("").unwrap(); + assert_eq!(text.reasoning.as_deref(), Some(expected_reasoning)); + assert_eq!(text.content, expected_content); + assert!(text.reasoning_complete); + for (reasoning, expected) in [(true, expected_reasoning), (false, expected_content)] { + assert_eq!( + chunks + .iter() + .filter(|(r, _)| *r == reasoning) + .map(|(_, s)| s.as_str()) + .collect::(), + expected + ); + } + assert!( + turn.snapshot.is_none(), + "live owner must own the final state" + ); + let saved = live + .current + .as_ref() + .expect("live owner lost completed state"); + assert_eq!(&saved.token_ids[..ids.len()], ids); + assert_eq!( + &saved.token_ids[ids.len()..], + actual.iter().map(|&n| n as i32).collect::>() + ); + assert_eq!( + serde_json::json!( + execution + .boundaries + .iter() + .map(|b| b.tokens) + .collect::>() + ), + expected["boundaries"] + ); + for boundary in &execution.boundaries { + assert_eq!(boundary.state.len(), execution.cache.len()); + assert_eq!(boundary.hidden.is_some(), mtp); + assert!( + boundary + .state + .iter() + .any(|s| matches!(s, Some(State::Recurrent(_)))) + ); + assert!( + !boundary + .state + .iter() + .any(|s| matches!(s, Some(State::Qsa(_)))) + ); + } + for (key, array) in [("logits", Some(logits)), ("hidden", hidden)] { + if let Some(array) = array { + let values = execution.values_f32(array).unwrap(); + assert!(values.iter().all(|n| n.is_finite())); + assert_eq!( + serde_json::json!({"shape":array.layout().shape(), + "sha256":super::super::qwen_mtplx_tests::hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}), + expected[key], + "chat turn {step} {key}" + ); + } else { + assert!(expected[key].is_null()); + } + } + println!( + "{}", + serde_json::json!({"event":"canonical_chat_turn", "step":step, "mtp":mtp, + "prompt_tokens":ids.len(), "cached_tokens":turn.cached_tokens, "output_tokens":actual.len(), + "reasoning_bytes":expected_reasoning.len(), "content_bytes":expected_content.len(), + "prefill_seconds":turn.prefill_seconds, "restore_seconds":turn.restore_seconds, + "decode_seconds":turn.decoded.decode_seconds(), "power_percent":power, + "prefill_pauses":execution.prefill_throttle.pauses, + "prefill_sleep_seconds":execution.prefill_throttle.sleep.as_secs_f64(), + "decode_pauses":execution.decode_throttle.pauses, + "decode_sleep_seconds":execution.decode_throttle.sleep.as_secs_f64()}) + ); + if power == 0 || power == 100 { + assert_eq!( + ( + execution.prefill_throttle.pauses, + execution.decode_throttle.pauses + ), + (0, 0) + ); + } else { + assert!(execution.prefill_throttle.pauses > pauses_before.0); + assert!(execution.decode_throttle.pauses > pauses_before.1); + assert!(execution.prefill_throttle.sleep.as_secs_f64() > 0.0); + assert!(execution.decode_throttle.sleep.as_secs_f64() > 0.0); + } + if step == 0 { + // Test the same whole-request path with cancellation before + // prefill, after streaming begins, and a literal text stop. + // Every interrupted request must leave the bank's prefix + // intact and must not publish a partial decode as final KV. + let completed_tag = live.tag; + let completed_tokens = live.current.as_ref().unwrap().token_ids.clone(); + let request_messages = &messages[..messages.len() - 1]; + cancelled.store(true, Ordering::Relaxed); + let stopped = live + .generate( + &mut execution, + &metadata, + request_messages, + &settings, + &turn_options, + &cancelled, + &metrics, + |_, _, _| {}, + |_, _| panic!("cancelled request emitted text"), + |_| panic!("cancelled request started prefill"), + ) + .unwrap(); + assert!(stopped.session.is_none()); + assert_eq!(stopped.output.completion_tokens, 0); + assert_eq!(stopped.output.finish_reason, "stop"); + assert_eq!(live.tag, completed_tag); + assert_eq!(live.current.as_ref().unwrap().token_ids, completed_tokens); + assert_eq!(live.prefix.as_ref().unwrap().token_ids, ids); + cancelled.store(false, Ordering::Relaxed); + let failure = live.generate( + &mut execution, + &metadata, + request_messages, + &settings, + &turn_options, + &cancelled, + &metrics, + |_, _, _| {}, + |_, _| {}, + |_| Err("injected observer failure".into()), + ); + assert_eq!(failure.err().as_deref(), Some("injected observer failure")); + turn_options.store_min_suffix = Some(0); + let stopped = live + .generate( + &mut execution, + &metadata, + request_messages, + &settings, + &turn_options, + &cancelled, + &metrics, + |_, _, _| {}, + |_, chunk| { + if !chunk.is_empty() { + cancelled.store(true, Ordering::Relaxed); + } + }, + |_| Ok(()), + ) + .unwrap(); + assert!(stopped.session.is_none()); + assert!(stopped.output.completion_tokens > 0); + let partial = stopped.output.message.reasoning.as_deref().unwrap(); + assert!(!partial.is_empty() && expected_reasoning.starts_with(partial)); + assert_eq!(live.prefix.as_ref().unwrap().token_ids, ids); + assert_eq!(live.tag, completed_tag); + assert_eq!(live.current.as_ref().unwrap().token_ids, completed_tokens); + cancelled.store(false, Ordering::Relaxed); + let text_stop = expected_reasoning.chars().next().unwrap().to_string(); + settings.stops = vec![text_stop]; + let stopped = live + .generate( + &mut execution, + &metadata, + request_messages, + &settings, + &turn_options, + &cancelled, + &metrics, + |_, _, _| {}, + |_, chunk| assert!(chunk.is_empty(), "stop leaked text"), + |_| Ok(()), + ) + .unwrap(); + settings.stops.clear(); + assert!(stopped.session.is_none()); + assert!(stopped.output.completion_tokens > 0); + assert_eq!(stopped.output.message.reasoning.as_deref(), Some("")); + assert_eq!(stopped.output.finish_reason, "stop"); + assert_eq!(live.tag, completed_tag); + assert_eq!(live.current.as_ref().unwrap().token_ids, completed_tokens); + assert_eq!(live.prefix.as_ref().unwrap().token_ids, ids); + let reached_decode = std::cell::Cell::new(false); + match &mut turn_options.decode { + DecodeOptions::Ar(o) => o.stop_tokens = &stops, + DecodeOptions::Mtp(o) => { + o.prompt_ids = &ids; + o.stops = &stops; + } + } + let failure = execution.generate_text( + &ids, + live.prefix.as_ref(), + &turn_options, + &metadata.tokenizer, + ReasoningMode::Low, + &[], + &cancelled, + 32768, + &metrics, + |_, _, _| {}, + |_, _| {}, + |event| { + if matches!(event, TurnProgress::Decode) { + reached_decode.set(true); + Err("end injected store failure probe".into()) + } else { + Ok(()) + } + }, + |_| Err("injected prefix storage failure".into()), + ); + assert!( + reached_decode.get(), + "prefix-store failure aborted the request" + ); + assert_eq!( + failure.err().as_deref(), + Some("end injected store failure probe") + ); + eprintln!("chat request interruption checks passed; mtp={mtp}"); + } + if let Some(directory) = std::env::var_os("DS4_QWEN38_CHECKPOINT_DIR") { + use crate::engine::kvstore::{KvStore, StoreReason}; + let identity = super::session_checkpoint::Identity { + model: metadata.checkpoint_identity(), + context: settings.context_tokens as u32, + vocabulary: metadata.tokenizer.vocab_size() as u32, + mtp, + }; + let key = crate::engine::conversation_key( + &settings.system_prompt, + settings.reasoning_mode, + &messages, + ); + let tag = live.tag; + let saved_tokens = live.current.as_ref().unwrap().token_ids.clone(); + let directory = std::path::PathBuf::from(directory); + let store = KvStore::open(&directory, 16 * 1024 * 1024 * 1024).unwrap(); + let path = store.checkpoint_path(&key); + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + let started = std::time::Instant::now(); + let mut written = 0; + live.save_checkpoint( + &path, + identity, + tag, + &execution.streams, + execution.stream, + |bytes| { + written += bytes; + eprintln!("checkpoint wrote {written} bytes"); + }, + || false, + ) + .unwrap(); + let save_seconds = started.elapsed().as_secs_f64(); + assert_eq!(written, std::fs::metadata(&path).unwrap().len()); + assert!( + store + .record( + &path, + &key, + tag, + saved_tokens.len() as u32, + identity.context, + if step == 0 { + StoreReason::Cold + } else { + StoreReason::Continued + } + ) + .unwrap() + ); + // Remove every live model/cache owner before reopening. The + // following turn must continue from disk, not a retained prefix. + drop(turn); + live = super::request::LiveSession::default(); + drop(execution); + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + eprintln!("chat turn {step}: reopening engine before SSD restore"); + execution = Execution::open(&effective.engine).unwrap().0; + let store = KvStore::open(&directory, 16 * 1024 * 1024 * 1024).unwrap(); + let entry = store + .find(&key, identity.context) + .expect("DS4 KV index lost checkpoint"); + assert_eq!(entry.tag, tag); + assert_eq!(entry.tokens as usize, saved_tokens.len()); + let mut read = 0; + let started = std::time::Instant::now(); + assert!( + live.load_checkpoint( + &entry.checkpoint, + identity, + &execution.streams, + execution.stream, + |bytes| { + read += bytes; + eprintln!("checkpoint read {read} bytes"); + }, + || false + ) + .unwrap() + ); + let load_seconds = started.elapsed().as_secs_f64(); + store.touch(&entry).unwrap(); + assert_eq!(read, written); + assert_eq!(live.tag, tag); + assert_eq!(live.current.as_ref().unwrap().token_ids, saved_tokens); + assert!(live.prefix.is_none()); + println!( + "{}", + serde_json::json!({"event":"canonical_chat_checkpoint", + "step":step, "mtp":mtp, "bytes":written, + "save_seconds":save_seconds, "load_seconds":load_seconds, + "tokens":saved_tokens.len(), "engine_reopened":true}) + ); + } + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(panic) = outcome { + std::panic::resume_unwind(panic); + } +} + +pub(super) type Snapshot = Vec>; + +/// State payload of a committed SessionBank entry. Selection, eviction and +/// request identity stay with the session owner, not the tensor executor. +pub(super) struct SessionSnapshot { + pub(super) token_ids: Vec, + pub(super) logits: Array, + pub(super) hidden: Option, + pub(super) trunk: Snapshot, + pub(super) mtp: Option, + pub(super) lazy_kv: bool, + pub(super) boundaries: Vec, +} + +#[derive(Clone)] +pub(super) enum DecodeOptions<'a> { + Ar(super::ar::Options<'a>), + Mtp(super::speculative::Options<'a>), +} + +#[derive(Clone)] +pub(super) struct TurnOptions<'a> { + pub(super) prefill: super::prefill::Options, + pub(super) decode: DecodeOptions<'a>, + pub(super) sampler: super::sampling::SamplerConfig, + pub(super) draft_sampler: super::sampling::SamplerConfig, + pub(super) lazy_kv: bool, + pub(super) store_min_suffix: Option, + pub(super) fused_max: usize, +} + +pub(super) enum TurnProgress { + Prefill(super::prefill::Progress), + PromptReady(crate::metrics::PromptTiming), + Decode, + /// One completed cycle; timings are cumulative within this decode turn. + MtpCycle { + drafted: usize, + accepted: usize, + verified: bool, + verify_seconds: f64, + repair_seconds: f64, + }, + Finalize { + decode_seconds: f64, + }, +} + +pub(super) enum TurnDecoded { + Ar(super::ar::Decoded), + Mtp(super::speculative::Decoded), +} + +impl TurnDecoded { + pub(super) fn tokens(&self) -> &[i64] { + match self { + Self::Ar(r) => &r.tokens, + Self::Mtp(r) => &r.tokens, + } + } + + pub(super) fn final_arrays(&self, capture_requested: bool) -> Option<(&Array, Option<&Array>)> { + if !capture_requested { + return None; + } + match self { + Self::Ar(r) if r.final_state_error.is_none() => { + r.final_logits.as_ref().map(|a| (a, None)) + } + Self::Mtp(r) if r.final_state_error.is_none() && r.pending.is_none() => { + Some((&r.logits, Some(&r.hidden))) + } + _ => None, + } + } + + pub(super) fn decode_seconds(&self) -> f64 { + match self { + Self::Ar(r) => r.elapsed_seconds, + Self::Mtp(r) => r.elapsed_seconds, + } + } +} + +pub(super) struct SessionTurn { + pub(super) decoded: TurnDecoded, + pub(super) snapshot: Option, + pub(super) cached_tokens: usize, + pub(super) prefill_seconds: f64, + pub(super) restore_seconds: f64, + pub(super) prefix_snapshot_error: Option, + pub(super) final_snapshot_error: Option, +} + +#[test] +fn mtplx_session_final_state_requires_capture_and_safe_cache() { + use super::{ar, array::Dtype, speculative}; + // Unallocated descriptors suffice: this check must never submit GPU work. + let array = || Array::unallocated(&[1, 1], Dtype::F32).unwrap(); + let mut ar = TurnDecoded::Ar(ar::Decoded::default()); + assert!(ar.final_arrays(true).is_none()); + if let TurnDecoded::Ar(r) = &mut ar { + r.final_logits = Some(array()); + } + assert!(ar.final_arrays(false).is_none()); + assert!(ar.final_arrays(true).is_some()); + if let TurnDecoded::Ar(r) = &mut ar { + r.final_state_error = Some("capture failed".into()); + } + assert!(ar.final_arrays(true).is_none()); + + let mut mtp = TurnDecoded::Mtp(speculative::Decoded { + tokens: Vec::new(), + cycles: Vec::new(), + logits: array(), + hidden: array(), + pending: None, + final_state_error: None, + elapsed_seconds: 0.0, + draft_seconds: 0.0, + verify_seconds: 0.0, + repair_seconds: 0.0, + history_seconds: 0.0, + }); + // The reference permits an unchanged prompt cache for a zero-token MTP + // turn, but only when final-state capture was explicitly requested. + assert!(mtp.final_arrays(false).is_none()); + assert!(mtp.final_arrays(true).is_some()); + if let TurnDecoded::Mtp(r) = &mut mtp { + r.pending = Some(42); + } + assert!(mtp.final_arrays(true).is_none()); + if let TurnDecoded::Mtp(r) = &mut mtp { + r.pending = None; + r.final_state_error = Some("commit failed".into()); + } + assert!(mtp.final_arrays(true).is_none()); +} + +#[derive(Clone)] +pub(super) struct Boundary { + pub(super) tokens: usize, + pub(super) state: Snapshot, + pub(super) hidden: Option, +} + +#[derive(Clone, Copy)] +pub(super) struct BoundaryPolicy { + pub(super) tail_interval: usize, + pub(super) max_count: usize, +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn capture_boundary( + sink: &mut Vec, + cache: &[Option], + ple: impl Fn(usize) -> bool, + tokens: usize, + hidden: Option<&Array>, + policy: BoundaryPolicy, + streams: &super::stream::Streams, + stream: Stream, +) -> Result<(), String> { + let hidden = hidden + .map(|hidden| { + let layout = hidden.layout(); + let shape = layout.shape(); + let last = ops::slice(hidden, &[0, shape[1] - 1, 0], shape, &[1, 1, 1], stream)?; + let last = ops::contiguous(&last, false, stream)?; + ops::evaluate(streams, std::slice::from_ref(&last), stream, false)?; + Ok::<_, String>(last) + }) + .transpose()?; + let state = snapshot(cache, ple, false, true, stream)?; + sink.push(Boundary { + tokens, + state, + hidden, + }); + let keep = boundary_indices( + &sink.iter().map(|b| b.tokens).collect::>(), + policy.max_count, + ); + let mut index = 0; + sink.retain(|_| { + let retain = keep.contains(&index); + index += 1; + retain + }); + Ok(()) +} + +/// _thin_gdn_boundary_records, retaining both endpoints and geometric tail distances. +fn boundary_indices(positions: &[usize], cap: usize) -> Vec { + let cap = cap.max(2); + if positions.len() <= cap { + return (0..positions.len()).collect(); + } + let mut ordered = (0..positions.len()).collect::>(); + ordered.sort_by_key(|&i| positions[i]); + let newest = positions[*ordered.last().unwrap()]; + let span = (newest - positions[ordered[0]]).max(1); + let mut base = 256_usize; + let scales = cap.saturating_sub(2).max(1); + while base.saturating_mul( + 1_usize + .checked_shl((scales - 1).try_into().unwrap_or(u32::MAX)) + .unwrap_or(usize::MAX), + ) < span + && base < span + { + base = base.saturating_mul(2); + } + let mut keep = vec![ordered[0], *ordered.last().unwrap()]; + let (mut floor, mut next) = (0, base); + for &index in ordered[1..ordered.len() - 1].iter().rev() { + if keep.len() >= cap { + break; + } + let distance = newest - positions[index]; + if distance > floor { + keep.push(index); + while next < distance { + next = next.saturating_mul(2); + } + floor = next; + next = next.saturating_mul(2); + } + } + keep +} + +#[test] +fn mtplx_session_boundary_policy() { + // Actual warm Summary body (2748 prompt - 30 bootstrap - 1 tail). + // Original warm prefill leaves chunk_size implicit: without sustained + // prefill its sole body span is refined on the recurrent boundary grid. + assert_eq!( + super::prefill::spans(2717, None, 256, &[]), + vec![ + (0, 256), + (256, 512), + (512, 768), + (768, 1024), + (1024, 1280), + (1280, 1536), + (1536, 1792), + (1792, 2048), + (2048, 2304), + (2304, 2560), + (2560, 2717), + ] + ); + // The UI selects sustained prefill. Its warm body retains the 2048 + // main chunk and refines only the final body span, just like MTPLX. + assert_eq!( + super::prefill::spans(2717, Some(2048), 256, &[]), + vec![(0, 2048), (2048, 2304), (2304, 2560), (2560, 2717)] + ); + assert_eq!( + super::prefill::spans(2747, Some(2048), 256, &[]), + vec![(0, 2048), (2048, 2304), (2304, 2560), (2560, 2747)] + ); + assert_eq!( + super::prefill::spans(600, Some(2048), 256, &[300]), + vec![(0, 256), (256, 300), (300, 512), (512, 600)] + ); + assert_eq!( + super::prefill::spans(600, Some(2048), 0, &[300]), + vec![(0, 300), (300, 600)] + ); + assert!(super::prefill::spans(0, None, 256, &[]).is_empty()); + let positions = (1..=64).map(|n| n * 256).collect::>(); + assert_eq!(boundary_indices(&positions, 2), vec![0, 63]); + let kept = boundary_indices(&positions, 8); + assert!(kept.len() <= 8 && kept.contains(&0) && kept.contains(&63)); + assert_eq!(boundary_indices(&positions[..4], 8), vec![0, 1, 2, 3]); + // Actual pinned _thin_gdn_boundary_records, including a large cap where + // the Python power-of-two product exceeds a native integer. + let positions = (1..=65).map(|n| n * 256).collect::>(); + for (cap, expected) in [ + (8, vec![256, 8192, 12288, 14336, 15360, 15872, 16384, 16640]), + ( + 64, + vec![256, 8192, 12288, 14336, 15360, 15872, 16128, 16384, 16640], + ), + ] { + let mut actual = boundary_indices(&positions, cap) + .into_iter() + .map(|i| positions[i]) + .collect::>(); + actual.sort_unstable(); + assert_eq!(actual, expected); + } +} + +fn leaf(value: &Array, clone: bool, stream: Stream) -> Result { + if clone { + // _clone_tree is a lazy add, not a forced copy/eval or a memcpy. + binary( + value, + &ops::zeros(&[], value.layout().dtype(), stream)?, + Binary::Add, + stream, + ) + } else { + // Retain the current immutable descriptor, never the mutable ArrayObject. + Ok(value.clone()) + } +} + +fn snapshot( + cache: &[Option], + ple: impl Fn(usize) -> bool, + lazy_kv: bool, + recurrent_only: bool, + stream: Stream, +) -> Result { + cache + .iter() + .enumerate() + .map(|(i, entry)| { + let Some(entry) = entry else { + return Ok(None); + }; + if recurrent_only && matches!(entry.attention, AttentionCache::Qsa(_)) { + return Ok(None); + } + Ok(Some(match &entry.attention { + AttentionCache::Linear(gdn) => { + let mut state = vec![gdn.conv.clone(), gdn.delta.clone()]; + if ple(i) { + state.extend([entry.ple.conv.clone(), entry.ple.history.clone()]); + } + for value in state.iter_mut().flatten() { + *value = leaf(value, true, stream)?; + } + State::Recurrent(state) + } + AttentionCache::Qsa(qsa) => { + let mut values: [Option; 4] = Default::default(); + for (out, value) in values.iter_mut().zip(qsa.state(stream)?) { + *out = value + .map(|a| leaf(&a.borrow(), !lazy_kv, stream)) + .transpose()?; + } + State::Qsa(values) + } + })) + }) + .collect() +} + +fn restore( + cache: &mut [Option], + saved: &Snapshot, + clone_states: bool, + stream: Stream, +) -> Result<(), String> { + if cache.len() != saved.len() { + return Err("session cache layer count differs from model".into()); + } + for (entry, state) in cache.iter_mut().zip(saved) { + let Some(state) = state else { + continue; + }; + let entry = entry.as_mut().ok_or("session cache entry missing")?; + match (&mut entry.attention, state) { + (AttentionCache::Linear(gdn), State::Recurrent(state)) => { + if !matches!(state.len(), 2 | 4) { + return Err("recurrent session state needs two or four slots".into()); + } + let values = state + .iter() + .map(|a| a.as_ref().map(|a| leaf(a, true, stream)).transpose()) + .collect::, _>>()?; + gdn.conv = values[0].clone(); + gdn.delta = values[1].clone(); + if values.len() == 4 { + entry.ple.conv = values[2].clone(); + entry.ple.history = values[3].clone(); + } + } + (AttentionCache::Qsa(qsa), State::Qsa(state)) => { + let mut values: [Option; 4] = Default::default(); + for (out, a) in values.iter_mut().zip(state) { + // Fresh mutable object even in the lazy restore route: + // installing the bank's object poisons future restores. + *out = a + .as_ref() + .map(|a| leaf(a, clone_states, stream).map(object)) + .transpose()?; + } + qsa.set_state(&values)?; + } + _ => return Err("session cache family differs from model".into()), + } + } + // Qwen ArraysCache.meta_state is the empty string; QSACache has none. + // Neither has payload to install. Fresh factories supply all non-state fields. + Ok(()) +} + +impl Execution { + /// Shared prompt preparation for a full turn and bootstrap/compaction. + fn prepare_session( + &mut self, + prompt: &[i32], + saved: Option<&SessionSnapshot>, + options: &TurnOptions<'_>, + mut progress: impl FnMut(super::prefill::Progress) -> Result<(), String>, + ) -> Result { + use super::{prefill, speculative}; + use std::time::Instant; + if prompt.is_empty() { + return Err("prompt_ids must not be empty".into()); + } + let history = match &options.decode { + DecodeOptions::Ar(_) => false, + DecodeOptions::Mtp(speculative::Options { + prompt_ids, + committed_history, + .. + }) => { + if *prompt_ids != prompt { + return Err("MTP proposal prompt differs from the request".into()); + } + *committed_history + } + }; + progress(prefill::Progress::CheckAbort)?; + let cached = saved.map_or(0, |s| s.token_ids.len()); + let mut restore_seconds = 0.0; + let (prepared, history_seconds) = if let Some(saved) = saved { + let started = Instant::now(); + let (logits, hidden, _) = self.restore_session(saved, prompt)?; + restore_seconds = started.elapsed().as_secs_f64(); + if prompt.len() == cached { + ( + prefill::Prepared { + logits, + hidden, + eval_seconds: 0.0, + chunks: 0, + }, + 0.0, + ) + } else { + self.prefill_restored_suffix( + &prompt[cached..], + hidden.as_ref(), + history, + &options.prefill, + options.fused_max, + cached, + &mut progress, + |_| Ok(()), + )? + } + } else if history { + let p = self.prefill_mtp_history( + prompt, + &options.prefill, + None, + false, + &mut progress, + |_| Ok(()), + )?; + (p.target, p.history_seconds) + } else { + ( + self.prefill_prompt(prompt, &options.prefill, &mut progress)?, + 0.0, + ) + }; + Ok(SessionPrompt { + prepared, + history, + cached, + history_seconds, + restore_seconds, + }) + } + + /// A committed prompt without sampling. Same cold/restored/MTP preparation + /// as session_turn; no separate scalar replay for bootstrap or compaction. + pub(super) fn prefill_session( + &mut self, + prompt: &[i32], + saved: Option<&SessionSnapshot>, + options: &TurnOptions<'_>, + progress: impl FnMut(super::prefill::Progress) -> Result<(), String>, + ) -> Result { + let p = self.prepare_session(prompt, saved, options, progress)?; + self.capture_session( + prompt, + &p.prepared.logits, + p.prepared.hidden.as_ref(), + p.history, + options.lazy_kv, + ) + } + + /// One full token-level turn. Both cold and restored requests use the same + /// decode drivers; callers own session selection, text rendering and disk IO. + #[allow(clippy::too_many_arguments)] + pub(super) fn session_turn( + &mut self, + prompt: &[i32], + saved: Option<&SessionSnapshot>, + options: &TurnOptions<'_>, + mut observe: impl FnMut(TurnProgress) -> Result<(), String>, + emit: impl FnMut(i64) -> Result<(), String>, + store_prefix: impl FnOnce(SessionSnapshot) -> Result<(), String>, + ) -> Result { + let SessionPrompt { + prepared, + history, + cached, + history_seconds, + restore_seconds, + } = self.prepare_session(prompt, saved, options, |event| { + observe(TurnProgress::Prefill(event)) + })?; + // Publish before decode (and before prefix storage) so a cancelled + // response retains the completed prompt timings, just like MTPLX. + observe(TurnProgress::PromptReady(crate::metrics::PromptTiming { + evaluated_tokens: prompt.len() - cached, + eval_seconds: prepared.eval_seconds + history_seconds, + mtp_history_seconds: history_seconds, + restore_seconds, + }))?; + // The bank owns this boundary before decode starts, including when a + // subsequent callback aborts the request. Keeping it in this stack + // frame instead would lose a valid prefix on cancellation. + let prefix_snapshot_error = options + .store_min_suffix + .filter(|&minimum| prompt.len() - cached >= minimum) + .map(|_| { + self.capture_session( + prompt, + &prepared.logits, + prepared.hidden.as_ref(), + history, + options.lazy_kv, + ) + .and_then(store_prefix) + }) + .and_then(Result::err); + observe(TurnProgress::Decode)?; + let decoded = match &options.decode { + DecodeOptions::Ar(decode) => TurnDecoded::Ar(self.decode_ar( + &prepared.logits, + &options.sampler, + decode, + emit, + |decode_seconds| observe(TurnProgress::Finalize { decode_seconds }), + )?), + DecodeOptions::Mtp(decode) => TurnDecoded::Mtp( + self.decode_mtp( + &prepared.logits, + prepared + .hidden + .as_ref() + .ok_or("MTP prompt state omitted hidden")?, + &options.sampler, + &options.draft_sampler, + decode, + emit, + &mut observe, + )?, + ), + }; + let capture_requested = match &options.decode { + DecodeOptions::Ar(o) => o.capture_final_state, + DecodeOptions::Mtp(o) => o.capture_final_state, + }; + let snapshot = if let Some((logits, hidden)) = decoded.final_arrays(capture_requested) { + let mut committed = prompt.to_vec(); + for &id in decoded.tokens() { + committed.push(i32::try_from(id).map_err(|_| "generated token exceeds int32")?); + } + Some(self.capture_session(&committed, logits, hidden, history, options.lazy_kv)) + } else { + None + }; + let final_snapshot_error = snapshot.as_ref().and_then(|r| r.as_ref().err()).cloned(); + Ok(SessionTurn { + decoded, + snapshot: snapshot.and_then(Result::ok), + cached_tokens: cached, + prefill_seconds: prepared.eval_seconds + history_seconds, + restore_seconds, + prefix_snapshot_error, + final_snapshot_error, + }) + } + + pub(super) fn capture_session( + &self, + token_ids: &[i32], + logits: &Array, + hidden: Option<&Array>, + with_mtp: bool, + lazy_kv: bool, + ) -> Result { + if token_ids.is_empty() { + return Err("cannot store an empty prefix".into()); + } + let (trunk, _) = self.snapshot_caches(lazy_kv, false)?; + // openai's final-state commit always uses snapshot_cache for the head, + // independently of SessionBank's lazy trunk policy. + let mtp = with_mtp + .then(|| snapshot(&self.mtp_cache, |_| false, false, false, self.stream)) + .transpose()?; + Ok(SessionSnapshot { + token_ids: token_ids.to_vec(), + logits: leaf(logits, true, self.stream)?, + hidden: hidden.map(|a| leaf(a, true, self.stream)).transpose()?, + trunk, + mtp, + lazy_kv, + boundaries: self.boundaries.clone(), + }) + } + + pub(super) fn restore_session( + &mut self, + saved: &SessionSnapshot, + prompt: &[i32], + ) -> Result<(Array, Option, usize), String> { + if !prompt.starts_with(&saved.token_ids) { + return Err("session snapshot is not a prefix of the request".into()); + } + let model = self.model.borrow_dependent(); + let mut cache = model.make_cache(4); + let mut mtp_cache = model.make_mtp_cache(4); + restore(&mut cache, &saved.trunk, !saved.lazy_kv, self.stream)?; + if let Some(mtp) = &saved.mtp { + // SessionBank.restore does not pass clone_states=False for MTP. + restore(&mut mtp_cache, mtp, true, self.stream)?; + } + let logits = leaf(&saved.logits, true, self.stream)?; + let hidden = saved + .hidden + .as_ref() + .map(|a| leaf(a, true, self.stream)) + .transpose()?; + self.cache = cache; + self.mtp_cache = mtp_cache; + self.boundaries = saved.boundaries.clone(); + Ok((logits, hidden, saved.token_ids.len())) + } + + pub(super) fn snapshot_caches( + &self, + lazy_kv: bool, + include_mtp: bool, + ) -> Result<(Snapshot, Option), String> { + let model = self.model.borrow_dependent(); + let trunk = snapshot( + &self.cache, + |i| model.layers[i].ple.is_some(), + lazy_kv, + false, + self.stream, + )?; + let mtp = include_mtp + .then(|| snapshot(&self.mtp_cache, |_| false, lazy_kv, false, self.stream)) + .transpose()?; + Ok((trunk, mtp)) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn restore_caches( + &mut self, + trunk: &Snapshot, + mtp: Option<&Snapshot>, + clone_states: bool, + ) -> Result<(), String> { + let model = self.model.borrow_dependent(); + let mut cache = model.make_cache(4); + let mut mtp_cache = model.make_mtp_cache(4); + restore(&mut cache, trunk, clone_states, self.stream)?; + if let Some(mtp) = mtp { + restore(&mut mtp_cache, mtp, clone_states, self.stream)?; + } + self.cache = cache; + self.mtp_cache = mtp_cache; + Ok(()) + } +} + +struct SessionPrompt { + prepared: super::prefill::Prepared, + history: bool, + cached: usize, + history_seconds: f64, + restore_seconds: f64, +} diff --git a/src/engine/metal/qwen_mtplx/session_checkpoint.rs b/src/engine/metal/qwen_mtplx/session_checkpoint.rs new file mode 100644 index 0000000..bafacc4 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/session_checkpoint.rs @@ -0,0 +1,424 @@ +//! A single atomic checkpoint for the existing DS4 KV index, not a second bank. +//! Tensor payloads keep the reference codec's dtypes, shapes and raw bytes. +use super::request::LiveSession; +use super::session_codec::decode_payload; +use super::stream::{Stream, Streams}; +use crate::engine::metal::checkpoint::{read_u64, write_u64}; +use serde::{Deserialize, Serialize}; +use std::collections::BTreeMap; +use std::fs::{self, File}; +use std::io::{Read, Seek, SeekFrom, Write}; +use std::path::Path; + +const MAGIC: &[u8; 8] = b"QWMTKV01"; +const HEADER_BYTES: u64 = 16; +const MAX_MANIFEST_BYTES: u64 = 64 * 1024 * 1024; +const IO_CHUNK: usize = 8 * 1024 * 1024; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] +pub(super) struct Identity { + pub(super) model: [u8; 32], + pub(super) context: u32, + pub(super) vocabulary: u32, + pub(super) mtp: bool, +} + +#[derive(Serialize, Deserialize)] +struct Manifest { + identity: Identity, + tag: [u8; 32], + tokens: Vec, + lazy_kv: bool, + payload: serde_json::Value, + // Offsets are absolute; blob names are codec-local, never filesystem paths. + blobs: BTreeMap, +} + +fn check_abort(abort: &impl Fn() -> bool) -> Result<(), String> { + if abort() { + Err("Qwen checkpoint interrupted".into()) + } else { + Ok(()) + } +} + +fn validate_tokens(tokens: &[i32], identity: Identity) -> Result<(), String> { + if identity.context == 0 + || identity.vocabulary == 0 + || tokens.is_empty() + || tokens.len() > identity.context as usize + || tokens + .iter() + .any(|&token| token < 0 || token as u32 >= identity.vocabulary) + { + return Err("Qwen checkpoint token prefix is invalid".into()); + } + Ok(()) +} + +impl LiveSession { + #[allow(clippy::too_many_arguments)] + pub(super) fn save_checkpoint( + &mut self, + path: &Path, + identity: Identity, + tag: [u8; 32], + streams: &Streams, + stream: Stream, + mut progress: impl FnMut(u64), + abort: impl Fn() -> bool, + ) -> Result<(), String> { + check_abort(&abort)?; + let saved = self + .current + .as_ref() + .ok_or("Qwen has no committed checkpoint")?; + validate_tokens(&saved.token_ids, identity)?; + if saved.mtp.is_some() != identity.mtp { + return Err("Qwen checkpoint MTP configuration differs".into()); + } + if let Some(parent) = path.parent() { + fs::create_dir_all(parent).map_err(|e| e.to_string())?; + } + // Same serialized-writer, staging-file and sync/rename contract as DS4. + let temporary = path.with_extension("tmp"); + let result = (|| -> Result<(), String> { + let mut file = File::create(&temporary).map_err(|e| e.to_string())?; + file.write_all(MAGIC).map_err(|e| e.to_string())?; + write_u64(&mut file, 0)?; + progress(HEADER_BYTES); + let mut blobs = BTreeMap::new(); + let payload = saved.encode_payload( + 256, + streams, + stream, + |name, bytes| { + let offset = file.stream_position().map_err(|e| e.to_string())?; + for chunk in bytes.chunks(IO_CHUNK) { + check_abort(&abort)?; + file.write_all(chunk).map_err(|e| e.to_string())?; + progress(chunk.len() as u64); + } + if blobs.insert(name, (offset, bytes.len() as u64)).is_some() { + return Err("duplicate Qwen checkpoint blob".into()); + } + Ok(()) + }, + &abort, + )?; + check_abort(&abort)?; + let offset = file.stream_position().map_err(|e| e.to_string())?; + let manifest = serde_json::to_vec(&Manifest { + identity, + tag, + tokens: saved.token_ids.clone(), + lazy_kv: saved.lazy_kv, + payload, + blobs, + }) + .map_err(|e| e.to_string())?; + if manifest.len() as u64 > MAX_MANIFEST_BYTES { + return Err("Qwen checkpoint metadata exceeds limit".into()); + } + file.write_all(&manifest).map_err(|e| e.to_string())?; + progress(manifest.len() as u64); + file.seek(SeekFrom::Start(8)).map_err(|e| e.to_string())?; + write_u64(&mut file, offset)?; + file.sync_all().map_err(|e| e.to_string())?; + check_abort(&abort)?; + fs::rename(&temporary, path).map_err(|e| e.to_string()) + })(); + if result.is_err() { + let _ = fs::remove_file(&temporary); + } else { + self.tag = tag; + } + result + } + + #[allow(clippy::too_many_arguments)] + pub(super) fn load_checkpoint( + &mut self, + path: &Path, + identity: Identity, + streams: &Streams, + stream: Stream, + mut progress: impl FnMut(u64), + abort: impl Fn() -> bool, + ) -> Result { + check_abort(&abort)?; + let mut file = match File::open(path) { + Ok(file) => file, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => return Ok(false), + Err(e) => return Err(e.to_string()), + }; + let mut magic = [0; 8]; + file.read_exact(&mut magic).map_err(|e| e.to_string())?; + if &magic != MAGIC { + return Err("Qwen checkpoint format differs; rebuild the cache".into()); + } + let offset = read_u64(&mut file)?; + let length = file.metadata().map_err(|e| e.to_string())?.len(); + if offset < HEADER_BYTES || offset >= length || length - offset > MAX_MANIFEST_BYTES { + return Err("Qwen checkpoint metadata range is invalid".into()); + } + file.seek(SeekFrom::Start(offset)) + .map_err(|e| e.to_string())?; + let mut raw = vec![0; (length - offset) as usize]; + file.read_exact(&mut raw).map_err(|e| e.to_string())?; + let mut manifest: Manifest = serde_json::from_slice(&raw).map_err(|e| e.to_string())?; + progress(HEADER_BYTES + raw.len() as u64); + if manifest.identity != identity { + return Err( + "Qwen checkpoint does not match the current model/context/MTP policy".into(), + ); + } + validate_tokens(&manifest.tokens, identity)?; + if !manifest.payload["mtp_history_snapshot"].is_null() != identity.mtp { + return Err("Qwen checkpoint MTP payload differs".into()); + } + // Validate all extents before allocating any GPU state. Require exact + // coverage, so overlapping blobs and unindexed/trailing bytes fail closed. + let mut ranges = manifest.blobs.values().copied().collect::>(); + ranges.sort_unstable(); + let mut end = HEADER_BYTES; + for (start, size) in ranges { + if start != end { + return Err("Qwen checkpoint blob range is invalid".into()); + } + end = start + .checked_add(size) + .filter(|&n| n <= offset) + .ok_or("Qwen checkpoint blob exceeds payload")?; + } + if end != offset { + return Err("Qwen checkpoint payload coverage differs".into()); + } + let saved = decode_payload( + &manifest.payload, + manifest.tokens, + manifest.lazy_kv, + true, + streams, + stream, + |name| { + check_abort(&abort)?; + let (start, size) = manifest + .blobs + .remove(name) + .ok_or("missing or repeated Qwen checkpoint blob")?; + file.seek(SeekFrom::Start(start)) + .map_err(|e| e.to_string())?; + let mut bytes = Vec::new(); + let size = usize::try_from(size).map_err(|_| "Qwen checkpoint blob too large")?; + bytes.try_reserve_exact(size).map_err(|e| e.to_string())?; + bytes.resize(size, 0); + for chunk in bytes.chunks_mut(IO_CHUNK) { + check_abort(&abort)?; + file.read_exact(chunk).map_err(|e| e.to_string())?; + progress(chunk.len() as u64); + } + Ok(bytes) + }, + )?; + if !manifest.blobs.is_empty() { + return Err("unreferenced Qwen checkpoint blobs".into()); + } + check_abort(&abort)?; + // Publish only after complete validation and materialization. Failure + // leaves the live conversation and its prefix untouched. + self.current = Some(saved); + self.prefix = None; + self.tag = manifest.tag; + Ok(true) + } +} + +#[test] +#[ignore = "model-free Metal checkpoint; external supervisor and DS4_QWEN38_CHECKPOINT_DIR required"] +fn qwen_checkpoint_roundtrip_and_failed_restore_preserve_live_state() { + use super::super::gpu::Context; + use super::session_cache::{Boundary, SessionSnapshot, State}; + use super::stream::Device; + use super::{ + allocator::Allocator, + array::{Array, Dtype}, + configure_sources, scalar_buffer, + }; + use std::cell::Cell; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let leaf = Array::new( + &[1, 1, 4], + Dtype::BF16, + scalar_buffer(&[0, 0, 128, 63, 0, 64, 64, 64]).unwrap(), + ) + .unwrap(); + let state = Some(State::Recurrent(vec![Some(leaf.clone()), None])); + let mut live = LiveSession { + current: Some(SessionSnapshot { + token_ids: vec![1, 2, 3, 4], + logits: leaf.clone(), + hidden: Some(leaf.clone()), + trunk: vec![state.clone()], + mtp: Some(vec![None]), + lazy_kv: true, + boundaries: vec![Boundary { + tokens: 2, + state: vec![state], + hidden: Some(leaf), + }], + }), + ..Default::default() + }; + let identity = Identity { + model: [7; 32], + context: 64, + vocabulary: 256, + mtp: true, + }; + let directory = + std::path::PathBuf::from(std::env::var_os("DS4_QWEN38_CHECKPOINT_DIR").unwrap()); + fs::create_dir_all(&directory).unwrap(); + let path = directory.join("roundtrip.bin"); + let fingerprint = |live: &LiveSession| { + let mut blobs = BTreeMap::new(); + let payload = live + .current + .as_ref() + .unwrap() + .encode_payload( + 256, + &streams, + stream, + |name, bytes| { + blobs.insert(name, bytes); + Ok(()) + }, + || false, + ) + .unwrap(); + (payload, blobs) + }; + let original = fingerprint(&live); + let mut written = 0; + live.save_checkpoint( + &path, + identity, + [9; 32], + &streams, + stream, + |n| written += n, + || false, + ) + .unwrap(); + let valid = fs::read(&path).unwrap(); + assert_eq!(written, valid.len() as u64); + assert_eq!(live.tag, [9; 32]); + live = LiveSession::default(); + let mut read = 0; + assert!( + live.load_checkpoint(&path, identity, &streams, stream, |n| read += n, || false) + .unwrap() + ); + assert_eq!(read, written); + assert_eq!(fingerprint(&live), original); + assert_eq!(live.tag, [9; 32]); + assert_eq!(live.current.as_ref().unwrap().token_ids, [1, 2, 3, 4]); + assert!(live.current.as_ref().unwrap().lazy_kv); + assert!( + !live + .load_checkpoint( + &directory.join("missing.bin"), + identity, + &streams, + stream, + |_| {}, + || false + ) + .unwrap() + ); + + // Cancellation after IO has started must not replace a valid file/tag. + let interrupted = Cell::new(false); + assert!( + live.save_checkpoint( + &path, + identity, + [8; 32], + &streams, + stream, + |_| interrupted.set(true), + || interrupted.get() + ) + .is_err() + ); + assert_eq!(fs::read(&path).unwrap(), valid); + assert!(!path.with_extension("tmp").exists()); + interrupted.set(false); + assert!( + live.load_checkpoint( + &path, + identity, + &streams, + stream, + |_| interrupted.set(true), + || interrupted.get() + ) + .is_err() + ); + for changed in [ + Identity { + context: 65, + ..identity + }, + Identity { + mtp: false, + ..identity + }, + Identity { + model: [8; 32], + ..identity + }, + ] { + assert!( + live.load_checkpoint(&path, changed, &streams, stream, |_| {}, || false) + .is_err() + ); + } + + let offset = u64::from_le_bytes(valid[8..16].try_into().unwrap()) as usize; + let broken = directory.join("broken.bin"); + let mutations: [fn(&mut Manifest); 5] = [ + |m| m.tokens[0] = -1, + |m| m.tokens.resize(65, 1), + |m| m.blobs.values_mut().next().unwrap().1 = u64::MAX, + |m| m.blobs.values_mut().next().unwrap().0 = 0, + |m| m.payload["logits"]["nbytes"] = serde_json::json!(99), + ]; + for mutate in mutations { + let mut manifest: Manifest = serde_json::from_slice(&valid[offset..]).unwrap(); + mutate(&mut manifest); + let mut bytes = valid[..offset].to_vec(); + bytes.extend(serde_json::to_vec(&manifest).unwrap()); + fs::write(&broken, bytes).unwrap(); + assert!( + live.load_checkpoint(&broken, identity, &streams, stream, |_| {}, || false) + .is_err() + ); + } + for bytes in [&b"DS4QWN01"[..], &valid[..offset], &valid[..7]] { + fs::write(&broken, bytes).unwrap(); + assert!( + live.load_checkpoint(&broken, identity, &streams, stream, |_| {}, || false) + .is_err() + ); + } + assert_eq!(live.tag, [9; 32]); + assert_eq!(fingerprint(&live), original); + println!( + "Qwen checkpoint: exact payload roundtrip, interrupted save, incompatible/corrupt restore passed" + ); +} diff --git a/src/engine/metal/qwen_mtplx/session_codec.rs b/src/engine/metal/qwen_mtplx/session_codec.rs new file mode 100644 index 0000000..e56e329 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/session_codec.rs @@ -0,0 +1,914 @@ +//! MTPLX cache_bank/codec.py's Qwen payload and raw C-order tensor blobs. +//! The owner supplies storage and admission; this codec never starts IO threads. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::ops; +#[cfg(test)] +use super::scalar_buffer; +use super::session_cache::{Boundary, SessionSnapshot, Snapshot, State}; +use super::stream::{Stream, Streams}; +use serde_json::{Value, json}; + +const DTYPES: &[(Dtype, &str)] = &[ + (Dtype::Bool, "bool"), + (Dtype::U8, "uint8"), + (Dtype::U16, "uint16"), + (Dtype::U32, "uint32"), + (Dtype::U64, "uint64"), + (Dtype::I8, "int8"), + (Dtype::I16, "int16"), + (Dtype::I32, "int32"), + (Dtype::I64, "int64"), + (Dtype::F16, "float16"), + (Dtype::F32, "float32"), + (Dtype::F64, "float64"), + (Dtype::BF16, "bfloat16"), +]; + +/// bytes(memoryview(array)): evaluate the view, then copy logical C-order runs +/// on the CPU. Inserting a GPU contiguous/cast operation changes this contract. +fn raw_bytes(value: &Array, streams: &Streams, stream: Stream) -> Result, String> { + ops::evaluate(streams, std::slice::from_ref(value), stream, false)?; + let layout = value.layout(); + let mut raw = vec![0; layout.nbytes()]; + if raw.is_empty() { + return Ok(raw); + } + let mut run = 1; + for (&dim, &stride) in layout.shape().iter().zip(layout.strides()).rev() { + if dim != 1 && stride != run as i64 { + break; + } + run *= dim as usize; + } + let width = value.itemsize(); + let buffer = value.buffer(); + for (i, out) in raw.chunks_mut(run * width).enumerate() { + let mut index = i * run; + let mut offset = i128::from(value.offset()); + for (&dim, &stride) in layout.shape().iter().zip(layout.strides()).rev() { + offset += (index % dim as usize) as i128 * i128::from(stride) * width as i128; + index /= dim as usize; + } + buffer.read( + u64::try_from(offset).map_err(|_| "invalid persisted tensor offset")?, + out, + )?; + } + Ok(raw) +} + +struct Encoder<'a, W, A> { + streams: &'a Streams, + stream: Stream, + block_size: usize, + next: usize, + write: W, + abort: A, +} + +impl) -> Result<(), String>, A: FnMut() -> bool> Encoder<'_, W, A> { + fn check_abort(&mut self) -> Result<(), String> { + if (self.abort)() { + Err("cold encode interrupted".into()) + } else { + Ok(()) + } + } + + fn blob(&mut self, value: &Array) -> Result { + let raw = raw_bytes(value, self.streams, self.stream)?; + let name = format!("tensor_{:08}", self.next); + self.next += 1; + let spec = json!({"name":name,"shape":value.layout().shape(),"nbytes":raw.len()}); + (self.write)(name, raw)?; + Ok(spec) + } + + fn tensor(&mut self, value: Option<&Array>) -> Result { + let Some(value) = value else { + return Ok(json!({"kind":"none"})); + }; + self.check_abort()?; + ops::evaluate( + self.streams, + std::slice::from_ref(value), + self.stream, + false, + )?; + let dtype = DTYPES + .iter() + .find(|(d, _)| *d == value.layout().dtype()) + .map(|(_, name)| *name) + .ok_or("unsupported persisted tensor dtype")?; + let shape = value.layout().shape().to_vec(); + if shape.len() >= 3 && shape[2] as usize / 2 >= self.block_size { + let mut blocks = Vec::new(); + let mut total = 0_usize; + for start in (0..shape[2] as usize).step_by(self.block_size) { + self.check_abort()?; + let end = (shape[2] as usize).min(start.saturating_add(self.block_size)); + let mut begin = vec![0; shape.len()]; + let mut stop = shape.clone(); + begin[2] = start as i32; + stop[2] = end as i32; + let chunk = ops::slice(value, &begin, &stop, &vec![1; shape.len()], self.stream)?; + let mut block = self.blob(&chunk)?; + block["start"] = json!(start); + block["end"] = json!(end); + total += chunk.layout().nbytes(); + blocks.push(block); + } + Ok( + json!({"kind":"tensor_blocks","dtype":dtype,"shape":shape,"axis":2, + "block_size":self.block_size,"blocks":blocks,"nbytes":total}), + ) + } else { + let mut result = self.blob(value)?; + result["kind"] = json!("tensor"); + result["dtype"] = json!(dtype); + Ok(result) + } + } + + fn snapshot(&mut self, snapshot: &Snapshot) -> Result { + let mut states = Vec::new(); + let mut meta = Vec::new(); + for state in snapshot { + match state { + None => { + states.push(json!({"kind":"none"})); + meta.push(json!({"kind":"none"})); + } + Some(state) => { + let (kind, leaves): (&str, &[Option]) = match state { + State::Recurrent(leaves) => ("list", leaves), + State::Qsa(leaves) => ("tuple", leaves), + }; + let mut items = Vec::new(); + for leaf in leaves { + items.push(self.tensor(leaf.as_ref())?); + } + states.push(json!({"kind":kind,"items":items})); + meta.push(if kind == "list" { + json!({"kind":"str","value":""}) + } else { + json!({"kind":"none"}) + }); + } + } + } + Ok(json!({"states":{"kind":"tuple","items":states}, + "meta_states":{"kind":"tuple","items":meta}})) + } +} + +impl SessionSnapshot { + /// build_payload_spec order is significant: it determines blob names and + /// per-tensor settle/abort boundaries. A sink can stage or stream to disk. + pub(super) fn encode_payload( + &self, + block_size: usize, + streams: &Streams, + stream: Stream, + write: impl FnMut(String, Vec) -> Result<(), String>, + abort: impl FnMut() -> bool, + ) -> Result { + let mut codec = Encoder { + streams, + stream, + block_size: block_size.max(1), + next: 0, + write, + abort, + }; + let cache = codec.snapshot(&self.trunk)?; + let logits = codec.tensor(Some(&self.logits))?; + let hidden = codec.tensor(self.hidden.as_ref())?; + let mtp = self.mtp.as_ref().map(|s| codec.snapshot(s)).transpose()?; + let mut boundaries = Vec::new(); + for boundary in &self.boundaries { + let mut spec = codec.snapshot(&boundary.state)?; + spec["tokens"] = json!(boundary.tokens); + spec["hidden_last"] = codec.tensor(boundary.hidden.as_ref())?; + boundaries.push(spec); + } + let recurrent = self + .trunk + .iter() + .any(|s| matches!(s, Some(State::Recurrent(_)))); + Ok( + json!({"cache_snapshot":cache,"logits":logits,"hidden":hidden, + "mtp_history_snapshot":mtp,"gdn_boundaries":boundaries,"has_recurrent":recurrent}), + ) + } +} + +fn shape(spec: &Value) -> Result, String> { + spec["shape"] + .as_array() + .ok_or("persisted tensor shape missing")? + .iter() + .map(|v| { + v.as_i64() + .and_then(|d| i32::try_from(d).ok()) + .filter(|d| *d >= 0) + .ok_or_else(|| "invalid persisted tensor dimension".into()) + }) + .collect() +} + +fn decode_tensor( + spec: &Value, + dtype: Dtype, + read: &mut impl FnMut(&str) -> Result, String>, + streams: &Streams, + stream: Stream, +) -> Result { + let shape = shape(spec)?; + let layout = Layout::new(&shape, dtype)?; + let name = spec["name"] + .as_str() + .ok_or("persisted tensor name missing")?; + if !name + .strip_prefix("tensor_") + .is_some_and(|id| id.len() >= 8 && id.bytes().all(|b| b.is_ascii_digit())) + { + return Err("invalid persisted tensor blob name".into()); + } + let raw = read(name)?; + if raw.len() != layout.nbytes() || spec["nbytes"].as_u64() != Some(raw.len() as u64) { + return Err("persisted tensor byte count differs from shape".into()); + } + let count = i32::try_from(layout.size()).map_err(|_| "persisted tensor exceeds int32 size")?; + // codec.py calls mx.array, whose constructor explicitly passes copy=true. + // Use the model allocator even outside a GPU encoder scope, as the + // reference CPU import does. Host storage must not enter the reuse pool. + let buffer = match streams + .allocator() + .ok_or("persisted Qwen restore requires its Metal allocator")? + .allocate(raw.len())? + { + Some(buffer) => buffer, + None => Buffer::mtplx_bytes(0)?, + }; + buffer.write(0, &raw)?; + let array = Array::new( + &[count], + if dtype == Dtype::BF16 { + Dtype::U16 + } else { + dtype + }, + buffer, + )?; + let array = if dtype == Dtype::BF16 { + ops::view(&array, dtype, stream)? + } else { + array + }; + // The reference does not reshape an empty shape: persisted scalars decode + // as [1]. Preserve that behavior rather than silently fixing the oracle. + if shape.is_empty() { + Ok(array) + } else { + ops::reshape(&array, &shape, stream) + } +} + +fn decode_array( + spec: &Value, + read: &mut impl FnMut(&str) -> Result, String>, + streams: &Streams, + stream: Stream, +) -> Result, String> { + if spec["kind"] == "none" { + return Ok(None); + } + let dtype = DTYPES + .iter() + .find(|(_, n)| spec["dtype"].as_str() == Some(*n)) + .map(|(d, _)| *d) + .ok_or("unsupported persisted tensor dtype")?; + match spec["kind"].as_str() { + Some("tensor") => decode_tensor(spec, dtype, read, streams, stream).map(Some), + Some("tensor_blocks") => { + let axis = spec["axis"] + .as_i64() + .and_then(|n| i32::try_from(n).ok()) + .ok_or("invalid tensor block axis")?; + let shape = shape(spec)?; + let blocks = spec["blocks"] + .as_array() + .ok_or("persisted tensor blocks missing")?; + let mut chunks = Vec::new(); + for block in blocks { + chunks.push(decode_tensor(block, dtype, read, streams, stream)?); + } + let array = if chunks.is_empty() { + ops::zeros(&shape, Dtype::F32, stream)? + } else { + ops::concatenate(&chunks, axis, stream)? + }; + if shape.is_empty() { + Ok(Some(array)) + } else { + Ok(Some(ops::reshape(&array, &shape, stream)?)) + } + } + _ => Err("unsupported persisted array kind".into()), + } +} + +fn decode_snapshot( + spec: &Value, + read: &mut impl FnMut(&str) -> Result, String>, + streams: &Streams, + stream: Stream, +) -> Result { + let states = spec["states"]["items"] + .as_array() + .ok_or("persisted cache states missing")?; + let meta = spec["meta_states"]["items"] + .as_array() + .ok_or("persisted cache metadata missing")?; + if spec["states"]["kind"] != "tuple" + || spec["meta_states"]["kind"] != "tuple" + || states.len() != meta.len() + { + return Err("persisted cache state/metadata structure differs".into()); + } + states + .iter() + .zip(meta) + .map(|(state, meta)| { + let kind = state["kind"] + .as_str() + .ok_or("persisted cache state kind missing")?; + if kind == "none" && meta == &json!({"kind":"none"}) { + return Ok(None); + } + let items = state["items"] + .as_array() + .ok_or("persisted cache leaves missing")?; + let leaves = items + .iter() + .map(|v| decode_array(v, read, streams, stream)) + .collect::, _>>()?; + match kind { + "list" + if matches!(leaves.len(), 2 | 4) + && meta == &json!({"kind":"str","value":""}) => + { + Ok(Some(State::Recurrent(leaves))) + } + "tuple" if meta == &json!({"kind":"none"}) => Ok(Some(State::Qsa( + leaves + .try_into() + .map_err(|_| "persisted QSA needs four leaves")?, + ))), + _ => Err("persisted Qwen cache family or metadata differs".into()), + } + }) + .collect() +} + +fn roots(snapshot: &Snapshot) -> Vec { + snapshot + .iter() + .flatten() + .flat_map(|state| { + let leaves: &[Option] = match state { + State::Recurrent(s) => s, + State::Qsa(s) => s, + }; + leaves.iter().flatten().cloned() + }) + .collect() +} + +/// Independently callable for a deferred partial restore; no trunk/head IO. +pub(super) fn decode_boundaries( + spec: &Value, + token_count: usize, + streams: &Streams, + stream: Stream, + mut read: impl FnMut(&str) -> Result, String>, +) -> Result, String> { + let mut boundaries = Vec::new(); + if !spec["gdn_boundaries"].is_null() { + for record in spec["gdn_boundaries"] + .as_array() + .ok_or("persisted boundaries missing")? + { + let tokens = record["tokens"] + .as_u64() + .and_then(|n| usize::try_from(n).ok()) + .ok_or("invalid persisted boundary position")?; + if tokens > token_count { + return Err("persisted boundary exceeds token prefix".into()); + } + boundaries.push(Boundary { + tokens, + state: decode_snapshot(record, &mut read, streams, stream)?, + hidden: if record["hidden_last"].is_null() { + None + } else { + decode_array(&record["hidden_last"], &mut read, streams, stream)? + }, + }); + } + } + let boundary_roots = boundaries + .iter() + .flat_map(|b| roots(&b.state).into_iter().chain(b.hidden.iter().cloned())) + .collect::>(); + if !boundary_roots.is_empty() { + ops::evaluate(streams, &boundary_roots, stream, false)?; + } + Ok(boundaries) +} + +/// decode_payload includes separately batched boundary materialization, then +/// one batch for all restored roots. Exact SSD hits may defer boundary loading. +#[allow(clippy::too_many_arguments)] +pub(super) fn decode_payload( + spec: &Value, + token_ids: Vec, + lazy_kv: bool, + include_boundaries: bool, + streams: &Streams, + stream: Stream, + mut read: impl FnMut(&str) -> Result, String>, +) -> Result { + let trunk = decode_snapshot(&spec["cache_snapshot"], &mut read, streams, stream)?; + let mtp = if spec["mtp_history_snapshot"].is_null() { + None + } else { + Some(decode_snapshot( + &spec["mtp_history_snapshot"], + &mut read, + streams, + stream, + )?) + }; + let boundaries = if include_boundaries { + decode_boundaries(spec, token_ids.len(), streams, stream, &mut read)? + } else { + Vec::new() + }; + let logits = decode_array(&spec["logits"], &mut read, streams, stream)? + .ok_or("persisted Qwen logits missing")?; + let hidden = decode_array(&spec["hidden"], &mut read, streams, stream)?; + let mut all = roots(&trunk); + all.push(logits.clone()); + all.extend(hidden.iter().cloned()); + if let Some(head) = &mtp { + all.extend(roots(head)); + } + all.extend( + boundaries + .iter() + .flat_map(|b| roots(&b.state).into_iter().chain(b.hidden.iter().cloned())), + ); + ops::evaluate(streams, &all, stream, false)?; + Ok(SessionSnapshot { + token_ids, + logits, + hidden, + trunk, + mtp, + lazy_kv, + boundaries, + }) +} + +#[test] +#[ignore = "model-free Metal imports; external supervisor and DS4_HOST_IMPORT_REFERENCE required"] +fn mtplx_session_codec_host_import_matches_reference() { + use super::super::gpu::{Context, ds4_gpu_tensor_contents}; + use super::{allocator::Allocator, configure_sources, stream::Device}; + + let rows = std::fs::read_to_string(std::env::var_os("DS4_HOST_IMPORT_REFERENCE").unwrap()) + .unwrap() + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .collect::>(); + assert_eq!(rows.len(), 4); + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + let streams = Streams::new(Some(allocator.clone())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + assert!(super::active_allocator().is_none()); + for row in rows { + allocator.clear_cache(); + assert_eq!(allocator.stats().active, 0); + let size = row["size"].as_u64().unwrap() as usize; + let spec = json!({"name":"tensor_00000000", "shape":[size], "nbytes":size}); + let mut source = Some(vec![37; size]); + let source_pointer = source.as_ref().unwrap().as_ptr() as usize; + let array = decode_tensor( + &spec, + Dtype::U8, + &mut |_| Ok(source.take().unwrap()), + &streams, + stream, + ) + .unwrap(); + let pointer = unsafe { ds4_gpu_tensor_contents(array.buffer().raw()) } as usize; + assert!(!row["adopted"].as_bool().unwrap()); + assert!(!row["retained"].as_bool().unwrap()); + if size != 0 { + assert_ne!(pointer, source_pointer); + } + let active = row["active"].as_u64().unwrap() as usize; + assert_eq!(allocator.stats().active, active); + assert_eq!(allocator.stats().cached, 0); + // The copied allocation survives views and in-flight GPU ownership; + // only its final physical release may return it to the model's pool. + let view = array.buffer().view(0, size as u64).unwrap(); + let gpu_hold = view.hold_allocation(); + drop(array); + let mut bytes = vec![0; size]; + view.read(0, &mut bytes).unwrap(); + assert_eq!(bytes, vec![37; size]); + drop(view); + assert_eq!(allocator.stats().active, active); + drop(gpu_hold); + assert_eq!(allocator.stats().active, 0); + assert_eq!( + allocator.stats().cached, + row["cached_after_release"].as_u64().unwrap() as usize + ); + let restored = decode_tensor( + &spec, + Dtype::U8, + &mut |_| Ok(vec![19; size]), + &streams, + stream, + ) + .unwrap(); + if size != 0 { + assert_eq!( + unsafe { ds4_gpu_tensor_contents(restored.buffer().raw()) } as usize, + pointer, + "second import must reuse the released canonical allocation" + ); + } + restored.buffer().read(0, &mut bytes).unwrap(); + assert_eq!(bytes, vec![19; size]); + drop(restored); + eprintln!( + "host import {}: reference copy/pool/lifetime matched", + row["name"] + ); + } + allocator.clear_cache(); + assert_eq!(allocator.stats().resources, 0); +} + +#[test] +#[ignore = "tiny GPU arrays; external supervisor and DS4_SESSION_CODEC_REFERENCE required"] +fn mtplx_session_codec_matches_original_blobs_and_restore() { + use super::super::gpu::Context; + use super::{allocator, configure_sources, stream::Device}; + use std::collections::BTreeMap; + use std::path::PathBuf; + let root = PathBuf::from(std::env::var_os("DS4_SESSION_CODEC_REFERENCE").unwrap()); + let reference: Value = + serde_json::from_slice(&std::fs::read(root.join("reference.json")).unwrap()).unwrap(); + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let stream = streams.default_stream(Device::Gpu).unwrap(); + let base = Array::new( + &[1, 2, 513, 4], + Dtype::F32, + scalar_buffer( + &(0..2 * 513 * 4) + .flat_map(|i| (i as f32 / 16.0).to_le_bytes()) + .collect::>(), + ) + .unwrap(), + ) + .unwrap(); + let bf16 = ops::astype(&base, Dtype::BF16, false, stream).unwrap(); + let small = Array::new( + &[1, 3, 4], + Dtype::I32, + scalar_buffer(&(0..12_i32).flat_map(i32::to_le_bytes).collect::>()).unwrap(), + ) + .unwrap(); + let reverse = ops::slice(&small, &[0, 0, 3], &[1, 3, -5], &[1, 1, -1], stream).unwrap(); + let broadcast = ops::broadcast_to( + &Array::new( + &[1], + Dtype::U16, + scalar_buffer(&7_u16.to_le_bytes()).unwrap(), + ) + .unwrap(), + &[1, 2, 3], + stream, + ) + .unwrap(); + let empty = Array::new(&[0], Dtype::F16, scalar_buffer(&[]).unwrap()).unwrap(); + let slice = |a, n| ops::slice(a, &[0, 0, 0, 0], &[1, 2, n, 4], &[1; 4], stream).unwrap(); + let saved = SessionSnapshot { + token_ids: vec![1, 2, 3], + lazy_kv: true, + trunk: vec![ + Some(State::Recurrent(vec![ + Some(bf16.clone()), + Some(reverse.clone()), + Some(broadcast), + Some(empty), + ])), + Some(State::Qsa([ + Some(base.clone()), + Some( + ops::slice( + &base, + &[0, 0, 512, 0], + &[1, 2, -514, 4], + &[1, 1, -1, 1], + stream, + ) + .unwrap(), + ), + Some(ops::transpose(&small, &[0, 2, 1], stream).unwrap()), + None, + ])), + None, + ], + mtp: Some(vec![Some(State::Qsa([ + Some(slice(&bf16, 5)), + Some(slice(&base, 5)), + None, + None, + ]))]), + logits: Array::new( + &[], + Dtype::F32, + scalar_buffer(&1.25_f32.to_le_bytes()).unwrap(), + ) + .unwrap(), + hidden: Some(ops::slice(&bf16, &[0; 4], &[1, 1, 1, 4], &[1; 4], stream).unwrap()), + boundaries: vec![Boundary { + tokens: 2, + state: vec![ + Some(State::Recurrent(vec![Some(slice(&bf16, 2)), Some(reverse)])), + None, + None, + ], + hidden: None, + }], + }; + let fingerprint = |array: Option<&Array>| -> Value { + array.map_or(Value::Null, |a| json!({"shape":a.layout().shape(), + "dtype":DTYPES.iter().find(|(d, _)| *d == a.layout().dtype()).unwrap().1, + "sha256":super::super::qwen_mtplx_tests::hex_digest(&raw_bytes(a, &streams, stream).unwrap())})) + }; + let states = |snapshot: &Snapshot| -> Value { + json!( + snapshot + .iter() + .map(|s| s.as_ref().map(|s| { + let leaves: &[Option] = match s { + State::Recurrent(s) => s, + State::Qsa(s) => s, + }; + leaves + .iter() + .map(|a| fingerprint(a.as_ref())) + .collect::>() + })) + .collect::>() + ) + }; + for case in reference["cases"].as_array().unwrap() { + super::eval::execution_tests::observed(|| { + let block = case["block_size"].as_u64().unwrap() as usize; + let folder = root.join(block.to_string()); + let mut blobs = BTreeMap::new(); + let spec = saved + .encode_payload( + block, + &streams, + stream, + |name, raw| { + assert_eq!( + raw, + std::fs::read(folder.join(format!("{name}.bin"))).unwrap() + ); + assert!(blobs.insert(name, raw).is_none()); + Ok(()) + }, + || false, + ) + .unwrap(); + assert_eq!(spec, case["spec"]); + assert_eq!(blobs.len(), case["blobs"].as_object().unwrap().len()); + assert_eq!( + blobs.values().map(Vec::len).sum::() as u64, + case["nbytes"].as_u64().unwrap() + ); + for (name, raw) in &blobs { + assert_eq!( + super::super::qwen_mtplx_tests::hex_digest(raw), + case["blobs"][name] + ); + } + // Read the ORIGINAL Python-written disk blobs, not our own bytes. + let restored = decode_payload( + &case["spec"], + saved.token_ids.clone(), + true, + true, + &streams, + stream, + |name| std::fs::read(folder.join(format!("{name}.bin"))).map_err(|e| e.to_string()), + ) + .unwrap(); + assert_eq!(states(&restored.trunk), case["decoded"]["trunk"]); + assert_eq!( + states(restored.mtp.as_ref().unwrap()), + case["decoded"]["mtp"] + ); + assert_eq!( + fingerprint(Some(&restored.logits)), + case["decoded"]["logits"] + ); + assert_eq!( + fingerprint(restored.hidden.as_ref()), + case["decoded"]["hidden"] + ); + assert_eq!( + json!( + restored + .boundaries + .iter() + .map(|b| json!({"tokens":b.tokens, + "states":states(&b.state),"hidden":fingerprint(b.hidden.as_ref())})) + .collect::>() + ), + case["decoded"]["boundaries"] + ); + let mut expected = spec.clone(); + expected["logits"]["shape"] = json!([1]); + assert_eq!( + restored + .encode_payload( + block, + &streams, + stream, + |name, raw| { + assert_eq!(raw, blobs[&name]); + Ok(()) + }, + || false + ) + .unwrap(), + expected + ); + + let boundary_names = { + fn names(value: &Value, result: &mut Vec) { + if let Some(name) = value["name"].as_str() { + result.push(name.into()); + } + match value { + Value::Array(values) => { + for value in values { + names(value, result); + } + } + Value::Object(values) => { + for value in values.values() { + names(value, result); + } + } + _ => {} + } + } + let mut result = Vec::new(); + names(&spec["gdn_boundaries"], &mut result); + result + }; + let exact = decode_payload( + &spec, + saved.token_ids.clone(), + true, + false, + &streams, + stream, + |name| { + assert!( + !boundary_names.iter().any(|n| n == name), + "exact restore read boundary payload" + ); + Ok(blobs[name].clone()) + }, + ) + .unwrap(); + assert!(exact.boundaries.is_empty()); + assert_eq!(states(&exact.trunk), case["decoded"]["trunk"]); + let deferred = + decode_boundaries(&spec, saved.token_ids.len(), &streams, stream, |name| { + assert!( + boundary_names.iter().any(|n| n == name), + "deferred boundary restore read trunk/head" + ); + Ok(blobs[name].clone()) + }) + .unwrap(); + assert_eq!( + states(&deferred[0].state), + case["decoded"]["boundaries"][0]["states"] + ); + let mut legacy = spec.clone(); + legacy.as_object_mut().unwrap().remove("gdn_boundaries"); + let legacy = decode_payload( + &legacy, + saved.token_ids.clone(), + true, + true, + &streams, + stream, + |name| Ok(blobs[name].clone()), + ) + .unwrap(); + assert_eq!( + legacy.boundaries.len(), + case["legacy_boundary_count"].as_u64().unwrap() as usize + ); + assert_eq!(states(&legacy.trunk), case["decoded"]["trunk"]); + let mut no_hidden = spec.clone(); + no_hidden["gdn_boundaries"][0] + .as_object_mut() + .unwrap() + .remove("hidden_last"); + let no_hidden = decode_payload( + &no_hidden, + saved.token_ids.clone(), + true, + true, + &streams, + stream, + |name| Ok(blobs[name].clone()), + ) + .unwrap(); + assert!(no_hidden.boundaries[0].hidden.is_none()); + assert!( + decode_payload( + &spec, + saved.token_ids.clone(), + true, + true, + &streams, + stream, + |_| Err("injected read failure".into()) + ) + .is_err() + ); + let mut invalid = spec["logits"].clone(); + invalid["name"] = json!("../outside"); + assert!( + decode_array( + &invalid, + &mut |_| panic!("invalid blob name reached storage"), + &streams, + stream + ) + .is_err() + ); + assert!( + decode_array(&spec["logits"], &mut |_| Ok(vec![0; 3]), &streams, stream).is_err() + ); + eprintln!( + "codec block_size={block}: {} byte-identical blobs, restore/re-encode exact", + blobs.len() + ); + }); + } + let (mut checks, mut written) = (0, 0); + assert_eq!( + saved + .encode_payload( + 256, + &streams, + stream, + |_, _| { + written += 1; + Ok(()) + }, + || { + checks += 1; + checks == 3 + } + ) + .unwrap_err(), + "cold encode interrupted" + ); + assert_eq!(written, 1, "interrupt before encoding the second block"); +} diff --git a/src/engine/metal/qwen_mtplx/sort.rs b/src/engine/metal/qwen_mtplx/sort.rs new file mode 100644 index 0000000..e3a7308 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/sort.rs @@ -0,0 +1,531 @@ +//! Sort/ArgSort/Partition/ArgPartition from the pinned runtime's ops.cpp and +//! metal/sort.cpp. All shader bodies are from its original metallib. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Flags, Layout}; +use super::stream::Stream; +use super::{bytes, dispatch_specialized, encoder, ops, tensor, views}; + +pub(super) fn searchsorted( + sequence: &Array, + values: &Array, + right: bool, + stream: Stream, +) -> Result { + let layout = sequence.layout(); + if layout.shape().len() != 1 || layout.size() > u32::MAX as usize { + return Err("searchsorted requires a one-dimensional uint32-indexable sequence".into()); + } + let dtype = layout.dtype().promote(values.layout().dtype()); + Array::make_operation_with_inputs( + stream, + &[ + ops::astype(sequence, dtype, false, stream)?, + ops::astype(values, dtype, false, stream)?, + ], + Layout::new(values.layout().shape(), Dtype::U32)?, + ops::Operation::SearchSorted(right), + ) +} + +pub(super) fn searchsorted_evaluate( + sequence: &Array, + values: &Array, + output: &Array, + right: bool, +) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if nbytes == 0 { + return Ok(()); + } + if sequence.layout().size() == 0 { + let zero = Array::new(&[], Dtype::U32, super::scalar_buffer(&0_u32.to_le_bytes())?)?; + return views::flat_copy_inplace(&zero, output, true); + } + let copy; + let values = if values.layout().flags().row_contiguous { + values + } else { + copy = Array::new( + values.layout().shape(), + values.layout().dtype(), + Buffer::mtplx_bytes(values.layout().nbytes() as u64)?, + )?; + views::general_copy_inplace(values, ©)?; + © + }; + let name = format!( + "searchsorted_{}_{}", + sequence.layout().dtype().kernel_name(), + if right { "right" } else { "left" } + ); + let threads = views::kernel_max_threads(&name)?.min(output.layout().size() as u32); + let grid = views::shape_grid(output.layout().shape(), output.layout().strides(), 1)?; + super::dispatch_geometry( + &name, + &[ + tensor(0, &sequence.buffer()) + .at_byte_offset(sequence.offset()) + .input(sequence.data_size()), + tensor(1, &values.buffer()) + .at_byte_offset(values.offset()) + .input(values.data_size()), + tensor(2, &output.buffer()).output(output.data_size()), + bytes(3, &(sequence.layout().size() as u32)), + bytes(4, &sequence.layout().strides()[0]), + ], + &[], + grid, + [threads, 1, 1], + true, + ) +} + +pub(super) fn sort( + input: &Array, + axis: Option, + indices: bool, + kth: Option, + stream: Stream, +) -> Result { + let (input, axis) = match axis { + Some(axis) => (input.clone(), axis), + None => ( + ops::reshape( + input, + &[i32::try_from(input.layout().size()) + .map_err(|_| "flattened sort size overflow")?], + stream, + )?, + 0, + ), + }; + let layout = input.layout(); + let axis = ops::axes(&[axis], layout.shape().len())?[0]; + let kth = kth.map(|k| if k < 0 { k + layout.shape()[axis] } else { k }); + if kth.is_some_and(|k| k < 0 || k >= layout.shape()[axis]) { + return Err("partition kth out of range".into()); + } + if !matches!( + layout.dtype(), + Dtype::BF16 | Dtype::F16 | Dtype::F32 | Dtype::I32 | Dtype::U32 | Dtype::I64 | Dtype::U64 + ) { + return Err("sort dtype is not part of the Qwen graph port".into()); + } + Array::make_operation( + stream, + &input, + Layout::new( + layout.shape(), + if indices { Dtype::U32 } else { layout.dtype() }, + )?, + ops::Operation::Sort { axis, indices, kth }, + ) +} + +pub(super) fn evaluate( + input: &Array, + output: &Array, + axis: usize, + indices: bool, +) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let _ = sort_into(input, output, axis, indices)?; + Ok(()) +} + +/// Shared with the legacy Buffer entry until its model graph is migrated. +/// That entry keeps returned scratch alive even without a canonical Scope. +pub(super) fn sort_into( + input: &Array, + output: &Array, + axis: usize, + indices: bool, +) -> Result, String> { + let x = input.layout(); + let out = output.layout(); + let width = *x.shape().get(axis).ok_or("sort axis out of range")?; + let rows = x + .size() + .checked_div(width as usize) + .ok_or("empty sort axis has no reference backend plan")?; + let rows = u32::try_from(rows).map_err(|_| "sort row count overflow")?; + let potential = (width as u32).div_ceil(4); + let mut bn = if potential > 256 { + 512 + } else if potential > 128 { + 256 + } else if potential > 64 { + 128 + } else if potential > 32 { + 64 + } else { + 32 + }; + if bn == 512 && input.itemsize() > 4 { + bn = 256; + } + let blocks = (width as u32).div_ceil(bn * 4); + let mut shape = x.shape().to_vec(); + shape.remove(axis); + let mut strides = x.strides().to_vec(); + strides.remove(axis); + let mut out_strides = out.strides().to_vec(); + out_strides.remove(axis); + let ndim = shape.len() as i32; + let sx = i32::try_from(x.strides()[axis]).map_err(|_| "sort axis stride overflow")?; + let sy = i32::try_from(out.strides()[axis]).map_err(|_| "sort output axis stride overflow")?; + if blocks <= 1 { + let extremal = |layout: &Layout, axis_stride: i64| { + Some(&axis_stride) == layout.strides().iter().min() + || Some(&axis_stride) == layout.strides().iter().max() + }; + let contiguous = + x.flags().contiguous && extremal(&x, i64::from(sx)) && extremal(&out, i64::from(sy)); + let name = format!( + "{}{}_block_sort_{}_{}_bn{bn}_tn4", + if contiguous { "c" } else { "nc" }, + if indices { "arg" } else { "" }, + x.dtype().kernel_name(), + out.dtype().kernel_name() + ); + let a = input.buffer(); + let b = output.buffer(); + let mut args = vec![ + tensor(0, &a) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &b).output(output.data_size()), + bytes(2, &width), + bytes(3, &sx), + bytes(4, &sy), + ]; + let mut in_segment = i32::MAX; + let mut out_segment = i32::MAX; + if contiguous { + for ((&d, &s), &t) in shape.iter().zip(&strides).zip(&out_strides) { + if d != 1 { + in_segment = in_segment + .min(i32::try_from(s).map_err(|_| "sort segment stride too large")?); + out_segment = out_segment + .min(i32::try_from(t).map_err(|_| "sort output segment stride too large")?); + } + } + args.extend([bytes(5, &in_segment), bytes(6, &out_segment)]); + } else { + args.extend([ + bytes(5, &ndim), + bytes::<[i32]>(6, if shape.is_empty() { &[0] } else { &shape }), + bytes::<[i64]>(7, if strides.is_empty() { &[0] } else { &strides }), + bytes::<[i64]>( + 8, + if out_strides.is_empty() { + &[0] + } else { + &out_strides + }, + ), + ]); + } + dispatch_specialized(&name, &args, &[], [1, rows, 1], [bn, 1, 1])?; + return Ok(vec![]); + } + if ndim == 0 { + shape.push(0); + strides.push(1); + } + let count = x.size(); + let scratch = vec![ + Buffer::mtplx_bytes((count * input.itemsize()) as u64)?, + Buffer::mtplx_bytes((count * input.itemsize()) as u64)?, + Buffer::mtplx_bytes((count * 4) as u64)?, + Buffer::mtplx_bytes((count * 4) as u64)?, + Buffer::mtplx_bytes(u64::from(rows) * u64::from(blocks + 1) * 4)?, + ]; + let vals = [&scratch[0], &scratch[1]]; + let ids = [&scratch[2], &scratch[3]]; + let partitions = &scratch[4]; + let suffix = format!("{}_uint32_bn{bn}_tn4", x.dtype().kernel_name()); + dispatch_specialized( + &format!("sort_mbsort_{suffix}"), + &[ + tensor(0, &input.buffer()) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, vals[0]).output(count), + tensor(2, ids[0]).output(count), + bytes(3, &width), + bytes(4, &sx), + bytes(5, &ndim), + bytes(6, shape.as_slice()), + bytes(7, strides.as_slice()), + ], + &[], + [blocks, rows, 1], + [bn, 1, 1], + )?; + let mut source = 0; + let mut merge_tiles = 2; + while merge_tiles / 2 < blocks { + let dest = 1 - source; + dispatch_specialized( + &format!("partition_mbsort_{suffix}"), + &[ + tensor(0, partitions).output(rows as usize * (blocks + 1) as usize), + tensor(1, vals[source]).input(count), + tensor(2, ids[source]).input(count), + bytes(3, &width), + bytes(4, &merge_tiles), + bytes(5, &blocks), + ], + &[], + [1, rows, 1], + [(blocks + 1).min(1024), 1, 1], + )?; + dispatch_specialized( + &format!("merge_mbsort_{suffix}"), + &[ + tensor(0, partitions).input(rows as usize * (blocks + 1) as usize), + tensor(1, vals[source]).input(count), + tensor(2, ids[source]).input(count), + tensor(3, vals[dest]).output(count), + tensor(4, ids[dest]).output(count), + bytes(5, &width), + bytes(6, &merge_tiles), + bytes(7, &blocks), + ], + &[], + [blocks, rows, 1], + [bn, 1, 1], + )?; + source = dest; + merge_tiles *= 2; + } + let buffer = if indices { ids[source] } else { vals[source] }; + let mut packed = out.strides().to_vec(); + for s in &mut packed[axis + 1..] { + *s *= i64::from(width); + } + packed[axis] = 1; + let view = Array::unallocated(out.shape(), out.dtype())?; + let (_, row, col) = view.layout().contiguity(&packed)?; + view.set_strided_data( + buffer.view(0, out.nbytes() as u64)?, + count, + &packed, + Flags { + contiguous: true, + row_contiguous: row, + col_contiguous: col, + }, + 0, + )?; + if axis == x.shape().len() - 1 { + views::flat_copy_inplace(&view, output, false)?; + } else { + views::general_copy_inplace(&view, output)?; + } + encoder::add_temporaries(&scratch); + Ok(scratch) +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_sort_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, verify_typed}, + }; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-sort-graph.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 161); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let dtype = match case["dtype"].as_str().unwrap() { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + "int32" => Dtype::I32, + "uint32" => Dtype::U32, + "int64" => Dtype::I64, + "uint64" => Dtype::U64, + _ => panic!("dtype"), + }; + let shape = case["shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + let kind = case["kind"].as_str().unwrap(); + let mut physical = shape.clone(); + if kind == "strided" { + *physical.last_mut().unwrap() *= 2; + } + if kind == "broadcast" { + physical[1] = 1; + } + let count = physical.iter().product::() + i32::from(kind == "offset"); + let values = (0..count) + .flat_map(|i| { + let value = (i * 17 + 31) % 257 + - if matches!(dtype, Dtype::U32 | Dtype::U64) { + 0 + } else { + 128 + }; + (value as i64).to_le_bytes() + }) + .collect::>(); + let mut a = + Array::new(&[count], Dtype::I64, super::scalar_buffer(&values).unwrap()) + .unwrap(); + a = ops::astype(&a, dtype, false, gpu).unwrap(); + if kind == "offset" { + a = ops::slice(&a, &[1], &[count], &[1], gpu).unwrap(); + } + a = ops::reshape(&a, &physical, gpu).unwrap(); + if kind == "transpose" { + let mut axes = (0..physical.len() as i32).collect::>(); + let last = axes.len() - 1; + axes.swap(0, last); + a = ops::transpose(&a, &axes, gpu).unwrap(); + } + if kind == "strided" || kind == "reverse" { + let mut starts = vec![0; physical.len()]; + let mut stops = physical.clone(); + let mut steps = vec![1; physical.len()]; + let last = physical.len() - 1; + if kind == "strided" { + steps[last] = 2; + } else { + starts[last] = physical[last] - 1; + stops[last] = -physical[last] - 1; + steps[last] = -1; + } + a = ops::slice(&a, &starts, &stops, &steps, gpu).unwrap(); + } + if kind == "broadcast" { + a = ops::broadcast_to(&a, &shape, gpu).unwrap(); + } + if prepared { + ops::evaluate(&streams, std::slice::from_ref(&a), gpu, false).unwrap(); + } + let axis = case["axis"].as_i64().map(|a| a as i32); + let kth = case["kth"].as_i64().unwrap() as i32; + let width = if let Some(axis) = axis { + a.layout().dim(axis).unwrap() + } else { + a.layout().size() as i32 + }; + assert!(sort(&a, axis, false, Some(width), gpu).is_err()); + assert!(sort(&a, axis, true, Some(-width - 1), gpu).is_err()); + let mut outputs = Vec::new(); + for (indices, kth) in [ + (false, None), + (true, None), + (false, Some(kth)), + (true, Some(kth)), + ] { + let out = sort(&a, axis, indices, kth, gpu).unwrap(); + let expected = case["output_shape"] + .as_array() + .unwrap() + .iter() + .map(|d| d.as_i64().unwrap() as i32) + .collect::>(); + assert_eq!(out.layout().shape(), expected); + outputs.push(ops::astype(&out, Dtype::F32, false, gpu).unwrap()); + } + drop(a); + let (_, calls) = + capture_dispatches(|| ops::evaluate(&streams, &outputs, gpu, false).unwrap()); + let profile = case["profile"].as_u64().unwrap(); + if profile <= 12 { + // Literal reference thresholds, including the reduced block + // size for 64-bit elements. Check host launch selection too. + let bn = [32, 32, 64, 64, 128, 128, 256, 256, 512, 512, 512, 512, 512] + [profile as usize]; + let bn = if dtype.itemsize() == 8 { + bn.min(256) + } else { + bn + }; + let blocks = (width as u32).div_ceil(bn * 4); + if blocks == 1 { + for (prefix, outtype) in [("c", dtype.kernel_name()), ("carg", "uint32")] { + let name = format!( + "{prefix}_block_sort_{}_{outtype}_bn{bn}_tn4", + dtype.kernel_name() + ); + assert_eq!( + calls + .iter() + .filter(|c| c.0 == name + && c.1 == [1, 2, 1] + && c.2 == [bn, 1, 1] + && !c.3) + .count(), + 2, + "{}: {calls:?}", + case["kernel"] + ); + } + } else { + let name = format!("sort_mbsort_{}_uint32_bn{bn}_tn4", dtype.kernel_name()); + assert_eq!( + calls + .iter() + .filter(|c| c.0 == name + && c.1 == [blocks, 2, 1] + && c.2 == [bn, 1, 1] + && !c.3) + .count(), + 4 + ); + let rounds = blocks.next_power_of_two().ilog2() as usize; + assert_eq!( + calls + .iter() + .filter(|c| c.0.starts_with("partition_mbsort_") + && c.1 == [1, 2, 1] + && c.2 == [(blocks + 1).min(1024), 1, 1] + && !c.3) + .count(), + rounds * 4 + ); + assert_eq!( + calls + .iter() + .filter(|c| c.0.starts_with("merge_mbsort_") + && c.1 == [blocks, 2, 1] + && c.2 == [bn, 1, 1] + && !c.3) + .count(), + rounds * 4 + ); + } + } + let buffers = outputs.iter().map(Array::buffer).collect::>(); + let checks = buffers + .iter() + .zip(&outputs) + .map(|(b, a)| (&**b, a.layout().size() as u32, 4)) + .collect::>(); + verify_typed(case["kernel"].as_str().unwrap(), &checks); + }); + } + } +} diff --git a/src/engine/metal/qwen_mtplx/sparse_attention.rs b/src/engine/metal/qwen_mtplx/sparse_attention.rs new file mode 100644 index 0000000..f5a6caa --- /dev/null +++ b/src/engine/metal/qwen_mtplx/sparse_attention.rs @@ -0,0 +1,471 @@ +//! Original qsa_flash_skip and qsa_prefill_flash as CustomKernel graph nodes. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, dispatch_geometry, gdn, ops, tensor}; + +fn nax_platform_available([major, minor, generation, suffix]: [u32; 4]) -> bool { + (major, minor) >= (26, 2) + && match char::from_u32(suffix) { + Some('p') => generation >= 18, + Some('g' | 's' | 'd') => generation >= 17, + _ => false, + } +} + +pub(super) fn nax_available() -> bool { + static AVAILABLE: std::sync::OnceLock = std::sync::OnceLock::new(); + *AVAILABLE.get_or_init(|| { + let mut platform = [0; 4]; + unsafe { + super::super::gpu::ds4_gpu_mtplx_nax_platform(platform.as_mut_ptr()); + } + nax_platform_available(platform) + }) +} + +fn host_i32(values: &[i32]) -> Result { + let bytes = values + .iter() + .flat_map(|v| v.to_le_bytes()) + .collect::>(); + Array::new( + &[values.len() as i32], + Dtype::I32, + super::scalar_buffer(&bytes)?, + ) +} + +fn host_scale(scale: f64) -> Result { + Array::new( + &[1], + Dtype::F32, + super::scalar_buffer(&(scale as f32).to_le_bytes())?, + ) +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn flash_skip( + q: &Array, + keys: &Array, + values: &Array, + blocks: &Array, + total: i32, + tail_start: i32, + scale: f64, + stream: Stream, +) -> Result { + let qs = q.layout(); + let ks = keys.layout(); + let dtype = qs.dtype(); + if stream.device() != Device::Gpu + || qs.shape().len() != 2 + || qs.shape()[1] != 256 + || ks.shape().len() != 4 + || ks.shape()[0] != 1 + || ks.shape()[1] <= 0 + || ks.shape()[3] != 256 + || values.layout().shape() != ks.shape() + || !matches!(dtype, Dtype::BF16 | Dtype::F16) + || ks.dtype() != dtype + || values.layout().dtype() != dtype + || blocks.layout().shape().len() != 1 + || blocks.layout().dtype() != Dtype::I32 + || total <= 0 + || total > ks.shape()[2] + || tail_start < 0 + || tail_start > total + || qs.shape()[0] % ks.shape()[1] != 0 + { + return Err( + "QSA flash skip requires matching D256 full KV backings and a valid decode frontier" + .into(), + ); + } + let heads = qs.shape()[0]; + let gqa = (heads / ks.shape()[1]) as u32; + if !matches!(gqa, 1 | 12) { + return Err("QSA flash skip GQA specialization is not exported".into()); + } + let params = host_i32(&[total, tail_start, blocks.layout().shape()[0], ks.shape()[2]])?; + drop((qs, ks)); + Array::make_operation_with_inputs( + stream, + &[ + ops::reshape(q, &[-1], stream)?, + ops::reshape(keys, &[-1], stream)?, + ops::reshape(values, &[-1], stream)?, + blocks.clone(), + params, + host_scale(scale)?, + ], + Layout::new(&[heads, 256], dtype)?, + ops::Operation::QsaFlashSkip(gqa), + ) +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn prefill_supported( + q: &Array, + keys: &Array, + values: &Array, + ids: &Array, + valid: &Array, + pos: i32, + total: i32, + scale: f64, + stream: Stream, +) -> bool { + if stream.device() != Device::Gpu || !nax_available() { + return false; + } + let qs = q.layout(); + let ks = keys.layout(); + let vs = values.layout(); + let bs = ids.layout(); + let valid = valid.layout(); + qs.shape().len() == 4 + && ks.shape().len() == 4 + && vs.shape() == ks.shape() + && qs.shape()[0] == 1 + && qs.shape()[1] == 24 + && qs.shape()[2] > 1 + && qs.shape()[3] == 256 + && ks.shape()[0] == 1 + && ks.shape()[1] == 2 + && ks.shape()[3] == 256 + && matches!(qs.dtype(), Dtype::BF16 | Dtype::F16) + && ks.dtype() == qs.dtype() + && vs.dtype() == qs.dtype() + && bs.dtype() == Dtype::I32 + && valid.dtype() == Dtype::Bool + && bs.shape() == [qs.shape()[2], 512] + && valid.shape() == bs.shape() + && pos >= 0 + && total > 0 + && pos.checked_add(qs.shape()[2]) == Some(total) + && total <= ks.shape()[2] + && total <= 1_048_576 + && total / 4 > 512 + && scale.is_finite() + && scale == 0.0625 +} + +#[allow(clippy::too_many_arguments)] +pub(super) fn prefill_flash( + q: &Array, + keys: &Array, + values: &Array, + ids: &Array, + valid: &Array, + pos: i32, + total: i32, + scale: f64, + stream: Stream, +) -> Result { + if !prefill_supported(q, keys, values, ids, valid, pos, total, scale, stream) { + return Err("unsupported QSA prefill flash call".into()); + } + let qs = q.layout(); + let params = host_i32(&[pos, total, qs.shape()[2]])?; + Array::make_operation_with_inputs( + stream, + &[ + q.clone(), + keys.clone(), + values.clone(), + ids.clone(), + valid.clone(), + params, + host_scale(scale)?, + ], + Layout::new(qs.shape(), qs.dtype())?, + ops::Operation::QsaPrefillFlash, + ) +} + +pub(super) fn evaluate( + operation: &ops::Operation, + inputs: &[Array], + output: &Array, +) -> Result<(), String> { + let tag = match output.layout().dtype() { + Dtype::BF16 => "bf16", + Dtype::F16 => "f16", + _ => return Err("QSA kernel dtype is not exported".into()), + }; + match operation { + ops::Operation::QsaFlashSkip(gqa) if inputs.len() == 6 => { + let name = format!("kernel_qwen_mtplx_qsa_flash_skip_g{gqa}_{tag}"); + let heads = output.layout().shape()[0] as u32; + gdn::custom_evaluate(inputs, std::slice::from_ref(output), |bindings| { + dispatch_geometry(&name, bindings, &[], [heads * 256, 1, 1], [256, 1, 1], true) + }) + } + ops::Operation::QsaPrefillFlash if inputs.len() == 7 => { + // ensure_row_contiguous=False: no hidden copies for any argument. + // CustomKernel allocates the output before checking/binding inputs. + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let buffers = inputs.iter().map(Array::buffer).collect::>(); + let layouts = inputs.iter().map(Array::layout).collect::>(); + let mut bindings = Vec::new(); + for (i, (input, buffer)) in inputs.iter().zip(&buffers).enumerate() { + bindings.push( + tensor(bindings.len() as u32, buffer) + .at_byte_offset(input.offset()) + .input(input.data_size()), + ); + if i < 5 { + bindings.push(bytes(bindings.len() as u32, layouts[i].strides())); + } + } + let out = output.buffer(); + bindings.push(tensor(bindings.len() as u32, &out).output(output.data_size())); + dispatch_geometry( + &format!("kernel_qwen_mtplx_qsa_prefill_flash_{tag}"), + &bindings, + &[], + [output.layout().shape()[2] as u32 * 2 * 32, 1, 1], + [32, 1, 1], + true, + ) + } + _ => Err("invalid sparse attention primitive".into()), + } +} + +#[test] +#[ignore = "requires Apple M5; actual MTPLX sparse Decode and TensorOps Prefill consumers"] +fn mtplx_sparse_attention_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + assert!(nax_available()); + for (platform, expected) in [ + ([26, 1, 17, u32::from('s')], false), + ([26, 2, 17, u32::from('s')], true), + ([27, 0, 16, u32::from('g')], false), + ([26, 2, 17, u32::from('p')], false), + ([26, 2, 18, u32::from('p')], true), + ([26, 2, 17, u32::from('x')], false), + ] { + assert_eq!(nax_platform_available(platform), expected); + } + let cases = include_str!("../../../../tests/fixtures/mtplx-sparse-attention.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 50); + for prepared in [false, true] { + for case in &cases { + super::eval::execution_tests::observed(|| { + let dtype = if case["dtype"] == "float16" { + Dtype::F16 + } else { + Dtype::BF16 + }; + let layout = case["layout"].as_str().unwrap(); + let total = case["total"].as_i64().unwrap() as i32; + let cap = total + 7; + let source = |shape: &[i32], salt| { + let n = shape.iter().map(|&v| v as u32).product::(); + let mut shape = shape.to_vec(); + let count = if layout == "offset" { + n + 1 + } else if layout == "strided" { + n * 2 + } else { + n + }; + let a = Array::new(&[count as i32], Dtype::BF16, pattern(count, salt)).unwrap(); + let a = ops::astype(&a, dtype, false, gpu).unwrap(); + let a = if layout == "offset" { + ops::slice(&a, &[1], &[count as i32], &[1], gpu).unwrap() + } else { + a + }; + if layout == "strided" { + *shape.last_mut().unwrap() *= 2; + } + let a = ops::reshape(&a, &shape, gpu).unwrap(); + if layout == "strided" { + let mut steps = vec![1; shape.len()]; + *steps.last_mut().unwrap() = 2; + ops::slice(&a, &vec![0; shape.len()], &shape, &steps, gpu).unwrap() + } else { + a + } + }; + let skip = case["kind"] == "skip"; + let (q, k, v, ids, valid) = if skip { + let heads = case["heads"].as_i64().unwrap() as i32; + let nsel = case["nsel"].as_i64().unwrap() as i32; + let values = (0..if layout == "strided" { nsel * 2 } else { nsel }) + .map(|v| if layout == "strided" { v } else { v * 2 }) + .collect::>(); + let ids = host_i32(&values).unwrap(); + let ids = if layout == "strided" { + ops::slice(&ids, &[0], &[nsel * 2], &[2], gpu).unwrap() + } else { + ids + }; + ( + source(&[heads, 256], 111), + source(&[1, 2, cap, 256], 112), + source(&[1, 2, cap, 256], 113), + ids, + None, + ) + } else { + let rows = case["rows"].as_i64().unwrap() as i32; + let cols = if layout == "strided" { 1024 } else { 512 }; + let mut ids = Vec::new(); + let mut valid = Vec::new(); + for _ in 0..rows { + for col in 0..cols { + let slot = if layout == "strided" { col / 2 } else { col }; + let id = if layout == "holes" && slot == 3 { + -1 + } else if layout == "holes" && slot == 5 { + total + } else { + slot + }; + ids.extend(id.to_le_bytes()); + valid.push(u8::from(slot < 17 || (layout == "holes" && slot == 511))); + } + } + let ids = Array::new( + &[rows, cols], + Dtype::I32, + super::scalar_buffer(&ids).unwrap(), + ) + .unwrap(); + let valid = Array::new( + &[rows, cols], + Dtype::Bool, + super::scalar_buffer(&valid).unwrap(), + ) + .unwrap(); + let (ids, valid) = if layout == "strided" { + ( + ops::slice(&ids, &[0, 0], &[rows, cols], &[1, 2], gpu).unwrap(), + ops::slice(&valid, &[0, 0], &[rows, cols], &[1, 2], gpu).unwrap(), + ) + } else { + (ids, valid) + }; + ( + ops::transpose(&source(&[1, rows, 24, 256], 114), &[0, 2, 1, 3], gpu) + .unwrap(), + source(&[1, 2, cap, 256], 115), + source(&[1, 2, cap, 256], 116), + ids, + Some(valid), + ) + }; + if prepared { + let mut inputs = vec![q.clone(), k.clone(), v.clone(), ids.clone()]; + inputs.extend(valid.iter().cloned()); + ops::evaluate(&streams, &inputs, gpu, false).unwrap(); + } + let (out, calls) = capture_dispatches(|| { + let out = if skip { + flash_skip(&q, &k, &v, &ids, total, total / 4 * 4, 0.0625, gpu).unwrap() + } else { + let pos = case["pos"].as_i64().unwrap() as i32; + assert!(prefill_supported( + &q, + &k, + &v, + &ids, + valid.as_ref().unwrap(), + pos, + total, + 0.0625, + gpu + )); + assert!(!prefill_supported( + &q, + &k, + &v, + &ids, + valid.as_ref().unwrap(), + pos + 1, + total, + 0.0625, + gpu + )); + assert!(!prefill_supported( + &q, + &k, + &v, + &ids, + valid.as_ref().unwrap(), + pos, + total, + 0.1, + gpu + )); + // The public predicate compares the Python host float + // before converting the kernel argument to float32. + assert!(!prefill_supported( + &q, + &k, + &v, + &ids, + valid.as_ref().unwrap(), + pos, + total, + 0.0625 + 1e-12, + gpu + )); + prefill_flash( + &q, + &k, + &v, + &ids, + valid.as_ref().unwrap(), + pos, + total, + 0.0625, + gpu, + ) + .unwrap() + }; + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + out + }); + let launches = calls + .iter() + .filter(|c| { + c.0.contains(if skip { + "qsa_flash_skip" + } else { + "qsa_prefill_flash" + }) + }) + .collect::>(); + assert_eq!(launches.len(), 1); + assert_eq!(launches[0].2, if skip { [256, 1, 1] } else { [32, 1, 1] }); + if prepared && !skip { + assert_eq!(calls.len(), 1, "prefill must not copy noncontiguous inputs"); + } + let out = ops::astype(&out, Dtype::F32, false, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + verify_typed( + case["kernel"].as_str().unwrap(), + &[(&out.buffer(), out.layout().size() as u32, 4)], + ); + }); + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx/speculative.rs b/src/engine/metal/qwen_mtplx/speculative.rs new file mode 100644 index 0000000..9e661c9 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/speculative.rs @@ -0,0 +1,1025 @@ +//! Qwen's ordinary native-MTP batched p/q loop from MTPLX generate_mtpk. +//! Request-owner guards, adaptive/alternative proposal lanes and session restore +//! are separate; this model-level driver does not select those request paths. +use super::array::Array; +use super::decoder::AttentionCache; +use super::execution::Execution; +use super::model::ArraySnapshot; +use super::sampling::{self, Distribution, SamplerConfig, SparseDistribution}; +use super::session_cache::TurnProgress; +use super::{ar, ops}; +use crate::engine::Rng; +use std::time::Instant; + +#[derive(Clone)] +pub(super) struct Options<'a> { + pub(super) prompt_ids: &'a [i32], + pub(super) depth: usize, + pub(super) max_tokens: usize, + pub(super) seed: u64, + pub(super) stops: &'a [i64], + pub(super) committed_history: bool, + pub(super) family_capture: bool, + pub(super) lazy_history: bool, + pub(super) defer_repair_eval: bool, + pub(super) capture_final_state: bool, +} + +#[test] +#[ignore = "full installed model; external guard and DS4_QWEN38_MTP_GENERATION_REFERENCE required"] +fn mtplx_full_installed_mtp_generation_matches_reference() { + use super::super::qwen_mtplx_tests::hex_digest; + use crate::model_eval::{EvaluationPhase, diagnostic_canary}; + use std::sync::{ + Arc, + atomic::{AtomicBool, AtomicU8, Ordering}, + }; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("installed model"), + ); + let reference = std::fs::read_to_string( + std::env::var_os("DS4_QWEN38_MTP_GENERATION_REFERENCE") + .expect("original MTP generator reference"), + ) + .unwrap(); + let receipts = reference + .lines() + .filter_map(|l| serde_json::from_str::(l).ok()) + .collect::>(); + let input = receipts + .iter() + .find(|r| r["event"] == "mtp_generation_input") + .unwrap(); + let expected = receipts + .iter() + .find(|r| r["event"] == "mtp_generation_end") + .expect("natural EOS reference"); + assert_eq!(expected["finish_reason"], "stop"); + for receipt in receipts + .iter() + .filter(|r| r["event"] == "reference_environment") + { + for (key, value) in receipt["overrides"].as_object().unwrap() { + assert_eq!(std::env::var(key).unwrap(), value.as_str().unwrap()); + } + } + assert!(!super::ngram::resident_policy(), "SSD-only safety run"); + let phase = Arc::new(AtomicU8::new(EvaluationPhase::Startup as u8)); + let stop = Arc::new(AtomicBool::new(false)); + let canary = diagnostic_canary(Arc::clone(&phase), Arc::clone(&stop)); + let outcome = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + eprintln!("MTP generation: loading installed trunk/head under external guard"); + let mut execution = Execution::load(&root, true, false, 100).unwrap(); + let ids = input["token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>(); + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + let prepared = execution + .prefill_mtp_history( + &ids, + &super::prefill::Options { + chunk_size: Some(input["chunk_size"].as_u64().unwrap() as usize), + final_logits_only: input["final_only"].as_bool().unwrap(), + external_cache_only: false, + external_emit_logits: true, + return_hidden: true, + }, + None, + false, + |event| { + if let super::prefill::Progress::Settled { tokens, total } = event { + eprintln!("MTP prefill {tokens}/{total}"); + } + Ok(()) + }, + |_| Ok(()), + ) + .unwrap(); + let tokens = expected["tokens"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let stops = input["stops"] + .as_array() + .unwrap() + .iter() + .map(|v| v.as_i64().unwrap()) + .collect::>(); + let expected_wire = tokens + .iter() + .filter(|id| !stops.contains(id)) + .copied() + .collect::>(); + let sampler = SamplerConfig { + temperature: input["temperature"].as_f64().unwrap(), + top_p: input["top_p"].as_f64().unwrap(), + top_k: input["top_k"].as_i64().unwrap() as i32, + ..Default::default() + }; + let flag = |name| { + matches!( + std::env::var(name).unwrap_or_default().as_str(), + "1" | "true" + ) + }; + let mut emitted = 0; + phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + let result = execution + .decode_mtp( + &prepared.target.logits, + prepared.target.hidden.as_ref().unwrap(), + &sampler, + &sampler, + &Options { + prompt_ids: &ids, + depth: input["depth"].as_u64().unwrap() as usize, + max_tokens: usize::MAX, + seed: input["seed"].as_u64().unwrap(), + stops: &stops, + committed_history: true, + family_capture: flag("MTPLX_FAMILY_CAPTURE_COMMIT"), + lazy_history: flag("MTPLX_LAZY_MTP_HISTORY_APPEND"), + defer_repair_eval: flag("MTPLX_DEFER_REPAIR_EVAL"), + capture_final_state: true, + }, + |id| { + assert_eq!( + expected_wire.get(emitted), + Some(&id), + "MTP emitted token {emitted}" + ); + emitted += 1; + eprintln!("MTP token {emitted}: {id}"); + Ok(()) + }, + |_| Ok(()), + ) + .unwrap(); + assert_eq!(result.tokens, tokens); + assert_eq!(emitted, expected_wire.len()); + assert_eq!(serde_json::json!(result.cycles), expected["cycles"]); + assert_eq!( + serde_json::json!( + result + .cycles + .iter() + .filter(|c| !c.drafts.is_empty() || c.context_copy.is_some()) + .count() + ), + expected["verify_calls"] + ); + assert_eq!( + serde_json::json!(result.cycles.iter().map(|c| c.drafts.len()).sum::()), + expected["drafted"] + ); + assert_eq!( + serde_json::json!(result.cycles.iter().map(|c| c.accepted).sum::()), + expected["accepted"] + ); + assert!(result.final_state_error.is_none()); + assert_eq!( + serde_json::json!(result.pending.is_none()), + expected["safe_to_commit"] + ); + for (key, array) in [("logits", &result.logits), ("hidden", &result.hidden)] { + let values = execution.values_f32(array).unwrap(); + assert!(values.iter().all(|v| v.is_finite())); + assert_eq!( + serde_json::json!({"shape":array.layout().shape(), "sha256":hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}), + expected[key], + "final {key}" + ); + } + assert_eq!( + serde_json::json!(execution.mtp_offset().unwrap()), + expected["history_offset"] + ); + println!( + "{}", + serde_json::json!({"event":"canonical_mtp_generation_end", "tokens":result.tokens, "cycles":result.cycles, + "decode_seconds":result.elapsed_seconds, "prefill_seconds":prepared.target.eval_seconds + prepared.history_seconds, + "draft_seconds":result.draft_seconds, "verify_seconds":result.verify_seconds, "repair_seconds":result.repair_seconds, "history_seconds":result.history_seconds}) + ); + let suffix_cases = receipts + .iter() + .filter(|r| r["event"] == "restored_suffix_reference") + .collect::>(); + assert_eq!( + suffix_cases.len(), + input["restored_suffix_cases"].as_u64().unwrap_or(0) as usize + ); + if !suffix_cases.is_empty() { + assert_eq!( + receipts + .iter() + .find(|r| r["event"] == "restored_suffix_reference_end") + .expect("complete suffix reference")["cases"], + suffix_cases.len() + ); + } + let mut restored_hidden = result.hidden; + let mut cached = ids.len() + tokens.len(); + let snapshot_digest = |execution: &Execution, saved: &super::session_cache::Snapshot| { + use sha2::{Digest, Sha256}; + let mut hash = Sha256::new(); + for state in saved { + hash.update(b"["); + let leaves: &[Option] = match state.as_ref().expect("Qwen snapshot entry") { + super::session_cache::State::Recurrent(values) => values, + super::session_cache::State::Qsa(values) => values, + }; + for array in leaves { + if let Some(array) = array { + hash.update(format!("{:?}", array.layout().dtype()).as_bytes()); + hash.update(serde_json::to_vec(array.layout().shape()).unwrap()); + for value in execution.values_f32(array).unwrap() { + hash.update(value.to_le_bytes()); + } + } else { + hash.update(b"N"); + } + } + hash.update(b"]"); + } + hash.finalize() + .iter() + .map(|byte| format!("{byte:02x}")) + .collect::() + }; + for case in suffix_cases { + let suffix = case["token_ids"] + .as_array() + .unwrap() + .iter() + .map(|v| i32::try_from(v.as_i64().unwrap()).unwrap()) + .collect::>(); + assert_eq!(case["cached_tokens"], cached); + phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + let saved = case["snapshot"].as_object().map(|_| { + let lazy_kv = case["snapshot"]["lazy_kv"].as_bool().unwrap(); + let saved = execution.snapshot_caches(lazy_kv, true).unwrap(); + // Do not read/evaluate the saved leaves here: the default + // session path restores lazy expressions, not settled copies. + execution + .restore_caches(&saved.0, saved.1.as_ref(), !lazy_kv) + .unwrap(); + eprintln!("restored trunk/MTP snapshot for suffix {}", case["step"]); + saved + }); + let mut chunks = Vec::new(); + let (prepared, history_seconds) = execution.prefill_restored_suffix( + &suffix, Some(&restored_hidden), true, + &super::prefill::Options { chunk_size: case["chunk_size"].as_u64().map(|n| n as usize), final_logits_only: case["final_only"].as_bool().unwrap(), external_cache_only: false, external_emit_logits: true, return_hidden: true }, + case["fused_max"].as_u64().unwrap() as usize, cached, + |event| { if let super::prefill::Progress::Settled { tokens, total } = event { eprintln!("restored suffix {tokens}/{total}"); } Ok(()) }, + |chunk| { chunks.push(serde_json::json!({"tokens_done":chunk.tokens, "tokens_total":chunk.total, "cached_tokens":cached, "new_prefill_tokens":suffix.len(), "chunk_size":chunk.size})); Ok(()) }, + ).unwrap(); + assert_eq!(serde_json::json!(chunks), case["chunks"]); + assert_eq!(case["runtime_counts"]["prefill_chunks"], prepared.chunks); + if let Some(saved) = &saved { + assert_eq!(case["snapshot"]["trunk"], case["snapshot"]["trunk_after"]); + assert_eq!(case["snapshot"]["mtp"], case["snapshot"]["mtp_after"]); + assert_eq!( + snapshot_digest(&execution, &saved.0), + case["snapshot"]["trunk_after"].as_str().unwrap() + ); + assert_eq!( + snapshot_digest(&execution, saved.1.as_ref().unwrap()), + case["snapshot"]["mtp_after"].as_str().unwrap() + ); + } + for (key, array) in [ + ("logits", &prepared.logits), + ("hidden", prepared.hidden.as_ref().unwrap()), + ] { + let values = execution.values_f32(array).unwrap(); + assert!(values.iter().all(|v| v.is_finite())); + assert_eq!( + serde_json::json!({"shape":array.layout().shape(), "sha256":hex_digest(&values.iter().flat_map(|v| v.to_le_bytes()).collect::>())}), + case[key], + "suffix {} {key}", + case["step"] + ); + } + assert_eq!( + execution.mtp_offset().unwrap(), + case["history_offset"].as_i64().unwrap() as i32 + ); + println!( + "{}", + serde_json::json!({"event":"canonical_restored_suffix", "step":case["step"], "tokens":suffix.len(), "cached_tokens":cached, "chunks":prepared.chunks, "target_seconds":prepared.eval_seconds, "history_seconds":history_seconds}) + ); + restored_hidden = prepared.hidden.unwrap(); + cached += suffix.len(); + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + })); + stop.store(true, Ordering::Relaxed); + let summary = canary.join().unwrap(); + eprintln!("{summary}"); + assert_eq!(summary["failures"], 0); + assert_eq!(summary["beachball_risk_observed"], false); + if let Err(panic) = outcome { + std::panic::resume_unwind(panic); + } +} + +#[derive(Default, serde::Serialize)] +pub(super) struct Cycle { + pub(super) primary: i64, + pub(super) primary_already_emitted: bool, + pub(super) drafts: Vec, + pub(super) accepted: usize, + pub(super) correction: Option, + pub(super) bonus: Option, + pub(super) capture_committed: bool, + #[serde(skip_serializing_if = "Option::is_none")] + pub(super) context_copy: Option, +} + +pub(super) struct Decoded { + pub(super) tokens: Vec, + pub(super) cycles: Vec, + pub(super) logits: Array, + pub(super) hidden: Array, + pub(super) pending: Option, + pub(super) final_state_error: Option, + pub(super) elapsed_seconds: f64, + pub(super) draft_seconds: f64, + pub(super) verify_seconds: f64, + pub(super) repair_seconds: f64, + pub(super) history_seconds: f64, +} + +fn slice_rows( + array: &Array, + start: usize, + end: usize, + execution: &Execution, +) -> Result { + let shape = array.layout().shape().to_vec(); + if shape.len() != 3 || start > end || end > shape[1] as usize { + return Err("MTP row slice exceeds tensor shape".into()); + } + ops::slice( + array, + &[0, start as i32, 0], + &[shape[0], end as i32, shape[2]], + &[1, 1, 1], + execution.stream, + ) +} + +fn row(array: &Array, index: usize, execution: &Execution) -> Result { + let slice = slice_rows(array, index, index + 1, execution)?; + ops::reshape(&slice, &[1, array.layout().dim(-1)?], execution.stream) +} + +fn counts(tokens: &[i64], sampler: &SamplerConfig) -> Vec<(i64, i64)> { + let mut result = Vec::new(); + if sampler.presence_penalty != 0.0 || sampler.frequency_penalty != 0.0 { + for &token in tokens { + if let Some((_, n)) = result.iter_mut().find(|(id, _)| *id == token) { + *n += 1; + } else { + result.push((token, 1)); + } + } + } + result +} + +fn sample( + execution: &Execution, + logits: &Array, + sampler: &SamplerConfig, + rng: &mut Rng, + tokens: &[i64], +) -> Result<(i64, Option), String> { + sampling::sample_from_logits( + &ops::reshape(logits, &[-1], execution.stream)?, + sampler, + rng, + &counts(tokens, sampler), + &[], + &execution.streams, + execution.stream, + ) +} + +impl Execution { + /// generation.py's batched context-copy round. A refused prefix commit + /// rolls back and replays only the primary, then disables this proposal + /// source for the request. It must not emit the discarded copy/correction. + #[allow(clippy::too_many_arguments)] + fn copy_round( + &mut self, + result: &mut Decoded, + cycle: &mut Cycle, + policy: &mut super::context_copy::ContextCopy, + block: &[i64], + extension: usize, + sampler: &SamplerConfig, + options: &Options<'_>, + rng: &mut Rng, + ) -> Result<(), String> { + let snapshots = self.snapshot_mtp_verify(options.family_capture)?; + let input = std::iter::once(cycle.primary) + .chain(block.iter().copied()) + .map(i32::try_from) + .collect::, _>>() + .map_err(|_| "context-copy token exceeds int32")?; + let started = Instant::now(); + let verified = self.forward(&input, false, options.family_capture)?; + let logits = verified.logits.ok_or("copy verify omitted logits")?; + let hidden = verified.hidden.ok_or("copy verify omitted hidden")?; + let greedy = if sampler.temperature <= 0.0 { + let choices = super::reduce::argmax(&logits, -1, false, self.stream)?; + Some(ops::read_i64(&choices, &self.streams, self.stream)?) + } else { + ops::evaluate( + &self.streams, + std::slice::from_ref(&logits), + self.stream, + false, + )?; + None + }; + result.verify_seconds += started.elapsed().as_secs_f64(); + let mut accepted = 0; + let mut correction = None; + for (index, &token) in block.iter().enumerate() { + if let Some(choices) = &greedy { + if token != choices[index] { + break; + } + } else { + let p = sampling::distribution_from_logits( + &ops::reshape(&row(&logits, index, self)?, &[-1], self.stream)?, + sampler, + &[], + &[], + &self.streams, + self.stream, + )?; + let q = Distribution::Sparse(SparseDistribution::new( + vec![token], + vec![1.0], + logits.layout().dim(-1)? as usize, + )?); + let (ok, replacement, _) = p.verify(&q, token, rng)?; + if !ok { + correction = Some(replacement); + break; + } + } + accepted += 1; + } + // MTPLX truncates accepted EOS only after completing the p/q loop. + // Do not skip RNG draws for later copy rows before this truncation. + if let Some(index) = block[..accepted] + .iter() + .position(|id| options.stops.contains(id)) + { + accepted = index + 1; + correction = None; + } + let keep = accepted + 1; + let committed = if options.family_capture { + let graph = self.graph_options(false, false)?; + self.model.with_dependent_mut(|_, model| { + model.commit_verified_window( + &mut self.cache, + Some(&snapshots), + keep as i32, + input.len() as i32, + &graph, + None, + &self.streams, + self.stream, + ) + })? + } else { + // Qwen carries recurrent snapshots: a partial ordinary verify + // cannot be committed through trim_verified_window_to_prefix. + accepted == block.len() + }; + if !committed { + self.rollback_mtp_verify(&snapshots, input.len() as i32)?; + let started = Instant::now(); + let repaired = self.forward(&input[..1], false, false)?; + let logits = repaired.logits.ok_or("copy repair omitted logits")?; + let hidden = repaired.hidden.ok_or("copy repair omitted hidden")?; + ops::evaluate( + &self.streams, + &[logits.clone(), hidden.clone()], + self.stream, + false, + )?; + result.repair_seconds += started.elapsed().as_secs_f64(); + result.logits = ar::last_row(&logits, self.stream)?; + let rows = hidden.layout().dim(1)? as usize; + result.hidden = slice_rows(&hidden, rows - 1, rows, self)?; + policy.active = false; + cycle.context_copy = Some(serde_json::json!({"disabled":"no_per_position_commit"})); + return Ok(()); + } + let at_tokens = result.tokens.len(); + let accepted_tokens = &block[..accepted]; + result.tokens.extend_from_slice(accepted_tokens); + if let Some(token) = correction { + result.tokens.push(token); + result.pending = Some(token); + } + policy.record(accepted, block.len(), result.tokens.len()); + cycle.context_copy = Some(serde_json::json!({"lane":"batched", "block":block.len(), + "accepted":accepted, "extension":extension, "correction":correction, "at_tokens":at_tokens})); + if options.committed_history { + let history = ops::concatenate( + &[ + result.hidden.clone(), + slice_rows(&hidden, 0, accepted, self)?, + ], + 1, + self.stream, + )?; + let tokens = [vec![cycle.primary], accepted_tokens.to_vec()].concat(); + result.history_seconds += + self.append_committed(&history, &tokens, options.lazy_history)?; + } + result.logits = row(&logits, keep - 1, self)?; + result.hidden = slice_rows(&hidden, keep - 1, keep, self)?; + Ok(()) + } + + pub(super) fn mtp_offset(&self) -> Result { + let AttentionCache::Qsa(cache) = &self.mtp_cache[0] + .as_ref() + .ok_or("missing MTP cache")? + .attention + else { + return Err("MTP requires QSA cache".into()); + }; + Ok(cache.kv.offset) + } + + fn trim_mtp(&mut self, offset: i32) -> Result<(), String> { + let AttentionCache::Qsa(cache) = &mut self.mtp_cache[0] + .as_mut() + .ok_or("missing MTP cache")? + .attention + else { + return Err("MTP requires QSA cache".into()); + }; + if cache.kv.offset > offset { + cache.trim(cache.kv.offset - offset); + } + Ok(()) + } + + fn append_committed( + &mut self, + hidden: &Array, + tokens: &[i64], + lazy: bool, + ) -> Result { + if tokens.is_empty() { + return Ok(0.0); + } + if hidden.layout().dim(1)? as usize != tokens.len() { + return Err("hidden_states length must match token_ids length".into()); + } + let started = Instant::now(); + let ids = tokens + .iter() + .map(|&id| i32::try_from(id).map_err(|_| "MTP token exceeds int32".to_owned())) + .collect::, _>>()?; + let updated = self.append_mtp_history(hidden, &ids, false)?; + if !lazy { + ops::evaluate(&self.streams, &[updated], self.stream, false)?; + } + Ok(started.elapsed().as_secs_f64()) + } + + fn snapshot_mtp_verify(&self, lazy: bool) -> Result>, String> { + self.cache + .iter() + .map(|entry| { + let entry = entry.as_ref().ok_or("missing target cache")?; + let AttentionCache::Linear(cache) = &entry.attention else { + return Ok(None); + }; + let mut state = vec![ + cache.conv.clone(), + cache.delta.clone(), + entry.ple.conv.clone(), + entry.ple.history.clone(), + ]; + if !lazy { + for array in state.iter_mut().flatten() { + let dtype = array.layout().dtype(); + *array = super::binary::binary( + array, + &ops::zeros(&[], dtype, self.stream)?, + super::binary::Binary::Add, + self.stream, + )?; + } + } + Ok(Some(state)) + }) + .collect() + } + + fn rollback_mtp_verify( + &mut self, + snapshots: &[Option], + verified: i32, + ) -> Result<(), String> { + for (entry, snapshot) in self.cache.iter_mut().zip(snapshots) { + let entry = entry.as_mut().ok_or("missing target cache")?; + match &mut entry.attention { + AttentionCache::Qsa(cache) => { + cache.trim(verified); + } + AttentionCache::Linear(cache) => { + let state = snapshot.as_ref().ok_or("missing recurrent snapshot")?; + cache.conv = state[0].clone(); + cache.delta = state[1].clone(); + entry.ple.conv = state[2].clone(); + entry.ple.history = state[3].clone(); + } + } + } + Ok(()) + } + + /// Persistent standard MTP, retaining MTPLX's pending-token and history + /// ownership. No speculative correction is silently replayed as an AR step. + #[allow(clippy::too_many_arguments)] + pub(super) fn decode_mtp( + &mut self, + initial_logits: &Array, + initial_hidden: &Array, + sampler: &SamplerConfig, + draft_sampler: &SamplerConfig, + options: &Options<'_>, + mut emit: impl FnMut(i64) -> Result<(), String>, + mut progress: impl FnMut(TurnProgress) -> Result<(), String>, + ) -> Result { + if options.depth == 0 { + return Err("speculative_depth must be >= 1".into()); + } + let started_all = Instant::now(); + let mut rng = Rng::new_qwen(options.seed); + let mut result = Decoded { + tokens: Vec::new(), + cycles: Vec::new(), + logits: initial_logits.clone(), + hidden: initial_hidden.clone(), + pending: None, + final_state_error: None, + elapsed_seconds: 0.0, + draft_seconds: 0.0, + verify_seconds: 0.0, + repair_seconds: 0.0, + history_seconds: 0.0, + }; + let mut finish_cycle = |result: &mut Decoded, cycle: Cycle| { + let event = TurnProgress::MtpCycle { + drafted: cycle.drafts.len(), + accepted: cycle.accepted, + verified: !cycle.drafts.is_empty() || cycle.context_copy.is_some(), + verify_seconds: result.verify_seconds, + repair_seconds: result.repair_seconds, + }; + result.cycles.push(cycle); + progress(event) + }; + let mut streamed = 0; + let mut copy = super::context_copy::ContextCopy::new( + options.prompt_ids, + sampler.presence_penalty != 0.0 || sampler.frequency_penalty != 0.0, + ); + let stopped = |id: i64| options.stops.contains(&id); + let mut flush = |tokens: &[i64]| -> Result<(), String> { + for &id in &tokens[streamed..] { + if !stopped(id) { + emit(id)?; + } + } + streamed = tokens.len(); + Ok(()) + }; + while result.tokens.len() < options.max_tokens { + let power_started = self.decode_throttle.begin(); + let primary_already_emitted = result.pending.is_some(); + let primary = if let Some(token) = result.pending.take() { + token + } else { + let (token, _) = sample(self, &result.logits, sampler, &mut rng, &result.tokens)?; + result.tokens.push(token); + flush(&result.tokens)?; + token + }; + let mut cycle = Cycle { + primary, + primary_already_emitted, + ..Default::default() + }; + if result.tokens.len() >= options.max_tokens || stopped(cycle.primary) { + finish_cycle(&mut result, cycle)?; + break; + } + if !options.committed_history { + self.mtp_cache = self.model.borrow_dependent().make_mtp_cache(4); + } + if let Some((block, extension)) = + copy.propose(&result.tokens, options.max_tokens - result.tokens.len()) + { + self.copy_round( + &mut result, + &mut cycle, + &mut copy, + &block, + extension, + sampler, + options, + &mut rng, + )?; + finish_cycle(&mut result, cycle)?; + self.decode_throttle + .pause(&self.streams, self.stream, power_started)?; + flush(&result.tokens)?; + if result.tokens.iter().any(|&id| stopped(id)) { + break; + } + continue; + } + let base_offset = self.mtp_offset()?; + let mut draft_hidden = result.hidden.clone(); + let mut next = cycle.primary; + let mut proposals = Vec::new(); + for _ in 0..options.depth.min(options.max_tokens - result.tokens.len()) { + let started = Instant::now(); + let output = self.draft( + &draft_hidden, + &[i32::try_from(next).map_err(|_| "MTP token exceeds int32")?], + )?; + let logits = output.logits.ok_or("draft omitted logits")?; + let (token, mut distribution) = sample( + self, + &ar::last_row(&logits, self.stream)?, + draft_sampler, + &mut rng, + &[], + )?; + if distribution.is_none() && sampler.temperature > 0.0 { + distribution = Some(Distribution::Sparse(SparseDistribution::new( + vec![token], + vec![1.0], + logits.layout().dim(-1)? as usize, + )?)); + } + result.draft_seconds += started.elapsed().as_secs_f64(); + draft_hidden = output.hidden.ok_or("draft omitted hidden")?; + let rows = draft_hidden.layout().dim(1)? as usize; + draft_hidden = slice_rows(&draft_hidden, rows - 1, rows, self)?; + next = token; + cycle.drafts.push(token); + proposals.push(distribution); + } + let snapshots = self.snapshot_mtp_verify(options.family_capture)?; + let mut input = + vec![i32::try_from(cycle.primary).map_err(|_| "MTP token exceeds int32")?]; + input.extend( + cycle + .drafts + .iter() + .map(|&id| i32::try_from(id)) + .collect::, _>>() + .map_err(|_| "MTP token exceeds int32")?, + ); + let started = Instant::now(); + let verified = self.forward(&input, false, options.family_capture)?; + let verify_logits = verified.logits.ok_or("verify omitted logits")?; + let verify_hidden = verified.hidden.ok_or("verify omitted hidden")?; + ops::evaluate( + &self.streams, + &[verify_logits.clone(), verify_hidden.clone()], + self.stream, + false, + )?; + result.verify_seconds += started.elapsed().as_secs_f64(); + for (index, &token) in cycle.drafts.iter().enumerate() { + let logits = row(&verify_logits, index, self)?; + let mut prefix = Vec::new(); + if sampler.presence_penalty != 0.0 || sampler.frequency_penalty != 0.0 { + prefix.extend_from_slice(&result.tokens); + prefix.extend_from_slice(&cycle.drafts[..index]); + } + let (accepted, correction) = if sampler.temperature <= 0.0 { + let (target, _) = sample(self, &logits, sampler, &mut rng, &prefix)?; + (target == token, target) + } else { + let p = sampling::distribution_from_logits( + &ops::reshape(&logits, &[-1], self.stream)?, + sampler, + &counts(&prefix, sampler), + &[], + &self.streams, + self.stream, + )?; + let (accepted, correction, _) = p.verify( + proposals[index] + .as_ref() + .ok_or("non-greedy MTP requires draft distributions")?, + token, + &mut rng, + )?; + (accepted, correction) + }; + if accepted { + cycle.accepted += 1; + if stopped(token) { + break; + } + } else { + if sampler.temperature > 0.0 { + cycle.correction = Some(correction); + } + break; + } + } + let keep = 1 + cycle.accepted; + if std::env::var_os("DS4_MTPLX_GENERATION_TRACE").is_some() { + eprintln!( + "{}", + serde_json::json!({"event":"mtp_verify_cycle", "at_tokens":result.tokens.len(), "cycle":cycle}) + ); + } + let mut committed = vec![cycle.primary]; + committed.extend_from_slice(&cycle.drafts[..cycle.accepted]); + if cycle.accepted == cycle.drafts.len() { + result.tokens.extend_from_slice(&cycle.drafts); + if options.committed_history { + self.trim_mtp(base_offset + 1)?; + result.history_seconds += self.append_committed( + &slice_rows(&verify_hidden, 0, committed.len() - 1, self)?, + &committed[1..], + options.lazy_history, + )?; + } + result.logits = row(&verify_logits, cycle.drafts.len(), self)?; + result.hidden = slice_rows( + &verify_hidden, + cycle.drafts.len(), + cycle.drafts.len() + 1, + self, + )?; + if let Some(stop) = result.tokens.iter().position(|&id| stopped(id)) { + result.tokens.truncate(stop + 1); + flush(&result.tokens)?; + finish_cycle(&mut result, cycle)?; + self.decode_throttle + .pause(&self.streams, self.stream, power_started)?; + break; + } + flush(&result.tokens)?; + if result.tokens.len() < options.max_tokens { + let (bonus, _) = + sample(self, &result.logits, sampler, &mut rng, &result.tokens)?; + result.tokens.push(bonus); + result.pending = Some(bonus); + cycle.bonus = Some(bonus); + flush(&result.tokens)?; + } + } else { + if let Some(correction) = cycle.correction { + committed.push(correction); + } + result.tokens.extend_from_slice(&committed[1..]); + // MTPLX exits verify_capture_scope before replaying the kept + // prefix. Keeping capture armed here disables the fused GDN + // single-row path on the PLE layer's repair forward. + let graph = self.graph_options(false, false)?; + if options.family_capture { + cycle.capture_committed = self.model.with_dependent_mut(|_, model| { + model.commit_verified_window( + &mut self.cache, + Some(&snapshots), + keep as i32, + input.len() as i32, + &graph, + None, + &self.streams, + self.stream, + ) + })?; + } + let (repair_logits, repair_hidden) = if cycle.capture_committed { + result.pending = cycle.correction; + ( + slice_rows(&verify_logits, keep - 1, keep, self)?, + slice_rows(&verify_hidden, keep - 1, keep, self)?, + ) + } else { + self.rollback_mtp_verify(&snapshots, input.len() as i32)?; + let started = Instant::now(); + let ids = committed + .iter() + .map(|&id| i32::try_from(id)) + .collect::, _>>() + .map_err(|_| "MTP token exceeds int32")?; + let repaired = self.forward(&ids, false, false)?; + let logits = repaired.logits.ok_or("repair omitted logits")?; + let hidden = repaired.hidden.ok_or("repair omitted hidden")?; + if !options.defer_repair_eval { + ops::evaluate( + &self.streams, + &[logits.clone(), hidden.clone()], + self.stream, + false, + )?; + } + result.repair_seconds += started.elapsed().as_secs_f64(); + (logits, hidden) + }; + if options.committed_history { + self.trim_mtp(base_offset + 1)?; + let end = if cycle.capture_committed && cycle.correction.is_some() { + keep + } else { + committed.len() + }; + let source = if cycle.capture_committed { + &verify_hidden + } else { + &repair_hidden + }; + result.history_seconds += self.append_committed( + &slice_rows(source, 0, end - 1, self)?, + &committed[1..end], + options.lazy_history, + )?; + } + result.logits = ar::last_row(&repair_logits, self.stream)?; + let rows = repair_hidden.layout().dim(1)? as usize; + result.hidden = slice_rows(&repair_hidden, rows - 1, rows, self)?; + if let Some(stop) = result.tokens.iter().position(|&id| stopped(id)) { + result.tokens.truncate(stop + 1); + } + flush(&result.tokens)?; + } + finish_cycle(&mut result, cycle)?; + self.decode_throttle + .pause(&self.streams, self.stream, power_started)?; + if result.tokens.iter().any(|&id| stopped(id)) { + break; + } + } + result.elapsed_seconds = started_all.elapsed().as_secs_f64(); + progress(TurnProgress::Finalize { + decode_seconds: result.elapsed_seconds, + })?; + if options.capture_final_state + && let Some(token) = result.pending + { + let commit = (|| -> Result<(), String> { + if options.committed_history { + result.history_seconds += + self.append_committed(&result.hidden, &[token], options.lazy_history)?; + } + let output = self.forward( + &[i32::try_from(token).map_err(|_| "MTP token exceeds int32")?], + false, + false, + )?; + let logits = output.logits.ok_or("final commit omitted logits")?; + let hidden = output.hidden.ok_or("final commit omitted hidden")?; + ops::evaluate( + &self.streams, + &[logits.clone(), hidden.clone()], + self.stream, + false, + )?; + result.logits = ar::last_row(&logits, self.stream)?; + result.hidden = hidden; + result.pending = None; + Ok(()) + })(); + if let Err(error) = commit { + result.final_state_error = Some(error); + } + } + // Captures are cache-owned in MTPLX too; release at owner teardown, + // not by inserting a synchronizing cleanup between decode rounds. + Ok(result) + } +} diff --git a/src/engine/metal/qwen_mtplx/stream.rs b/src/engine/metal/qwen_mtplx/stream.rs new file mode 100644 index 0000000..034bbc3 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/stream.rs @@ -0,0 +1,709 @@ +//! Stream routing from MTPLX's pinned runtime, owned by the Rust Metal context. +//! The installed backend has one CPU and one Metal device. Registry locks are +//! released before encoding, dispatching or waiting; existing operators keep +//! their thread-local Rc/RefCell fast path while a stream is selected. +use super::allocator::Allocator; +use super::encoder::{self, Encoder, Event, Scope}; +use super::scheduler::{self, CpuEncoder, Scheduler}; +use std::cell::RefCell; +use std::collections::{BTreeSet, HashMap}; +use std::rc::Rc; +use std::sync::atomic::{AtomicU32, Ordering}; +use std::sync::{Arc, Mutex, Weak}; +use std::thread::{self, ThreadId}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub(in super::super) enum Device { + Cpu, + Gpu, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub(in super::super) struct Stream { + device: Device, + index: u32, +} + +impl Stream { + /// A stream descriptor, as in stream.h; creating it does not create a queue. + pub(super) fn new(index: u32, device: Device) -> Self { + Self { device, index } + } + + pub(super) fn device(self) -> Device { + self.device + } + pub(super) fn index(self) -> u32 { + self.index + } +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub(super) struct ThreadLocalStream(Stream); + +enum StoredEncoder { + Cpu(CpuEncoder), + Gpu(Rc>), +} + +// SAFETY: the registry transfers exclusive ownership, never a shared borrow. +// Metal permits sequential use from different threads (the reference's +// thread-unsafe streams). CPU encoder temporaries are ownership-only. Leased +// Stored GPU Rc handles have exactly one strong owner and no weak owners; +// GpuLease validates that invariant before returning them to the registry. +unsafe impl Send for StoredEncoder {} + +struct Entry { + owner: Option, + encoder: Option, + leased: bool, +} + +#[derive(Default)] +struct Registry { + streams: Vec, + encoders: HashMap, + defaults: HashMap<(ThreadId, Device), Stream>, + resolved: HashMap<(ThreadId, ThreadLocalStream), Stream>, +} + +impl Registry { + fn remove_thread( + &mut self, + thread: ThreadId, + global_gpu: bool, + ) -> Result, String> { + let selected = |stream: &Stream, entry: &Entry| { + entry.owner == Some(thread) + || (global_gpu && entry.owner.is_none() && stream.device == Device::Gpu) + }; + if self + .encoders + .iter() + .any(|(s, e)| selected(s, e) && e.leased) + { + return Err("cannot clear a leased MTPLX stream".into()); + } + let mut removed = Vec::new(); + self.encoders.retain(|stream, entry| { + if selected(stream, entry) { + removed.extend(entry.encoder.take()); + false + } else { + true + } + }); + Ok(removed) + } +} + +#[derive(Default)] +struct ThreadRegistries(HashMap>>); + +impl Drop for ThreadRegistries { + fn drop(&mut self) { + let thread = thread::current().id(); + for registry in self.0.values().filter_map(Weak::upgrade) { + let mut registry = registry.lock().unwrap(); + let removed = registry + .remove_thread(thread, false) + .expect("stream lease outlived its thread"); + registry.defaults.retain(|(owner, _), _| *owner != thread); + registry.resolved.retain(|(owner, _), _| *owner != thread); + drop(registry); + drop(removed); + } + } +} + +thread_local! { + static THREAD_REGISTRIES: RefCell = RefCell::default(); +} + +/// One model/runtime context. Explicit ownership keeps native queues and the +/// shared allocator inside Context's lifetime instead of a leaked Rust global. +pub(in super::super) struct Streams { + allocator: Option>, + registry: Arc>, +} + +impl Streams { + pub(super) fn allocator(&self) -> Option<&Arc> { + self.allocator.as_ref() + } + + pub(in super::super) fn new(allocator: Option>) -> Self { + // Capture scheduler's reference main-thread identity before workers run. + let _ = scheduler::global(); + Self { + allocator, + registry: Arc::default(), + } + } + + fn create( + &self, + registry: &mut Registry, + device: Device, + owner: Option, + ) -> Result { + // CPU workers live in the existing global scheduler: IDs must remain + // unique even when a Rust Context is closed and a new one is created. + static NEXT: AtomicU32 = AtomicU32::new(0); + let index = NEXT + .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| { + (n < i32::MAX as u32).then_some(n + 1) + }) + .map_err(|_| "MTPLX stream index exhausted")?; + let stream = Stream::new(index, device); + registry.streams.push(stream); + let encoder = match device { + Device::Cpu => StoredEncoder::Cpu(CpuEncoder::new(index)), + Device::Gpu => StoredEncoder::Gpu(Rc::new(RefCell::new(Encoder::new( + self.allocator + .as_ref() + .ok_or("Cannot create gpu stream without gpu backend.")? + .clone(), + )?))), + }; + registry.encoders.insert( + stream, + Entry { + owner, + encoder: Some(encoder), + leased: false, + }, + ); + if owner.is_some() { + THREAD_REGISTRIES.with(|registries| { + registries.borrow_mut().0.insert( + Arc::as_ptr(&self.registry) as usize, + Arc::downgrade(&self.registry), + ); + }); + } + Ok(stream) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn new_stream(&self, device: Device) -> Result { + self.create( + &mut self.registry.lock().unwrap(), + device, + Some(thread::current().id()), + ) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn new_thread_unsafe_stream(&self, device: Device) -> Result { + self.create(&mut self.registry.lock().unwrap(), device, None) + } + + pub(in super::super) fn default_stream(&self, device: Device) -> Result { + if device == Device::Gpu && self.allocator.is_none() { + return Err("[default_stream] Cannot get gpu stream without gpu backend.".into()); + } + let key = (thread::current().id(), device); + let mut registry = self.registry.lock().unwrap(); + if let Some(stream) = registry.defaults.get(&key) { + return Ok(*stream); + } + let stream = self.create(&mut registry, device, Some(key.0))?; + registry.defaults.insert(key, stream); + Ok(stream) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn set_default_stream(&self, stream: Stream) -> Result<(), String> { + if stream.device == Device::Gpu && self.allocator.is_none() { + return Err("[set_default_stream] Cannot set gpu stream without gpu backend.".into()); + } + self.registry + .lock() + .unwrap() + .defaults + .insert((thread::current().id(), stream.device), stream); + Ok(()) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn new_thread_local_stream(device: Device) -> Result { + static NEXT: AtomicU32 = AtomicU32::new(0); + let index = NEXT + .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| { + (n < i32::MAX as u32).then_some(n + 1) + }) + .map_err(|_| "MTPLX thread-local stream index exhausted")?; + Ok(ThreadLocalStream(Stream::new(index, device))) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn resolve(&self, template: ThreadLocalStream) -> Result { + let key = (thread::current().id(), template); + let mut registry = self.registry.lock().unwrap(); + if let Some(stream) = registry.resolved.get(&key) { + return Ok(*stream); + } + let stream = self.create(&mut registry, template.0.device, Some(key.0))?; + registry.resolved.insert(key, stream); + Ok(stream) + } + + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + pub(super) fn get_streams(&self) -> Vec { + self.registry.lock().unwrap().streams.clone() + } + + fn take(&self, stream: Stream) -> Result, String> { + let mut registry = self.registry.lock().unwrap(); + let entry = registry + .encoders + .get_mut(&stream) + .filter(|entry| { + entry + .owner + .is_none_or(|owner| owner == thread::current().id()) + }) + .ok_or_else(|| { + format!( + "There is no Stream({:?}, {}) in current thread.", + stream.device, stream.index + ) + })?; + if entry.leased { + // Concurrent use of a reference thread-unsafe stream is invalid. + // Reject that use rather than introducing an unsynchronized alias. + return Err("MTPLX stream is already in use".into()); + } + let encoder = entry + .encoder + .take() + .ok_or("MTPLX stream encoder was cleared")?; + entry.leased = true; + Ok(Lease { + streams: self, + stream, + encoder: Some(encoder), + }) + } + + pub(super) fn with_cpu( + &self, + stream: Stream, + operation: impl FnOnce(&mut CpuEncoder, &Scheduler) -> Result, + ) -> Result { + let mut lease = self.take(stream)?; + match lease.encoder.as_mut().unwrap() { + StoredEncoder::Cpu(encoder) => operation(encoder, scheduler::global()), + StoredEncoder::Gpu(_) => Err("CPU operation requires a CPU stream".into()), + } + } + + pub(in super::super) fn with_gpu( + &self, + stream: Stream, + operation: impl FnOnce(&Scope) -> Result, + ) -> Result { + let mut lease = self.take(stream)?; + if !matches!(lease.encoder, Some(StoredEncoder::Gpu(_))) { + return Err("GPU operation requires a GPU stream".into()); + } + let Some(StoredEncoder::Gpu(owner)) = lease.encoder.take() else { + unreachable!() + }; + let restore = GpuLease { + lease, + owner: Some(owner.clone()), + }; + let scope = Scope::activate(owner)?; + let result = operation(&scope); + drop(scope); + drop(restore); + result + } + + pub(super) fn wait_event( + &self, + stream: Stream, + event: Arc, + value: u64, + ) -> Result<(), String> { + match stream.device { + Device::Cpu => self.with_cpu(stream, |_, scheduler| { + scheduler.wait_event(stream.index, event, value) + }), + Device::Gpu => self.with_gpu(stream, |_| { + encoder::with_active(|encoder| encoder.wait_event(event, value)).unwrap() + }), + } + } + + pub(super) fn signal_event( + &self, + stream: Stream, + event: Arc, + value: u64, + ) -> Result<(), String> { + match stream.device { + Device::Cpu => self.with_cpu(stream, |_, scheduler| { + scheduler.signal_event(stream.index, event, value) + }), + Device::Gpu => self.with_gpu(stream, |_| { + encoder::with_active(|encoder| encoder.signal_event(event, value)).unwrap() + }), + } + } + + pub(super) fn finalize(&self, stream: Stream) -> Result<(), String> { + match stream.device { + Device::Cpu => Ok(()), + Device::Gpu => { + self.with_gpu(stream, |_| encoder::with_active(Encoder::finalize).unwrap()) + } + } + } + + pub(super) fn synchronize(&self, stream: Stream) -> Result<(), String> { + match stream.device { + Device::Cpu => { + self.with_cpu(stream, |_, scheduler| scheduler.synchronize(stream.index)) + } + Device::Gpu => self.with_gpu(stream, Scope::synchronize), + } + } + + pub(super) fn check_backpressure(&self, open: &BTreeSet) -> Result<(), String> { + let activity = &scheduler::global().activity; + let memory = || { + self.allocator + .as_ref() + .map_or((0, usize::MAX), |a| (a.stats().active, a.memory_limit())) + }; + let (active, limit) = memory(); + if activity.needs_throttle(active, limit) { + for &stream in open { + self.finalize(stream)?; + } + activity.wait_for_one(); + while { + let (active, limit) = memory(); + active > limit + } && activity.count() > 0 + { + activity.wait_for_one(); + } + } + Ok(()) + } + + pub(in super::super) fn clear_streams(&self) -> Result<(), String> { + let thread = thread::current().id(); + let mut registry = self.registry.lock().unwrap(); + let removed = registry.remove_thread(thread, scheduler::global().is_main_thread())?; + // Reference clear leaves metadata/default/TLS handles unchanged. A stale + // handle therefore fails lookup; do not silently create a replacement. + drop(registry); + drop(removed); // GPU destructor drains without holding the registry lock. + Ok(()) + } +} + +struct Lease<'a> { + streams: &'a Streams, + stream: Stream, + encoder: Option, +} + +impl Drop for Lease<'_> { + fn drop(&mut self) { + let mut registry = self.streams.registry.lock().unwrap(); + let entry = registry.encoders.get_mut(&self.stream).unwrap(); + assert!(entry.leased && entry.encoder.is_none()); + entry.encoder = self.encoder.take(); + entry.leased = false; + } +} + +struct GpuLease<'a> { + lease: Lease<'a>, + owner: Option>>, +} + +impl Drop for GpuLease<'_> { + fn drop(&mut self) { + let owner = self.owner.take().unwrap(); + assert_eq!( + Rc::strong_count(&owner), + 1, + "MTPLX encoder handle escaped its stream scope" + ); + assert_eq!( + Rc::weak_count(&owner), + 0, + "MTPLX encoder weak handle escaped its stream scope" + ); + self.lease.encoder = Some(StoredEncoder::Gpu(owner)); + } +} + +#[test] +fn mtplx_stream_registry_preserves_thread_defaults_templates_and_clear() { + use std::panic::{AssertUnwindSafe, catch_unwind}; + let streams = Streams::new(None); + assert!(streams.default_stream(Device::Gpu).is_err()); + assert!(streams.get_streams().is_empty()); + let first = streams.default_stream(Device::Cpu).unwrap(); + assert_eq!(streams.default_stream(Device::Cpu).unwrap(), first); + let replacement = streams.new_stream(Device::Cpu).unwrap(); + streams.set_default_stream(replacement).unwrap(); + assert_eq!(streams.default_stream(Device::Cpu).unwrap(), replacement); + let template = Streams::new_thread_local_stream(Device::Cpu).unwrap(); + assert_eq!( + streams.get_streams().len(), + 2, + "template creates no encoder" + ); + let resolved = streams.resolve(template).unwrap(); + assert_eq!(streams.resolve(template).unwrap(), resolved); + let shared = streams.new_thread_unsafe_stream(Device::Cpu).unwrap(); + thread::scope(|scope| { + scope + .spawn(|| { + assert!( + streams.synchronize(first).is_err(), + "local stream cannot migrate" + ); + let local = streams.default_stream(Device::Cpu).unwrap(); + assert_ne!(local, replacement); + let own_resolved = streams.resolve(template).unwrap(); + assert_ne!(own_resolved, resolved); + assert_eq!(streams.resolve(template).unwrap(), own_resolved); + streams + .with_cpu(shared, |encoder, scheduler| { + encoder.dispatch(scheduler, || Ok(())) + }) + .unwrap(); + streams.synchronize(shared).unwrap(); + streams.clear_streams().unwrap(); + assert_eq!(streams.default_stream(Device::Cpu).unwrap(), local); + assert_eq!(streams.resolve(template).unwrap(), own_resolved); + assert!(streams.synchronize(local).is_err()); + assert!(streams.synchronize(own_resolved).is_err()); + streams.synchronize(shared).unwrap(); + }) + .join() + .unwrap(); + }); + let exited = thread::scope(|scope| { + scope + .spawn(|| streams.new_stream(Device::Cpu).unwrap()) + .join() + .unwrap() + }); + assert!( + !streams + .registry + .lock() + .unwrap() + .encoders + .contains_key(&exited), + "thread exit destroys local encoders without explicit clear" + ); + streams + .with_cpu(first, |_, _| { + assert_eq!(streams.get_streams().len(), 7, "registry lock is not held"); + assert!( + streams.synchronize(first).is_err(), + "reject simultaneous mutable use" + ); + assert!( + streams.clear_streams().is_err(), + "clear cannot invalidate a lease" + ); + Ok(()) + }) + .unwrap(); + assert_eq!( + streams.with_cpu(first, |_, _| Err::<(), _>("operation error".into())), + Err("operation error".into()) + ); + assert!( + catch_unwind(AssertUnwindSafe(|| streams + .with_cpu(first, |_, _| -> Result<(), String> { + panic!("intentional lease unwind") + }))) + .is_err() + ); + streams.synchronize(first).unwrap(); + let before = streams.get_streams(); + streams.clear_streams().unwrap(); + assert_eq!( + streams.get_streams(), + before, + "reference keeps stream metadata" + ); + assert_eq!(streams.default_stream(Device::Cpu).unwrap(), replacement); + assert!(streams.synchronize(replacement).is_err()); + streams.synchronize(shared).unwrap(); // Global CPU encoder is not cleared. +} + +#[test] +#[ignore = "requires Apple Metal, tiny model-free two-queue copy"] +fn mtplx_stream_routes_queues_events_and_finalizes_all_under_pressure() { + use super::super::*; + use super::{active_allocator, qsa_copy_typed}; + use std::panic::{AssertUnwindSafe, catch_unwind}; + use std::sync::atomic::AtomicBool; + use std::sync::mpsc; + use std::time::Duration; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + let streams = Streams::new(Some(allocator.clone())); + let first = streams.default_stream(Device::Gpu).unwrap(); + let second = streams.new_stream(Device::Gpu).unwrap(); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let expected = [0x80, 0x3f].repeat(8); + let (input, middle, output) = streams + .with_gpu(first, |scope| { + assert!(Arc::ptr_eq(&active_allocator().unwrap(), &allocator)); + assert!( + streams.with_gpu(second, |_| Ok(())).is_err(), + "nested selection cannot replace active routing" + ); + assert!(streams.clear_streams().is_err()); + let input = Buffer::mtplx_bytes(16)?; + input.write(0, &expected)?; + let middle = Buffer::mtplx_bytes(16)?; + let output = Buffer::mtplx_bytes(16)?; + qsa_copy_typed( + Some(&input), + &middle, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + )?; + assert_eq!(scope.commits(), 0); + Ok((input, middle, output)) + }) + .unwrap(); + assert!(active_allocator().is_none()); + let ready = Event::new().unwrap(); + let complete = Event::new().unwrap(); + streams.signal_event(first, ready.clone(), 1).unwrap(); + streams.wait_event(second, ready.clone(), 1).unwrap(); + streams + .with_gpu(second, |_| { + qsa_copy_typed( + Some(&middle), + &output, + [1, 1, 8], + [0, 0, 1], + [0, 0, 1], + "bfloat16", + 8, + ) + }) + .unwrap(); + streams.signal_event(second, complete.clone(), 1).unwrap(); + streams.wait_event(cpu, complete.clone(), 1).unwrap(); + streams + .with_cpu(cpu, |encoder, scheduler| { + for _ in 0..110 { + encoder.dispatch(scheduler, || Ok(()))?; + } + Ok(()) + }) + .unwrap(); + assert_eq!(scheduler::global().activity.count(), 11); + for stream in [first, second] { + streams + .with_gpu(stream, |scope| { + assert_eq!(scope.commits(), 0); + Ok(()) + }) + .unwrap(); + } + // A broken finalize-all implementation must fail, not leave this test hung. + let timed_out = AtomicBool::new(false); + thread::scope(|scope| { + let (done, finished) = mpsc::channel(); + let timed_out = &timed_out; + let ready = &ready; + let complete = &complete; + scope.spawn(move || { + if finished.recv_timeout(Duration::from_secs(5)).is_err() { + timed_out.store(true, Ordering::Relaxed); + ready.signal(1); + complete.signal(1); + } + }); + streams + .check_backpressure(&BTreeSet::from([second, cpu, first])) + .unwrap(); + streams.synchronize(cpu).unwrap(); + done.send(()).unwrap(); + }); + assert!( + !timed_out.load(Ordering::Relaxed), + "all open queues must be committed before pressure wait" + ); + assert_eq!(scheduler::global().activity.count(), 0); + for stream in [first, second] { + streams + .with_gpu(stream, |scope| { + assert_eq!(scope.commits(), 1); + Ok(()) + }) + .unwrap(); + } + streams.synchronize(second).unwrap(); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + assert!( + catch_unwind(AssertUnwindSafe(|| streams + .with_gpu(first, |_| -> Result<(), String> { + panic!("intentional GPU lease unwind") + }))) + .is_err() + ); + streams.synchronize(first).unwrap(); + assert!(active_allocator().is_none()); + + let shared = streams.new_thread_unsafe_stream(Device::Gpu).unwrap(); + let shared_event = Event::new().unwrap(); + let exited = thread::scope(|scope| { + scope + .spawn(|| { + assert!(streams.synchronize(first).is_err()); + streams + .signal_event(shared, shared_event.clone(), 1) + .unwrap(); + streams.finalize(shared).unwrap(); + streams.synchronize(shared).unwrap(); + streams.clear_streams().unwrap(); // Non-main clear leaves shared GPU. + streams.new_stream(Device::Gpu).unwrap() + }) + .join() + .unwrap() + }); + assert!( + !streams + .registry + .lock() + .unwrap() + .encoders + .contains_key(&exited) + ); + streams.synchronize(shared).unwrap(); + drop((input, middle, output)); + streams.clear_streams().unwrap(); + assert!(streams.synchronize(first).is_err()); + assert_eq!( + streams.synchronize(shared).is_err(), + scheduler::global().is_main_thread() + ); +} diff --git a/src/engine/metal/qwen_mtplx/submission.rs b/src/engine/metal/qwen_mtplx/submission.rs new file mode 100644 index 0000000..0ab3873 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/submission.rs @@ -0,0 +1,211 @@ +//! Residency at actual submission boundaries. This is not yet the reference +//! dependency/fence encoder; dispatch access roles and that port remain open. +use super::super::*; +use super::allocator::Allocator; +use std::cell::Cell; +use std::rc::Rc; +use std::sync::Arc; + +pub(super) struct Submission { + allocator: Arc, + queue: NonNull, + attached: Cell, + #[cfg(test)] + commits: Cell, +} + +impl Submission { + pub(super) fn new(allocator: Arc) -> Result, String> { + let queue = NonNull::new(unsafe { ds4_gpu_mtplx_retain_command_queue() }) + .ok_or("Metal command queue is not initialized")?; + let owner = Rc::new(Self { + allocator, + queue, + attached: Cell::new(0), + #[cfg(test)] + commits: Cell::new(0), + }); + owner.attach(); // Reference CommandEncoder attaches existing sets at creation. + Ok(owner) + } + + fn attach(&self) { + let mut attached = self.attached.get(); + unsafe { + self.allocator + .residency + .attach_new_sets(self.queue.as_ptr(), &mut attached) + }; + self.attached.set(attached); + } + + pub(super) fn begin(self: &Rc) -> Result { + if unsafe { ds4_gpu_mtplx_command_queue() } != self.queue.as_ptr() { + return Err("Metal submission owner belongs to a different queue".into()); + } + unsafe extern "C" fn before_commit(context: *mut c_void, queue: *mut c_void) { + // The scope owns an Rc at this stable address. The native hook is + // thread-local and synchronous; Submission/Rc cannot cross threads. + let owner = unsafe { &*context.cast::() }; + assert_eq!(queue, owner.queue.as_ptr()); + owner.attach(); + #[cfg(test)] + owner.commits.set(owner.commits.get() + 1); + } + let context = Rc::as_ptr(self).cast_mut().cast(); + check( + unsafe { ds4_gpu_mtplx_submission_hook(context, Some(before_commit)) }, + "registering Metal submission owner", + )?; + match Commands::begin() { + Ok(commands) => Ok(SubmissionCommands { + commands: Some(commands), + owner: self.clone(), + }), + Err(error) => { + unsafe { ds4_gpu_mtplx_submission_hook(context, None) }; + Err(error) + } + } + } +} + +impl Drop for Submission { + fn drop(&mut self) { + unsafe { ds4_gpu_mtplx_queue_free(self.queue.as_ptr()) }; + } +} + +pub(super) struct SubmissionCommands { + commands: Option, + owner: Rc, +} + +impl SubmissionCommands { + pub(super) fn flush(&mut self) -> Result<(), String> { + self.commands.as_mut().unwrap().flush() + } + + pub(super) fn eval_boundary(&mut self) -> Result<(), String> { + self.commands.as_mut().unwrap().eval_boundary() + } + + pub(super) fn finish(mut self) -> Result<(), String> { + self.commands.take().unwrap().finish() + } +} + +impl Drop for SubmissionCommands { + fn drop(&mut self) { + // Drop/finish drains native work while the hook and its owner still live. + drop(self.commands.take()); + let context = Rc::as_ptr(&self.owner).cast_mut().cast(); + assert_ne!(unsafe { ds4_gpu_mtplx_submission_hook(context, None) }, 0); + } +} + +#[test] +fn mtplx_all_native_command_commits_pass_the_submission_hook() { + let source = include_str!("../../../../native/metal/ds4_metal.m"); + assert_eq!(source.matches("[cb commit]").count(), 1); + assert!(!source.contains("[g_batch_cb commit]")); + for line in source.lines().filter(|line| line.contains(" commit]")) { + assert!( + line.contains("[cb commit]") + || line.contains("[g_model_residency_set commit]") + || line.contains("[residency_set commit]") + || line.contains("id)set commit]"), + "unreviewed native commit bypass: {line}" + ); + } + let helper = source + .split_once("static void ds4_gpu_commit_command_buffer(") + .unwrap() + .1 + .split_once("static void ds4_gpu_stream_expert_cache_note_owned_created") + .unwrap() + .0; + assert!( + helper + .find("g_mtplx_before_commit(g_mtplx_submission_context") + .unwrap() + < helper.find("[cb commit]").unwrap() + ); + assert!(helper.contains("cb.commandQueue == g_queue")); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_submission_attaches_at_flush_eval_finish_and_drop() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let allocator = Allocator::new().unwrap(); + allocator.residency.set_max_per_set(8 << 20); + allocator.set_wired_limit(128 << 20).unwrap(); + let owner = Submission::new(allocator.clone()).unwrap(); + assert_eq!(owner.attached.get(), allocator.residency.num_sets()); + let input = allocator.allocate(16).unwrap().unwrap(); + let output = allocator.allocate(16).unwrap().unwrap(); + let expected = [0x80, 0x3f].repeat(8); + input.write(0, &expected).unwrap(); + let copy = || { + assert!( + super::qsa_dynamic_copy_rows([&input, &output], [8, 8], [1, 8], [None, None], [8; 2]) + .unwrap() + .is_empty() + ) + }; + let mut commands = owner.begin().unwrap(); + assert!( + owner.begin().is_err(), + "nested scopes must not replace the outer hook" + ); + copy(); + let buffers = (0..8) + .map(|_| allocator.allocate(5 << 20).unwrap().unwrap()) + .collect::>(); + assert!(owner.attached.get() < allocator.residency.num_sets()); + commands.flush().unwrap(); + assert_eq!(owner.commits.get(), 1); + assert_eq!(owner.attached.get(), allocator.residency.num_sets()); + let big = allocator.allocate(32 << 20).unwrap().unwrap(); + assert!(owner.attached.get() < allocator.residency.num_sets()); + commands.eval_boundary().unwrap(); + assert_eq!(owner.commits.get(), 2); + assert_eq!(owner.attached.get(), allocator.residency.num_sets()); + commands.finish().unwrap(); + assert_eq!(owner.commits.get(), 3); + let mut actual = [0; 16]; + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); + drop((buffers, big)); + + // Drop submits with the owner still registered. Reuse the same queue cursor. + let commands = owner.begin().unwrap(); + copy(); + drop(commands); + assert_eq!(owner.commits.get(), 4); + let commands = owner.begin().unwrap(); + assert_eq!(unsafe { ds4_gpu_end_commands() }, 1); + assert_eq!( + owner.commits.get(), + 5, + "native-internal submission bypasses no hook" + ); + copy(); // With no open batch, the native dispatch commits synchronously. + assert_eq!(owner.commits.get(), 6); + drop(commands); + assert_eq!( + owner.commits.get(), + 6, + "no duplicate commit during scope cleanup" + ); + + // The legacy scope neither inherits the owner nor calls an expired context. + let commands = Commands::begin().unwrap(); + copy(); + commands.finish().unwrap(); + assert_eq!(owner.commits.get(), 6); + output.read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), expected); +} diff --git a/src/engine/metal/qwen_mtplx/unary.rs b/src/engine/metal/qwen_mtplx/unary.rs new file mode 100644 index 0000000..ff17b7f --- /dev/null +++ b/src/engine/metal/qwen_mtplx/unary.rs @@ -0,0 +1,294 @@ +//! Graph unary primitives: ops.cpp and metal/unary.cpp from the pinned runtime. +use super::array::{Array, Dtype, Layout}; +use super::stream::{Device, Stream}; +use super::{bytes, dispatch_geometry, ops, tensor, views}; + +#[derive(Clone, Copy, Debug)] +pub(super) enum Unary { + LogicalNot, + Abs, + Sign, + Negative, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + Square, + Exp, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + Log, + Sigmoid, + #[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] + Tanh, + Sqrt, + Rsqrt, + Sin, + Cos, +} + +pub(super) fn unary(input: &Array, op: Unary, stream: Stream) -> Result { + let dtype = input.layout().dtype(); + if stream.device() != Device::Gpu { + return Err("CPU unary arithmetic is not ported".into()); + } + if matches!( + (op, dtype), + (Unary::Negative, Dtype::Bool) | (Unary::Sigmoid, Dtype::C64) + ) { + return Err(format!("{op:?} does not support {dtype:?}")); + } + let dtype = if matches!(op, Unary::LogicalNot) { + Dtype::Bool + } else if matches!( + op, + Unary::Negative | Unary::Square | Unary::Abs | Unary::Sign + ) { + dtype + } else { + dtype.at_least_float() + }; + let input = ops::astype(input, dtype, false, stream)?; + let output = Array::make_operation( + stream, + &input, + Layout::new(input.layout().shape(), dtype)?, + ops::Operation::Unary(op), + )?; + if matches!(op, Unary::Abs) && dtype == Dtype::C64 { + ops::astype(&output, Dtype::F32, false, stream) + } else { + Ok(output) + } +} + +pub(super) fn evaluate(input: &Array, output: &Array, op: Unary) -> Result<(), String> { + views::set_unary_output_data(input, output)?; + let src = input.layout(); + let dst = output.layout(); + if src.size() == 0 { + return Ok(()); + } + let contiguous = src.flags().contiguous; + let size = input.data_size(); + let large = if contiguous { + size > u32::MAX as usize + } else { + size > i32::MAX as usize || dst.size() > i32::MAX as usize + }; + let work = if contiguous { + if size < 1 << 16 { + 1 + } else { + (8 / src.dtype().itemsize()).max(1) + } + } else if large { + 4 + } else { + 1 + }; + let prefix = if contiguous { + if large { + "v2" + } else if work > 1 { + "vn" + } else { + "v" + } + } else if large { + "gn4large" + } else { + "gn1" + }; + let name = format!( + "{prefix}_{op:?}{}{}", + src.dtype().kernel_name(), + dst.dtype().kernel_name() + ); + let max_threads = views::kernel_max_threads(&name)?; + let source = input.buffer(); + let target = output.buffer(); + let mut bindings = vec![ + tensor(0, &source) + .at_byte_offset(input.offset()) + .input(size), + tensor(1, &target) + .at_byte_offset(output.offset()) + .output(output.data_size()), + ]; + if contiguous { + let n32 = size as i32; + let n64 = size as i64; + bindings.push(if large { + bytes(2, &n64) + } else { + bytes(2, &n32) + }); + let grid = if large { + views::large_copy_grid(&dst, work)? + } else { + [size.div_ceil(work) as u32, 1, 1] + }; + let group = [(max_threads as usize).min(size.div_ceil(work)) as u32, 1, 1]; + dispatch_geometry(&name, &bindings, &[], grid, group, true) + } else { + let (shape, strides) = views::collapse_dims(&src); + let ndim = i32::try_from(shape.len()).map_err(|_| "unary rank overflow")?; + let dim0 = shape.last().copied().unwrap_or(1) as usize; + let dim1 = shape.iter().rev().nth(1).copied().unwrap_or(1) as usize; + let rest = dst.size() / (dim0 * dim1); + let grid = [dim0.div_ceil(work), dim1, rest] + .map(|d| u32::try_from(d).map_err(|_| "unary grid overflow")); + let grid = [grid[0]?, grid[1]?, grid[2]?]; + if max_threads != 1024 { + return Err("[Metal::unary] Must use 1024 sized block".into()); + } + bindings.extend([ + bytes(2, shape.as_slice()), + bytes(3, strides.as_slice()), + bytes(4, &ndim), + ]); + dispatch_geometry(&name, &bindings, &[], grid, super::block_dims(grid), true) + } +} + +#[test] +#[ignore = "requires Apple Metal; graph unary layout, donation and kernel boundaries"] +fn mtplx_graph_unary_preserves_reference_layout_and_values() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::{Buffer, Context}; + use super::{allocator, configure_sources, stream::Streams}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + // Exact dyadic values only; no host transcendental approximation. + let encode = |dtype: Dtype, values: &[f32]| -> Vec { + values + .iter() + .flat_map(|&v| { + let f = v.to_bits(); + let bits = match dtype { + Dtype::BF16 => f >> 16, + Dtype::F16 => { + (f >> 16 & 0x8000) + | if f & 0x7fffffff == 0 { + 0 + } else { + (((f >> 23 & 255) - 112) << 10) | (f >> 13 & 1023) + } + } + Dtype::I32 => v as i32 as u32, + _ => f, + }; + bits.to_le_bytes()[..dtype.itemsize()].to_vec() + }) + .collect() + }; + for dtype in [Dtype::F16, Dtype::BF16, Dtype::F32] { + for (op, value, expected) in [ + (Unary::Negative, 4., -4.), + (Unary::Abs, -4., 4.), + (Unary::Sign, -4., -1.), + (Unary::Square, 4., 16.), + (Unary::Exp, 0., 1.), + (Unary::Sigmoid, 0., 0.5), + (Unary::Tanh, 0., 0.), + (Unary::Sqrt, 4., 2.), + (Unary::Rsqrt, 4., 0.5), + ] { + for count in [0, 1, 65535, 65536, 65537] { + for keep_alias in [false, true] { + let data = encode(dtype, &vec![value; count]); + let buffer = Buffer::mtplx_bytes(data.len() as u64).unwrap(); + buffer.write(0, &data).unwrap(); + let input = Array::new(&[count as i32], dtype, buffer).unwrap(); + let identity = input.buffer().data_identity(); + let out = unary(&input, op, gpu).unwrap(); + let alias = keep_alias.then(|| input.clone()); + drop(input); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.buffer().data_identity() == identity, !keep_alias); + let mut actual = vec![0; count * dtype.itemsize()]; + out.buffer().read(out.offset(), &mut actual).unwrap(); + assert_eq!( + actual, + encode(dtype, &vec![expected; count]), + "{op:?} {dtype:?}" + ); + drop(alias); + } + } + } + for mode in 0..5 { + let values = [1., 4., 1., 4., 1., 4., 1., 4.]; + let bytes = encode(dtype, &values); + let buffer = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + buffer.write(0, &bytes).unwrap(); + let base = Array::new(&[2, 4], dtype, buffer).unwrap(); + let view = match mode { + 0 => ops::transpose(&base, &[1, 0], gpu).unwrap(), + 1 => ops::slice(&base, &[0, 1], &[2, 4], &[1, 2], gpu).unwrap(), + 2 => ops::slice(&base, &[1, 3], &[-3, -5], &[-1, -1], gpu).unwrap(), + 3 => { + let row = ops::slice(&base, &[1, 0], &[2, 4], &[1, 1], gpu).unwrap(); + ops::broadcast_to(&row, &[3, 4], gpu).unwrap() + } + _ => ops::slice(&base, &[1, 0], &[2, 4], &[1, 1], gpu).unwrap(), + }; + let identity = base.buffer().data_identity(); + let out = unary(&view, Unary::Square, gpu).unwrap(); + drop((view, base)); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + let expected: &[f32] = match mode { + 0 => &[1., 16., 1., 16., 1., 16., 1., 16.], + 1 => &[16., 16., 16., 16.], + 2 => &[16., 1., 16., 1., 16., 1., 16., 1.], + _ => &[1., 16., 1., 16.], + }; + let mut actual = vec![0; out.data_size() * dtype.itemsize()]; + out.buffer().read(out.offset(), &mut actual).unwrap(); + assert_eq!(actual, encode(dtype, expected), "layout {mode}"); + // check_contiguity counts positive strides only: reversed + // and stepped inputs both require a fresh dense output. + assert_eq!( + out.buffer().data_identity() == identity, + !matches!(mode, 1 | 2) + ); + if mode == 3 { + assert_eq!(out.layout().strides(), [0, 1]); + } + } + let oversized = Buffer::mtplx_bytes(20000).unwrap(); + oversized.write(0, &encode(dtype, &[1., 4.])).unwrap(); + let identity = oversized.data_identity(); + let input = Array::new(&[2], dtype, oversized).unwrap(); + let out = unary(&input, Unary::Square, gpu).unwrap(); + drop(input); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_ne!( + out.buffer().data_identity(), + identity, + "16KiB donation slack" + ); + let mut actual = vec![0; 2 * dtype.itemsize()]; + out.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, encode(dtype, &[1., 16.])); + } + let buffer = Buffer::mtplx_bytes(4).unwrap(); + buffer.write(0, &4_i32.to_le_bytes()).unwrap(); + let input = Array::new(&[], Dtype::I32, buffer).unwrap(); + let out = unary(&input, Unary::Sqrt, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&out), gpu, false).unwrap(); + assert_eq!(out.layout().dtype(), Dtype::F32); + let mut actual = [0; 4]; + out.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, 2_f32.to_le_bytes()); + let squared = unary(&input, Unary::Square, gpu).unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&squared), gpu, false).unwrap(); + assert_eq!(squared.layout().dtype(), Dtype::I32); + squared.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, 16_i32.to_le_bytes()); + for (dtype, op) in [(Dtype::Bool, Unary::Negative), (Dtype::C64, Unary::Sigmoid)] { + let input = Array::new(&[0], dtype, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + assert!(unary(&input, op, gpu).is_err()); + } + streams.clear_streams().unwrap(); + }); +} diff --git a/src/engine/metal/qwen_mtplx/views.rs b/src/engine/metal/qwen_mtplx/views.rs new file mode 100644 index 0000000..8b44228 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/views.rs @@ -0,0 +1,1736 @@ +//! Materialized view/reshape backend semantics from MTPLX's +//! pinned runtime. The caller supplies the already inferred output shape. +use super::super::gpu::Buffer; +use super::array::{Array, Dtype, Layout}; + +// common.cpp::prepare_reshape uses the SINGLE-array collapse algorithm. The +// copy fallback below must instead collapse input and output strides jointly. +fn reshape_strides(src: &Layout, dst: &Layout) -> Option> { + if src.size() == 0 || src.flags().row_contiguous { + return Some(dst.strides().to_vec()); + } + if src.shape().is_empty() { + return Some(vec![0; dst.shape().len()]); + } + let (mut shape, strides) = collapse_dims(src); + let mut out = Vec::with_capacity(dst.shape().len()); + let mut j = 0; + for &dim in dst.shape() { + if j < shape.len() && shape[j] % dim == 0 { + shape[j] /= dim; + out.push(i64::from(shape[j]) * strides[j]); + j += usize::from(shape[j] == 1); + } else if dim == 1 { + out.push(*out.last()?); + } else { + return None; + } + } + Some(out) +} + +pub(super) fn collapse_dims(src: &Layout) -> (Vec, Vec) { + collapse_shape_strides(src.shape(), src.strides()) +} + +pub(super) fn collapse_shape_strides(dims: &[i32], offsets: &[i64]) -> (Vec, Vec) { + if dims.is_empty() { + return (Vec::new(), Vec::new()); + } + let mut shape = vec![dims[0]]; + let mut strides = vec![offsets[0]]; + for (&dim, &stride) in dims[1..].iter().zip(&offsets[1..]) { + if dim == 1 { + continue; + } + let last = shape.len() - 1; + let combined = i64::from(shape[last]) * i64::from(dim); + if stride.checked_mul(i64::from(dim)) != Some(strides[last]) + || combined > i64::from(i32::MAX) + { + shape.push(dim); + strides.push(stride); + } else { + shape[last] = combined as i32; + strides[last] = stride; + } + } + (shape, strides) +} + +#[test] +#[ignore = "requires Metal and original dynamic slice receipts; no model weights"] +fn mtplx_dynamic_slice_graph_matches_reference() { + use super::super::{ + gpu::Context, + qwen_mtplx_tests::{capture_dispatches, pattern, verify_typed}, + }; + use super::{ + allocator, configure_sources, ops, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let dtype = |s: &str| match s { + "bfloat16" => Dtype::BF16, + "float16" => Dtype::F16, + "float32" => Dtype::F32, + "int8" => Dtype::I8, + "uint8" => Dtype::U8, + "int16" => Dtype::I16, + "uint16" => Dtype::U16, + "int32" => Dtype::I32, + "uint32" => Dtype::U32, + "int64" => Dtype::I64, + "uint64" => Dtype::U64, + _ => panic!("unknown type"), + }; + let cases = include_str!("../../../../tests/fixtures/mtplx-dynamic-slice-graph.jsonl") + .lines() + .map(|l| serde_json::from_str::(l).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 30); + for prepared in [false, true] { + for keep in [false, true] { + for c in &cases { + super::eval::execution_tests::observed(|| { + let ints = |s: &str| { + c[s].as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap() as i32) + .collect::>() + }; + let (shape, size, axes, values) = + (ints("shape"), ints("size"), ints("axes"), ints("values")); + let kind = c["kind"].as_str().unwrap(); + let profile = c["profile"].as_u64().unwrap(); + let dtype = dtype(c["dtype"].as_str().unwrap()); + let source = |shape: &[i32], salt| { + ops::astype( + &Array::new( + shape, + Dtype::BF16, + pattern(shape.iter().product::() as u32, salt), + ) + .unwrap(), + dtype, + false, + gpu, + ) + .unwrap() + }; + let mut phys = shape.clone(); + let last = phys.len() - 1; + match kind { + "stride" => phys[last] *= 2, + "transpose" => phys.swap(last, last - 1), + "broadcast" => phys[1] = 1, + _ => {} + } + let mut a = source(&phys, 221); + if kind == "stride" { + let mut steps = vec![1; phys.len()]; + steps[last] = 2; + a = ops::slice(&a, &vec![0; phys.len()], &phys, &steps, gpu).unwrap(); + } + if kind == "transpose" { + a = ops::transpose(&a, &[0, 2, 1], gpu).unwrap(); + } + if kind == "broadcast" { + a = ops::broadcast_to(&a, &shape, gpu).unwrap(); + } + if kind == "reverse" { + a = ops::slice( + &a, + &[0, shape[1] - 1, 0], + &[1, -shape[1] - 1, shape[2]], + &[1, -1, 1], + gpu, + ) + .unwrap(); + } + let mut idx_values = values.clone(); + if profile == 2 { + idx_values.push(99); + } + let idtype = match c["idx_dtype"].as_str().unwrap() { + "int8" => Dtype::I8, + "uint8" => Dtype::U8, + "int16" => Dtype::I16, + "uint16" => Dtype::U16, + "int32" => Dtype::I32, + "uint32" => Dtype::U32, + "int64" => Dtype::I64, + "uint64" => Dtype::U64, + _ => unreachable!(), + }; + let data = idx_values + .iter() + .flat_map(|&v| (i64::from(v)).to_le_bytes()[..idtype.itemsize()].to_vec()) + .collect::>(); + let mut idx = Array::new( + &[idx_values.len() as i32], + idtype, + super::scalar_buffer(&data).unwrap(), + ) + .unwrap(); + if profile == 0 { + idx = ops::reshape(&idx, &[], gpu).unwrap(); + } + if profile == 2 { + idx = ops::slice(&idx, &[0], &[1], &[1], gpu).unwrap(); + } + let update = if kind == "scalar_update" { + Array::new( + &[], + Dtype::F32, + super::scalar_buffer(&0.5_f32.to_le_bytes()).unwrap(), + ) + .unwrap() + } else { + source(&size, 222) + }; + if prepared { + ops::evaluate( + &streams, + &[a.clone(), update.clone(), idx.clone()], + gpu, + false, + ) + .unwrap(); + } + let old = prepared.then(|| a.buffer().data_identity()); + let retained = keep.then(|| a.clone()); + let (outputs, construction) = capture_dispatches(|| { + let sliced = ops::dynamic_slice(&a, &idx, &axes, &size, gpu).unwrap(); + let changed = + ops::dynamic_slice_update(&a, &update, &idx, &axes, gpu).unwrap(); + let back = ops::dynamic_slice(&changed, &idx, &axes, &size, gpu).unwrap(); + [sliced, changed, back] + }); + assert!(construction.is_empty()); + drop((a, update, idx)); + let (_, calls) = capture_dispatches(|| { + ops::evaluate(&streams, &outputs, gpu, false).unwrap() + }); + let count = if size.contains(&0) { 0 } else { 3 }; + assert_eq!( + calls + .iter() + .filter(|(n, _, _, _)| n.starts_with("compute_dynamic_offset_")) + .count(), + count + ); + assert_eq!( + calls + .iter() + .filter(|(n, _, _, _)| n.contains("_dynamic_copy")) + .count(), + count + ); + for (a, s) in outputs.iter().zip(c["shapes"].as_array().unwrap()) { + assert_eq!( + a.layout().shape(), + s.as_array() + .unwrap() + .iter() + .map(|n| n.as_i64().unwrap() as i32) + .collect::>() + ); + } + if keep && prepared && !size.contains(&0) { + assert_ne!(outputs[1].buffer().data_identity(), old.unwrap()); + } + if size.contains(&0) && prepared { + assert_eq!(outputs[1].buffer().data_identity(), old.unwrap()); + } + let out = outputs + .iter() + .map(|a| { + ops::contiguous( + &ops::astype(a, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap() + }) + .collect::>(); + ops::evaluate(&streams, &out, gpu, false).unwrap(); + let buffers = out.iter().map(Array::buffer).collect::>(); + verify_typed( + c["kernel"].as_str().unwrap(), + &out.iter() + .zip(&buffers) + .map(|(a, b)| (&**b, a.layout().size() as u32, 4)) + .collect::>(), + ); + drop(retained); + }); + } + } + } + // Original unqualified buffer donation retains metadata, even if an + // int32 vector becomes the internal int64[1] offset scratch. + for (scalar, prefix) in [(false, 0), (true, 0), (false, 8), (true, 8)] { + super::eval::execution_tests::observed(|| { + let scope = super::Scope::new().unwrap(); + let idx = if scalar { + Array::new( + &[], + Dtype::I64, + super::scalar_buffer(&3_i64.to_le_bytes()).unwrap(), + ) + .unwrap() + } else { + Array::new( + &[2], + Dtype::I32, + super::scalar_buffer(&[3_i32.to_le_bytes(), 4_i32.to_le_bytes()].concat()) + .unwrap(), + ) + .unwrap() + }; + if prefix != 0 { + let mut bytes = vec![0x5a; prefix + 8]; + idx.buffer().read(0, &mut bytes[prefix..]).unwrap(); + let l = idx.layout().clone(); + idx.set_strided_data( + super::scalar_buffer(&bytes).unwrap(), + l.size(), + l.strides(), + l.flags(), + prefix as i64, + ) + .unwrap(); + } + assert!(idx.is_donatable()); + let identity = idx.buffer().data_identity(); + let original_strides = idx.layout().strides().to_vec(); + let original_size = idx.data_size(); + let out = dynamic_offset(&idx, &[8, 1], if scalar { &[0] } else { &[0, 1] }).unwrap(); + assert_eq!(out.buffer().data_identity(), identity); + assert_eq!(out.data_size(), original_size); + assert_eq!(out.offset(), prefix as u64); + assert_eq!(out.layout().strides(), original_strides); + scope.synchronize().unwrap(); + let mut bytes = [0; 8]; + out.buffer().read(out.offset(), &mut bytes).unwrap(); + assert_eq!(i64::from_le_bytes(bytes), if scalar { 24 } else { 28 }); + if prefix != 0 { + out.buffer().read(0, &mut bytes).unwrap(); + assert_eq!(bytes, [0x5a; 8]); + } + }); + } +} + +// Joint collapse from backend/common/utils.cpp, with the same INT32_MAX cap +// and singleton boundaries; output is contiguous in the INPUT's shape. +#[cfg_attr(not(test), expect(dead_code, reason = "Reference diagnostic API"))] +fn reshape_copy_dims(src: &Layout) -> (Vec, Vec) { + let canonical = Layout::new(src.shape(), src.dtype()).expect("validated input layout"); + let (shape, mut strides) = collapse_joint(src.shape(), &[src.strides(), canonical.strides()]); + (shape, strides.remove(0)) +} + +pub(super) fn collapse_joint(dims: &[i32], inputs: &[&[i64]]) -> (Vec, Vec>) { + let mut shape = Vec::new(); + let mut strides = vec![Vec::new(); inputs.len()]; + let mut size = 1_i64; + let mut new_group = true; + for (i, &dim) in dims.iter().enumerate() { + size *= i64::from(dim); + if i > 0 + && (size > i64::from(i32::MAX) + || inputs + .iter() + .any(|s| s[i].checked_mul(i64::from(dim)) != Some(s[i - 1]))) + { + size = i64::from(dim); + new_group = true; + } + if dim != 1 { + if new_group { + shape.push(dim); + for (out, input) in strides.iter_mut().zip(inputs) { + out.push(input[i]); + } + } else { + *shape.last_mut().unwrap() *= dim; + for (out, input) in strides.iter_mut().zip(inputs) { + *out.last_mut().unwrap() = input[i]; + } + } + new_group = false; + } + } + if !dims.is_empty() && shape.is_empty() { + shape.push(1); + for out in &mut strides { + out.push(0); + } + } + (shape, strides) +} + +pub(super) fn reshape(input: &Array, output: &Array) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + if src.dtype() != dst.dtype() || src.size() != dst.size() { + return Err("Reshape size/type mismatch".into()); + } + if let Some(strides) = reshape_strides(&src, &dst) { + let mut flags = src.flags(); + if flags.row_contiguous { + flags.col_contiguous = + dst.size() <= 1 || dst.shape().iter().any(|&dim| dim as usize == dst.size()); + } + let data_size = input.data_size(); + drop(dst); + drop(src); + return output.copy_shared_buffer(input, &strides, flags, data_size, 0); + } + let nbytes = dst.nbytes(); + drop(dst); + drop(src); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + general_copy_inplace(input, output) +} + +pub(super) fn contiguous( + input: &Array, + output: &Array, + allow_col_major: bool, +) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + if src.shape() != dst.shape() || src.dtype() != dst.dtype() { + return Err("Contiguous shape/type mismatch".into()); + } + let nbytes = dst.nbytes(); + if input.buffer().allocation_bytes() as u128 <= nbytes as u128 + 16384 + && (src.flags().row_contiguous || (allow_col_major && src.flags().col_contiguous)) + { + let strides = src.strides().to_vec(); + let flags = src.flags(); + let data_size = input.data_size(); + drop(dst); + drop(src); + return output.copy_shared_buffer(input, &strides, flags, data_size, 0); + } + drop(dst); + drop(src); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + general_copy_inplace(input, output) +} + +pub(super) fn kernel_max_threads(name: &str) -> Result { + let name = std::ffi::CString::new(name).map_err(|e| e.to_string())?; + let max = unsafe { super::super::gpu::ds4_gpu_mtplx_kernel_max_threads(name.as_ptr()) }; + if max == 0 { + Err(format!("MTPLX pipeline unavailable: {name:?}")) + } else { + Ok(max) + } +} + +// metal/copy.cpp General copy, shared by Reshape, AsType and dtype View. +// Output storage is already allocated, contiguous, and has input.size elements. +pub(super) fn general_copy_inplace(input: &Array, output: &Array) -> Result<(), String> { + copy_inplace(input, output, None) +} + +fn copy_inplace( + input: &Array, + output: &Array, + full_output_size: Option, +) -> Result<(), String> { + copy_inplace_offsets(input, output, full_output_size, [None, None]) +} + +fn copy_inplace_offsets( + input: &Array, + output: &Array, + full_output_size: Option, + offsets: [Option<&Array>; 2], +) -> Result<(), String> { + let general_output = full_output_size.is_some(); + let output_data_size = full_output_size.unwrap_or_else(|| output.data_size()); + let src = input.layout(); + let dst = output.layout(); + if src.dtype() == Dtype::F64 || dst.dtype() == Dtype::F64 { + return Err("float64 is not supported on the GPU".into()); + } + if dst.size() == 0 { + return Ok(()); + } + let canonical = Layout::new(src.shape(), dst.dtype())?; + if general_output && src.shape() != dst.shape() { + return Err("GeneralGeneral copy shape mismatch".into()); + } + let (shape, strides) = collapse_joint( + src.shape(), + &[ + src.strides(), + if general_output { + dst.strides() + } else { + canonical.strides() + }, + ], + ); + let ndim = i32::try_from(shape.len()).map_err(|_| "Reshape copy rank overflow")?; + let large = input.data_size() > i32::MAX as usize || output_data_size > i32::MAX as usize; + let work = if ndim > 3 { + if large { 4 } else { 2 } + } else { + 1 + }; + let suffix = if ndim > 3 { + format!("n{work}") + } else { + ndim.to_string() + }; + let name = format!( + "g{}{suffix}{}{}_copy{}{}", + if general_output { "g" } else { "" }, + if large { "large" } else { "" }, + if offsets.iter().any(Option::is_some) { + "_dynamic" + } else { + "" + }, + src.dtype().kernel_name(), + dst.dtype().kernel_name() + ); + if kernel_max_threads(&name)? != 1024 { + return Err("[Metal::copy] Must use 1024 sized block".into()); + } + let dim0 = shape.last().copied().unwrap_or(1) as usize; + let dim1 = shape.iter().rev().nth(1).copied().unwrap_or(1) as usize; + let rest = src.size() / (dim0 * dim1); + let grid = [dim0.div_ceil(work), dim1, rest] + .map(|dim| u32::try_from(dim).map_err(|_| "Reshape copy grid overflow")); + let grid = [grid[0]?, grid[1]?, grid[2]?]; + drop(dst); + drop(src); + let source = input.buffer(); + let target = output.buffer(); + let mut bindings = vec![ + super::tensor(0, &source) + .at_byte_offset(input.offset()) + .input(input.data_size()), + super::tensor(1, &target) + .at_byte_offset(output.offset()) + .output(output_data_size), + super::bytes(3, strides[0].as_slice()), + ]; + if general_output { + bindings.push(super::bytes(4, strides[1].as_slice())); + } + if ndim > 3 { + bindings.push(super::bytes(2, shape.as_slice())); + bindings.push(super::bytes(5, &ndim)); + } + let zero = 0_i64; + let buffers = offsets.map(|a| a.map(Array::buffer)); + if offsets.iter().any(Option::is_some) { + for i in 0..2 { + bindings.push(match (&buffers[i], offsets[i]) { + (Some(b), Some(a)) => super::tensor(i as u32 + 6, b) + .at_byte_offset(a.offset()) + .input(a.data_size()), + _ => super::bytes(i as u32 + 6, &zero), + }); + } + } + super::dispatch_geometry(&name, &bindings, &[], grid, super::block_dims(grid), true) +} + +/// Original slicing.cpp offset kernel, including last-use index donation. +pub(super) fn dynamic_offset( + indices: &Array, + strides: &[i64], + axes: &[usize], +) -> Result { + let dtype = indices.layout().dtype(); + let kind = match dtype { + Dtype::I8 => "int8_t", + Dtype::U8 => "uint8_t", + Dtype::I16 => "int16_t", + Dtype::U16 => "uint16_t", + Dtype::I32 => "int32_t", + Dtype::U32 => "uint32_t", + Dtype::I64 => "int64_t", + Dtype::U64 => "uint64_t", + _ => return Err("dynamic slice indices must be integers".into()), + }; + let output = Array::unallocated(&[1], Dtype::I64)?; + if indices.is_donatable() && indices.data_size() * dtype.itemsize() >= 8 { + output.copy_shared_buffer_default(indices)?; + } else { + output.set_data(Buffer::mtplx_bytes(8)?)?; + super::encoder::add_temporaries(std::slice::from_ref(&*output.buffer())); + } + let name = format!("compute_dynamic_offset_{}", dtype.kernel_name()); + super::compile_custom(&name, || { + let r: serde_json::Value = serde_json::from_str(include_str!( + "../../../../tests/fixtures/mtplx-qsa-update-jit.json" + )) + .map_err(|e| e.to_string())?; + let body = r[2]["kernels"] + .as_str() + .ok_or("missing original dynamic offset source")?; + let body = body + .replace("compute_dynamic_offset_int32", &name) + .replace("const int32_t* indices", &format!("const {kind}* indices")); + Ok(format!( + "#include \nusing namespace metal;\n{body}" + )) + })?; + let axes = axes.iter().map(|&n| n as i32).collect::>(); + super::dispatch_geometry( + &name, + &[ + super::tensor(0, &indices.buffer()) + .at_byte_offset(indices.offset()) + .input(indices.data_size()), + super::tensor(1, &output.buffer()) + .at_byte_offset(output.offset()) + .output(output.data_size()), + super::bytes(2, strides), + super::bytes(3, axes.as_slice()), + super::bytes(4, &(axes.len() as i32)), + ], + &[], + [1; 3], + [1; 3], + true, + )?; + Ok(output) +} + +pub(super) fn dynamic_slice( + input: &Array, + indices: &Array, + output: &Array, + axes: &[usize], +) -> Result<(), String> { + let l = output.layout(); + let shape = l.shape().to_vec(); + let nbytes = l.nbytes(); + drop(l); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + if nbytes == 0 { + return Ok(()); + } + let l = input.layout(); + let offset = dynamic_offset(indices, l.strides(), axes)?; + let source = Array::unallocated(&shape, l.dtype())?; + source.copy_shared_buffer(input, l.strides(), l.flags(), input.data_size(), 0)?; + drop(l); + copy_inplace_offsets( + &source, + output, + Some(output.data_size()), + [Some(&offset), None], + ) +} + +pub(super) fn dynamic_slice_update( + input: &Array, + update: &Array, + indices: &Array, + output: &Array, + axes: &[usize], +) -> Result<(), String> { + if output.layout().size() == 0 { + return output.set_data(Buffer::mtplx_bytes(0)?); + } + if update.layout().size() == 0 { + return output.copy_shared_buffer_default(input); + } + let vector = input.layout().flags().contiguous && input.layout().size() == input.data_size(); + copy_gpu(input, output, vector)?; + let l = output.layout(); + let offset = dynamic_offset(indices, l.strides(), axes)?; + let target = Array::unallocated(update.layout().shape(), l.dtype())?; + target.copy_shared_buffer(output, l.strides(), l.flags(), output.data_size(), 0)?; + drop(l); + copy_inplace_offsets( + update, + &target, + Some(output.data_size()), + [None, Some(&offset)], + ) +} + +pub(super) fn concatenate(inputs: &[Array], output: &Array, axis: usize) -> Result<(), String> { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + let strides = output.layout().strides().to_vec(); + let flags = super::array::Flags { + contiguous: false, + row_contiguous: false, + col_contiguous: false, + }; + let _concurrent = super::encoder::concurrent_scope(); + let mut prefix = 0_i64; + for input in inputs { + let layout = input.layout(); + let slice = Array::unallocated(layout.shape(), layout.dtype())?; + slice.copy_shared_buffer( + output, + &strides, + flags, + layout.size(), + prefix * strides[axis], + )?; + prefix += i64::from(layout.shape()[axis]); + drop(layout); + copy_inplace(input, &slice, Some(output.data_size()))?; + } + Ok(()) +} + +// utils.cpp::get_2d_grid_dims_common(shape, strides, divisor), used only when +// Vector copy exceeds UINT32_MAX. Keep the reference's strict '<' boundary. +pub(super) fn large_copy_grid(layout: &Layout, divisor: usize) -> Result<[u32; 3], String> { + shape_grid(layout.shape(), layout.strides(), divisor) +} + +pub(super) fn shape_grid( + shape: &[i32], + strides: &[i64], + mut divisor: usize, +) -> Result<[u32; 3], String> { + let (mut x, mut y) = (1_usize, 1_usize); + for (&dim, &stride) in shape.iter().zip(strides) { + if stride == 0 { + continue; + } + let dim = dim as usize; + if divisor.is_multiple_of(dim) { + divisor /= dim; + continue; + } + if x * dim < u32::MAX as usize { + x *= dim; + } else { + y *= dim; + } + if divisor > 1 { + if x.is_multiple_of(divisor) { + x /= divisor; + divisor = 1; + } else if y.is_multiple_of(divisor) { + y /= divisor; + divisor = 1; + } + } + } + if x > u32::MAX as usize || y > u32::MAX as usize { + return Err("Unable to safely factor shape".into()); + } + if y > x { + std::mem::swap(&mut x, &mut y); + } + if divisor > 1 { + x = x.div_ceil(divisor) * divisor; + } + Ok([x as u32, y as u32, 1]) +} + +// backend/common/unary.h; also the allocation rules used by Vector copy. +pub(super) fn can_donate(input: &Array, output: &Array) -> bool { + input.is_donatable() + && input.itemsize() == output.itemsize() + && input.buffer().allocation_bytes() as u128 <= output.layout().nbytes() as u128 + 16384 +} + +pub(super) fn set_unary_output_data(input: &Array, output: &Array) -> Result { + let src = input.layout(); + let dst = output.layout(); + if src.shape() != dst.shape() { + return Err("unary output shape mismatch".into()); + } + if src.dtype() == Dtype::F64 || dst.dtype() == Dtype::F64 { + return Err("float64 is not supported on the GPU".into()); + } + let vector = src.flags().contiguous; + let donated = vector && can_donate(input, output); + let strides = src.strides().to_vec(); + let flags = src.flags(); + let data_size = input.data_size(); + let nbytes = if vector { + data_size + .checked_mul(dst.dtype().itemsize()) + .ok_or("unary output byte size overflow")? + } else { + dst.nbytes() + }; + drop(dst); + drop(src); + if donated { + output.copy_shared_buffer(input, &strides, flags, data_size, 0)?; + } else if vector { + output.set_strided_data( + Buffer::mtplx_bytes(nbytes as u64)?, + data_size, + &strides, + flags, + 0, + )?; + } else { + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + } + Ok(donated) +} + +pub(super) fn astype(input: &Array, output: &Array) -> Result<(), String> { + let vector = input.layout().flags().contiguous; + let same_dtype = input.layout().dtype() == output.layout().dtype(); + let donated = set_unary_output_data(input, output)?; + if donated && same_dtype { + return Ok(()); + } + if output.layout().size() == 0 { + return Ok(()); + } + if !vector { + return general_copy_inplace(input, output); + } + flat_copy_inplace(input, output, false) +} + +pub(super) fn flat_copy_inplace(input: &Array, output: &Array, scalar: bool) -> Result<(), String> { + let data_size = output.data_size(); + if output.layout().size() == 0 { + return Ok(()); + } + let dtype = output.layout().dtype(); + let work = if data_size < 1 << 16 { + 1 + } else { + (8 / dtype.itemsize()).max(1) + }; + let large = data_size > u32::MAX as usize; + let name = format!( + "{}{}_copy{}{}", + if scalar { "s" } else { "v" }, + if large { + "2" + } else if work > 1 { + "n" + } else { + "" + }, + input.layout().dtype().kernel_name(), + dtype.kernel_name() + ); + let threads = (kernel_max_threads(&name)? as usize).min(data_size.div_ceil(work)) as u32; + let grid = if large { + large_copy_grid(&output.layout(), work)? + } else { + [data_size.div_ceil(work) as u32, 1, 1] + }; + let source = input.buffer(); + let target = output.buffer(); + let n64 = data_size as i64; + let n32 = data_size as i32; + super::dispatch_geometry( + &name, + &[ + super::tensor(0, &source) + .at_byte_offset(input.offset()) + .input(input.data_size()), + super::tensor(1, &target) + .at_byte_offset(output.offset()) + .output(data_size), + if large { + super::bytes(2, &n64) + } else { + super::bytes(2, &n32) + }, + ], + &[], + grid, + [threads, 1, 1], + true, + ) +} + +pub(super) fn copy_gpu(input: &Array, output: &Array, vector: bool) -> Result<(), String> { + if input.data_size() == 1 { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + flat_copy_inplace(input, output, true) + } else if vector { + astype(input, output) + } else { + let nbytes = output.layout().nbytes(); + output.set_data(Buffer::mtplx_bytes(nbytes as u64)?)?; + general_copy_inplace(input, output) + } +} + +pub(super) fn full(input: &Array, output: &Array) -> Result<(), String> { + copy_gpu(input, output, input.layout().flags().contiguous) +} + +pub(super) fn slice_update( + input: &Array, + update: &Array, + output: &Array, + starts: &[i32], + steps: &[i32], +) -> Result<(), String> { + if output.layout().size() == 0 { + return output.set_data(Buffer::mtplx_bytes(0)?); + } + if update.layout().size() == 0 { + let l = input.layout(); + return output.copy_shared_buffer(input, l.strides(), l.flags(), input.data_size(), 0); + } + let vector = input.layout().flags().contiguous && input.layout().size() == input.data_size(); + copy_gpu(input, output, vector)?; + let target = Array::unallocated(update.layout().shape(), output.layout().dtype())?; + slice(output, &target, starts, steps)?; + copy_inplace(update, &target, Some(output.data_size())) +} + +pub(super) fn dtype_view(input: &Array, output: &Array) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + let ibytes = src.dtype().itemsize(); + let obytes = dst.dtype().itemsize(); + let mut shape = src.shape().to_vec(); + if ibytes != obytes { + let last = shape + .last_mut() + .ok_or("View cannot change scalar itemsize")?; + let bytes = i64::from(*last) * ibytes as i64; + if bytes % obytes as i64 != 0 { + return Err("View last axis byte size mismatch".into()); + } + *last = i32::try_from(bytes / obytes as i64).map_err(|_| "View shape overflow")?; + } + if shape != dst.shape() { + return Err("View shape mismatch".into()); + } + if src.dtype() == Dtype::F64 || dst.dtype() == Dtype::F64 { + return Err("float64 is not supported on the GPU".into()); + } + if ibytes == obytes + || (obytes < ibytes && src.strides().last() == Some(&1)) + || src.flags().row_contiguous + { + let mut strides = src.strides().to_vec(); + let outer = strides.len().saturating_sub(1); + for stride in &mut strides[..outer] { + *stride = stride + .checked_mul(ibytes as i64) + .ok_or("View stride overflow")? + / obytes as i64; + } + let flags = src.flags(); + let data_size = input + .data_size() + .checked_mul(ibytes) + .ok_or("View data size overflow")? + / obytes; + drop(dst); + drop(src); + return output.copy_shared_buffer(input, &strides, flags, data_size, 0); + } + let temporary = Array::new( + src.shape(), + src.dtype(), + Buffer::mtplx_bytes(src.nbytes() as u64)?, + )?; + let strides = dst.strides().to_vec(); + let size = dst.size(); + let mut flags = dst.flags(); + flags.contiguous = true; + flags.row_contiguous = true; + flags.col_contiguous = size <= 1 || dst.shape().iter().any(|&dim| dim as usize == size); + drop(dst); + drop(src); + general_copy_inplace(input, &temporary)?; + output.copy_shared_buffer(&temporary, &strides, flags, size, 0) +} + +#[test] +#[ignore = "requires Apple Metal; original conversion/view kernels and donation in lazy eval"] +fn mtplx_dtype_conversion_and_views_preserve_values_layout_and_donation() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, eval, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let make = |input: &Array, shape: &[i32], dtype| { + Array::make_arrays( + gpu, + std::slice::from_ref(input), + &[Layout::new(shape, dtype).unwrap()], + ) + .unwrap() + .pop() + .unwrap() + }; + let encode = |dtype: Dtype, count: usize| { + let mut values = Vec::with_capacity(count * dtype.itemsize()); + for i in 0..count { + let one = i % 2 != 0; + let bits: u64 = match dtype { + Dtype::F16 => { + if one { + 0x3c00 + } else { + 0 + } + } + Dtype::BF16 => { + if one { + 0x3f80 + } else { + 0 + } + } + Dtype::F32 | Dtype::C64 => { + if one { + 0x3f800000 + } else { + 0 + } + } + _ => u64::from(one), + }; + values.extend_from_slice(&bits.to_le_bytes()[..dtype.itemsize()]); + } + values + }; + let new = |shape: &[i32], dtype: Dtype| { + let layout = Layout::new(shape, dtype).unwrap(); + let buffer = Buffer::mtplx_bytes(layout.nbytes() as u64).unwrap(); + buffer.write(0, &encode(dtype, layout.size())).unwrap(); + Array::new(shape, dtype, buffer).unwrap() + }; + let types = [ + Dtype::Bool, + Dtype::U8, + Dtype::U16, + Dtype::U32, + Dtype::U64, + Dtype::I8, + Dtype::I16, + Dtype::I32, + Dtype::I64, + Dtype::F16, + Dtype::F32, + Dtype::BF16, + Dtype::C64, + ]; + for from in types { + for to in types { + let input = new(&[2], from); + let output = make(&input, &[2], to); + eval::evaluate( + &streams, + std::slice::from_ref(&output), + gpu, + false, + |_, _, inputs, outputs| astype(&inputs[0], &outputs[0]), + ) + .unwrap(); + let mut actual = vec![0; 2 * to.itemsize()]; + output.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, encode(to, 2), "{from:?} -> {to:?}"); + assert_ne!( + output.buffer().data_identity(), + input.buffer().data_identity() + ); + } + } + // Vector work-per-thread switches at 65536, using destination width. + for count in [65535, 65536, 65537] { + let input = new(&[count], Dtype::BF16); + let output = make(&input, &[count], Dtype::F32); + eval::evaluate( + &streams, + std::slice::from_ref(&output), + gpu, + false, + |_, _, inputs, outputs| astype(&inputs[0], &outputs[0]), + ) + .unwrap(); + let mut actual = vec![0; count as usize * 4]; + output.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, encode(Dtype::F32, count as usize)); + } + // Last-consumer donation converts in place, but never reinterprets + // the FP32 bits as integer bits. Same-type forced copy skips dispatch. + for to in [Dtype::I32, Dtype::F32] { + let input = new(&[4], Dtype::F32); + let identity = input.buffer().data_identity(); + let output = make(&input, &[4], to); + drop(input); + eval::evaluate( + &streams, + std::slice::from_ref(&output), + gpu, + false, + |_, _, inputs, outputs| { + assert!(inputs[0].is_donatable()); + astype(&inputs[0], &outputs[0]) + }, + ) + .unwrap(); + assert_eq!(output.buffer().data_identity(), identity); + let mut actual = [0; 16]; + output.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), encode(to, 4)); + } + let input = new(&[4], Dtype::U8); + let reversed = make(&input, &[4], Dtype::U8); + let reverse_id = reversed.id(); + let converted = make(&reversed, &[4], Dtype::F32); + drop(input); + drop(reversed); + eval::evaluate( + &streams, + std::slice::from_ref(&converted), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == reverse_id { + slice(&inputs[0], &outputs[0], &[3], &[-1]) + } else { + astype(&inputs[0], &outputs[0]) + } + }, + ) + .unwrap(); + let mut actual = [0; 16]; + converted.buffer().read(0, &mut actual).unwrap(); + assert_eq!( + actual.as_slice(), + [1_f32, 0., 1., 0.] + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>() + ); + + // Contiguous includes column-contiguous and broadcast physical data; + // AsType preserves their strides/flags rather than densifying them. + for broadcast_case in [false, true] { + let shape = if broadcast_case { [1, 2] } else { [2, 2] }; + let input = new(&shape, Dtype::U8); + let view = make(&input, &[2, 2], Dtype::U8); + let view_id = view.id(); + let output = make(&view, &[2, 2], Dtype::F32); + drop(input); + drop(view); + eval::evaluate( + &streams, + std::slice::from_ref(&output), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == view_id { + if broadcast_case { + broadcast(&inputs[0], &outputs[0]) + } else { + transpose(&inputs[0], &outputs[0], &[1, 0]) + } + } else { + astype(&inputs[0], &outputs[0]) + } + }, + ) + .unwrap(); + assert_eq!( + output.layout().strides(), + if broadcast_case { [0, 1] } else { [1, 2] } + ); + assert_eq!(output.data_size(), if broadcast_case { 2 } else { 4 }); + let mut actual = vec![0; output.data_size() * 4]; + output.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, encode(Dtype::F32, output.data_size())); + } + + let bytes = Buffer::mtplx_bytes(8).unwrap(); + bytes.write(0, &[0, 1, 2, 3, 4, 5, 6, 7]).unwrap(); + let input = Array::new(&[2, 4], Dtype::U8, bytes).unwrap(); + let shared = make(&input, &[2, 2], Dtype::U16); + dtype_view(&input, &shared).unwrap(); + assert_eq!( + shared.buffer().data_identity(), + input.buffer().data_identity() + ); + assert_eq!(shared.layout().strides(), [2, 1]); + let transposed = make(&input, &[4, 2], Dtype::U8); + let transposed_id = transposed.id(); + let copied = make(&transposed, &[4, 1], Dtype::U16); + drop(transposed); + eval::evaluate( + &streams, + std::slice::from_ref(&copied), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == transposed_id { + transpose(&inputs[0], &outputs[0], &[1, 0]) + } else { + dtype_view(&inputs[0], &outputs[0]) + } + }, + ) + .unwrap(); + assert_ne!( + copied.buffer().data_identity(), + input.buffer().data_identity() + ); + let mut actual = [0; 8]; + copied.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, [0, 4, 1, 5, 2, 6, 3, 7]); + assert_eq!(copied.layout().strides(), [1, 1]); + + let base = new(&[3, 4], Dtype::U16); + let strided = make(&base, &[2, 4], Dtype::U16); + slice(&base, &strided, &[0, 0], &[2, 1]).unwrap(); + let smaller = make(&strided, &[2, 8], Dtype::U8); + dtype_view(&strided, &smaller).unwrap(); + assert_eq!( + smaller.buffer().data_identity(), + base.buffer().data_identity() + ); + assert_eq!(smaller.layout().strides(), [16, 1]); + assert_eq!(smaller.data_size(), 24); + let invalid = make(&base, &[3, 3], Dtype::U32); + assert!(dtype_view(&base, &invalid).is_err()); + assert!(astype(&base, &invalid).is_err()); + assert!(!invalid.has_data()); + let empty = new(&[0, 2], Dtype::F32); + let out_empty = make(&empty, &[0, 2], Dtype::BF16); + astype(&empty, &out_empty).unwrap(); + assert_eq!(out_empty.data_size(), 0); + let scalar = new(&[], Dtype::U32); + let same_width = make(&scalar, &[], Dtype::F32); + dtype_view(&scalar, &same_width).unwrap(); + assert_eq!( + same_width.buffer().data_identity(), + scalar.buffer().data_identity() + ); + let smaller_scalar = make(&scalar, &[], Dtype::U16); + assert!(dtype_view(&scalar, &smaller_scalar).is_err()); + assert!(!smaller_scalar.has_data()); + // Check wide-index geometry without allocating a multi-GB array. + let large = Layout::new(&[65536, 65536], Dtype::U8).unwrap(); + assert_eq!(large_copy_grid(&large, 8).unwrap(), [536870912, 1, 1]); + assert_eq!(large_copy_grid(&large, 1).unwrap(), [65536, 65536, 1]); + assert_eq!( + kernel_max_threads("gn4large_copybfloat16float32").unwrap(), + 1024 + ); + assert_eq!(kernel_max_threads("v2_copybfloat16float32").unwrap(), 1024); + streams.clear_streams().unwrap(); + }); +} + +#[test] +#[ignore = "requires Apple Metal; original Reshape copy kernels and shared backing"] +fn mtplx_reshape_shares_or_copies_in_the_connected_evaluator() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, eval, + stream::{Device, Streams}, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let make = |input: &Array, shape: &[i32]| { + Array::make_arrays( + gpu, + std::slice::from_ref(input), + &[Layout::new(shape, input.layout().dtype()).unwrap()], + ) + .unwrap() + .pop() + .unwrap() + }; + // All GPU dtypes; g2, g3 and gn2, with nonzero base offsets. Readback + // is independently indexed in logical order, not produced by our copy. + for dtype in [ + Dtype::Bool, + Dtype::U8, + Dtype::U16, + Dtype::U32, + Dtype::U64, + Dtype::I8, + Dtype::I16, + Dtype::I32, + Dtype::I64, + Dtype::F16, + Dtype::F32, + Dtype::BF16, + Dtype::C64, + ] { + for dims in [ + &[2, 3][..], + &[2, 1, 3][..], + &[2, 3, 2][..], + &[2, 3, 2, 3, 2][..], + ] { + let layout = Layout::new(dims, dtype).unwrap(); + let width = dtype.itemsize(); + let values: Vec = (0..layout.nbytes()) + .map(|i| { + if dtype == Dtype::Bool { + (i % 2) as u8 + } else { + (32 + i % 31) as u8 + } + }) + .collect(); + let buffer = Buffer::mtplx_bytes((layout.nbytes() + width) as u64).unwrap(); + buffer.write(width as u64, &values).unwrap(); + let input = Array::new(dims, dtype, buffer).unwrap(); + let flags = input.layout().flags(); + input + .copy_shared_buffer(&input, layout.strides(), flags, layout.size(), 1) + .unwrap(); + let axes: Vec<_> = (0..dims.len()).rev().collect(); + let transposed_shape: Vec<_> = dims.iter().rev().copied().collect(); + let view = make(&input, &transposed_shape); + let view_id = view.id(); + let output = make(&view, &[layout.size() as i32]); + let identity = input.buffer().data_identity(); + drop(input); + drop(view); + eval::evaluate( + &streams, + std::slice::from_ref(&output), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == view_id { + transpose(&inputs[0], &outputs[0], &axes) + } else { + assert!( + reshape_strides(&inputs[0].layout(), &outputs[0].layout()) + .is_none() + ); + let (shape, _) = reshape_copy_dims(&inputs[0].layout()); + assert_eq!(shape.len(), dims.iter().filter(|&&dim| dim != 1).count()); + reshape(&inputs[0], &outputs[0]) + } + }, + ) + .unwrap(); + assert_ne!(output.buffer().data_identity(), identity); + assert_eq!(output.offset(), 0); + let mut actual = vec![0; layout.nbytes()]; + output.buffer().read(0, &mut actual).unwrap(); + for i in 0..layout.size() { + let mut remainder = i; + let mut original = 0; + for axis in (0..axes.len()).rev() { + let coordinate = remainder % transposed_shape[axis] as usize; + remainder /= transposed_shape[axis] as usize; + original += coordinate * layout.strides()[axes[axis]] as usize; + } + assert_eq!( + &actual[i * width..(i + 1) * width], + &values[original * width..(original + 1) * width], + "{dtype:?} {dims:?} element {i}" + ); + } + } + } + + let base = Array::new(&[6], Dtype::BF16, Buffer::mtplx_bytes(12).unwrap()).unwrap(); + let reverse = make(&base, &[6]); + slice(&base, &reverse, &[5], &[-1]).unwrap(); + let reshaped = make(&reverse, &[2, 1, 3]); + let before = streams.allocator().unwrap().stats(); + reshape(&reverse, &reshaped).unwrap(); + assert_eq!(reshaped.layout().strides(), [-3, -3, -1]); + assert_eq!(reshaped.offset(), 10); + assert_eq!(reshaped.layout().flags(), reverse.layout().flags()); + assert_eq!( + reshaped.buffer().data_identity(), + base.buffer().data_identity() + ); + assert_eq!(streams.allocator().unwrap().stats(), before); + + let scalar = Array::new(&[], Dtype::BF16, Buffer::mtplx_bytes(2).unwrap()).unwrap(); + let expanded = make(&scalar, &[2, 3]); + broadcast(&scalar, &expanded).unwrap(); + let flat = make(&expanded, &[6, 1]); + reshape(&expanded, &flat).unwrap(); + assert_eq!(flat.layout().strides(), [0, 0]); + assert_eq!(flat.data_size(), 1); + assert_eq!( + flat.buffer().data_identity(), + scalar.buffer().data_identity() + ); + let unit = make(&scalar, &[1, 1]); + reshape(&scalar, &unit).unwrap(); + assert_eq!(unit.layout().strides(), [1, 1]); + + // A broadcast with nonuniform elements is NOT a scalar reshape: it + // must use General copy, even though its backing is only three bytes. + let row_buffer = Buffer::mtplx_bytes(3).unwrap(); + row_buffer.write(0, &[7, 8, 9]).unwrap(); + let row = Array::new(&[1, 3], Dtype::U8, row_buffer).unwrap(); + let repeated = make(&row, &[2, 3]); + let repeated_id = repeated.id(); + let linear = make(&repeated, &[6]); + drop(row); + drop(repeated); + eval::evaluate( + &streams, + std::slice::from_ref(&linear), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == repeated_id { + broadcast(&inputs[0], &outputs[0]) + } else { + reshape(&inputs[0], &outputs[0]) + } + }, + ) + .unwrap(); + let mut actual = [0; 6]; + linear.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, [7, 8, 9, 7, 8, 9]); + + let empty = Array::new(&[0, 2], Dtype::BF16, Buffer::mtplx_bytes(0).unwrap()).unwrap(); + let other_empty = make(&empty, &[3, 0, 1]); + reshape(&empty, &other_empty).unwrap(); + assert_eq!( + other_empty.buffer().data_identity(), + empty.buffer().data_identity() + ); + assert_eq!(other_empty.layout().strides(), [0, 1, 1]); + let bad = make(&base, &[7]); + assert!(reshape(&base, &bad).is_err()); + assert!(!bad.has_data()); + streams.clear_streams().unwrap(); + }); +} + +#[test] +#[ignore = "requires Apple Metal; connected zero-copy views and offset-aware original copy kernel"] +fn mtplx_views_preserve_aliases_offsets_strides_and_gpu_output() { + super::eval::execution_tests::observed(|| { + use super::super::gpu::Context; + use super::{ + allocator, + array::{Dtype, Layout}, + bytes, configure_sources, dispatch_geometry, eval, + stream::{Device, Streams}, + tensor, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cpu = streams.default_stream(Device::Cpu).unwrap(); + let make = |stream, input: &Array, shape: &[i32]| { + Array::make_arrays( + stream, + std::slice::from_ref(input), + &[Layout::new(shape, Dtype::BF16).unwrap()], + ) + .unwrap() + .pop() + .unwrap() + }; + let storage = Buffer::mtplx_bytes(12).unwrap(); + let source_bytes: Vec = [0x3f80_u16, 0x4000, 0x4040, 0x4080, 0x40a0, 0x40c0] + .into_iter() + .flat_map(u16::to_le_bytes) + .collect(); + storage.write(0, &source_bytes).unwrap(); + let base = Array::new(&[2, 3], Dtype::BF16, storage).unwrap(); + let weak = base.downgrade(); + let reverse = make(gpu, &base, &[2, 3]); + let reverse_id = reverse.id(); + let transposed = make(gpu, &reverse, &[3, 2]); + let transposed_id = transposed.id(); + let picked = make(gpu, &transposed, &[1, 2]); + let picked_id = picked.id(); + let expanded = make(gpu, &picked, &[4, 2]); + let expanded_id = expanded.id(); + let out = make(gpu, &expanded, &[4, 2]); + drop(base); + drop(reverse); + drop(transposed); + drop(expanded); + let before = streams.allocator().unwrap().stats(); + eval::evaluate( + &streams, + std::slice::from_ref(&out), + gpu, + false, + |array, _, inputs, outputs| { + let input = &inputs[0]; + let output = &outputs[0]; + match array.id() { + id if id == reverse_id => { + slice(input, output, &[1, 2], &[-1, -1])?; + assert_eq!(output.offset(), 10); + assert_eq!(output.layout().strides(), [-3, -1]); + } + id if id == transposed_id => { + transpose(input, output, &[1, 0])?; + assert_eq!(output.offset(), 10); + assert_eq!(output.layout().strides(), [-1, -3]); + } + id if id == picked_id => { + slice(input, output, &[1, 0], &[1, 1])?; + assert_eq!(output.offset(), 8); + assert_eq!(output.layout().strides(), [-1, -3]); + } + id if id == expanded_id => { + broadcast(input, output)?; + assert_eq!(output.offset(), 8); + assert_eq!(output.layout().strides(), [0, -3]); + } + _ => { + assert_eq!( + streams.allocator().unwrap().stats(), + before, + "views allocate no GPU storage" + ); + let target = Buffer::mtplx_bytes(output.layout().nbytes() as u64)?; + let source = input.buffer(); + let layout = input.layout(); + dispatch_geometry( + "gg2_copybfloat16bfloat16", + &[ + tensor(0, &source) + .at_byte_offset(input.offset()) + .input(input.data_size()), + tensor(1, &target).output(output.layout().size()), + bytes(3, &[layout.strides()[0], layout.strides()[1]]), + bytes(4, &[2_i64, 1]), + ], + &[], + [2, 4, 1], + [2, 4, 1], + true, + )?; + output.set_data(target)?; + return Ok(()); + } + } + assert_eq!( + output.buffer().data_identity(), + input.buffer().data_identity() + ); + Ok(()) + }, + ) + .unwrap(); + assert!(weak.upgrade().is_none()); + let mut actual = [0_u8; 16]; + out.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual.as_slice(), &[0xa0, 0x40, 0, 0x40].repeat(4)); + + // A positive-offset view crosses GPU -> CPU. Fast-Fence runs must bind the + // coherent kernel to that offset too; its rounded word stays in the backing. + let point = make(gpu, &picked, &[1, 1]); + let point_id = point.id(); + let cpu_point = make(cpu, &point, &[1, 1]); + eval::evaluate( + &streams, + std::slice::from_ref(&cpu_point), + gpu, + false, + |array, _, inputs, outputs| { + if array.id() == point_id { + slice(&inputs[0], &outputs[0], &[0, 0], &[1, 1]) + } else { + let layout = inputs[0].layout(); + outputs[0].copy_shared_buffer( + &inputs[0], + layout.strides(), + layout.flags(), + inputs[0].data_size(), + 0, + ) + } + }, + ) + .unwrap(); + assert_eq!(cpu_point.offset(), 8); + let mut value = [0; 2]; + cpu_point + .buffer() + .read(cpu_point.offset(), &mut value) + .unwrap(); + assert_eq!(value, [0xa0, 0x40]); + + let empty = make(gpu, &picked, &[0, 2]); + slice(&picked, &empty, &[0, 0], &[1, 1]).unwrap(); + assert_eq!(empty.offset(), 0); + assert_eq!(empty.data_size(), 0); + assert_ne!( + empty.buffer().data_identity(), + picked.buffer().data_identity() + ); + let bempty = make(gpu, &picked, &[0, 2]); + broadcast(&picked, &bempty).unwrap(); + assert_eq!(bempty.data_size(), 0); + assert_ne!( + bempty.buffer().data_identity(), + picked.buffer().data_identity() + ); + let bad = make(gpu, &picked, &[3, 3]); + assert!(broadcast(&picked, &bad).is_err()); + assert!(transpose(&picked, &bad, &[0, 0]).is_err()); + assert!(slice(&picked, &bad, &[0, 0], &[1, 1]).is_err()); + assert!(!bad.has_data()); + streams.clear_streams().unwrap(); + }); +} + +pub(super) fn slice( + input: &Array, + output: &Array, + starts: &[i32], + steps: &[i32], +) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + if src.dtype() != dst.dtype() + || starts.len() != src.shape().len() + || steps.len() != starts.len() + || dst.shape().len() != starts.len() + || steps.contains(&0) + { + return Err("invalid Slice geometry".into()); + } + if dst.size() == 0 { + drop(dst); + drop(src); + return output.set_data(Buffer::mtplx_bytes(0)?); + } + let mut offset = 0_i64; + let mut strides = Vec::with_capacity(starts.len()); + for i in 0..starts.len() { + let last = i64::from(starts[i]) + i64::from(steps[i]) * i64::from(dst.shape()[i] - 1); + if starts[i] < 0 + || starts[i] >= src.shape()[i] + || last < 0 + || last >= i64::from(src.shape()[i]) + { + return Err("Slice indices exceed input shape".into()); + } + offset = i64::from(starts[i]) + .checked_mul(src.strides()[i]) + .and_then(|n| offset.checked_add(n)) + .ok_or("Slice offset overflow")?; + strides.push( + src.strides()[i] + .checked_mul(i64::from(steps[i])) + .ok_or("Slice stride overflow")?, + ); + } + let (lo, hi) = dst.span(&strides)?; + let data_size = hi + .checked_sub(lo) + .and_then(|n| n.checked_add(1)) + .and_then(|n| usize::try_from(n).ok()) + .ok_or("Slice data size overflow")?; + let (no_broadcast, row, col) = dst.contiguity(&strides)?; + let mut flags = src.flags(); + flags.row_contiguous = row; + flags.col_contiguous = col; + flags.contiguous = no_broadcast == data_size; + drop(dst); + drop(src); + output.copy_shared_buffer(input, &strides, flags, data_size, offset) +} + +pub(super) fn broadcast(input: &Array, output: &Array) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + let diff = dst + .shape() + .len() + .checked_sub(src.shape().len()) + .ok_or("Broadcast rank mismatch")?; + if src.dtype() != dst.dtype() + || src + .shape() + .iter() + .zip(&dst.shape()[diff..]) + .any(|(&a, &b)| a != 1 && a != b) + { + return Err("incompatible Broadcast shape".into()); + } + if dst.size() == 0 { + drop(dst); + drop(src); + return output.set_data(Buffer::mtplx_bytes(0)?); + } + let mut strides = vec![0; dst.shape().len()]; + for i in 0..src.shape().len() { + strides[i + diff] = if src.shape()[i] == 1 { + 0 + } else { + src.strides()[i] + }; + } + let mut flags = src.flags(); + if dst.size() > src.size() { + flags.row_contiguous = false; + flags.col_contiguous = false; + } + let data_size = input.data_size(); + drop(dst); + drop(src); + output.copy_shared_buffer(input, &strides, flags, data_size, 0) +} + +pub(super) fn transpose(input: &Array, output: &Array, axes: &[usize]) -> Result<(), String> { + let src = input.layout(); + let dst = output.layout(); + let mut seen = vec![false; src.shape().len()]; + if src.dtype() != dst.dtype() || axes.len() != seen.len() || dst.shape().len() != axes.len() { + return Err("Transpose rank/type mismatch".into()); + } + let mut strides = Vec::with_capacity(axes.len()); + for (i, &axis) in axes.iter().enumerate() { + if axis >= seen.len() || seen[axis] || src.shape()[axis] != dst.shape()[i] { + return Err("invalid Transpose axes".into()); + } + seen[axis] = true; + strides.push(src.strides()[axis]); + } + let mut flags = src.flags(); + let data_size = input.data_size(); + if flags.contiguous && data_size == src.size() { + let (_, row, col) = dst.contiguity(&strides)?; + flags.row_contiguous = row; + flags.col_contiguous = col; + } + drop(dst); + drop(src); + output.copy_shared_buffer(input, &strides, flags, data_size, 0) +} diff --git a/src/engine/metal/qwen_mtplx/weights.rs b/src/engine/metal/qwen_mtplx/weights.rs new file mode 100644 index 0000000..4236c23 --- /dev/null +++ b/src/engine/metal/qwen_mtplx/weights.rs @@ -0,0 +1,587 @@ +//! Converted checkpoint projection fusion before weight materialization. +//! Mirrors qwen4_exp's three sanitize-time fusions; no payload reads or eval. +use super::array::Array; +use super::{ops, stream::Stream}; +use std::collections::BTreeMap; + +pub(super) type Parameters = BTreeMap; + +#[derive(Clone, Copy, Default)] +pub(super) struct FusionOptions { + pub(super) gate_up: bool, + pub(super) gdn: bool, + pub(super) qsa: bool, +} + +/// Metadata used to construct the original replacement module, not inferred +/// later from a stale checkpoint quantization recipe. +#[derive(Debug, PartialEq, Eq, serde::Serialize)] +pub(super) struct Fusion { + pub(super) bits: u32, + pub(super) group: u32, + pub(super) splits: Vec, +} + +/// Original load_model reads model*.safetensors before sanitize. These remain +/// CPU Load leaves until the caller evaluates the prepared model parameters. +pub(super) fn load_shards( + root: &std::path::Path, + streams: &super::stream::Streams, +) -> Result { + let mut parameters = Parameters::new(); + let mut files = 0; + for entry in std::fs::read_dir(root).map_err(|e| e.to_string())? { + let entry = entry.map_err(|e| e.to_string())?; + let name = entry.file_name(); + let Some(name) = name.to_str() else { continue }; + if name.starts_with("model") && name.ends_with(".safetensors") { + parameters.extend(super::load::safetensors(&entry.path(), streams)?); + files += 1; + } + } + if files == 0 { + return Err("No model safetensors found".into()); + } + Ok(parameters) +} + +fn parts(weights: &Parameters, base: &str) -> Option<[Array; 3]> { + Some([ + weights.get(&format!("{base}.weight"))?.clone(), + weights.get(&format!("{base}.scales"))?.clone(), + weights.get(&format!("{base}.biases"))?.clone(), + ]) +} + +fn recipe(parts: &[Array; 3]) -> Result<(u32, u32), String> { + let words = parts[0].layout().dim(-1)?; + let groups = parts[1].layout().dim(-1)?; + if words <= 0 || groups <= 0 { + return Err("projection fusion requires positive packed dimensions".into()); + } + // These are the literal installed input dimensions in qwen4_exp, even + // for tiny reference fixtures. Do not substitute a guessed hidden size. + let bits = u32::try_from(i64::from(words) * 32 / 2560).map_err(|e| e.to_string())?; + Ok((bits, 2560 / groups as u32)) +} + +fn layer_hits(weights: &Parameters, suffix: &str) -> Result, String> { + weights + .keys() + .filter_map(|key| { + let base = key.strip_suffix(suffix)?; + let (_, layer) = base.rsplit_once(".layers.")?; + let number = layer.split_once('.')?.0; + if number.is_empty() || !number.bytes().all(|b| b.is_ascii_digit()) { + return None; + } + Some( + number + .parse::() + .map(|i| (base.to_owned(), i)) + .map_err(|e| e.to_string()), + ) + }) + .collect() +} + +fn concatenate( + weights: &mut Parameters, + sources: &[String], + parts: &[[Array; 3]], + targets: [String; 3], + axis: i32, + stream: Stream, +) -> Result<(), String> { + // Build all lazy concatenations before replacing names; a shape error must + // not leave this module with only part of its original parameters removed. + let outputs = (0..3) + .map(|i| { + ops::concatenate( + &parts.iter().map(|p| p[i].clone()).collect::>(), + axis, + stream, + ) + }) + .collect::, _>>()?; + for (name, array) in targets.into_iter().zip(outputs) { + weights.insert(name, array); + } + for base in sources { + for suffix in ["weight", "scales", "biases"] { + weights.remove(&format!("{base}.{suffix}")); + } + } + Ok(()) +} + +pub(super) fn fuse( + weights: &mut Parameters, + options: FusionOptions, + indexer_layers: &[bool], + stream: Stream, +) -> Result, String> { + let mut fused = BTreeMap::new(); + if options.gate_up { + // The original visits both blocks only after finding the switch gate. + for (prefix, layer) in layer_hits(weights, ".switch_mlp.gate_proj.weight")? { + if !prefix.ends_with(".mlp") { + continue; + } + indexer_layers + .get(layer) + .ok_or("MoE fusion layer is outside model")?; + for (sub, axis) in [("switch_mlp", 1), ("shared_expert", 0)] { + let base = format!("{prefix}.{sub}"); + let sources = [format!("{base}.gate_proj"), format!("{base}.up_proj")]; + let (Some(gate), Some(up)) = + (parts(weights, &sources[0]), parts(weights, &sources[1])) + else { + continue; + }; + let (bits, group) = recipe(&gate)?; + concatenate( + weights, + &sources, + &[gate, up], + [ + format!("{base}.gu_weight"), + format!("{base}.gu_scales"), + format!("{base}.gu_biases"), + ], + axis, + stream, + )?; + fused.insert( + base, + Fusion { + bits, + group, + splits: Vec::new(), + }, + ); + } + } + } + // Model sanitize calls these in this order after gate/up fusion. + for (enabled, suffix, subs, dest) in [ + ( + options.gdn, + ".in_proj_qkv.weight", + &["in_proj_qkv", "in_proj_z", "in_proj_b", "in_proj_a"][..], + "in_proj_fused", + ), + ( + options.qsa, + ".q_proj.weight", + &["q_proj", "k_proj", "v_proj", "indexer.index_qk_proj"][..], + "qkv_fused", + ), + ] { + if !enabled { + continue; + } + for (base, layer) in layer_hits(weights, suffix)? { + let qsa = dest == "qkv_fused"; + if !(base.ends_with(if qsa { ".self_attn" } else { ".linear_attn" })) { + continue; + } + if qsa + && subs + .iter() + .any(|sub| weights.contains_key(&format!("{base}.{sub}.bias"))) + { + continue; + } + let mut found = Vec::new(); + let mut sources = Vec::new(); + for sub in subs { + let source = format!("{base}.{sub}"); + if let Some(p) = parts(weights, &source) { + found.push(p); + sources.push(source); + } else if *sub != "indexer.index_qk_proj" { + found.clear(); + break; + } + } + if found.is_empty() { + continue; + } + let words = found[0][0].layout().dim(-1)?; + let groups = found[0][1].layout().dim(-1)?; + let compatible = |p: &[Array; 3]| -> Result { + Ok(p[0].layout().dim(-1)? == words && p[1].layout().dim(-1)? == groups) + }; + let mandatory = if qsa { 3 } else { 4 }; + let mut matched = true; + for p in &found[..mandatory] { + matched &= compatible(p)?; + } + if !matched { + continue; + } + indexer_layers + .get(layer) + .ok_or("projection fusion layer is outside model")?; + if qsa { + if found.len() == 4 && !compatible(&found[3])? { + found.truncate(3); + sources.truncate(3); + } + if !indexer_layers + .get(layer) + .copied() + .ok_or("QSA fusion layer is outside model")? + { + continue; + } + } + let (bits, group) = recipe(&found[0])?; + if !matches!(bits, 4 | 8) { + continue; + } + let mut rows = 0i32; + let mut splits = Vec::new(); + for p in &found[..found.len() - 1] { + rows = rows + .checked_add(p[0].layout().shape()[0]) + .ok_or("fused projection row overflow")?; + splits.push(rows); + } + let destination = format!("{base}.{dest}"); + concatenate( + weights, + &sources, + &found, + [ + format!("{destination}.weight"), + format!("{destination}.scales"), + format!("{destination}.biases"), + ], + 0, + stream, + )?; + fused.insert( + destination, + Fusion { + bits, + group, + splits, + }, + ); + } + } + Ok(fused) +} + +#[test] +#[ignore = "requires installed DS4_QWEN38_ARTIFACTS; headers only, never evaluate weights"] +fn mtplx_installed_checkpoint_fusion_metadata_matches_reference() { + use super::super::gpu::Context; + use super::{ + allocator, configure_sources, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + let root = std::path::PathBuf::from( + std::env::var_os("DS4_QWEN38_ARTIFACTS").expect("set installed artifact path"), + ); + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let config: serde_json::Value = + serde_json::from_slice(&std::fs::read(root.join("config.json")).unwrap()).unwrap(); + let text = &config["text_config"]; + let count = text["num_hidden_layers"].as_u64().unwrap() as usize; + let indexers = vec![text["indexer_n_heads"].as_u64().unwrap() > 0; count]; + let mut parameters = load_shards(&root, &streams).unwrap(); + let reference: serde_json::Value = serde_json::from_str(include_str!( + "../../../../tests/fixtures/mtplx-installed-weight-fusion.json" + )) + .unwrap(); + assert_eq!( + parameters.len() as u64, + reference["before"].as_u64().unwrap() + ); + let leaves = parameters + .values() + .map(Array::downgrade) + .collect::>(); + let fusions = fuse( + &mut parameters, + FusionOptions { + gate_up: true, + gdn: true, + qsa: true, + }, + &indexers, + gpu, + ) + .unwrap(); + assert_eq!( + serde_json::to_value(&fusions).unwrap(), + reference["fusions"] + ); + assert_eq!( + parameters.len() as u64, + reference["after"].as_u64().unwrap() + ); + assert!(parameters.values().all(|a| !a.has_data())); + assert!( + leaves + .iter() + .all(|a| a.upgrade().is_some_and(|a| !a.has_data())) + ); + let metadata = parameters + .iter() + .map(|(name, a)| { + serde_json::json!([name, a.layout().shape(), a.layout().dtype().kernel_name()]) + }) + .collect::>(); + let hash = Sha256::digest(serde_json::to_vec(&metadata).unwrap()) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + assert_eq!(hash, reference["metadata_sha256"]); + eprintln!( + "installed headers: {} tensors -> {}, {} module fusions; no weight payload evaluated", + leaves.len(), + parameters.len(), + fusions.len() + ); + assert_eq!(streams.allocator().unwrap().stats().active, 0); + streams.clear_streams().unwrap(); +} + +#[test] +#[ignore = "requires Apple Metal; bounded lazy checkpoint Load and fusion"] +fn mtplx_checkpoint_projection_fusions_match_reference() { + use super::super::gpu::Context; + use super::{ + allocator, + array::Dtype, + configure_sources, load, + stream::{Device, Streams}, + }; + use sha2::{Digest, Sha256}; + use std::io::Write; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let streams = Streams::new(Some(allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(Device::Gpu).unwrap(); + let cases = include_str!("../../../../tests/fixtures/mtplx-weight-fusion.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + assert_eq!(cases.len(), 18); + struct Temp(std::path::PathBuf); + impl Drop for Temp { + fn drop(&mut self) { + let _ = std::fs::remove_file(&self.0); + } + } + let path = Temp(std::env::temp_dir().join( + format!("mtplx-fusion-{}-{}.safetensors", std::process::id(), + std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_nanos()), + )); + for case in &cases { + let profile = case["profile"].as_str().unwrap(); + let mask = case["mask"].as_u64().unwrap(); + eprintln!("checkpoint projection fusion {mask}/{profile}"); + let mut specs = vec![ + ( + "language_model.model.layers.0.mlp.switch_mlp.gate_proj".to_owned(), + vec![2, 4], + 320, + ), + ( + "language_model.model.layers.0.mlp.switch_mlp.up_proj".to_owned(), + vec![2, 4], + 320, + ), + ( + "language_model.model.layers.0.mlp.shared_expert.gate_proj".to_owned(), + vec![4], + 320, + ), + ( + "language_model.model.layers.0.mlp.shared_expert.up_proj".to_owned(), + vec![4], + 320, + ), + ]; + for (sub, n) in [("qkv", 5), ("z", 3), ("b", 1), ("a", 1)] { + specs.push(( + format!("language_model.model.layers.0.linear_attn.in_proj_{sub}"), + vec![n], + if profile == "gdn_2bit" { + 160 + } else if profile == "gdn_mixed" && sub == "a" { + 640 + } else { + 320 + }, + )); + } + for (sub, n) in [ + ("q_proj", 5), + ("k_proj", 2), + ("v_proj", 2), + ("indexer.index_qk_proj", 3), + ] { + specs.push(( + format!("language_model.model.layers.1.self_attn.{sub}"), + vec![n], + if (profile == "indexer_mixed" && sub.starts_with("indexer")) + || (profile == "qkv_mixed" && sub == "k_proj") + { + 640 + } else { + 320 + }, + )); + } + let mut tensors = BTreeMap::new(); + for (index, (base, prefix, columns)) in specs.iter().enumerate() { + for (part, width, dtype) in [ + ("weight", *columns, "U32"), + ("scales", 40, "BF16"), + ("biases", 40, "BF16"), + ] { + let mut shape = prefix.clone(); + shape.push(width); + let count = shape.iter().product::() as usize; + let mut data = Vec::new(); + for i in 0..count { + let value = (i % 17 + index) as u32; + if dtype == "U32" { + data.extend_from_slice(&value.to_le_bytes()); + } else { + data.extend_from_slice( + &(((value as f32).to_bits() >> 16) as u16).to_le_bytes(), + ); + } + } + tensors.insert(format!("{base}.{part}"), (shape, dtype, data)); + } + } + let remove = match profile { + "gdn_missing" => Some("language_model.model.layers.0.linear_attn.in_proj_a.biases"), + "gate_missing_bias" => { + Some("language_model.model.layers.0.mlp.switch_mlp.up_proj.biases") + } + "shared_only" => Some("language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight"), + _ => None, + }; + if let Some(name) = remove { + tensors.remove(name); + } + if profile == "indexer_missing" { + for part in ["weight", "scales", "biases"] { + tensors.remove(&format!( + "language_model.model.layers.1.self_attn.indexer.index_qk_proj.{part}" + )); + } + } + if profile == "qsa_bias" { + tensors.insert( + "language_model.model.layers.1.self_attn.q_proj.bias".into(), + (vec![5], "BF16", vec![0; 10]), + ); + } + let mut header = serde_json::Map::new(); + let mut offset = 0; + for (name, (shape, dtype, bytes)) in &tensors { + header.insert(name.clone(), serde_json::json!({"shape":shape, "dtype":dtype, "data_offsets":[offset, offset + bytes.len()]})); + offset += bytes.len(); + } + let header = serde_json::to_vec(&header).unwrap(); + let mut file = std::fs::File::create(&path.0).unwrap(); + file.write_all(&(header.len() as u64).to_le_bytes()) + .unwrap(); + file.write_all(&header).unwrap(); + for (_, _, data) in tensors.values() { + file.write_all(data).unwrap(); + } + drop(file); + let mut parameters = load::safetensors(&path.0, &streams).unwrap(); + std::fs::remove_file(&path.0).unwrap(); + if mask == 7 && profile == "normal" { + let mut invalid = parameters.clone(); + assert!( + fuse( + &mut invalid, + FusionOptions { + gate_up: true, + gdn: true, + qsa: true + }, + &[], + gpu + ) + .is_err() + ); + assert_eq!( + invalid.keys().collect::>(), + parameters.keys().collect::>() + ); + } + let weak = parameters + .values() + .map(Array::downgrade) + .collect::>(); + assert!(parameters.values().all(|a| !a.has_data())); + let fusion = fuse( + &mut parameters, + FusionOptions { + gate_up: mask & 1 != 0, + gdn: mask & 2 != 0, + qsa: mask & 4 != 0, + }, + &[false, profile != "no_indexer"], + gpu, + ) + .unwrap(); + assert_eq!( + serde_json::to_value(&fusion).unwrap(), + case["fusions"], + "{mask}/{profile}" + ); + assert!( + parameters.values().all(|a| !a.has_data()), + "fusion must remain lazy" + ); + assert!( + weak.iter() + .all(|a| a.upgrade().is_some_and(|a| !a.has_data())), + "no eager source materialization" + ); + assert_eq!(parameters.len(), case["tensors"].as_array().unwrap().len()); + for ((name, array), expected) in parameters.iter().zip(case["tensors"].as_array().unwrap()) + { + assert_eq!(name, expected["name"].as_str().unwrap()); + assert_eq!( + serde_json::json!(array.layout().shape()), + expected["shape"], + "{name}" + ); + let array = ops::contiguous( + &ops::astype(array, Dtype::F32, false, gpu).unwrap(), + false, + gpu, + ) + .unwrap(); + ops::evaluate(&streams, std::slice::from_ref(&array), gpu, false).unwrap(); + let mut bytes = vec![0; array.layout().nbytes()]; + array.buffer().read(array.offset(), &mut bytes).unwrap(); + let hash = Sha256::digest(bytes) + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + assert_eq!(hash, expected["sha256"], "{mask}/{profile}/{name}"); + } + } + streams.clear_streams().unwrap(); +} diff --git a/src/engine/metal/qwen_mtplx_tests.rs b/src/engine/metal/qwen_mtplx_tests.rs new file mode 100644 index 0000000..e631695 --- /dev/null +++ b/src/engine/metal/qwen_mtplx_tests.rs @@ -0,0 +1,3500 @@ +//! Source-identical MTPLX kernel ABI checks, not model or performance acceptance. +use super::*; +use sha2::{Digest, Sha256}; +use std::ffi::CString; + +/// Assert explicit tile/final synchronization boundaries in either queue. +/// Automatic primitive commits are checked separately by the scheduler tests; +/// the legacy queue does not implement that policy. +struct FixtureBatch<'a> { + scope: Option<&'a super::qwen_mtplx::Scope>, + commands: Option, + commits: usize, + primitive_commits: usize, +} + +impl<'a> FixtureBatch<'a> { + fn begin(scope: Option<&'a super::qwen_mtplx::Scope>) -> Self { + unsafe { ds4_gpu_busy_stats_reset() }; + Self { + scope, + commands: scope.is_none().then(|| Commands::begin().unwrap()), + commits: scope.map_or(0, |scope| scope.commits()), + primitive_commits: scope.map_or(0, |scope| scope.primitive_commits()), + } + } + + fn finish(self) -> Result<(), String> { + self.finish_with_submissions(1) + } + + fn finish_with_submissions(self, expected: usize) -> Result<(), String> { + if let Some(scope) = self.scope { + scope.synchronize()?; + assert_eq!( + scope.commits() + - self.commits + - (scope.primitive_commits() - self.primitive_commits), + expected, + "independent encoder changed explicit synchronization boundaries" + ); + } else { + self.commands.unwrap().finish()?; + let mut busy = GpuBusyStats::default(); + unsafe { ds4_gpu_busy_stats_get(&mut busy) }; + assert_eq!( + busy.command_buffers, expected as u64, + "legacy encoder changed reference submissions" + ); + } + Ok(()) + } +} + +pub(super) fn hex_digest(bytes: &[u8]) -> String { + Sha256::digest(bytes) + .iter() + .map(|byte| format!("{byte:02x}")) + .collect() +} + +#[test] +fn mtplx_canonical_source_bodies_preserve_pinned_hashes() { + let source = include_str!("../../../metal/mtplx_qwen.metal"); + let bodies = source.split("// Body SHA256: ").skip(1).collect::>(); + assert_eq!(bodies.len(), 17); + for section in bodies { + let expected = section.lines().next().unwrap(); + let body = section + .split_once(") {") + .unwrap() + .1 + .split_once("}\ntypedef") + .unwrap() + .0; + assert_eq!(hex_digest(body.as_bytes()), expected); + } + let runtime_units = source + .split("// Runtime unit SHA256: ") + .skip(1) + .collect::>(); + assert_eq!(runtime_units.len(), 22); + for unit in runtime_units { + let expected = unit.lines().next().unwrap(); + let body = unit + .split_once("// BEGIN RUNTIME UNIT\n") + .unwrap() + .1 + .split_once("// END RUNTIME UNIT\n") + .unwrap() + .0; + assert_eq!(hex_digest(body.as_bytes()), expected); + } + let selector: serde_json::Value = + serde_json::from_str(include_str!("../../../metal/mtplx-qsa-select.json")).unwrap(); + for key in ["header", "body"] { + assert_eq!( + hex_digest(selector[key].as_str().unwrap().as_bytes()), + selector[format!("{key}_sha256")] + ); + } + for part in selector["epilogues"].as_object().unwrap().values() { + assert_eq!( + hex_digest(part["source"].as_str().unwrap().as_bytes()), + part["sha256"] + ); + } + for key in ["mpp_header", "mpp_body", "topk_header", "topk_body"] { + assert_eq!( + hex_digest(selector["prefill"][key].as_str().unwrap().as_bytes()), + selector["prefill"][format!("{key}_sha256")] + ); + } +} + +#[test] +fn mtplx_runtime_shaders_are_pinned() { + let mut file = File::open( + Path::new(env!("CARGO_MANIFEST_DIR")).join("metal/mtplx-runtime-0.32.2.metallib"), + ) + .unwrap(); + let mut hash = Sha256::new(); + let mut block = [0; 65536]; + loop { + let n = file.read(&mut block).unwrap(); + if n == 0 { + break; + } + hash.update(&block[..n]); + } + let digest = hash + .finalize() + .iter() + .map(|b| format!("{b:02x}")) + .collect::(); + assert_eq!( + digest, + "dc59d1cceb1a5c7e578232e6e41e28e2c73c9463ac6dbc3886c3ee17ffc270ed" + ); +} + +#[test] +fn mtplx_affine_selection_preserves_reference_boundaries() { + use super::qwen_mtplx::affine_plan; + assert!( + affine_plan([1, 80, 64], 4, 64, true) + .unwrap() + .name + .contains("qmv_quad") + ); + assert!( + affine_plan([1, 81, 2560], 4, 64, true) + .unwrap() + .name + .starts_with("affine_qmv_bfloat") + ); + for (m, vectors) in [(2, 2), (4, 4), (5, 5), (6, 3), (12, 4), (24, 5)] { + assert!( + affine_plan([m, 640, 2560], 4, 64, true) + .unwrap() + .name + .contains(&format!("_nv_{vectors}_kl_8")) + ); + } + assert!(affine_plan([25, 640, 2560], 4, 64, true).unwrap().splits > 1); + assert_eq!(affine_plan([33, 48, 2560], 4, 64, true).unwrap().splits, 40); + assert!( + affine_plan([13, 16384, 320], 4, 64, true) + .unwrap() + .name + .contains("_nax_") + ); + assert!( + !affine_plan([13, 16384, 320], 4, 64, false) + .unwrap() + .name + .contains("_nax_") + ); + for (shape, bits, group) in [ + ([0, 80, 64], 4, 64), + ([1, 80, 63], 4, 64), + ([1, 80, 64], 3, 64), + ([u32::MAX, 2, 64], 4, 64), + ] { + assert!(affine_plan(shape, bits, group, true).is_err()); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_runtime_affine_matches_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("affine_")) + .collect::>(); + assert_eq!( + fixtures.len(), + 78, + "do not silently pass an empty fixture loop" + ); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [m, n, k, group, bits] = + ["m", "n", "k", "group", "bits"].map(|key| row[key].as_u64().unwrap() as u32); + let packed = (0..n * k * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(packed.len() as u64).unwrap(); + w.write(0, &packed).unwrap(); + let scales = pattern(n * k / group, 23); + let biases = pattern(n * k / group, 24); + let x = pattern(m * k, 25); + let y = Buffer::mtplx_bytes(u64::from(m * n) * 2).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let _temporary = super::qwen_mtplx::affine_bf16( + [&w, &scales, &biases, &x, &y], + [m, n, k], + bits, + group, + true, + ) + .unwrap(); + commands.finish().unwrap(); + verify(row["kernel"].as_str().unwrap(), &[(&y, m * n)]); + } + } + let buffer = pattern(4, 1); + let binding = MetalBinding { + tensor: buffer.raw(), + bytes: std::ptr::null(), + size: 0, + index: 0, + offset: 0, + }; + let invalid_constant = MetalConstant { + index: 200, + value: 2, + kind: 0, + }; + assert_eq!( + unsafe { + ds4_gpu_mtplx_dispatch( + c"invalid".as_ptr(), + &binding, + 1, + &invalid_constant, + 1, + [1, 1, 1].as_ptr(), + [32, 1, 1].as_ptr(), + 0, + std::ptr::null_mut(), + None, + ) + }, + 0 + ); + assert!(super::qwen_mtplx::affine_bf16([&buffer; 5], [1, 80, 64], 4, 64, true).is_err()); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_delta_update_matches_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("delta_update_")) + .collect::>(); + assert_eq!(fixtures.len(), 80); + let mut state = None; + for row in fixtures { + let [rows, stride, step] = + ["rows", "stride", "step"].map(|key| row[key].as_u64().unwrap() as u32); + if step == 0 { + state = row["initial"] + .as_bool() + .unwrap() + .then(|| pattern_f32(48 * 128 * 128, 15)); + } + let q = pattern_scaled(rows * 2048, 58 + step, 1.0 / 16.0); + let k = pattern_scaled(rows * 2048, 59 + step, 1.0 / 16.0); + let v = pattern(rows * 6144, 60 + step); + let source = pattern(rows * stride, 60 + step); + let a = source + .view( + if stride == 48 { 0 } else { 16432 * 2 }, + u64::from((rows - 1) * stride + 48) * 2, + ) + .unwrap(); + let b = if stride == 48 { + pattern(rows * 48, 61 + step) + } else { + source + .view(16384 * 2, u64::from((rows - 1) * stride + 48) * 2) + .unwrap() + }; + let a_log = pattern(48, 62); + let dt_bias = pattern(48, 63); + let mask = Buffer::mtplx_bytes(u64::from(rows)).unwrap(); + mask.write( + 0, + &(0..rows).map(|i| u8::from(i % 3 != 0)).collect::>(), + ) + .unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let output = super::qwen_mtplx::gated_delta_update( + [&q, &k, &v], + [&a, &b, &a_log, &dt_bias], + [rows, stride], + state.as_ref(), + row["masked"].as_bool().unwrap().then_some(&mask), + ) + .unwrap(); + commands.finish().unwrap(); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&output.hidden, rows * 6144, 2), + (&output.delta, 48 * 128 * 128, 4), + (&output.g, rows * 48, 4), + (&output.beta, rows * 48, 2), + ], + ); + state = Some(output.delta); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_norm_modules_match_reference() { + use super::qwen_mtplx::{grouped_rms_norm, sigmoid_rms_norm}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| { + row["kernel"].as_str().unwrap().starts_with("groupnorm_") + || row["kernel"].as_str().unwrap().starts_with("gatednorm_") + }) + .collect::>(); + assert_eq!(fixtures.len(), 25); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let name = row["kernel"].as_str().unwrap(); + if name.starts_with("groupnorm_") { + let [rows, width, group] = + ["rows", "width", "group"].map(|key| row[key].as_u64().unwrap() as u32); + let input = pattern(rows * width, 55); + let weight = pattern(width, 56); + let commands = FixtureBatch::begin(scope.as_ref()); + let output = grouped_rms_norm(&input, &weight, [rows, width, group], 1e-6).unwrap(); + commands.finish().unwrap(); + verify(name, &[(&output, rows * width)]); + } else { + let tokens = row["tokens"].as_u64().unwrap() as u32; + let mode = row["mode"].as_str().unwrap(); + let input = pattern(tokens * 6144, 55); + let weight = pattern(128, 56); + let stride = if mode == "projected" { 16480 } else { 6144 }; + let source = pattern(tokens * stride, 57); + let gate = if mode == "projected" { + source + .view(10240 * 2, u64::from(tokens * stride - 10240) * 2) + .unwrap() + } else { + source.view(0, u64::from(tokens * stride) * 2).unwrap() + }; + let commands = FixtureBatch::begin(scope.as_ref()); + let output = sigmoid_rms_norm( + &input, + &weight, + (mode != "none").then_some(&gate), + [tokens, 48, 128, stride], + 1e-6, + ) + .unwrap(); + commands.finish().unwrap(); + verify(name, &[(&output.hidden, tokens * 6144)]); + } + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_sparse_moe_matches_reference() { + use super::qwen_mtplx::{GateUpWeights, MoeWeights, SwitchWeights, sparse_moe}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("moe_")) + .collect::>(); + assert_eq!(fixtures.len(), 220); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + // Test-only boundary accounting: do not clear caches or change the + // graph to hide retention. The external supervisor owns the limit. + let memory = |phase| { + let allocator = super::qwen_mtplx::active_allocator(); + let stats = allocator.as_ref().map(|allocator| allocator.stats()); + eprintln!( + "{}", + serde_json::json!({ + "event": "moe_fixture_memory", "phase": phase, + "fixture": row["kernel"], "independent_encoder": independent_encoder, + "process": crate::process_resources::resource_usage(std::process::id()), + "metal_allocated_bytes": gpu_allocated_bytes(), + "allocator_active_bytes": stats.map(|stats| stats.active), + "allocator_cached_bytes": stats.map(|stats| stats.cached), + }) + ); + }; + memory("before_weights"); + let [tokens, experts, k, intermediate, gu_group, down_group] = [ + "tokens", + "experts", + "k", + "intermediate", + "gu_group", + "down_group", + ] + .map(|key| row[key].as_u64().unwrap() as u32); + let pack = |experts, n, k, bits, group, salt| { + let raw = (0_u32..experts * n * k / 32 * bits) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(raw.len() as u64).unwrap(); + w.write(0, &raw).unwrap(); + [ + w, + pattern_scaled(experts * n * k / group, salt, 1.0 / 64.0), + pattern_scaled(experts * n * k / group, salt + 1, 1.0 / 64.0), + ] + }; + let separate_experts = row["separate_experts"].as_bool().unwrap_or(false); + let separate_shared = row["separate_shared"].as_bool().unwrap_or(false); + let gu = pack( + experts, + intermediate * if separate_experts { 1 } else { 2 }, + k, + 4, + gu_group, + 39, + ); + let up = separate_experts.then(|| pack(experts, intermediate, k, 4, down_group, 45)); + let down = pack(experts, k, intermediate, 4, down_group, 41); + let shared_gu = pack( + 1, + intermediate * if separate_shared { 1 } else { 2 }, + k, + 4, + gu_group, + 46, + ); + let shared_up = separate_shared.then(|| pack(1, intermediate, k, 4, down_group, 54)); + let shared_down = pack(1, k, intermediate, 4, down_group, 48); + let router = pack(1, experts, k, 8, 64, 50); + let shared_gate = pack(1, 1, k, 4, 64, 52); + let input = pattern(tokens * k, 44); + memory("weights_ready"); + let commands = FixtureBatch::begin(scope.as_ref()); + let output = sparse_moe( + MoeWeights { + experts: SwitchWeights { + input: if let Some(up) = &up { + GateUpWeights::Separate { + gate: gu.each_ref(), + up: up.each_ref(), + gate_quant: [4, gu_group], + up_quant: [4, down_group], + } + } else { + GateUpWeights::Fused { + pack: gu.each_ref(), + quant: [4, gu_group], + } + }, + down: down.each_ref(), + down_quant: [4, down_group], + }, + shared: SwitchWeights { + input: if let Some(up) = &shared_up { + GateUpWeights::Separate { + gate: shared_gu.each_ref(), + up: up.each_ref(), + gate_quant: [4, gu_group], + up_quant: [4, down_group], + } + } else { + GateUpWeights::Fused { + pack: shared_gu.each_ref(), + quant: [4, gu_group], + } + }, + down: shared_down.each_ref(), + down_quant: [4, down_group], + }, + router: router.each_ref(), + router_quant: [8, 64], + shared_gate: shared_gate.each_ref(), + shared_gate_quant: [4, 64], + }, + &input, + [tokens, experts, k, intermediate, intermediate], + row["normalize"].as_bool().unwrap(), + [row["fused"].as_bool().unwrap_or(false); 2], + ) + .unwrap(); + assert_eq!( + output.used_fused, + row["fused"].as_bool().unwrap_or(false) && tokens <= 4 && !separate_experts + ); + commands.finish().unwrap(); + verify( + row["kernel"].as_str().unwrap(), + &[(&output.hidden, tokens * k)], + ); + memory("verified"); + drop(( + output, + input, + gu, + up, + down, + shared_gu, + shared_up, + shared_down, + router, + shared_gate, + )); + memory("released"); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_router_matches_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("router_")) + .collect::>(); + assert_eq!(fixtures.len(), 16); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [rows, experts] = ["rows", "experts"].map(|key| row[key].as_u64().unwrap() as u32); + let input = pattern(rows * experts, 43); + let commands = FixtureBatch::begin(scope.as_ref()); + let output = super::qwen_mtplx::router( + input, + [rows, experts], + row["normalize"].as_bool().unwrap(), + ) + .unwrap(); + commands.finish().unwrap(); + assert_eq!(output.index_row_stride, experts); + // Read the reference-shaped view only after completion. Float conversion + // is the receipt format, not a copy added to the inference chain. + let float_indices = Buffer::mtplx_bytes(u64::from(rows) * 10 * 4).unwrap(); + for r in 0..rows { + let mut raw = [0; 40]; + output + .indices + .read(u64::from(r) * u64::from(experts) * 4, &mut raw) + .unwrap(); + let values = raw + .chunks_exact(4) + .flat_map(|word| { + (u32::from_le_bytes(word.try_into().unwrap()) as f32).to_le_bytes() + }) + .collect::>(); + float_indices.write(u64::from(r) * 40, &values).unwrap(); + } + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&output.probabilities, rows * experts, 2), + (&float_indices, rows * 10, 4), + (&output.scores, rows * 10, 2), + ], + ); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_switch_glu_matches_reference() { + use super::qwen_mtplx::{GateUpWeights, SwitchWeights, switch_glu}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("switch_")) + .collect::>(); + assert_eq!(fixtures.len(), 21); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [tokens, experts, k, intermediate, gu_group, down_group] = [ + "tokens", + "experts", + "k", + "intermediate", + "gu_group", + "down_group", + ] + .map(|key| row[key].as_u64().unwrap() as u32); + let pack = |n, k, group, salt| { + let raw = (0_u32..experts * n * k / 8) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(raw.len() as u64).unwrap(); + w.write(0, &raw).unwrap(); + [ + w, + pattern_scaled(experts * n * k / group, salt, 1.0 / 64.0), + pattern_scaled(experts * n * k / group, salt + 1, 1.0 / 64.0), + ] + }; + let gu = pack(intermediate * 2, k, gu_group, 39); + let down = pack(k, intermediate, down_group, 41); + let input = pattern(tokens * k, 38); + let raw = (0..tokens * 10) + .flat_map(|i| ((i * 17 + 35) % experts).to_le_bytes()) + .collect::>(); + let idx = Buffer::mtplx_bytes(raw.len() as u64).unwrap(); + idx.write(0, &raw).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let output = switch_glu( + SwitchWeights { + input: GateUpWeights::Fused { + pack: gu.each_ref(), + quant: [4, gu_group], + }, + down: down.each_ref(), + down_quant: [4, down_group], + }, + &input, + &idx, + [tokens, 10, k, intermediate, experts], + ) + .unwrap(); + commands.finish().unwrap(); + verify( + row["kernel"].as_str().unwrap(), + &[(&output.hidden, tokens * 10 * k)], + ); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_gate_up_matches_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gate_up_")) + .collect::>(); + assert_eq!(fixtures.len(), 10); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [rows, intermediate] = + ["rows", "intermediate"].map(|key| row[key].as_u64().unwrap() as u32); + let input = pattern(rows * intermediate * 2, 37); + let output = Buffer::mtplx_bytes(u64::from(rows * intermediate) * 2).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let activated = + super::qwen_mtplx::gate_up_bf16(&input, &output, [rows, intermediate]).unwrap(); + commands.finish().unwrap(); + verify( + row["kernel"].as_str().unwrap(), + &[ + (&activated, rows * intermediate), + (&output, rows * intermediate), + ], + ); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_gather_sort_matches_reference() { + use super::qwen_mtplx::{SortDtype, gather_front, gather_sort}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gather_sort_")) + .collect::>(); + assert_eq!(fixtures.len(), 7); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [tokens, top_k, width] = + ["tokens", "top_k", "width"].map(|key| row[key].as_u64().unwrap() as u32); + let routes = tokens * top_k; + let input = pattern(tokens * width, 36); + let raw = (0..routes) + .flat_map(|i| ((i * 17 + 35) % 512).to_le_bytes()) + .collect::>(); + let indices = Buffer::mtplx_bytes(u64::from(routes) * 4).unwrap(); + indices.write(0, &raw).unwrap(); + let unsorted = Buffer::mtplx_bytes(u64::from(routes * width) * 2).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let sorted = gather_sort(&input, &indices, [tokens, top_k, width]).unwrap(); + gather_front( + &sorted.x, + &sorted.inverse, + &unsorted, + [routes, width, routes], + SortDtype::Bf16, + ) + .unwrap(); + commands.finish().unwrap(); + for (i, (output, count, unsigned)) in [ + (&sorted.x, routes * width, false), + (&sorted.indices, routes, true), + (&sorted.inverse, routes, true), + (&unsorted, routes * width, false), + ] + .into_iter() + .enumerate() + { + let word_bytes = if unsigned { 4 } else { 2 }; + let mut raw = vec![0; count as usize * word_bytes]; + output.read(0, &mut raw).unwrap(); + let mut hash = Sha256::new(); + for word in raw.chunks_exact(word_bytes) { + let value = if unsigned { + u32::from_le_bytes(word.try_into().unwrap()) as f32 + } else { + f32::from_bits( + u32::from(u16::from_le_bytes(word.try_into().unwrap())) << 16, + ) + }; + hash.update(value.to_le_bytes()); + } + assert_eq!( + hash.finalize() + .iter() + .map(|b| format!("{b:02x}")) + .collect::(), + row["sha256"][i].as_str().unwrap(), + "{} output{i}", + row["kernel"] + ); + } + eprintln!("MTPLX canonical {}: exact", row["kernel"]); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_runtime_argsort_matches_reference() { + use super::qwen_mtplx::{SortDtype, argsort}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("argsort_")) + .collect::>(); + assert_eq!(fixtures.len(), 123); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let rows = row["rows"].as_u64().unwrap() as u32; + let width = row["width"].as_u64().unwrap() as u32; + let dtype = match row["dtype"].as_str().unwrap() { + "u32" => SortDtype::U32, + "bf16" => SortDtype::Bf16, + "f32" => SortDtype::F32, + _ => unreachable!(), + }; + let data = (0..rows * width) + .flat_map(|i| { + let value = (i * 17 + 35) % 512; + match dtype { + SortDtype::U32 => value.to_le_bytes().to_vec(), + SortDtype::F32 => (value as f32).to_le_bytes().to_vec(), + SortDtype::Bf16 => { + let f = (value as f32).to_bits(); + ((f.wrapping_add(0x7fff + ((f >> 16) & 1)) >> 16) as u16) + .to_le_bytes() + .to_vec() + } + } + }) + .collect::>(); + let x = Buffer::mtplx_bytes(data.len() as u64).unwrap(); + x.write(0, &data).unwrap(); + let order = Buffer::mtplx_bytes(u64::from(rows * width) * 4).unwrap(); + let inverse = Buffer::mtplx_bytes(u64::from(rows * width) * 4).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let _first = argsort(&x, &order, [rows, width], dtype).unwrap(); + let _second = argsort(&order, &inverse, [rows, width], SortDtype::U32).unwrap(); + commands.finish().unwrap(); + for (i, output) in [&order, &inverse].into_iter().enumerate() { + let mut raw = vec![0; (rows * width * 4) as usize]; + output.read(0, &mut raw).unwrap(); + let values = raw + .chunks_exact(4) + .map(|word| u32::from_le_bytes(word.try_into().unwrap())) + .collect::>(); + assert!(values.iter().all(|v| *v < width)); + let encoded = values + .iter() + .flat_map(|v| (*v as f32).to_le_bytes()) + .collect::>(); + assert_eq!( + hex_digest(&encoded), + row["sha256"][i].as_str().unwrap(), + "{} output{i}", + row["kernel"] + ); + } + eprintln!("MTPLX canonical {}: exact", row["kernel"]); + } + } + let tiny = pattern(4, 1); + assert!(argsort(&tiny, &tiny, [1, 0], SortDtype::U32).is_err()); + assert!(argsort(&tiny, &tiny, [1, 3], SortDtype::U32).is_err()); + assert!(argsort(&tiny, &tiny, [u32::MAX, 2], SortDtype::U32).is_err()); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_runtime_gather_matches_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gather_x")) + .collect::>(); + assert_eq!(fixtures.len(), 40); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + for row in &fixtures { + let [batches, m, n, k, experts, routes, group, bits] = [ + "batches", "m", "n", "k", "experts", "routes", "group", "bits", + ] + .map(|key| row[key].as_u64().unwrap() as u32); + let sorted = row["sorted"].as_bool().unwrap(); + let upload = |values: Vec| { + let bytes = values + .into_iter() + .flat_map(u32::to_le_bytes) + .collect::>(); + let buffer = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + buffer.write(0, &bytes).unwrap(); + buffer + }; + let padding = row["padding"].as_u64().unwrap() as u32; + let w = upload( + (0..experts * n * k * bits / 32) + .map(|i| i.wrapping_mul(2654435761).wrapping_add(12345)) + .chain(std::iter::repeat_n(0, (padding * bits / 32 * 64) as usize)) + .collect(), + ); + // Identical physical padding for the reference's synthetic K-tail overread. + let padded_pattern = |count, salt, extra| { + let buffer = pattern(count + extra, salt); + if extra != 0 { + buffer + .write(u64::from(count) * 2, &vec![0; extra as usize * 2]) + .unwrap(); + } + buffer + }; + let scales = padded_pattern(experts * n * k / group, 33, padding / group * 64); + let biases = padded_pattern(experts * n * k / group, 34, padding / group * 64); + let x = padded_pattern(batches * m * k, 32, padding * 64); + let mut rhs = (0..routes) + .map(|i| (i * 5 + 2) % experts) + .collect::>(); + if sorted { + rhs.sort_unstable(); + } + let rhs = upload(rhs); + let lhs = upload( + (0..routes) + .map(|i| if sorted { i } else { (i * 2 + 1) % batches }) + .collect(), + ); + let y = Buffer::mtplx_bytes(u64::from(routes * m * n) * 2).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + super::qwen_mtplx::gather_bf16( + [&w, &scales, &biases, &x, &lhs, &rhs, &y], + [batches, m, n, k, experts, routes], + [bits, group], + sorted, + true, + ) + .unwrap(); + commands.finish().unwrap(); + verify(row["kernel"].as_str().unwrap(), &[(&y, routes * m * n)]); + } + } + let buffer = pattern(4, 1); + assert!( + super::qwen_mtplx::gather_bf16([&buffer; 7], [1, 1, 80, 64, 8, 1], [4, 64], false, true) + .is_err() + ); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_gdn_decode_matches_model_reference() { + use super::qwen_mtplx::{GdnDecodeOutput, GdnInputWeights, GdnWeights, gdn_decode}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let pack = |n: u32, k: u32, salt| { + let words = (0..n * k / 8) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + [ + w, + pattern_scaled(n * k / 64, salt, 1.0 / 64.0), + pattern_scaled(n * k / 64, salt + 1, 1.0 / 64.0), + ] + }; + let in_proj = pack(16480, 2560, 26); + let out_proj = pack(2560, 6144, 28); + let conv_weight = pattern(10240 * 4, 8); + let a_log = pattern(48, 12); + let dt_bias = pattern(48, 13); + let norm = pattern(128, 14); + let weights = GdnWeights { + input: GdnInputWeights::Fused { + pack: in_proj.each_ref(), + quant: [4, 64], + }, + output: out_proj.each_ref(), + output_quant: [4, 64], + conv: &conv_weight, + a_log: &a_log, + dt_bias: &dt_bias, + norm: &norm, + }; + let conv = pattern(3 * 10240, 7); + let delta = pattern_f32(48 * 128 * 128, 15); + let mut state: Option = None; + for step in 0..2 { + let input = pattern(2560, 30 + step); + let commands = FixtureBatch::begin(scope.as_ref()); + let (next, dispatches) = capture_dispatches(|| { + gdn_decode( + &weights, + &input, + Some(state.as_ref().map_or(&conv, |s| &s.conv)), + state.as_ref().map_or(&delta, |s| &s.delta), + ) + .unwrap() + }); + assert_gdn_step_dispatch(&dispatches); + commands.finish().unwrap(); + verify_typed( + &format!("gdn_chain_{step}"), + &[ + (&next.hidden, 2560, 2), + (&next.conv, 3 * 10240, 2), + (&next.delta, 48 * 128 * 128, 4), + ], + ); + state = Some(next); + } + } +} + +pub(super) fn pattern(count: u32, salt: u32) -> Buffer { + pattern_scaled(count, salt, 1.0) +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_gdn_staged_matches_model_reference() { + use super::qwen_mtplx::{GdnInputWeights, GdnStagedOutput, GdnWeights, gdn_staged}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let pack = |n: u32, k: u32, salt| { + let words = (0..n * k / 8) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + [ + w, + pattern_scaled(n * k / 64, salt, 1.0 / 64.0), + pattern_scaled(n * k / 64, salt + 1, 1.0 / 64.0), + ] + }; + let in_proj = pack(16480, 2560, 26); + let out_proj = pack(2560, 6144, 28); + let conv_weight = pattern(10240 * 4, 8); + let a_log = pattern(48, 12); + let dt_bias = pattern(48, 13); + let norm = pattern(128, 14); + let weights = GdnWeights { + input: GdnInputWeights::Fused { + pack: in_proj.each_ref(), + quant: [4, 64], + }, + output: out_proj.each_ref(), + output_quant: [4, 64], + conv: &conv_weight, + a_log: &a_log, + dt_bias: &dt_bias, + norm: &norm, + }; + let conv = pattern(3 * 10240, 7); + let delta = pattern_f32(48 * 128 * 128, 15); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gdn_staged_")) + .collect::>(); + assert_eq!(fixtures.len(), 130); + let mut state: Option = None; + for row in fixtures { + let rows = row["rows"].as_u64().unwrap() as u32; + let step = row["step"].as_u64().unwrap() as u32; + if step == 0 { + state = None; + } + let initial = row["initial"].as_bool().unwrap(); + let flags = [row["fused"].as_bool().unwrap(); 3]; + let input = pattern(rows * 2560, 30 + step); + let mask = Buffer::mtplx_bytes(u64::from(rows)).unwrap(); + mask.write( + 0, + &(0..rows).map(|i| u8::from(i % 3 != 0)).collect::>(), + ) + .unwrap(); + let length = row["length"].as_i64().map(|value| { + let b = Buffer::mtplx_bytes(4).unwrap(); + b.write(0, &(value as i32).to_le_bytes()).unwrap(); + b + }); + let commands = FixtureBatch::begin(scope.as_ref()); + let next = gdn_staged( + &weights, + &input, + rows, + [ + state + .as_ref() + .map(|s| &s.prepared.conv) + .or(initial.then_some(&conv)), + state + .as_ref() + .map(|s| &s.recurrent.delta) + .or(initial.then_some(&delta)), + length.as_ref(), + ], + row["masked"].as_bool().unwrap().then_some(&mask), + flags, + true, + ) + .unwrap(); + commands.finish().unwrap(); + assert_eq!( + next.prepared.used_fused, + row["used_fused"].as_bool().unwrap() + ); + assert!( + unsafe { ds4_gpu_tensor_bytes(next.prepared.qkv.raw()) } + >= u64::from(rows) * 10240 * 2 + ); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (&next.hidden, rows * 2560, 2), + (&next.prepared.conv, 3 * 10240, 2), + (&next.recurrent.delta, 48 * 128 * 128, 4), + (&next.prepared.q, rows * 2048, 2), + (&next.prepared.k, rows * 2048, 2), + (&next.prepared.v, rows * 6144, 2), + ], + ); + state = Some(next); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_connected_gdn_forward_matches_model_reference() { + use super::qwen_mtplx::{GdnForwardOutput, GdnInputWeights, GdnWeights, gdn_forward}; + fn values(output: &GdnForwardOutput) -> [&Buffer; 3] { + match output { + GdnForwardOutput::Fused(x) => [&x.hidden, &x.conv, &x.delta], + GdnForwardOutput::Staged(x) => [&x.hidden, &x.prepared.conv, &x.recurrent.delta], + } + } + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let pack = |n: u32, k: u32, bits: u32, group: u32, salt| { + let words = (0..n * k * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + [ + w, + pattern_scaled(n * k / group, salt, 1.0 / 64.0), + pattern_scaled(n * k / group, salt + 1, 1.0 / 64.0), + ] + }; + let fused = pack(16480, 2560, 4, 64, 26); + let separate: [_; 4] = + std::array::from_fn(|i| pack([10240, 6144, 48, 48][i], 2560, 4, 64, 64 + i as u32 * 2)); + let mixed_quant = [[4, 64], [8, 32], [8, 64], [4, 32]]; + let mixed: [_; 4] = std::array::from_fn(|i| { + pack( + [10240, 6144, 48, 48][i], + 2560, + mixed_quant[i][0], + mixed_quant[i][1], + 64 + i as u32 * 2, + ) + }); + let out_proj = pack(2560, 6144, 4, 64, 28); + let conv_weight = pattern(10240 * 4, 8); + let a_log = pattern(48, 12); + let dt_bias = pattern(48, 13); + let norm = pattern(128, 14); + let conv = pattern(3 * 10240, 7); + let delta = pattern_f32(48 * 128 * 128, 15); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| row["kernel"].as_str().unwrap().starts_with("gdn_forward_")) + .collect::>(); + assert_eq!(fixtures.len(), 264); + let mut state: Option = None; + for row in fixtures { + let [rows, initial, mode, step] = + ["rows", "initial", "mode", "step"].map(|k| row[k].as_u64().unwrap() as u32); + if step == 0 { + state = None; + } + let input_weights = match row["layout"].as_str().unwrap() { + "fused" => GdnInputWeights::Fused { + pack: fused.each_ref(), + quant: [4, 64], + }, + "separate" => GdnInputWeights::Separate { + packs: separate.each_ref().map(|p| p.each_ref()), + quant: [[4, 64]; 4], + }, + "mixed" => GdnInputWeights::Separate { + packs: mixed.each_ref().map(|p| p.each_ref()), + quant: mixed_quant, + }, + x => panic!("unexpected layout {x}"), + }; + let weights = GdnWeights { + input: input_weights, + output: out_proj.each_ref(), + output_quant: [4, 64], + conv: &conv_weight, + a_log: &a_log, + dt_bias: &dt_bias, + norm: &norm, + }; + let input = pattern(rows * 2560, 30 + step); + let mask = Buffer::mtplx_bytes(u64::from(rows)).unwrap(); + mask.write( + 0, + &(0..rows).map(|i| u8::from(i % 3 != 0)).collect::>(), + ) + .unwrap(); + let length = Buffer::mtplx_bytes(4).unwrap(); + length + .write(0, &(1_i32 - (step * rows) as i32).to_le_bytes()) + .unwrap(); + let enabled = mode != 0; + let flags = [ + enabled, + enabled && mode != 5, + enabled && mode != 5, + enabled && mode != 5, + mode == 2, + ]; + let old = state.as_ref().map(values); + let cache = [ + old.map(|x| x[1]) + .or(matches!(initial, 1 | 3).then_some(&conv)), + old.map(|x| x[2]) + .or(matches!(initial, 1 | 2).then_some(&delta)), + (mode == 4).then_some(&length), + ]; + let commands = FixtureBatch::begin(scope.as_ref()); + let next = gdn_forward( + &weights, + &input, + rows, + cache, + (mode == 3).then_some(&mask), + flags, + true, + ) + .unwrap(); + commands.finish().unwrap(); + assert_eq!( + matches!(&next, GdnForwardOutput::Fused(_)), + row["used_step"].as_bool().unwrap() + ); + assert_eq!( + matches!(&next,GdnForwardOutput::Staged(x) if x.prepared.used_fused), + row["used_conv"].as_bool().unwrap() + ); + let [hidden, conv, delta] = values(&next); + verify_typed( + row["kernel"].as_str().unwrap(), + &[ + (hidden, rows * 2560, 2), + (conv, 3 * 10240, 2), + (delta, 48 * 128 * 128, 4), + ], + ); + state = Some(next); + } + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_indexer_preparation_matches_reference() { + use super::qwen_mtplx::{ + qsa_pool_keys, qsa_pool_keys_eager, qsa_prepare_queries, qsa_prepare_queries_eager, + qsa_project_prepare, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|line| serde_json::from_str::(line).unwrap()) + .filter(|row| { + ["qsa_prepare_", "qsa_pool_", "qsa_project_"] + .iter() + .any(|p| row["kernel"].as_str().unwrap().starts_with(p)) + }) + .collect::>(); + assert_eq!(fixtures.len(), 210); + let qnorm = pattern(128, 72); + let knorm = pattern(128, 73); + for row in fixtures { + let name = row["kernel"].as_str().unwrap(); + let eager = row["eager"] == true; + let number = |key: &str| row[key].as_u64().unwrap() as u32; + let freq = row["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|x| (x.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + assert_eq!(freq.len(), 32 * 4); + let inv_freq = Buffer::mtplx_bytes(32 * 4).unwrap(); + inv_freq.write(0, &freq).unwrap(); + if name.starts_with("qsa_project_") { + let [rows, bits, group, pos] = ["rows", "bits", "group", "pos"].map(number); + let words = (0..640_u32 * 2560 * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + let scales = pattern_scaled(640 * 2560 / group, 75, 1.0 / 64.0); + let biases = pattern_scaled(640 * 2560 / group, 76, 1.0 / 64.0); + let input = pattern(rows * 2560, 77); + let commands = FixtureBatch::begin(scope.as_ref()); + let prepared = qsa_project_prepare( + [&w, &scales, &biases], + [&qnorm, &inv_freq], + &input, + rows, + [bits, group], + pos as i32, + eager, + ) + .unwrap(); + let (pooled, _scratch) = if eager { + qsa_pool_keys_eager( + [&prepared.raw_keys, &knorm, &inv_freq], + rows / 4, + [640, 1], + (pos / 4) as i32, + ) + .unwrap() + } else { + ( + qsa_pool_keys( + [&prepared.raw_keys, &knorm, &inv_freq], + rows / 4, + [640, 1], + (pos / 4) as i32, + ) + .unwrap(), + Vec::new(), + ) + }; + commands.finish().unwrap(); + verify( + name, + &[(&prepared.q, rows * 512), (&pooled, rows / 4 * 128)], + ); + } else if name.starts_with("qsa_prepare_") { + let [rows, stride, dim, pos] = ["rows", "stride", "dimstride", "pos"].map(number); + let raw = pattern(rows * stride, 71); + let commands = FixtureBatch::begin(scope.as_ref()); + let (q, _scratch) = if eager { + qsa_prepare_queries_eager( + [&raw, &qnorm, &inv_freq], + rows, + [u64::from(stride), u64::from(128 * dim), u64::from(dim)], + pos as i32, + ) + .unwrap() + } else { + ( + qsa_prepare_queries( + [&raw, &qnorm, &inv_freq], + rows, + [u64::from(stride), u64::from(128 * dim), u64::from(dim)], + pos as i32, + ) + .unwrap(), + Vec::new(), + ) + }; + commands.finish().unwrap(); + verify(name, &[(&q, rows * 512)]); + } else { + let [blocks, stride, dim, start] = + ["blocks", "stride", "dimstride", "start"].map(number); + let raw = pattern(blocks * 4 * stride, 74); + let commands = FixtureBatch::begin(scope.as_ref()); + let (pooled, _scratch) = if eager { + qsa_pool_keys_eager( + [&raw, &knorm, &inv_freq], + blocks, + [u64::from(stride), u64::from(dim)], + start as i32, + ) + .unwrap() + } else { + ( + qsa_pool_keys( + [&raw, &knorm, &inv_freq], + blocks, + [u64::from(stride), u64::from(dim)], + start as i32, + ) + .unwrap(), + Vec::new(), + ) + }; + commands.finish().unwrap(); + verify(name, &[(&pooled, blocks * 128)]); + } + } + let tiny = Buffer::mtplx_bytes(4).unwrap(); + assert!(qsa_prepare_queries([&tiny; 3], 1, [512, 128, 1], 0).is_err()); + assert!(qsa_pool_keys([&tiny; 3], 1, [128, 1], 0).is_err()); + assert!(qsa_project_prepare([&tiny; 3], [&tiny; 2], &tiny, 0, [8, 64], 0, false).is_err()); + assert!(qsa_prepare_queries_eager([&tiny; 3], 1, [512, 128, 1], 0).is_err()); + assert!(qsa_pool_keys_eager([&tiny; 3], 1, [128, 1], 0).is_err()); + } +} + +fn qsa_buffer_digest(buffer: &Buffer, shape: [u32; 3], strides: [u64; 3], width: usize) -> String { + let last = shape + .into_iter() + .zip(strides) + .map(|(n, s)| u64::from(n.saturating_sub(1)) * s) + .sum::(); + let mut raw = vec![0_u8; (last as usize + 1) * width]; + buffer.read(0, &mut raw).unwrap(); + let mut hash = Sha256::new(); + for a in 0..shape[0] { + for b in 0..shape[1] { + for c in 0..shape[2] { + let i = (u64::from(a) * strides[0] + + u64::from(b) * strides[1] + + u64::from(c) * strides[2]) as usize + * width; + if width == 2 { + hash.update( + (u32::from(u16::from_le_bytes([raw[i], raw[i + 1]])) << 16).to_le_bytes(), + ); + } else { + hash.update(&raw[i..i + 4]); + } + } + } + } + hash.finalize().iter().map(|b| format!("{b:02x}")).collect() +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_cache_lifecycle_matches_reference() { + use super::qwen_mtplx::{QsaCache, QsaSnapshot}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|x| serde_json::from_str::(x).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_cache_")) + .collect::>(); + assert_eq!(fixtures.len(), 88); + let mut cache = QsaCache::default(); + let mut bank: Vec = Vec::new(); + let norm = pattern(128, 73); + for row in fixtures { + let index = row["index"].as_u64().unwrap() as u32; + let scenario = row["scenario"].as_u64().unwrap(); + if index == 0 { + cache = QsaCache::default(); + bank.clear(); + if scenario % 2 == 1 { + cache.reserve(300, 300).unwrap(); + } + } + let freq = row["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|x| (x.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let inv = Buffer::mtplx_bytes(128).unwrap(); + inv.write(0, &freq).unwrap(); + let commands = scope.is_none().then(|| Commands::begin().unwrap()); + let mut preparation_scratch = Vec::new(); + match row["op"].as_str().unwrap() { + "append" => { + let rows = row["arg"].as_u64().unwrap() as u32; + let stride = if index.is_multiple_of(2) { 128 } else { 640 }; + let raw = pattern(rows * stride, 80 + index); + let keys = pattern(rows * 512, 110 + index); + let values = pattern(rows * 512, 140 + index); + cache.write_raw(&raw, rows, u64::from(stride)).unwrap(); + preparation_scratch = cache + .extend_pooled(cache.offset + rows, &norm, &inv, scenario >= 2) + .unwrap(); + cache.update_kv(&keys, &values, rows, [256, 512]).unwrap(); + } + "reserve" => cache + .reserve( + row["arg"][0].as_u64().unwrap() as u32, + row["arg"][1].as_u64().unwrap() as u32, + ) + .unwrap(), + "trim" => { + cache.trim(row["arg"].as_u64().unwrap() as u32); + } + "save" => { + assert_eq!(bank.len(), row["arg"].as_u64().unwrap() as usize); + bank.push(cache.snapshot()); + } + "restore" => cache + .restore(&bank[row["arg"].as_u64().unwrap() as usize]) + .unwrap(), + op => panic!("unknown cache operation {op}"), + } + if cache.pooled_len > 0 { + cache.pooled_f32_view(cache.pooled_len).unwrap(); + } + if let Some(commands) = commands { + commands.finish().unwrap(); + } else { + scope.as_ref().unwrap().synchronize().unwrap(); + } + drop(preparation_scratch); + for (key, actual) in [ + ("offset", cache.offset), + ("kv_cap", cache.kv_cap), + ("raw_cap", cache.raw_cap), + ("pooled_cap", cache.pooled_cap), + ("pooled_len", cache.pooled_len), + ("mirror_cap", cache.mirror_cap), + ] { + assert_eq!( + u64::from(actual), + row[key].as_u64().unwrap(), + "{} {key}", + row["kernel"] + ); + } + assert_eq!(cache.nbytes(), row["nbytes"].as_u64().unwrap()); + let leaves = [&cache.keys, &cache.values, &cache.raw, &cache.pooled]; + let shape = [ + [2, cache.kv_cap, 256], + [2, cache.kv_cap, 256], + [1, cache.raw_cap, 128], + [1, cache.pooled_cap, 128], + [1, 128, cache.mirror_cap], + ]; + let strides = [ + [cache.kv_head_stride, 256, 1], + [cache.kv_head_stride, 256, 1], + [0, 128, 1], + [0, 128, 1], + [0, cache.mirror_strides[0], cache.mirror_strides[1]], + ]; + let mut hashes = Vec::new(); + for (i, leaf) in leaves.iter().enumerate() { + assert_eq!(leaf.is_some(), row["present"][i].as_bool().unwrap()); + if let Some(b) = leaf { + hashes.push(qsa_buffer_digest(&b.buffer(), shape[i], strides[i], 2)); + } + } + assert_eq!(cache.mirror.is_some(), row["present"][4].as_bool().unwrap()); + if let Some(b) = &cache.mirror { + hashes.push(qsa_buffer_digest(b, shape[4], strides[4], 4)); + } + for state in &bank { + for (i, leaf) in state.leaves.iter().enumerate() { + if let Some(b) = leaf { + let (shape, stride) = if i < 2 { + ([2, state.offset, 256], [b.head_stride.get(), 256, 1]) + } else { + ( + [ + 1, + if i == 2 { + state.offset + } else { + state.pooled_len + }, + 128, + ], + [0, 128, 1], + ) + }; + hashes.push(qsa_buffer_digest(&b.buffer(), shape, stride, 2)); + } + } + } + assert_eq!( + serde_json::json!(hashes), + row["sha256"], + "{}", + row["kernel"] + ); + eprintln!("MTPLX canonical {}: exact", row["kernel"].as_str().unwrap()); + } + let before = cache.offset; + let mut invalid = cache.snapshot(); + invalid.offset = u32::MAX; + assert!(cache.restore(&invalid).is_err()); + assert_eq!(cache.offset, before); + assert!(cache.reserve(u32::MAX, 0).is_err()); + + // Pinned MTPLX QSACache: an alias of the array sees descriptor replacement; + // a separately evaluated slice retains the original Data (1 -> 2 update). + let mut cache = QsaCache::default(); + let ones = Buffer::mtplx_bytes(256).unwrap(); + ones.write(0, &[0x80, 0x3f].repeat(128)).unwrap(); + let twos = Buffer::mtplx_bytes(256).unwrap(); + twos.write(0, &[0x00, 0x40].repeat(128)).unwrap(); + let commands = scope.is_none().then(|| Commands::begin().unwrap()); + cache.write_raw(&ones, 1, 128).unwrap(); + if let Some(commands) = commands { + commands.finish().unwrap(); + } else { + scope.as_ref().unwrap().synchronize().unwrap(); + } + let alias = cache.raw.as_ref().unwrap().clone(); + let view = alias.buffer().view(0, 256).unwrap(); + let commands = scope.is_none().then(|| Commands::begin().unwrap()); + cache.write_raw(&twos, 1, 128).unwrap(); + if let Some(commands) = commands { + commands.finish().unwrap(); + } else { + scope.as_ref().unwrap().synchronize().unwrap(); + } + assert!(std::rc::Rc::ptr_eq(&alias, cache.raw.as_ref().unwrap())); + let mut actual = vec![0; 256]; + view.read(0, &mut actual).unwrap(); + assert_eq!(actual, [0x80, 0x3f].repeat(128)); + alias.buffer().read(0, &mut actual).unwrap(); + assert_eq!(actual, [0x00, 0x40].repeat(128)); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_selector_matches_reference() { + use super::qwen_mtplx::{QsaSelectMode, QsaSelectPlan, qsa_select, qsa_select_chunked}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|x| serde_json::from_str::(x).unwrap()) + .filter(|r| { + ["qsa_select_", "qsa_chunk_"] + .iter() + .any(|p| r["kernel"].as_str().unwrap().starts_with(p)) + }) + .collect::>(); + assert_eq!(fixtures.len(), 75); + for row in fixtures { + let n = |key: &str| row[key].as_u64().unwrap() as u32; + let mode = match row["mode"].as_str().unwrap() { + "blocks" => QsaSelectMode::Blocks, + "dense_mask" => QsaSelectMode::DenseMask, + "row_tokens" => QsaSelectMode::RowTokens, + _ => panic!("invalid mode"), + }; + let plan = QsaSelectPlan { + rows: n("rows"), + blocks: n("blocks"), + topk: n("topk"), + pos: n("pos"), + total: n("total"), + logical: n("total") / 4, + dense_width: n("dense_width"), + mode, + tf32: row["tf32"].as_bool().unwrap(), + input_f32: [ + row["input_f32"][0].as_bool().unwrap(), + row["input_f32"][1].as_bool().unwrap(), + ], + }; + if row["header_sha256"].is_string() { + let source = plan.source().unwrap(); + assert_eq!( + hex_digest(source.split_once("kernel void ").unwrap().0.as_bytes()), + row["header_sha256"] + ); + let body = source + .split_once("kernel void ") + .unwrap() + .1 + .split_once(") {") + .unwrap() + .1 + .strip_suffix("}\n") + .unwrap(); + assert_eq!(hex_digest(body.as_bytes()), row["body_sha256"]); + } + let operand = |count: u32, salt: u32, f32: bool| { + let mut bytes = Vec::new(); + for i in 0..count.max(1) { + let base = (((i * 17 + salt * 13) % 257) as i32 - 128) as f32 / 128.0; + let value = if row["zero"] == true { + 0.0 + } else { + base + if f32 { 0.00013 } else { 0.0 } + }; + if f32 { + bytes.extend_from_slice(&value.to_le_bytes()); + } else { + bytes.extend_from_slice(&((value.to_bits() >> 16) as u16).to_le_bytes()); + } + } + let buffer = Buffer::mtplx_bytes((bytes.len() as u64).max(4)).unwrap(); + buffer.write(0, &bytes).unwrap(); + buffer + }; + let ds = n("dim_stride"); + let q = operand(plan.rows * 512 * ds, 90, plan.input_f32[0]); + let pooled = operand(plan.blocks * 128 * ds, 91, plan.input_f32[1]); + let commands = FixtureBatch::begin(scope.as_ref()); + let select = if row["chunked"] == true { + qsa_select_chunked + } else { + qsa_select + }; + let out = select( + [&q, &pooled], + [u64::from(512 * ds), u64::from(128 * ds), u64::from(ds)], + [u64::from(128 * ds), u64::from(ds)], + plan, + ) + .unwrap(); + commands.finish().unwrap(); + verify_qsa_selection(&row, &out); + let invalid = QsaSelectPlan { total: 0, ..plan }; + assert!(select([&q, &pooled], [512, 128, 1], [128, 1], invalid).is_err()); + } + } +} + +fn verify_qsa_selection(row: &serde_json::Value, out: &super::qwen_mtplx::QsaSelection) { + assert_eq!(out.outputs.len(), row["sha256"].as_array().unwrap().len()); + let rows = row["rows"].as_u64().unwrap() as u32; + for (index, (buffer, (width, bytes))) in out.outputs.iter().zip(&out.row_widths).enumerate() { + let stride = out.row_strides[index]; + let mut raw = vec![0; ((rows - 1) * stride * bytes + width * bytes) as usize]; + buffer.read(0, &mut raw).unwrap(); + let mut hash = Sha256::new(); + for r in 0..rows { + let start = (r * stride * bytes) as usize; + for word in raw[start..start + (width * bytes) as usize].chunks_exact(*bytes as usize) { + let value = if *bytes == 1 { + f32::from(word[0]) + } else if index == 0 { + i32::from_le_bytes(word.try_into().unwrap()) as f32 + } else { + f32::from_le_bytes(word.try_into().unwrap()) + }; + hash.update(value.to_le_bytes()); + } + } + assert_eq!( + hash.finalize() + .iter() + .map(|b| format!("{b:02x}")) + .collect::(), + row["sha256"][index], + "{} output{index}", + row["kernel"] + ); + } + eprintln!("MTPLX canonical {}: exact", row["kernel"].as_str().unwrap()); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_connected_cache_selection_matches_reference() { + use super::qwen_mtplx::{ + QsaCache, QsaSelectMode, qsa_prefill_cached, qsa_prepare_queries, qsa_select_cached, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_connected_")) + .collect::>(); + assert_eq!(fixtures.len(), 12); + let frequency = fixtures[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|n| (n.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Buffer::mtplx_bytes(128).unwrap(); + freq.write(0, &frequency).unwrap(); + let qnorm = pattern(128, 72); + let knorm = pattern(128, 73); + let mut cache = QsaCache::default(); + let commands = Commands::begin().unwrap(); + cache + .write_raw(&pattern(2048 * 128, 88), 2048, 128) + .unwrap(); + cache.extend_pooled(2048, &knorm, &freq, false).unwrap(); + let kv = pattern(2048 * 512, 89); + cache.update_kv(&kv, &kv, 2048, [256, 512]).unwrap(); + commands.finish().unwrap(); + for group in fixtures.chunks_exact(3) { + let step = group[0]["step"].as_u64().unwrap() as u32; + let rows = group[0]["rows"].as_u64().unwrap() as u32; + let commands = Commands::begin().unwrap(); + let rawq = pattern(rows * 512, 90 + step); + let q = qsa_prepare_queries( + [&rawq, &qnorm, &freq], + rows, + [512, 128, 1], + cache.offset as i32, + ) + .unwrap(); + cache + .write_raw(&pattern(rows * 128, 100 + step), rows, 128) + .unwrap(); + cache + .extend_pooled(cache.offset + rows, &knorm, &freq, false) + .unwrap(); + let mut outputs = Vec::new(); + for mode in [ + QsaSelectMode::Blocks, + QsaSelectMode::DenseMask, + QsaSelectMode::RowTokens, + ] { + outputs.push(if group[0]["prefill"] == true { + qsa_prefill_cached(&cache, &q, rows, mode, 128 * 1024 * 1024).unwrap() + } else { + qsa_select_cached(&cache, &q, rows, mode, true).unwrap() + }); + } + let kv = pattern(rows * 512, 110 + step); + cache.update_kv(&kv, &kv, rows, [256, 512]).unwrap(); + commands.finish().unwrap(); + for (row, out) in group.iter().zip(&outputs) { + verify_qsa_selection(row, out); + } + } +} + +#[test] +fn mtplx_qsa_prefill_workspace_matches_reference() { + use super::qwen_mtplx::qsa_prefill_chunk_rows; + let cases = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| { + r["kernel"] + .as_str() + .unwrap() + .starts_with("qsa_prefill_plan_") + }) + .collect::>(); + assert_eq!(cases.len(), 10); + for case in cases { + let n = |k: &str| case[k].as_u64().unwrap(); + assert_eq!( + u64::from( + qsa_prefill_chunk_rows( + n("rows") as u32, + n("blocks") as u32, + n("budget"), + 32, + case["mpp"].as_bool().unwrap() + ) + .unwrap() + ), + n("chunk") + ); + } + for (rows, blocks, budget, alignment) in + [(0, 1, 1, 1), (1, 0, 1, 1), (1, 1, 0, 1), (1, 1, 1, 0)] + { + assert!(qsa_prefill_chunk_rows(rows, blocks, budget, alignment, true).is_err()); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_prefill_matches_reference() { + use super::qwen_mtplx::{ + QsaSelectMode, QsaSelectPlan, qsa_prefill, qsa_prefill_mpp_scores, qsa_prefill_topk, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let cases = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| { + ["qsa_mpp_score_", "qsa_prefill_topk_", "qsa_prefill_chain_"] + .iter() + .any(|p| r["kernel"].as_str().unwrap().starts_with(p)) + }) + .collect::>(); + assert_eq!(cases.len(), 146); + for row in cases { + let n = |k: &str| row[k].as_u64().unwrap() as u32; + let name = row["kernel"].as_str().unwrap(); + let rows = n("rows"); + let blocks = n("blocks"); + let ds = n("dim_stride"); + if name.starts_with("qsa_mpp_score_") { + let q = pattern(rows * 512 * ds, 92); + let pooled = pattern(blocks * 128 * ds, 93); + let commands = FixtureBatch::begin(scope.as_ref()); + let out = qsa_prefill_mpp_scores( + [&q, &pooled], + [rows, blocks], + [u64::from(512 * ds), u64::from(128 * ds), u64::from(ds)], + [u64::from(128 * ds), u64::from(ds)], + ) + .unwrap(); + commands.finish().unwrap(); + verify_typed(name, &[(&out, rows * blocks, 4)]); + continue; + } + let mode = match row["mode"].as_str().unwrap() { + "blocks" => QsaSelectMode::Blocks, + "dense_mask" => QsaSelectMode::DenseMask, + "row_tokens" => QsaSelectMode::RowTokens, + _ => panic!("invalid mode"), + }; + let plan = QsaSelectPlan { + rows, + blocks, + topk: n("topk"), + pos: n("pos"), + total: n("total"), + logical: n("total") / 4, + dense_width: n("dense_width"), + mode, + tf32: true, + input_f32: [false; 2], + }; + if name.starts_with("qsa_prefill_topk_") { + let source = plan.prefill_source().unwrap(); + let (header, kernel) = source.split_once("kernel void ").unwrap(); + assert_eq!(hex_digest(header.as_bytes()), row["header_sha256"]); + let body = kernel + .split_once(") {") + .unwrap() + .1 + .strip_suffix("}\n") + .unwrap(); + assert_eq!(hex_digest(body.as_bytes()), row["body_sha256"]); + let stride = n("row_stride"); + let bytes = (0..rows * stride) + .flat_map(|i| { + let value = if matches!(n("variant"), 1 | 2) { + (n("variant") - 1) as f32 + } else { + (((i * 17 + 94 * 13) % 257) as i32 - 128) as f32 / 128.0 + }; + value.to_le_bytes() + }) + .collect::>(); + let input = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + input.write(0, &bytes).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let out = + qsa_prefill_topk(&input, [u64::from(stride), u64::from(ds)], plan).unwrap(); + commands.finish().unwrap(); + verify_qsa_selection(&row, &out); + if rows > 1 || blocks > 1 { + assert!(qsa_prefill_topk(&input, [u64::MAX; 2], plan).is_err()); + } + } else { + let q = pattern(rows * 512 * ds, 92); + let pooled = pattern(blocks * 128 * ds, 93); + let commands = FixtureBatch::begin(scope.as_ref()); + let out = qsa_prefill( + [&q, &pooled], + [u64::from(512 * ds), u64::from(128 * ds), u64::from(ds)], + [u64::from(128 * ds), u64::from(ds)], + plan, + row["budget"].as_u64().unwrap(), + ) + .unwrap(); + commands.finish().unwrap(); + verify_qsa_selection(&row, &out); + } + } + } +} + +pub(super) fn pattern_scaled(count: u32, salt: u32, scale: f32) -> Buffer { + let bytes = (0..count) + .flat_map(|i| { + let value = ((i * 17 + salt * 13) % 257) as i32 - 128; + let bits = ((value as f32 / 128.0 * scale).to_bits() >> 16) as u16; + bits.to_le_bytes() + }) + .collect::>(); + let buffer = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + buffer.write(0, &bytes).unwrap(); + buffer +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_f32_scores_match_reference() { + use super::qwen_mtplx::qsa_prefill_f32_scores; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let mut cases = 0; + for row in include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_f32_score_")) + { + let n = |k: &str| row[k].as_u64().unwrap() as u32; + let bf16 = row["bf16"].as_bool().unwrap(); + let backing = |count: u32, salt, bf16| { + if bf16 { + return pattern(count, salt); + } + let bytes = (0..count) + .flat_map(|i| { + let base = ((i * 17 + salt * 13) % 257) as i32 - 128; + (base as f32 / 128.0 + (i % 7) as f32 / 65536.0).to_le_bytes() + }) + .collect::>(); + let b = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + b.write(0, &bytes).unwrap(); + b + }; + let q = backing(n("q_count"), 94, bf16); + let p = backing(n("pooled_count"), 95, false); + let commands = FixtureBatch::begin(scope.as_ref()); + let (scores, _temporary) = qsa_prefill_f32_scores( + [&q, &p], + [n("rows"), n("blocks")], + std::array::from_fn(|i| row["q_strides"][i].as_u64().unwrap()), + std::array::from_fn(|i| row["pooled_strides"][i].as_u64().unwrap()), + bf16, + row["tf32"].as_bool().unwrap(), + ) + .unwrap(); + commands.finish().unwrap(); + verify_typed( + row["kernel"].as_str().unwrap(), + &[(&scores, n("rows") * n("blocks"), 4)], + ); + cases += 1; + } + assert_eq!(cases, 384); + assert!( + qsa_prefill_f32_scores( + [&pattern(512, 0), &pattern_f32(128, 0)], + [1, 1], + [512, 128, 1], + [u64::MAX, 128], + true, + true + ) + .is_err() + ); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_prefill_producer_dispatch_matches_reference() { + use super::qwen_mtplx::{QsaSelectMode, QsaSelectPlan, qsa_prefill}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let mut cases = 0; + for row in include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_f32_chain_")) + { + let n = |k: &str| row[k].as_u64().unwrap() as u32; + let rows = n("rows"); + let blocks = n("blocks"); + let ds = n("ds"); + let f32 = std::array::from_fn(|i| row["input_f32"][i].as_bool().unwrap()); + let q = if f32[0] { + pattern_f32(rows * 512 * ds, 96) + } else { + pattern(rows * 512 * ds, 96) + }; + let p = if f32[1] { + pattern_f32(blocks * 128 * ds, 97) + } else { + pattern(blocks * 128 * ds, 97) + }; + let mode = match row["mode"].as_str().unwrap() { + "blocks" => QsaSelectMode::Blocks, + "dense_mask" => QsaSelectMode::DenseMask, + "row_tokens" => QsaSelectMode::RowTokens, + _ => panic!("invalid mode"), + }; + let commands = FixtureBatch::begin(scope.as_ref()); + let output = qsa_prefill( + [&q, &p], + [u64::from(512 * ds), u64::from(128 * ds), u64::from(ds)], + [u64::from(128 * ds), u64::from(ds)], + QsaSelectPlan { + rows, + blocks, + topk: 512, + pos: n("total") - rows, + total: n("total"), + logical: blocks, + dense_width: n("total") + 3, + mode, + tf32: row["tf32"].as_bool().unwrap(), + input_f32: f32, + }, + u64::from(n("budget")), + ) + .unwrap(); + commands.finish().unwrap(); + verify_qsa_selection(&row, &output); + cases += 1; + } + assert_eq!(cases, 96); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_eager_topk_matches_reference() { + use super::qwen_mtplx::{ + QsaEagerOptions, QsaIndexerSelection, QsaSelectMode, QsaSelectPlan, qsa_eager_output, + qsa_eager_topk, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let mut cases = 0; + for row in include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_eager_")) + { + let n = |k: &str| row[k].as_u64().unwrap() as u32; + let rows = n("rows"); + let blocks = n("blocks"); + let variant = n("variant"); + let ds = row["ds"].as_u64().unwrap_or(1) as u32; + let q = if variant == 2 { + pattern_f32(rows * 512 * ds, 98) + } else { + pattern(rows * 512 * ds, 98) + }; + if variant == 1 { + q.write(0, &vec![0; rows as usize * 512 * ds as usize * 2]) + .unwrap(); + } + let p = pattern_f32(blocks * 128, 99); + let plan = QsaSelectPlan { + rows, + blocks, + topk: 512, + pos: n("total") - rows, + total: n("total"), + logical: blocks, + dense_width: n("total"), + mode: QsaSelectMode::Blocks, + tf32: row["tf32"].as_bool().unwrap(), + input_f32: [variant == 2, true], + }; + let tile = row["tile"].as_u64().unwrap_or(0) as u32; + let submissions = row["eval_rows"].as_array().map_or(0, Vec::len) + 1; + let mut commands = FixtureBatch::begin(scope.as_ref()); + let out = qsa_eager_topk( + [&q, &p], + [512 * u64::from(ds), 128 * u64::from(ds), u64::from(ds)], + [1, 128], + plan, + tile, + commands.commands.as_mut(), + ) + .unwrap(); + assert_eq!( + out.index_row_stride, + if tile > 0 && tile < rows { + out.width + } else { + blocks + } + ); + let kind = row["kernel"].as_str().unwrap().split('_').nth(2).unwrap(); + if kind != "topk" { + let options = if row.get("tile").is_some() { + // Same switches as the actual reference invocation, not its + // returned kind. In particular gather stays enabled for tiles. + QsaEagerOptions { + large_prefill: row["prefill"].as_bool().unwrap() && plan.pos >= 2049, + flash: true, + gather_decode: true, + gather: true, + gather_max_rows: 2048, + gather_min_context: 0, + } + } else { + // Original untiled fixture families explicitly toggle these + // switches; flash and decode-gather are both set in flash cases. + QsaEagerOptions { + large_prefill: kind == "blocks", + flash: kind == "decode" && !row["gather"].as_bool().unwrap(), + gather_decode: kind == "decode", + gather: kind == "gather", + gather_max_rows: rows.max(2), + gather_min_context: 0, + } + }; + let selected = qsa_eager_output(out, plan.total, options).unwrap(); + commands.finish_with_submissions(submissions).unwrap(); + let (actual_kind, selected) = match selected { + QsaIndexerSelection::Dense(out) => ("dense", out), + QsaIndexerSelection::PrefillBlocks(out) => ("blocks", out), + QsaIndexerSelection::RowTokens(out) => ("gather", out), + QsaIndexerSelection::FlashBlocks(out, tail) => { + assert!(!row["gather"].as_bool().unwrap()); + assert_eq!(tail, n("tail_start")); + ("decode", out) + } + QsaIndexerSelection::DecodeTokens(out) => { + assert!(row["gather"].as_bool().unwrap()); + ("decode", out) + } + }; + assert_eq!(actual_kind, kind, "{}", row["kernel"]); + verify_qsa_selection(&row, &selected); + cases += 1; + continue; + } + commands.finish_with_submissions(submissions).unwrap(); + let mut hashes = Vec::new(); + for (i, (buffer, width, bytes)) in [ + (&out.indices, out.width, 4), + (&out.valid, blocks, 1), + (out.masked_scores.as_ref().unwrap(), blocks, 4), + ] + .into_iter() + .enumerate() + { + let mut raw = + vec![0; ((rows - 1) * out.row_stride * bytes + width * bytes) as usize]; + buffer.read(0, &mut raw).unwrap(); + let mut hash = Sha256::new(); + for r in 0..rows { + let start = (r * out.row_stride * bytes) as usize; + for word in + raw[start..start + (width * bytes) as usize].chunks_exact(bytes as usize) + { + let v = match i { + 0 => u32::from_le_bytes(word.try_into().unwrap()) as f32, + 1 => f32::from(word[0]), + _ => f32::from_le_bytes(word.try_into().unwrap()), + }; + hash.update(v.to_le_bytes()); + } + } + hashes.push( + hash.finalize() + .iter() + .map(|b| format!("{b:02x}")) + .collect::(), + ); + } + assert_eq!( + serde_json::json!(hashes), + row["sha256"], + "{}", + row["kernel"] + ); + for (buffer, divide) in [(&out.positions, false), (&out.complete_blocks, true)] { + let mut raw = vec![0; rows as usize * 4]; + buffer.read(0, &mut raw).unwrap(); + for (r, word) in raw.chunks_exact(4).enumerate() { + let pos = plan.pos + r as u32; + assert_eq!( + u32::from_le_bytes(word.try_into().unwrap()), + if divide { (pos + 1) / 4 } else { pos } + ); + } + } + cases += 1; + eprintln!("MTPLX canonical {}: exact", row["kernel"].as_str().unwrap()); + } + assert_eq!(cases, 540); + } +} + +#[test] +fn mtplx_qsa_compiled_capacity_matches_reference() { + use super::qwen_mtplx::qsa_replay_capacity; + let mut count = 0; + for line in include_str!("../../../tests/fixtures/mtplx-qsa-compiled-state.jsonl").lines() { + let row: serde_json::Value = serde_json::from_str(line).unwrap(); + if !row["kernel"] + .as_str() + .unwrap() + .starts_with("qsa_compile_capacity_") + { + continue; + } + let n = |key: &str| row[key].as_u64().unwrap() as u32; + let existing = std::array::from_fn(|i| row["existing"][i].as_u64().unwrap() as u32); + assert_eq!( + serde_json::json!(qsa_replay_capacity(n("start"), n("window"), existing).unwrap()), + row["capacity"], + "{}", + row["kernel"] + ); + count += 1; + } + assert_eq!(count, 108); + assert!(qsa_replay_capacity(u32::MAX, 1, [0; 2]).is_err()); + assert!(qsa_replay_capacity(0, u32::MAX, [0; 2]).is_err()); + assert!(qsa_replay_capacity(0, 1, [u32::MAX, 0]).is_err()); +} + +#[test] +fn mtplx_qsa_compiled_scalar_sources_match_reference() { + use super::qwen_mtplx::{qsa_compiled_clamp_source, qsa_compiled_row_position_source}; + let bank: serde_json::Value = serde_json::from_str(include_str!( + "../../../metal/mtplx-qsa-compiled-scalars.json" + )) + .unwrap(); + assert_eq!( + hex_digest(include_bytes!( + "../../../metal/mtplx-qsa-compiled-header.metal" + )), + bank["header_sha256"] + ); + let normalize = |body: &str| { + let name = body + .split_once("host_name(\"") + .unwrap() + .1 + .split_once('"') + .unwrap() + .0; + body.replace(name, "COMPILED_SCALAR") + }; + for v in bank["clamp"] + .as_object() + .unwrap() + .values() + .chain(std::iter::once(&bank["check_distinct"])) + { + let source = qsa_compiled_clamp_source( + v["max_new"].as_u64().unwrap() as u32, + v["max_start"].as_u64().unwrap() as u32, + ) + .unwrap(); + assert_eq!( + normalize(&source), + normalize(v["kernels"].as_str().unwrap()) + ); + } + assert!(qsa_compiled_clamp_source(0, 1).is_err()); + assert!(qsa_compiled_clamp_source(1, u32::MAX).is_err()); + let positions: serde_json::Value = serde_json::from_str(include_str!( + "../../../tests/fixtures/mtplx-qsa-select-jit.json" + )) + .unwrap(); + for (i, v) in positions.as_array().unwrap().iter().skip(3).enumerate() { + assert_eq!( + normalize(&qsa_compiled_row_position_source(3 - i as u32).unwrap()), + normalize(v["kernels"].as_str().unwrap()) + ); + } + assert!(qsa_compiled_row_position_source(u32::MAX).is_err()); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_compiled_indexer_modes_match_reference() { + use super::qwen_mtplx::{ + QsaArray, QsaCacheInput, QsaCompiledMode, QsaGraphBank, QsaIndexerWeights, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let mut cases = 0; + let mut projection: Option<([u32; 2], [Buffer; 3])> = None; + let mut graph = QsaGraphBank::default(); + let norm = pattern(128, 72); + let freq = Buffer::mtplx_bytes(128).unwrap(); + let graph_contracts = include_str!("../../../tests/fixtures/mtplx-qsa-compiled-graphs.jsonl") + .lines() + .map(|s| serde_json::from_str::(s).unwrap()) + .collect::>(); + for line in include_str!("../../../tests/fixtures/mtplx-qsa-compiled-indexer.jsonl") + .lines() + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-compiled-hidden.jsonl").lines()) + { + let row: serde_json::Value = serde_json::from_str(line).unwrap(); + let n = |key: &str| row[key].as_u64().unwrap() as u32; + let name = row["kernel"].as_str().unwrap(); + let caps: [u32; 2] = std::array::from_fn(|i| row["capacity"][i].as_u64().unwrap() as u32); + let (rows, stride) = (n("rows"), n("stride")); + let source = pattern(rows * stride, 150); + let quant = row["bits"].as_u64().map(|bits| [bits as u32, n("group")]); + if let Some([bits, group]) = quant + && projection + .as_ref() + .is_none_or(|(key, _)| *key != [bits, group]) + { + let words = (0..640_u32 * 2560 * bits / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let weight = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + weight.write(0, &words).unwrap(); + projection = Some(( + [bits, group], + [ + weight, + pattern_scaled(640 * 2560 / group, 75, 1.0 / 64.0), + pattern_scaled(640 * 2560 / group, 76, 1.0 / 64.0), + ], + )); + } + let raw = pattern(caps[0] * 128, 151); + let pool = pattern(caps[1] * 128, 152); + let freq_data = row["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + freq.write(0, &freq_data).unwrap(); + let state = [n("pos"), n("pos") + rows, n("logical"), n("pooled_len")].map(|v| { + let b = Buffer::mtplx_bytes(4).unwrap(); + b.write(0, &v.to_le_bytes()).unwrap(); + b + }); + let mode = match row["mode"].as_str().unwrap() { + "update_only" => QsaCompiledMode::UpdateOnly, + "blocks" => QsaCompiledMode::Blocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "dense_mask" => QsaCompiledMode::DenseMask, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + other => panic!("{other}"), + }; + unsafe { ds4_gpu_busy_stats_reset() }; + let commands = Commands::begin().unwrap(); + let previous_builds = graph.builds; + let pack = projection + .as_ref() + .map(|(_, pack)| pack.each_ref()) + .unwrap_or([&norm; 3]); + let (cache, selection) = graph + .run( + QsaIndexerWeights { + projection: pack, + quant: quant.unwrap_or([4, 64]), + q_norm: &norm, + k_norm: &norm, + inv_freq: &freq, + }, + &source, + QsaCacheInput::Retained([&raw, &pool]), + state.each_ref(), + [rows, caps[0], caps[1]], + quant.is_none().then_some(u64::from(stride)), + mode, + row["budget"].as_u64().unwrap(), + true, + ) + .unwrap(); + commands.finish().unwrap(); + if quant.is_none() && stride == 704 { + assert_eq!( + graph.builds, previous_builds, + "layout change must replay, not rebuild" + ); + } + let contract = graph_contracts + .iter() + .find(|c| { + c["hidden"] == quant.is_some() + && c["rows"] == rows + && c["stride"] == stride + && c["mode"] == row["mode"] + && c["budget"] == row["budget"] + }) + .unwrap(); + assert_eq!(graph.last_contract(), contract["contract"], "{name} graph"); + let [produced, peak, final_live] = graph.last_lifetime; + assert_eq!( + final_live, + 2 + selection.as_ref().map_or(0, |s| s.outputs.len()), + "{name} roots" + ); + assert!(final_live < produced && peak <= produced, "{name} last use"); + assert!( + cache._temporaries.is_empty(), + "{name} kept retired graph leaves" + ); + let mut busy = GpuBusyStats::default(); + unsafe { ds4_gpu_busy_stats_get(&mut busy) }; + assert_eq!(busy.command_buffers, 1, "{name}"); + if let Some(out) = &selection { + verify_qsa_selection(&row, out); + } else { + assert_eq!(mode, QsaCompiledMode::UpdateOnly); + assert!(row["sha256"].as_array().unwrap().is_empty()); + } + for (key, b, cap) in [ + ("raw_next", &cache.raw, caps[0]), + ("pool_next", &cache.pooled, caps[1]), + ("raw_old", &raw, caps[0]), + ("pool_old", &pool, caps[1]), + ] { + assert_eq!( + qsa_buffer_digest(b, [1, cap, 128], [0, 128, 1], 2), + row["state_sha256"][key], + "{name} {key}" + ); + } + if name == "qsa_compile_indexer_c0_stride640" { + // New array identity, same bytes: rebuild the parameter-bound core + // even when an allocator might reuse the old native address. + let replacement = pattern(128, 72); + assert_ne!(replacement.identity(), norm.identity()); + let commands = Commands::begin().unwrap(); + let (_, selected) = graph + .run( + QsaIndexerWeights { + projection: pack, + quant: [4, 64], + q_norm: &replacement, + k_norm: &norm, + inv_freq: &freq, + }, + &source, + QsaCacheInput::Retained([&raw, &pool]), + state.each_ref(), + [rows, caps[0], caps[1]], + Some(u64::from(stride)), + mode, + row["budget"].as_u64().unwrap(), + true, + ) + .unwrap(); + commands.finish().unwrap(); + assert_eq!((graph.calls, graph.builds, graph.entry_count()), (1, 1, 1)); + verify_qsa_selection(&row, selected.as_ref().unwrap()); + // Restore the original signature, then the following stride704 + // call must reuse this graph without rebuilding its expression. + let commands = Commands::begin().unwrap(); + let _result = graph + .run( + QsaIndexerWeights { + projection: pack, + quant: [4, 64], + q_norm: &norm, + k_norm: &norm, + inv_freq: &freq, + }, + &source, + QsaCacheInput::Retained([&raw, &pool]), + state.each_ref(), + [rows, caps[0], caps[1]], + Some(u64::from(stride)), + mode, + row["budget"].as_u64().unwrap(), + true, + ) + .unwrap(); + commands.finish().unwrap(); + assert_eq!((graph.calls, graph.builds), (1, 1)); + } + // Replay through the state entry with live snapshots, then exclusive + // ownership. All three ownership forms have the same numeric contract. + let ids = [raw.data_identity(), pool.data_identity()]; + let mut owned_raw = QsaArray::new(raw, 0).unwrap(); + let mut owned_pool = QsaArray::new(pool, 0).unwrap(); + for retain in [true, false] { + let snapshots = retain.then(|| [owned_raw.clone(), owned_pool.clone()]); + let commands = Commands::begin().unwrap(); + let (reused, selection) = graph + .run( + QsaIndexerWeights { + projection: pack, + quant: quant.unwrap_or([4, 64]), + q_norm: &norm, + k_norm: &norm, + inv_freq: &freq, + }, + &source, + QsaCacheInput::State([&mut owned_raw, &mut owned_pool]), + state.each_ref(), + [rows, caps[0], caps[1]], + quant.is_none().then_some(u64::from(stride)), + mode, + row["budget"].as_u64().unwrap(), + true, + ) + .unwrap(); + commands.finish().unwrap(); + for (actual, original) in [reused.raw.data_identity(), reused.pooled.data_identity()] + .into_iter() + .zip(ids) + { + assert_eq!( + actual == original, + !retain, + "{name} donation, retained={retain}" + ); + } + if let Some(snapshots) = snapshots { + for ((key, cap), snapshot) in [("raw_old", caps[0]), ("pool_old", caps[1])] + .into_iter() + .zip(snapshots) + { + assert_eq!( + qsa_buffer_digest(&snapshot.buffer(), [1, cap, 128], [0, 128, 1], 2), + row["state_sha256"][key], + "{name} snapshot {key}" + ); + } + } + if let Some(out) = &selection { + verify_qsa_selection(&row, out); + } + for (key, buffer, cap) in [ + ("raw_next", &reused.raw, caps[0]), + ("pool_next", &reused.pooled, caps[1]), + ] { + assert_eq!( + qsa_buffer_digest(buffer, [1, cap, 128], [0, 128, 1], 2), + row["state_sha256"][key], + "{name} donated {key}" + ); + } + } + cases += 1; + } + assert_eq!(cases, 198); +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_compiled_cache_window_matches_reference() { + use super::qwen_mtplx::qsa_compiled_cache_window; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let mut cases = 0; + for line in include_str!("../../../tests/fixtures/mtplx-qsa-compiled-window.jsonl").lines() + { + let row: serde_json::Value = serde_json::from_str(line).unwrap(); + let n = |key: &str| row[key].as_u64().unwrap() as u32; + let name = row["kernel"].as_str().unwrap(); + let caps: [u32; 2] = + std::array::from_fn(|i| row["capacity"][i].as_u64().unwrap() as u32); + let (rows, stride) = (n("rows"), n("stride")); + let qk = pattern(rows * stride, 150); + let raw = pattern(caps[0] * 128, 151); + let pool = pattern(caps[1] * 128, 152); + let norm = pattern(128, 72); + let freq_data = row["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|v| (v.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Buffer::mtplx_bytes(freq_data.len() as u64).unwrap(); + freq.write(0, &freq_data).unwrap(); + let state = [n("pos"), n("logical"), n("pooled_len")].map(|value| { + let b = Buffer::mtplx_bytes(4).unwrap(); + b.write(0, &value.to_le_bytes()).unwrap(); + b + }); + let commands = FixtureBatch::begin(scope.as_ref()); + let out = qsa_compiled_cache_window( + [&qk, &raw, &pool, &norm, &freq], + [&state[0], &state[1], &state[2]], + rows, + u64::from(stride), + caps, + ) + .unwrap(); + commands.finish().unwrap(); + let hashes = [ + (&out.raw, caps[0]), + (&out.pooled, caps[1]), + (&raw, caps[0]), + (&pool, caps[1]), + ] + .map(|(b, cap)| qsa_buffer_digest(b, [1, cap, 128], [0, 128, 1], 2)); + assert_eq!(serde_json::json!(hashes), row["sha256"], "{name}"); + let max_new = rows.div_ceil(4); + let expected = n("logical") + .saturating_sub(max_new) + .min(n("pooled_len")) + .min((caps[0] / 4).min(caps[1]) - max_new); + for (b, value) in [(&out.block_start, expected), (&out.raw_start, expected * 4)] { + let mut word = [0; 4]; + b.read(0, &mut word).unwrap(); + assert_eq!(u32::from_le_bytes(word), value, "{name}"); + } + cases += 1; + } + assert_eq!(cases, 26); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_compiled_backings_and_dynamic_copies_match_reference() { + use super::qwen_mtplx::{QsaCache, qsa_dynamic_copy_rows}; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + for independent_encoder in [false, true] { + let scope = independent_encoder + .then(super::qwen_mtplx::Scope::new) + .transpose() + .unwrap(); + let mut cache = QsaCache::default(); + let mut cases = 0; + for line in include_str!("../../../tests/fixtures/mtplx-qsa-compiled-state.jsonl").lines() { + let row: serde_json::Value = serde_json::from_str(line).unwrap(); + let name = row["kernel"].as_str().unwrap(); + let n = |key: &str| row[key].as_u64().unwrap() as u32; + if name.starts_with("qsa_compile_materialize_") { + let commands = FixtureBatch::begin(scope.as_ref()); + let reserve: [u32; 2] = + std::array::from_fn(|i| row["reserve"][i].as_u64().unwrap() as u32); + if reserve != [0; 2] { + cache.reserve(reserve[0], reserve[1]).unwrap(); + } + cache.ensure_compiled_backings(n("rows")).unwrap(); + commands.finish().unwrap(); + assert_eq!( + serde_json::json!([cache.raw_cap, cache.pooled_cap]), + row["capacity"], + "{name}" + ); + assert_eq!(cache.offset, n("offset")); + assert_eq!(cache.pooled_len, n("pooled_len")); + let hashes = [ + (&cache.raw, cache.raw_cap), + (&cache.pooled, cache.pooled_cap), + ] + .map(|(a, cap)| { + qsa_buffer_digest(&a.as_ref().unwrap().buffer(), [1, cap, 128], [0, 128, 1], 2) + }); + assert_eq!(serde_json::json!(hashes), row["sha256"], "{name}"); + let commands = FixtureBatch::begin(scope.as_ref()); + let raw = pattern(3 * 128, 160 + n("step")); + cache.write_raw(&raw, 3, 128).unwrap(); + commands.finish().unwrap(); + } else if name.starts_with("qsa_compile_dynamic_") { + let (rows, stride, cap) = (n("rows"), u64::from(n("stride")), n("capacity")); + let source = pattern(cap * n("stride"), 151); + let update = pattern(rows * n("stride"), 152); + let start = Buffer::mtplx_bytes(4).unwrap(); + start.write(0, &n("start").to_le_bytes()).unwrap(); + let sliced = Buffer::mtplx_bytes(u64::from(rows) * 128 * 2).unwrap(); + let updated = Buffer::mtplx_bytes(u64::from(cap) * 128 * 2).unwrap(); + let commands = FixtureBatch::begin(scope.as_ref()); + let mut temporaries = qsa_dynamic_copy_rows( + [&source, &sliced], + [stride, 128], + [rows, 128], + [Some(&start), None], + [ + ((cap - 1) as u64 * stride + 128) as usize, + rows as usize * 128, + ], + ) + .unwrap(); + // The source remains live, so no donation is legal in this check. + temporaries.extend( + qsa_dynamic_copy_rows( + [&source, &updated], + [stride, 128], + [cap, 128], + [None; 2], + [ + ((cap - 1) as u64 * stride + 128) as usize, + cap as usize * 128, + ], + ) + .unwrap(), + ); + temporaries.extend( + qsa_dynamic_copy_rows( + [&update, &updated], + [stride, 128], + [rows, 128], + [None, Some(&start)], + [ + ((rows - 1) as u64 * stride + 128) as usize, + cap as usize * 128, + ], + ) + .unwrap(), + ); + commands.finish().unwrap(); + let hashes = [ + (&sliced, rows, 128), + (&updated, cap, 128), + (&source, cap, stride), + ] + .map(|(b, r, s)| qsa_buffer_digest(b, [1, r, 128], [0, s, 1], 2)); + assert_eq!(serde_json::json!(hashes), row["sha256"], "{name}"); + } else { + continue; + } + cases += 1; + } + assert_eq!(cases, 12); + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_compiled_cache_routing_matches_reference() { + use super::qwen_mtplx::{QsaArray, QsaCache, QsaCompiledMode}; + let _context = Context::open_qwen(0).unwrap(); + let fixture: serde_json::Value = serde_json::from_str(include_str!( + "../../../tests/fixtures/mtplx-qsa-compiled-routes.json" + )) + .unwrap(); + // No GPU work: both implementations inspect typed backing metadata only. + // Reuse allocation storage because none of these calls mutates the cache. + let mut arrays = std::collections::BTreeMap::new(); + let mut backing = |value: &serde_json::Value| { + value.as_u64().map(|cap| { + arrays + .entry(cap) + .or_insert_with(|| { + QsaArray::new(Buffer::mtplx_bytes(cap.max(1) * 128 * 2).unwrap(), 0).unwrap() + }) + .clone() + }) + }; + let mut checked = 0; + for case in fixture["cases"].as_array().unwrap() { + let options = qsa_indexer_options(&fixture["options"][case[0].as_u64().unwrap() as usize]); + let state = &fixture["states"][case[1].as_u64().unwrap() as usize]; + let n = |i: usize| state[i].as_u64().unwrap_or(0) as u32; + let mut cache = QsaCache::default(); + cache.offset = n(2); + cache.raw = backing(&state[3]); + cache.pooled = backing(&state[4]); + cache.raw_cap = n(3); + cache.pooled_cap = n(4); + cache.pooled_len = n(5); + let mode = match case[2].as_str().unwrap() { + "update_only" => QsaCompiledMode::UpdateOnly, + "blocks" => QsaCompiledMode::Blocks, + "prefill_blocks" => QsaCompiledMode::PrefillBlocks, + "row_tokens" => QsaCompiledMode::RowTokens, + "dense_mask" => QsaCompiledMode::DenseMask, + other => panic!("unknown mode {other}"), + }; + assert_eq!( + options.compiled_mode(n(1), n(0) + n(1), 4, 512), + mode, + "{case}" + ); + for supplied in [false, true] { + let accepted = case[if supplied { 4 } else { 3 }].as_bool().unwrap(); + assert_eq!( + options.compiled_cache_mode(&cache, n(1), n(0)), + accepted.then_some(mode), + "{case}, state={state}, supplied={supplied}" + ); + checked += 1; + } + assert_eq!(cache.offset, n(2)); + assert_eq!(cache.raw_cap, n(3)); + assert_eq!(cache.pooled_cap, n(4)); + assert_eq!(cache.pooled_len, n(5)); + } + assert_eq!(checked, 720); +} + +pub(super) fn qsa_indexer_options(opt: &serde_json::Value) -> super::qwen_mtplx::QsaIndexerOptions { + let b = |key: &str| opt[key].as_bool().unwrap(); + let n = |key: &str| opt[key].as_u64().unwrap() as u32; + super::qwen_mtplx::QsaIndexerOptions { + fused: b("fused"), + compiled: opt["compiled"].as_bool().unwrap_or(false), + prefill: b("prefill"), + phase_prefill: b("phase_prefill"), + prefill_min_rows: n("prefill_min_rows"), + prefill_compile_rows: opt["prefill_compile_rows"].as_u64().unwrap_or(2048) as u32, + prefill_min_context: n("prefill_min_context"), + prefill_workspace: opt["prefill_workspace"].as_u64().unwrap(), + tile_rows: n("tile_rows"), + flash: b("flash"), + gather_decode: b("gather_decode"), + gather: b("gather"), + gather_max_rows: n("gather_max_rows"), + gather_min_context: n("gather_min_context"), + tf32: b("tf32"), + } +} + +#[test] +#[ignore = "requires Apple M5 Max Metal, no model weights"] +fn mtplx_qsa_indexer_routes_match_reference() { + use super::qwen_mtplx::{ + QsaCache, QsaGraphBank, QsaIndexerSelection, QsaIndexerWeights, qsa_indexer_rows, + }; + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let run = |scope: Option<&super::qwen_mtplx::Scope>| { + let fixtures = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .chain( + include_str!("../../../tests/fixtures/mtplx-qsa-indexer-connected.jsonl").lines(), + ) + .map(|s| serde_json::from_str::(s).unwrap()) + .filter(|r| r["kernel"].as_str().unwrap().starts_with("qsa_indexer_")) + .collect::>(); + assert_eq!(fixtures.len(), 200); + let words = (0..640_u32 * 2560 * 4 / 32) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let w = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + w.write(0, &words).unwrap(); + let scales = pattern_scaled(640 * 2560 / 64, 75, 1.0 / 64.0); + let biases = pattern_scaled(640 * 2560 / 64, 76, 1.0 / 64.0); + let qnorm = pattern(128, 72); + let knorm = pattern(128, 73); + let freq_bytes = fixtures[0]["frequencies"] + .as_array() + .unwrap() + .iter() + .flat_map(|n| (n.as_f64().unwrap() as f32).to_le_bytes()) + .collect::>(); + let freq = Buffer::mtplx_bytes(128).unwrap(); + freq.write(0, &freq_bytes).unwrap(); + let mut cache = QsaCache::default(); + let mut graph = QsaGraphBank::default(); + for row in fixtures { + let number = |key: &str| row[key].as_u64().unwrap() as u32; + let options = qsa_indexer_options(&row["options"]); + let step = number("step"); + if step == 0 { + cache = QsaCache::default(); + graph = QsaGraphBank::default(); + let prefix = number("prefix"); + if prefix > 0 { + let commands = FixtureBatch::begin(scope); + cache + .write_raw(&pattern(prefix * 128, 88), prefix, 128) + .unwrap(); + let _scratch = cache + .extend_pooled(prefix, &knorm, &freq, !options.fused) + .unwrap(); + let kv = pattern(prefix * 512, 89); + cache.update_kv(&kv, &kv, prefix, [256, 512]).unwrap(); + commands.finish().unwrap(); + } + } + let rows = number("rows"); + assert_eq!(cache.offset, number("pos")); + let hidden = pattern(rows * 2560, 77 + step); + let supplied = row["supplied"] + .as_bool() + .unwrap() + .then(|| pattern(rows * number("stride"), 121 + step)); + let mut commands = FixtureBatch::begin(scope); + let indexed = qsa_indexer_rows( + QsaIndexerWeights { + projection: [&w, &scales, &biases], + quant: [4, 64], + q_norm: &qnorm, + k_norm: &knorm, + inv_freq: &freq, + }, + &hidden, + supplied.as_ref().map(|q| (q, u64::from(number("stride")))), + rows, + &mut cache, + &options, + commands.commands.as_mut(), + &mut graph, + ) + .unwrap(); + if let Some(counts) = row.get("graph_counts") { + assert_eq!( + serde_json::json!([graph.calls, graph.builds, graph.entry_count()]), + *counts, + "{} graph engagement", + row["kernel"] + ); + } + assert_eq!( + indexed.lane, + row["lane"].as_str().unwrap(), + "{}", + row["kernel"] + ); + let evals = + if indexed.lane == "eager" && options.tile_rows > 0 && options.tile_rows < rows { + rows.div_ceil(options.tile_rows) + } else { + 0 + }; + if let Some(scope) = &scope { + // These full-prefill graphs cross the pinned Max data-size + // threshold (50 Mi elements) after 17 dispatches. Other cases + // do not cross either threshold. This is independent of the + // explicit tile/final synchronization assertion below. + let expected = usize::from(matches!( + row["kernel"].as_str().unwrap(), + "qsa_indexer_compiled_s12_qk0_step0" | "qsa_indexer_compiled_s12_qk1_step0" + )); + assert_eq!( + scope.primitive_commits() - commands.primitive_commits, + expected, + "{} automatic primitive submissions", + row["kernel"] + ); + } + commands + .finish_with_submissions(evals as usize + 1) + .unwrap(); + let (kind, selected) = match &indexed.selection { + None => ("none", None), + Some(QsaIndexerSelection::Dense(out)) => ("dense", Some(out)), + Some(QsaIndexerSelection::PrefillBlocks(out)) => ("flash_prefill", Some(out)), + Some(QsaIndexerSelection::RowTokens(out)) => ("gather_rows", Some(out)), + Some(QsaIndexerSelection::DecodeTokens(out)) => ("decode_tokens", Some(out)), + Some(QsaIndexerSelection::FlashBlocks(out, tail)) => { + assert_eq!(*tail, number("tail")); + ("flash", Some(out)) + } + }; + assert_eq!(kind, row["kind"].as_str().unwrap(), "{}", row["kernel"]); + if let Some(selected) = selected { + verify_qsa_selection(&row, selected); + } else { + assert!(row["sha256"].as_array().unwrap().is_empty()); + } + for (key, value) in [ + ("pos", cache.offset), + ("raw_cap", cache.raw_cap), + ("pooled_cap", cache.pooled_cap), + ("pooled_len", cache.pooled_len), + ("mirror_cap", cache.mirror_cap), + ] { + assert_eq!(value, number(key), "{} {key}", row["kernel"]); + } + let states = serde_json::json!({ + "raw":cache.raw.as_ref().map(|a|qsa_buffer_digest(&a.buffer(),[1,cache.raw_cap,128],[0,128,1],2)), + "pooled":cache.pooled.as_ref().map(|a|qsa_buffer_digest(&a.buffer(),[1,cache.pooled_cap,128],[0,128,1],2)), + "mirror":cache.mirror.as_ref().map(|a|qsa_buffer_digest(a,[1,128,cache.mirror_cap], + [0,cache.mirror_strides[0],cache.mirror_strides[1]],4)), + }); + assert_eq!(states, row["state_sha256"], "{}", row["kernel"]); + // As in Attention, the KV update follows index selection, never precedes it. + let commands = FixtureBatch::begin(scope); + let kv = pattern(rows * 512, 140 + step); + cache.update_kv(&kv, &kv, rows, [256, 512]).unwrap(); + commands.finish().unwrap(); + } + }; + run(None); + // The complete ongoing fixture sequence shares a registered GPU stream. + let streams = super::qwen_mtplx::Streams::new(Some( + super::qwen_mtplx::allocator::Allocator::new().unwrap(), + )); + let stream = streams + .default_stream(super::qwen_mtplx::StreamDevice::Gpu) + .unwrap(); + streams + .with_gpu(stream, |scope| { + run(Some(scope)); + Ok(()) + }) + .unwrap(); + streams.clear_streams().unwrap(); +} + +type DispatchReceipt = (String, [u32; 3], [u32; 3], bool); +thread_local! { + static DISPATCH_RECEIPTS: std::cell::RefCell>> = const { std::cell::RefCell::new(None) }; +} + +pub(super) fn record_dispatch(name: &str, grid: [u32; 3], group: [u32; 3], threads: bool) { + DISPATCH_RECEIPTS.with_borrow_mut(|receipts| { + if let Some(receipts) = receipts { + receipts.push((name.into(), grid, group, threads)); + } + }); +} + +/// Observe successful calls at the native dispatch boundary, not a duplicate +/// prediction of kernel selection. Disabled unless this test scope is active. +pub(super) fn capture_dispatches(f: impl FnOnce() -> R) -> (R, Vec) { + struct Reset; + impl Drop for Reset { + fn drop(&mut self) { + DISPATCH_RECEIPTS.with_borrow_mut(|receipts| *receipts = None); + } + } + DISPATCH_RECEIPTS.with_borrow_mut(|receipts| { + assert!(receipts.is_none(), "nested dispatch capture"); + *receipts = Some(Vec::new()); + }); + let _reset = Reset; + let result = f(); + ( + result, + DISPATCH_RECEIPTS.with_borrow_mut(|receipts| receipts.take().unwrap()), + ) +} + +pub(super) fn assert_gdn_step_dispatch(receipts: &[DispatchReceipt]) { + let steps = receipts + .iter() + .filter(|r| r.0.contains("gdn_step_fused")) + .cloned() + .collect::>(); + assert_eq!( + steps, + [( + "kernel_qwen_mtplx_gdn_step_fused_f32_state_bf16".into(), + [256, 1, 48], + [256, 1, 1], + true + )] + ); +} + +pub(super) fn pattern_f32(count: u32, salt: u32) -> Buffer { + let bytes = (0..count) + .flat_map(|i| { + let value = ((i * 17 + salt * 13) % 257) as i32 - 128; + (value as f32 / 128.0).to_le_bytes() + }) + .collect::>(); + let buffer = Buffer::mtplx_bytes(bytes.len() as u64).unwrap(); + buffer.write(0, &bytes).unwrap(); + buffer +} + +fn dispatch(name: &str, buffers: &[&Buffer], grid: [u32; 3], threads: [u32; 3]) { + let name = CString::new(format!("kernel_qwen_mtplx_{name}")).unwrap(); + let pointers = buffers + .iter() + .map(|buffer| buffer.raw().cast_const()) + .collect::>(); + assert_eq!( + unsafe { + ds4_gpu_qwen_dispatch_buffers( + name.as_ptr(), + pointers.as_ptr(), + pointers.len() as u32, + grid.as_ptr(), + threads.as_ptr(), + ) + }, + 1, + "{name:?}" + ); +} + +pub(super) fn verify(name: &str, outputs: &[(&Buffer, u32)]) { + verify_typed( + name, + &outputs.iter().map(|(b, n)| (*b, *n, 2)).collect::>(), + ); +} + +pub(super) fn verify_typed(name: &str, outputs: &[(&Buffer, u32, usize)]) { + let fixture = include_str!("../../../tests/fixtures/mtplx-custom-kernels.jsonl") + .lines() + .chain(include_str!("../../../tests/fixtures/mtplx-shared-mlp.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-gdn-lifecycle.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-gdn-commit.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-hyper-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-hyper-forward.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-ple-projection.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-dense-batch.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-dense-float.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sdpa-fallback.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-softmax-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-logsumexp-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sampler-selection.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-rows-attention.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-prefill-gather.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sdpa-vector.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-rope-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-kv-cache-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sparse-attention.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-dense-mask.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-scatter-axis.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-cache-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-prepare-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sum-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-sort-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-eager-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-indexer-prefix.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-fused-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-qsa-prefill-graph.jsonl").lines()) + .chain(include_str!("../../../tests/fixtures/mtplx-dynamic-slice-graph.jsonl").lines()) + .map(|line| serde_json::from_str::(line).unwrap()) + .find(|row| row["kernel"] == name) + .unwrap(); + assert_eq!(outputs.len(), fixture["sha256"].as_array().unwrap().len()); + for (i, (buffer, elements, width)) in outputs.iter().enumerate() { + assert!(matches!(width, 2 | 4)); + let mut bytes = vec![0; *elements as usize * width]; + buffer.read(0, &mut bytes).unwrap(); + let mut hash = Sha256::new(); + for word in bytes.chunks_exact(*width) { + if *width == 2 { + let value = u32::from(u16::from_le_bytes([word[0], word[1]])) << 16; + hash.update(value.to_le_bytes()); + } else { + hash.update(word); + } + } + assert_eq!( + hash.finalize() + .iter() + .map(|byte| format!("{byte:02x}")) + .collect::(), + fixture["sha256"][i].as_str().unwrap(), + "{name} output{i}" + ); + } + eprintln!("MTPLX canonical {name}: exact"); +} + +#[test] +#[ignore = "requires Apple Metal, no model weights"] +fn mtplx_canonical_hyper_and_gdn_kernels_match_reference() { + configure_sources().unwrap(); + let _context = Context::open_qwen(0).unwrap(); + let gamma = pattern(10240, 2); + let down = pattern(320 * 10240, 3); + let up = pattern(10240 * 320, 4); + let inject_weight = pattern(4 * 10240, 5); + for rows in [1, 4, 8] { + let x = pattern(rows * 10240, 1); + let mixed = Buffer::mtplx_bytes(u64::from(rows * 2560) * 2).unwrap(); + let inject = Buffer::mtplx_bytes(u64::from(rows * 4) * 2).unwrap(); + for combine in [true, false] { + let commands = Commands::begin().unwrap(); + dispatch( + if combine { + "hyper_read_inj_bf16" + } else { + "hyper_read_mix_bf16" + }, + &[ + &x, + &gamma, + &down, + &up, + if combine { &inject_weight } else { &gamma }, + &mixed, + &inject, + ], + [1024, rows, 1], + [1024, 1, 1], + ); + commands.finish().unwrap(); + if combine { + verify( + &format!("hyper_inj_s{rows}"), + &[(&mixed, rows * 2560), (&inject, rows * 4)], + ); + } else { + verify(&format!("hyper_mix_s{rows}"), &[(&mixed, rows * 2560)]); + } + } + } + // V3 pack and both reads are covered by the connected hyper graph test, + // which uses the reference quantizer rather than the product's Q8 kernel. + + let mut state = pattern(3 * 10240, 7); + let weights = pattern(10240 * 4, 8); + for rows in 1..=6 { + let x = pattern(rows * 10240, 6); + let sizes = [rows * 2048, rows * 2048, rows * 6144, 3 * 10240]; + let outputs = sizes.map(|size| Buffer::mtplx_bytes(u64::from(size) * 2).unwrap()); + let commands = Commands::begin().unwrap(); + dispatch( + &if rows == 1 { + "gdn_conv_norm_bf16".to_owned() + } else { + format!("gdn_conv_norm_rows_s{rows}_bf16") + }, + &[ + &x, + &state, + &weights, + &outputs[0], + &outputs[1], + &outputs[2], + &outputs[3], + ], + [10 * 1024, 1, 1], + [1024, 1, 1], + ); + commands.finish().unwrap(); + verify( + &format!("gdn_s{rows}"), + &outputs.iter().zip(sizes).collect::>(), + ); + } + let mut delta = pattern_f32(48 * 128 * 128, 15); + let z = pattern(6144, 9); + let a = pattern(48, 10); + let b = pattern(48, 11); + let a_log = pattern(48, 12); + let dt_bias = pattern(48, 13); + let norm = pattern(128, 14); + for step in 0..2 { + let x = pattern(10240, 6 + step); + let y = Buffer::mtplx_bytes(6144 * 2).unwrap(); + let next_state = Buffer::mtplx_bytes(3 * 10240 * 2).unwrap(); + let next_delta = Buffer::mtplx_floats(48 * 128 * 128).unwrap(); + let commands = Commands::begin().unwrap(); + dispatch( + "gdn_step_fused_f32_state_bf16", + &[ + &x, + &z, + &a, + &b, + &state, + &weights, + &a_log, + &dt_bias, + &delta, + &norm, + &y, + &next_state, + &next_delta, + ], + [256, 1, 48], + [256, 1, 1], + ); + commands.finish().unwrap(); + verify_typed( + &format!("gdn_step_{step}"), + &[ + (&y, 6144, 2), + (&next_state, 3 * 10240, 2), + (&next_delta, 48 * 128 * 128, 4), + ], + ); + state = next_state; + delta = next_delta; + } + let words = (0..2560_u32 * 768) + .flat_map(|i| i.wrapping_mul(2654435761).wrapping_add(12345).to_le_bytes()) + .collect::>(); + let qw = Buffer::mtplx_bytes(words.len() as u64).unwrap(); + qw.write(0, &words).unwrap(); + for gs in [32, 64] { + let scales = pattern(2560 * 6144 / gs, 16); + let biases = pattern(2560 * 6144 / gs, 17); + for (tag, width) in [("bf16", 2), ("f32", 4)] { + let x = if width == 2 { + pattern(6144, 18) + } else { + pattern_f32(6144, 18) + }; + let y = Buffer::mtplx_bytes(2560 * width as u64).unwrap(); + let commands = Commands::begin().unwrap(); + dispatch( + &format!("gdn_out_fused_gs{gs}_{tag}"), + &[&x, &z, &norm, &qw, &scales, &biases, &y], + [80 * 1024, 1, 1], + [1024, 1, 1], + ); + commands.finish().unwrap(); + verify_typed(&format!("gdn_out_gs{gs}_{tag}"), &[(&y, 2560, width)]); + } + } + for rows in [1_u32, 4, 7, 32, 2048] { + let q = pattern_scaled(rows * 2048, 19, 1.0 / 16.0); + let k = pattern_scaled(rows * 2048, 20, 1.0 / 16.0); + let v = pattern(rows * 6144, 21); + let g = Buffer::mtplx_floats(u64::from(rows * 48)).unwrap(); + g.write_f32(&vec![0.75; rows as usize * 48]).unwrap(); + let beta = Buffer::mtplx_bytes(u64::from(rows * 48) * 2).unwrap(); + beta.write(0, &[0, 0x3f].repeat(rows as usize * 48)) + .unwrap(); + let state = pattern_f32(48 * 128 * 128, 15); + let steps = Buffer::mtplx_bytes(4).unwrap(); + steps.write(0, &rows.to_le_bytes()).unwrap(); + let mask = Buffer::mtplx_bytes(u64::from(rows)).unwrap(); + mask.write( + 0, + &(0..rows).map(|i| u8::from(i % 3 != 0)).collect::>(), + ) + .unwrap(); + for masked in [false, true] { + let y = Buffer::mtplx_bytes(u64::from(rows * 6144) * 2).unwrap(); + let next_state = Buffer::mtplx_floats(48 * 128 * 128).unwrap(); + let mut buffers = vec![&q, &k, &v, &g, &beta, &state, &steps]; + if masked { + buffers.push(&mask); + } + buffers.extend([&y, &next_state]); + let commands = Commands::begin().unwrap(); + dispatch( + if masked { + "gated_delta_masked_bf16" + } else { + "gated_delta_bf16" + }, + &buffers, + [32, 128, 48], + [32, 4, 1], + ); + commands.finish().unwrap(); + verify_typed( + &format!("gated_delta_s{rows}_mask{}", u8::from(masked)), + &[(&y, rows * 6144, 2), (&next_state, 48 * 128 * 128, 4)], + ); + } + } + // Invalid geometry must be rejected before creating or corrupting a batch. + assert_eq!( + unsafe { + ds4_gpu_qwen_dispatch_buffers( + c"kernel_qwen_mtplx_gdn_conv_norm_bf16".as_ptr(), + std::ptr::null(), + 0, + [1, 1, 1].as_ptr(), + [1024, 1, 1].as_ptr(), + ) + }, + 0 + ); +} diff --git a/src/engine/qwen.rs b/src/engine/qwen.rs index 7c95262..bdc6390 100644 --- a/src/engine/qwen.rs +++ b/src/engine/qwen.rs @@ -58,11 +58,17 @@ struct ExpectedTensor { } #[derive(Debug, Deserialize)] -struct Tensor { - dtype: String, - shape: Vec, +pub(super) struct Tensor { + pub(super) dtype: String, + pub(super) shape: Vec, #[serde(rename = "data_offsets")] - offsets: [u64; 2], + pub(super) offsets: [u64; 2], +} + +pub(super) struct TensorHeader { + pub(super) data_start: u64, + pub(super) tensors: BTreeMap, + pub(super) metadata: Value, } #[derive(Debug, Eq, PartialEq)] @@ -128,14 +134,76 @@ pub(super) struct QwenTensor { } pub(super) struct QwenModel { - tokenizer: Tokenizer, + metadata: QwenMetadata, memory: MemoryPlan, maps: Vec, tensors: HashMap, ple_reader: PleReader, +} + +/// Shared product-facing model information, without weight mappings, GPU state +/// or the legacy PLE reader pool. Either Qwen executor can own this directly. +pub(super) struct QwenMetadata { + pub(super) tokenizer: Tokenizer, + summary: ModelSummary, identity: [u8; 32], } +impl std::ops::Deref for QwenModel { + type Target = QwenMetadata; + + fn deref(&self) -> &Self::Target { + &self.metadata + } +} + +impl QwenMetadata { + fn new(tokenizer: Tokenizer, mapped_bytes: u64, tensor_count: usize) -> Self { + let mut hash = Sha256::new(); + hash.update(b"DS4Server Qwen3.8 checkpoint identity v1"); + hash.update(MANIFEST); + let summary = ModelSummary { + model: ModelChoice::Qwen38FlashNext, + mapped_bytes, + tensor_count, + vocabulary_size: tokenizer.vocab_size(), + support_loaded: false, + vision_loaded: false, + }; + Self { + tokenizer, + summary, + identity: hash.finalize().into(), + } + } + + pub(super) fn open(root: &Path, enable_mtp: bool) -> Result { + let (tokenizer, bindings, _) = load_inventory(root)?; + let selected = bindings + .core + .iter() + .chain(&bindings.ple) + .chain(bindings.mtp.iter().filter(|_| enable_mtp)); + let mut files = BTreeSet::new(); + let mut tensor_count = 0; + for binding in selected { + files.insert(&binding.file); + tensor_count += 1; + } + let mut mapped_bytes = 0_u64; + for file in files { + mapped_bytes = mapped_bytes + .checked_add( + fs::metadata(file) + .map_err(|e| format!("{}: {e}", file.display()))? + .len(), + ) + .ok_or("Qwen artifact size overflows")?; + } + Ok(Self::new(tokenizer, mapped_bytes, tensor_count)) + } +} + struct PleTask { row: u64, response: mpsc::Sender<(u64, Result<[u8; PLE_ROW_BYTES], String>)>, @@ -416,17 +484,17 @@ impl QwenModel { }) .collect::>(); let ple_reader = PleReader::new(&maps, &tensors)?; - let mut hash = Sha256::new(); - hash.update(b"DS4Server Qwen3.8 checkpoint identity v1"); - hash.update(MANIFEST); - let identity = hash.finalize().into(); + let metadata = QwenMetadata::new( + loaded.tokenizer, + maps.iter().map(|item| item.bytes).sum(), + tensors.len(), + ); Ok(Self { - tokenizer: loaded.tokenizer, + metadata, memory: loaded.memory, maps, tensors, ple_reader, - identity, }) } @@ -504,20 +572,15 @@ impl QwenModel { pub(super) fn ple_stats(&self) -> PleStats { self.ple_reader.stats() } +} +impl QwenMetadata { pub(super) fn checkpoint_identity(&self) -> [u8; 32] { self.identity } pub(super) fn summary(&self) -> ModelSummary { - ModelSummary { - model: ModelChoice::Qwen38FlashNext, - mapped_bytes: self.maps.iter().map(|item| item.bytes).sum(), - tensor_count: self.tensors.len(), - vocabulary_size: self.tokenizer.vocab_size(), - support_loaded: false, - vision_loaded: false, - } + self.summary.clone() } pub(super) fn render_conversation( @@ -566,7 +629,9 @@ impl QwenModel { pub(super) fn is_think_end_token(&self, token: i32) -> bool { self.tokenizer.is_think_end(token) } +} +impl QwenModel { pub(super) fn memory(&self) -> &MemoryPlan { &self.memory } @@ -622,6 +687,17 @@ pub(crate) fn validate_artifacts(root: &Path) -> Result<(), String> { } pub(super) fn load(root: &Path, context: u32, enable_mtp: bool) -> Result { + let (tokenizer, bindings, tensor_count) = load_inventory(root)?; + let memory = memory_plan(context, enable_mtp, 512)?; + Ok(LoadedArtifacts { + tokenizer, + memory, + bindings, + tensor_count, + }) +} + +fn load_inventory(root: &Path) -> Result<(Tokenizer, ArtifactBindings, usize), String> { let manifest: Manifest = serde_json::from_slice(MANIFEST) .map_err(|error| format!("embedded Qwen manifest is invalid: {error}"))?; validate_json(root, "config.json", &manifest.config)?; @@ -637,13 +713,7 @@ pub(super) fn load(root: &Path, context: u32, enable_mtp: bool) -> Result Result<(u64, BTreeMap), String> { + let TensorHeader { + data_start, + tensors, + metadata: _metadata, + } = read_tensor_header(path)?; + Ok((data_start, tensors)) +} + +pub(super) fn read_tensor_header(path: &Path) -> Result { let mut file = File::open(path).map_err(|error| format!("{}: {error}", path.display()))?; + read_tensor_header_file(path, &mut file) +} + +pub(super) fn read_tensor_header_file( + path: &Path, + file: &mut File, +) -> Result { let size = file .metadata() .map_err(|error| format!("{}: {error}", path.display()))? @@ -855,7 +941,9 @@ fn read_header(path: &Path) -> Result<(u64, BTreeMap), String> { let mut values = serde_json::from_slice::(&bytes) .map_err(|error| format!("{}: {error}", path.display()))? .0; - values.remove("__metadata__"); + let metadata = values + .remove("__metadata__") + .unwrap_or_else(|| serde_json::json!({})); let mut tensors = BTreeMap::new(); for (name, value) in values { let tensor: Tensor = serde_json::from_value(value) @@ -876,7 +964,11 @@ fn read_header(path: &Path) -> Result<(u64, BTreeMap), String> { )); } } - Ok((data_start, tensors)) + Ok(TensorHeader { + data_start, + tensors, + metadata, + }) } struct UniqueObject(BTreeMap); @@ -1103,6 +1195,125 @@ mod tests { fs::remove_dir_all(root).unwrap(); } + #[test] + #[ignore = "requires DS4_QWEN38_ARTIFACTS to point at the pinned 105 GB source"] + fn pinned_qwen_metadata_matches_product_without_executor_state() { + let root = PathBuf::from(std::env::var_os("DS4_QWEN38_ARTIFACTS").unwrap()); + for mtp in [false, true] { + let metadata = QwenMetadata::open(&root, mtp).unwrap(); + let legacy = QwenModel::open_configured(&root, 32768, mtp).unwrap(); + assert_eq!(metadata.summary(), legacy.summary()); + assert_eq!( + metadata.summary().tensor_count, + if mtp { 2527 } else { 2469 } + ); + assert_eq!(metadata.checkpoint_identity(), legacy.checkpoint_identity()); + // The common engine facade accepts just metadata. Neither model + // mappings nor PLE readers are needed for any of these operations. + let shared = super::super::ModelRef::Qwen(&metadata); + assert_eq!(shared.summary(), legacy.summary()); + let messages = [ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: "Hi".into(), + }]; + for mode in [ + ReasoningMode::Direct, + ReasoningMode::Low, + ReasoningMode::XHigh, + ] { + let rendered = shared.render_conversation("", &messages, mode); + assert_eq!(rendered, legacy.render_conversation("", &messages, mode)); + assert_eq!( + shared.render_history("system", &messages, mode), + legacy.render_history("system", &messages, mode) + ); + let history = [ + messages[0].clone(), + ChatTurn { + user: false, + reasoning: Some("Brief thought.".into()), + content: "pong".into(), + ..messages[0].clone() + }, + ]; + let mut conversation = history.to_vec(); + conversation.push(messages[0].clone()); + let settings = crate::settings::TurnSettings { + kv_cache: crate::settings::KvCachePreferences::default().settings(), + context_tokens: 32768, + max_generated_tokens: i32::MAX, + system_prompt: "system".into(), + temperature: 0.6, + top_p: 0.95, + min_p: 0.0, + top_k: 20, + stops: vec![], + seed: Some(0), + reasoning_mode: mode, + }; + let expected = shared.render_conversation("system", &conversation, mode); + let cached = shared.render_history("system", &history, mode); + let ending = metadata.tokenizer.tokenize_rendered("<|im_end|>\n"); + assert_eq!(ending, [metadata.tokenizer.eos(), 198]); + assert!(cached.ends_with(&ending)); + let tag = super::super::conversation_tag("system", mode, &history); + // Full template, MTPLX EOS frontier and scalar pre-EOS + // frontier must all append the same complete turn boundary. + for missing in 0..=ending.len() { + assert_eq!( + super::super::render_text_prompt( + shared, + &cached[..cached.len() - missing], + tag, + &conversation, + &settings + ), + expected + ); + } + assert_eq!( + super::super::render_text_prompt( + shared, + &[42], + [0; 32], + &conversation, + &settings + ), + expected + ); + for skip_eos in [false, true] { + assert_eq!( + shared.render_continuation("ping", mode, skip_eos), + legacy.render_continuation("ping", mode, skip_eos) + ); + } + for token in [248044, 248046, 248068, 248069, 846] { + assert_eq!( + shared.is_stop_token_for_reasoning(token, mode), + legacy.is_stop_token_for_reasoning(token, mode) + ); + assert_eq!(shared.token_bytes(token), legacy.token_bytes(token)); + } + if mode == ReasoningMode::Direct { + assert_eq!( + rendered, + [ + 248045, 846, 198, 12675, 248046, 198, 248045, 74455, 198, 248068, 271, + 248069, 271 + ] + ); + } + } + assert_eq!(legacy.ple_stats().read_bytes, 0); + assert_eq!(legacy.ple_stats().misses, 0); + } + } + #[test] #[ignore = "requires DS4_QWEN38_ARTIFACTS to point at the pinned 105 GB source"] fn pinned_artifact_set_loads_and_renders_goldens() { diff --git a/src/engine/tokenizer.rs b/src/engine/tokenizer.rs index aa78135..9aba847 100644 --- a/src/engine/tokenizer.rs +++ b/src/engine/tokenizer.rs @@ -426,7 +426,7 @@ impl Tokenizer { ) -> Vec { if self.family == ModelFamily::Qwen { return self.encode_qwen_messages( - system_prompt, + Some(system_prompt), messages, reasoning, continue_assistant, @@ -523,7 +523,7 @@ impl Tokenizer { fn encode_qwen_messages( &self, - system_prompt: &str, + system_prompt: Option<&str>, messages: &[ChatTurn], reasoning: ReasoningMode, continue_assistant: bool, @@ -541,8 +541,10 @@ impl Tokenizer { } }; let mut rendered = String::new(); - let system_prompt = system_prompt.trim(); - if !instruction.is_empty() || !system_prompt.is_empty() { + // A checkpoint continuation already contains the initial system message. + if let Some(system_prompt) = system_prompt.map(str::trim) + && (!instruction.is_empty() || !system_prompt.is_empty()) + { rendered.push_str("<|im_start|>system\n"); if !instruction.is_empty() { rendered.push_str(instruction); @@ -608,7 +610,7 @@ impl Tokenizer { reasoning_complete: true, content: prompt.to_owned(), }]; - return self.encode_qwen_messages("", &messages, reasoning, true); + return self.encode_qwen_messages(None, &messages, reasoning, true); } let mut output = Vec::new(); if self.family == ModelFamily::DeepSeek && !skip_previous_eos { @@ -1090,6 +1092,107 @@ fn unicode_punctuation(cp: u32) -> bool { mod tests { use super::*; + #[test] + #[ignore = "requires local tokenizer and tools/qwen-chat-reference.py output; no inference"] + fn qwen_plain_chat_matches_mtplx_server_tokens() { + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE").unwrap(); + let reference = std::env::var_os("DS4SERVER_QWEN38_CHAT_REFERENCE").unwrap(); + let fixture: serde_json::Value = + serde_json::from_slice(&fs::read(reference).unwrap()).unwrap(); + let tokenizer = Tokenizer::load_qwen(&Path::new(&root).join("tokenizer.json")).unwrap(); + let cases = fixture["cases"].as_array().unwrap(); + assert_eq!(cases.len(), 3); + for (index, case) in cases.iter().enumerate() { + let messages = case["messages"] + .as_array() + .unwrap() + .iter() + .map(|message| ChatTurn { + user: message["role"] == "user", + tool: false, + system: false, + skip_previous_eos: false, + reasoning: message["reasoning_content"].as_str().map(str::to_owned), + reasoning_complete: true, + content: message["content"].as_str().unwrap().to_owned(), + }) + .collect::>(); + let actual = tokenizer.encode_conversation("", &messages, ReasoningMode::Low); + let rendered = actual + .iter() + .flat_map(|&id| tokenizer.token_bytes(id).unwrap()) + .collect::>(); + assert_eq!( + rendered, + case["rendered"].as_str().unwrap().as_bytes(), + "turn {} rendered bytes", + index + 1 + ); + let expected: Vec = serde_json::from_value(case["token_ids"].clone()).unwrap(); + assert!( + actual == expected, + "turn {} token mismatch: actual={}, reference={}, first_difference={:?}", + index + 1, + actual.len(), + expected.len(), + actual.iter().zip(&expected).position(|(a, b)| a != b) + ); + let mut resumed = + tokenizer.encode_history("", &messages[..messages.len() - 1], ReasoningMode::Low); + resumed.extend(tokenizer.encode_continuation( + &messages.last().unwrap().content, + ReasoningMode::Low, + false, + )); + assert!(resumed == expected, "turn {} checkpoint tokens", index + 1); + } + } + + #[test] + #[ignore = "requires the installed Qwen tokenizer, but no GPU or model weights"] + fn qwen_checkpoint_continuation_matches_full_conversation() { + let root = std::env::var_os("DS4SERVER_QWEN38_SOURCE") + .expect("set DS4SERVER_QWEN38_SOURCE to the installed artifact directory"); + let tokenizer = Tokenizer::load_qwen(&Path::new(&root).join("tokenizer.json")).unwrap(); + let user = ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: "ping".into(), + }; + let assistant = ChatTurn { + user: false, + reasoning: Some("Brief thought.".into()), + content: "pong".into(), + ..user.clone() + }; + for reasoning in [ + ReasoningMode::Direct, + ReasoningMode::Low, + ReasoningMode::Medium, + ReasoningMode::XHigh, + ] { + for mut history in [vec![], vec![user.clone(), assistant.clone()]] { + let mut resumed = + tokenizer.encode_history("System instruction", &history, reasoning); + resumed.extend(tokenizer.encode_continuation("Next question", reasoning, false)); + history.push(ChatTurn { + content: "Next question".into(), + ..user.clone() + }); + assert_eq!( + resumed, + tokenizer.encode_conversation("System instruction", &history, reasoning), + "checkpoint/full prompt mismatch: {reasoning:?}, {} messages", + history.len(), + ); + } + } + } + #[test] fn character_helpers_are_total_at_every_byte_offset() { let text = "Aé中😊"; diff --git a/src/main.rs b/src/main.rs index 728ff6b..7c818dd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,12 +15,16 @@ mod instructions; mod metrics; mod model; #[cfg(target_os = "macos")] +mod model_eval; +#[cfg(target_os = "macos")] mod native_edit; #[cfg(target_os = "macos")] mod native_media; #[cfg(target_os = "macos")] mod native_menu; #[cfg(target_os = "macos")] +mod process_resources; +#[cfg(target_os = "macos")] mod runtime; mod schema; #[cfg(target_os = "macos")] @@ -38,6 +42,24 @@ fn main() -> iced::Result { } return Ok(()); } + #[cfg(target_os = "macos")] + if matches!( + std::env::args().nth(1).as_deref(), + Some("model-eval" | "__model-eval-worker") + ) { + let worker = std::env::args().nth(1).as_deref() == Some("__model-eval-worker"); + let result = if worker { + engine::configure_metal_sources() + .and_then(|()| model_eval::run_worker(std::env::args().skip(2))) + } else { + model_eval::run_supervisor(std::env::args_os().skip(2)) + }; + if let Err(error) = result { + eprintln!("Model evaluation failed: {error}"); + std::process::exit(1); + } + return Ok(()); + } agent::initialize_shell_environment(); #[cfg(target_os = "macos")] if let Err(error) = engine::configure_metal_sources() { diff --git a/src/metrics.rs b/src/metrics.rs index b944d14..690a608 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -1,6 +1,7 @@ use crate::model::ModelChoice; use std::fs; use std::path::{Path, PathBuf}; +use std::sync::Mutex; use std::sync::atomic::{AtomicBool, AtomicU8, AtomicU16, AtomicU32, AtomicU64, Ordering}; use std::time::{Duration, Instant, SystemTime}; @@ -79,6 +80,17 @@ pub(crate) struct SsdStats { pub(crate) wait_ms: u64, } +/// Engine prompt evaluation, not the UI Prefilling phase. Evaluation includes +/// target work and committed MTP history, but excludes restore and checkpoints. +/// None in a snapshot means unreported, not zero work (e.g. another backend). +#[derive(Clone, Copy, Debug, PartialEq, serde::Serialize)] +pub(crate) struct PromptTiming { + pub(crate) evaluated_tokens: usize, + pub(crate) eval_seconds: f64, + pub(crate) mtp_history_seconds: f64, + pub(crate) restore_seconds: f64, +} + #[derive(Clone, Debug, Default)] pub(crate) struct MetricsSnapshot { pub(crate) uptime_seconds: u64, @@ -100,7 +112,9 @@ pub(crate) struct MetricsSnapshot { pub(crate) context_used: u32, pub(crate) context_limit: u32, pub(crate) decode_tokens_per_second: f32, + pub(crate) decode_duration_ns: Option, pub(crate) prefill_tokens_per_second: f32, + pub(crate) prompt_timing: Option, pub(crate) last_runtime_ms: u64, pub(crate) average_runtime_ms: u64, pub(crate) last_prompt_tokens: u64, @@ -195,8 +209,10 @@ pub(crate) struct Metrics { context_used: AtomicU32, context_limit: AtomicU32, decode_tps: AtomicU32, + decode_duration_ns: AtomicU64, prefill_tps: AtomicU32, prefill_sample: AtomicU32, + prompt_timing: Mutex>, last_runtime_ms: AtomicU64, total_runtime_ms: AtomicU64, last_prompt_tokens: AtomicU64, @@ -296,8 +312,10 @@ impl Metrics { context_used: AtomicU32::new(0), context_limit: AtomicU32::new(0), decode_tps: AtomicU32::new(0), + decode_duration_ns: AtomicU64::new(0), prefill_tps: AtomicU32::new(0), prefill_sample: AtomicU32::new(0), + prompt_timing: Mutex::new(None), last_runtime_ms: AtomicU64::new(0), total_runtime_ms: AtomicU64::new(0), last_prompt_tokens: AtomicU64::new(0), @@ -394,8 +412,14 @@ impl Metrics { self.queue_depth.fetch_sub(1, Ordering::Relaxed); self.source.store(source as u8, Ordering::Relaxed); self.decode_tps.store(0, Ordering::Relaxed); + self.decode_duration_ns.store(0, Ordering::Relaxed); self.prefill_tps.store(0, Ordering::Relaxed); self.prefill_sample.store(0, Ordering::Relaxed); + self.set_prompt_timing(None); + } + + pub(crate) fn set_prompt_timing(&self, timing: Option) { + *self.prompt_timing.lock().unwrap_or_else(|e| e.into_inner()) = timing; } pub(crate) fn loading(&self) { @@ -438,6 +462,15 @@ impl Metrics { store_f32(&self.decode_tps, speed); } + pub(crate) fn measure_decode(&self, started: Instant) -> DecodeTimer<'_> { + self.decode_duration_ns.store(0, Ordering::Relaxed); + DecodeTimer { + metrics: self, + started, + elapsed: None, + } + } + #[allow(clippy::too_many_arguments)] pub(crate) fn request_finished( &self, @@ -548,6 +581,7 @@ impl Metrics { } pub(crate) fn unloaded(&self) { + self.set_prompt_timing(None); self.phase .store(RuntimePhase::Unloaded as u8, Ordering::Relaxed); self.model.store(0, Ordering::Relaxed); @@ -697,7 +731,12 @@ impl Metrics { context_used: self.context_used.load(Ordering::Relaxed), context_limit: self.context_limit.load(Ordering::Relaxed), decode_tokens_per_second: load_f32(&self.decode_tps), + decode_duration_ns: match self.decode_duration_ns.load(Ordering::Relaxed) { + 0 => None, + elapsed => Some(elapsed), + }, prefill_tokens_per_second: load_f32(&self.prefill_tps), + prompt_timing: *self.prompt_timing.lock().unwrap_or_else(|e| e.into_inner()), last_runtime_ms: self.last_runtime_ms.load(Ordering::Relaxed), average_runtime_ms: average( self.total_runtime_ms.load(Ordering::Relaxed), @@ -823,6 +862,34 @@ impl Metrics { } } +/// Ends on every exit from the decode loop, before pending-token finalization +/// and checkpoint work in the caller. Includes sampling and output callbacks. +pub(crate) struct DecodeTimer<'a> { + metrics: &'a Metrics, + started: Instant, + elapsed: Option, +} + +impl DecodeTimer<'_> { + /// A whole-turn backend reports the boundary before its final cache + /// capture. Keep the same metric and failure-safe Drop as scalar decode. + pub(crate) fn finish(mut self, elapsed: Duration) { + self.elapsed = Some(elapsed); + } +} + +impl Drop for DecodeTimer<'_> { + fn drop(&mut self) { + self.metrics.decode_duration_ns.store( + self.elapsed + .unwrap_or_else(|| self.started.elapsed()) + .as_nanos() + .clamp(1, u128::from(u64::MAX)) as u64, + Ordering::Relaxed, + ); + } +} + fn store_f32(target: &AtomicU32, value: f32) { target.store(value.max(0.0).to_bits(), Ordering::Relaxed); } @@ -1051,6 +1118,35 @@ fn cache_usage(root: &Path) -> CacheUsage { mod tests { use super::*; + #[test] + fn decode_timer_excludes_later_work_and_resets_between_requests() { + let metrics = Metrics::new(Path::new("/path/that/does/not/exist")); + assert_eq!(metrics.snapshot().decode_duration_ns, None); + let failed_decode = || -> Result<(), &'static str> { + let _timer = metrics.measure_decode(Instant::now() - Duration::from_millis(10)); + Err("decode failed")?; + Ok(()) + }; + assert!(failed_decode().is_err()); + let elapsed = metrics.snapshot().decode_duration_ns.unwrap(); + assert!(elapsed >= 10_000_000); + metrics.kv_write_started(); + metrics.kv_write_finished(Duration::from_secs(2), false); + assert_eq!(metrics.snapshot().decode_duration_ns, Some(elapsed)); + metrics.request_queued(WorkSource::LocalChat); + metrics.request_started(WorkSource::LocalChat); + assert_eq!(metrics.snapshot().decode_duration_ns, None); + { + let _timer = metrics.measure_decode(Instant::now()); + assert_eq!(metrics.snapshot().decode_duration_ns, None); + } + assert!(metrics.snapshot().decode_duration_ns.is_some()); + metrics + .measure_decode(Instant::now() - Duration::from_secs(10)) + .finish(Duration::from_millis(7)); + assert_eq!(metrics.snapshot().decode_duration_ns, Some(7_000_000)); + } + #[test] fn removed_preview_metric_code_stays_decodable() { assert_eq!(model_name(1), "DeepSeek V4 Flash"); diff --git a/src/model_eval.rs b/src/model_eval.rs new file mode 100644 index 0000000..f0cd0a8 --- /dev/null +++ b/src/model_eval.rs @@ -0,0 +1,1878 @@ +use crate::config::Config; +use crate::engine::{ + ChatTurn, GenerationOutput, gpu_allocated_bytes, gpu_busy_stats, gpu_canary_probe, + reset_gpu_busy_stats, +}; +use crate::metrics::{Metrics, MetricsSnapshot, WorkSource}; +use crate::model::ModelChoice; +use crate::process_resources::{ResourceUsage, resource_usage}; +use crate::runtime::{CheckpointTarget, GenerationEvent, GenerationService}; +use crate::settings::{GIB, ReasoningMode, effective_settings}; +use serde_json::{Value, json}; +use std::ffi::OsString; +use std::fs; +use std::io::{self, BufRead, BufReader, Write}; +use std::path::PathBuf; +use std::process::{Command, Stdio}; +use std::sync::atomic::{AtomicBool, AtomicU8, Ordering}; +use std::sync::mpsc::{self, Receiver, RecvTimeoutError}; +use std::sync::{Arc, Mutex}; +use std::thread; +use std::thread::JoinHandle; +use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH}; + +const DEFAULT_PROMPT: &str = "This is a prose-generation test. Respond only with a complete short fictional story in ordinary prose. Choose the genre, setting, and characters yourself and begin the story immediately. Do not ask questions, offer choices, explain limitations, or discuss coding."; +const DEFAULT_POWER_PERCENT: u8 = 100; +const DEFAULT_START_TIMEOUT_SECONDS: u64 = 120; +const DEFAULT_CONTINUATION_TIMEOUT_SECONDS: u64 = 120; +const DEFAULT_SAMPLE_MS: u64 = 1_000; +const WARMUP_PROMPT: &str = "Reply with exactly: OK"; +const WARMUP_MAX_TOKENS: i32 = 32; +const MAX_INPUT_FILE_BYTES: u64 = 16 * 1024 * 1024; +const GPU_CANARY_INTERVAL: Duration = Duration::from_millis(100); +const BEACHBALL_THRESHOLD: Duration = Duration::from_secs(2); + +#[derive(Clone, Debug, PartialEq)] +struct Options { + model: ModelChoice, + prompt: String, + additional_prompts: Vec, + input_file: Option, + models_path: PathBuf, + config_path: PathBuf, + plain_chat: bool, + context: Option, + max_tokens: Option, + power_percent: u8, + reasoning: Option, + temperature: Option, + top_p: Option, + min_p: Option, + seed: Option, + acceleration: Option, + canary: bool, + warmup: bool, + ssd: Option, + prefill_chunk: Option, + quality: Option, + start_timeout: Duration, + continuation_timeout: Duration, + max_memory_bytes: u64, + sample_interval: Duration, +} + +impl Options { + fn parse(args: impl IntoIterator) -> Result, String> { + let mut model = None; + let mut prompt = DEFAULT_PROMPT.to_owned(); + let mut prompt_overridden = false; + let mut additional_prompts = Vec::new(); + let mut input_file = None; + let mut models_path = crate::app::models_path(); + let mut config_path = crate::app::config_path(); + let mut context = None; + let mut max_tokens = None; + let mut power_percent = DEFAULT_POWER_PERCENT; + let mut reasoning = None; + let mut temperature = None; + let mut top_p = None; + let mut min_p = None; + let mut seed = None; + let mut acceleration = None; + let mut canary = true; + let mut warmup = true; + let mut plain_chat = true; + let mut ssd = None; + let mut prefill_chunk = None; + let mut quality = None; + let mut start_timeout = Duration::from_secs(DEFAULT_START_TIMEOUT_SECONDS); + let mut continuation_timeout = Duration::from_secs(DEFAULT_CONTINUATION_TIMEOUT_SECONDS); + let mut max_memory_bytes = physical_memory_bytes().saturating_mul(85) / 100; + let mut sample_interval = Duration::from_millis(DEFAULT_SAMPLE_MS); + let mut args = args.into_iter(); + while let Some(argument) = args.next() { + let argument = argument + .into_string() + .map_err(|_| "arguments must be valid UTF-8".to_owned())?; + let mut value = || { + args.next() + .ok_or_else(|| format!("{argument} requires a value"))? + .into_string() + .map_err(|_| format!("{argument} must be valid UTF-8")) + }; + match argument.as_str() { + "-h" | "--help" => { + print_usage(); + return Ok(None); + } + "--model" => { + let id = value()?; + model = ModelChoice::from_id(&id) + .ok_or_else(|| format!("unknown model {id:?}"))? + .into(); + } + "--prompt" => { + let next = value()?; + if prompt_overridden { + additional_prompts.push(next); + } else { + prompt = next; + prompt_overridden = true; + } + } + "--input-file" => input_file = Some(value()?.into()), + "--models-dir" => models_path = value()?.into(), + "--config" => config_path = value()?.into(), + "--context" => context = Some(parse(&argument, &value()?)?), + "--max-tokens" => max_tokens = Some(parse(&argument, &value()?)?), + "--power-percent" => power_percent = parse(&argument, &value()?)?, + "--reasoning" => reasoning = Some(parse_reasoning(&value()?)?), + "--temperature" => temperature = Some(parse(&argument, &value()?)?), + "--top-p" => top_p = Some(parse(&argument, &value()?)?), + "--min-p" => min_p = Some(parse(&argument, &value()?)?), + "--seed" => seed = Some(parse(&argument, &value()?)?), + "--acceleration" | "--mtp" => { + acceleration = Some(parse_switch(&argument, &value()?)?) + } + "--canary" => canary = parse_switch(&argument, &value()?)?, + "--warmup" => warmup = parse_switch(&argument, &value()?)?, + "--plain-chat" => plain_chat = parse_switch(&argument, &value()?)?, + "--ssd" => ssd = Some(parse_switch(&argument, &value()?)?), + "--prefill-chunk" => prefill_chunk = Some(parse(&argument, &value()?)?), + "--quality" => quality = Some(parse_switch(&argument, &value()?)?), + "--start-timeout-seconds" => { + start_timeout = Duration::from_secs(parse(&argument, &value()?)?) + } + "--continuation-timeout-seconds" => { + continuation_timeout = Duration::from_secs(parse(&argument, &value()?)?) + } + "--max-memory-gib" | "--max-rss-gib" => { + max_memory_bytes = parse::(&argument, &value()?)? + .checked_mul(GIB) + .ok_or("--max-memory-gib is too large")?; + } + "--sample-ms" => { + sample_interval = Duration::from_millis(parse(&argument, &value()?)?) + } + _ => return Err(format!("unknown argument {argument:?}; use --help")), + } + } + let model = model.ok_or("--model is required; use --help")?; + if prompt.trim().is_empty() { + return Err("--prompt must not be empty".into()); + } + if additional_prompts + .iter() + .any(|prompt| prompt.trim().is_empty()) + { + return Err("--prompt must not be empty".into()); + } + if max_tokens.is_some_and(|tokens| tokens == 0 || tokens > i32::MAX as u32) { + return Err("--max-tokens must be between 1 and 2147483647".into()); + } + if !(1..=100).contains(&power_percent) { + return Err("--power-percent must be between 1 and 100".into()); + } + if start_timeout.is_zero() { + return Err("--start-timeout-seconds must be positive".into()); + } + if continuation_timeout.is_zero() { + return Err("--continuation-timeout-seconds must be positive".into()); + } + if max_memory_bytes == 0 { + return Err("--max-memory-gib must be positive".into()); + } + if !(Duration::from_millis(100)..=Duration::from_secs(10)).contains(&sample_interval) { + return Err("--sample-ms must be between 100 and 10000".into()); + } + Ok(Some(Self { + model, + prompt, + additional_prompts, + input_file, + models_path, + config_path, + plain_chat, + context, + max_tokens, + power_percent, + reasoning, + temperature, + top_p, + min_p, + seed, + acceleration, + canary, + warmup, + ssd, + prefill_chunk, + quality, + start_timeout, + continuation_timeout, + max_memory_bytes, + sample_interval, + })) + } +} + +fn parse(name: &str, value: &str) -> Result { + value + .parse() + .map_err(|_| format!("invalid value {value:?} for {name}")) +} + +fn parse_switch(name: &str, value: &str) -> Result { + match value { + "on" => Ok(true), + "off" => Ok(false), + _ => Err(format!("{name} must be on or off")), + } +} + +fn parse_reasoning(value: &str) -> Result { + match value { + "none" => Ok(ReasoningMode::Direct), + "low" => Ok(ReasoningMode::Low), + "medium" => Ok(ReasoningMode::Medium), + "high" => Ok(ReasoningMode::High), + "max" => Ok(ReasoningMode::Max), + "xhigh" => Ok(ReasoningMode::XHigh), + _ => Err("--reasoning must be none, low, medium, high, max, or xhigh".into()), + } +} + +fn print_usage() { + println!( + "Headless model evaluation\n\n\ +Usage: ds4-server model-eval --model MODEL [OPTIONS]\n\n\ +Models: deepseek-v4-flash-0731, deepseek-v4-pro, glm-5.2, glm-5.3-flash, qwen3.8-flash-next\n\n\ +Options:\n\ + --prompt TEXT Chat turn; repeat for one ongoing conversation\n\ + (default: autonomous short story)\n\ + --input-file PATH Append a UTF-8 file to the first turn (maximum: 16 MiB)\n\ + --context TOKENS Context size; otherwise use the model profile\n\ + --max-tokens TOKENS Override the model profile generation limit\n\ + --power-percent PERCENT GPU power target (default: 100)\n\ + --reasoning LEVEL none, low, medium, high, max, or xhigh\n\ + --temperature VALUE Sampling temperature\n\ + --top-p VALUE Top-p sampling value\n\ + --min-p VALUE Min-p sampling value\n\ + --seed VALUE Reproducible non-zero seed\n\ + --acceleration on|off DSpark for DeepSeek, integrated MTP for GLM/Qwen\n\ + --mtp on|off Alias for --acceleration\n\ + --canary on|off Independent Metal responsiveness probe (default: on)\n\ + --warmup on|off Warm up before measurement; off tests a cold request (default: on)\n\ + --plain-chat on|off Shared UI text-only mode, no agent/tool prompts (default: on)\n\ + --ssd on|off Override SSD expert streaming\n\ + --prefill-chunk TOKENS Override supported model prefill chunk\n\ + --quality on|off Override quality mode\n\ + --models-dir PATH Model directory\n\ + --config PATH Configuration file\n\ + --start-timeout-seconds N Timeout until first runtime progress (default: 120)\n\ + --continuation-timeout-seconds N Timeout between progress steps (default: 120)\n\ + --max-memory-gib N Hard process/GPU memory limit (default: 85% RAM)\n\ + --sample-ms N Telemetry interval, 100..10000 (default: 1000)\n\n\ +Output is JSON Lines. Runtime events/results use stdout; supervisor resource samples use stderr." + ); +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +#[repr(u8)] +pub(crate) enum EvaluationPhase { + Startup, + Warmup, + Loading, + Prefill, + Decode, + Finishing, + Preparing, +} + +impl EvaluationPhase { + const ALL: [Self; 7] = [ + Self::Startup, + Self::Warmup, + Self::Loading, + Self::Prefill, + Self::Decode, + Self::Finishing, + Self::Preparing, + ]; + + fn from_u8(value: u8) -> Self { + Self::ALL + .get(value as usize) + .copied() + .unwrap_or(Self::Finishing) + } + + fn label(self) -> &'static str { + match self { + Self::Startup => "startup", + Self::Warmup => "warmup", + Self::Loading => "loading", + Self::Prefill => "prefill", + Self::Decode => "decode", + Self::Finishing => "finishing", + Self::Preparing => "preparing", + } + } +} + +enum CanaryEvent { + Started { + at: Instant, + phase: EvaluationPhase, + }, + Completed { + at: Instant, + phase: EvaluationPhase, + completion_phase: EvaluationPhase, + scheduled_ms: f64, + completed_ms: f64, + error: Option, + }, +} + +struct CanaryMeasurement { + phase: EvaluationPhase, + completion_phase: EvaluationPhase, + scheduled_ms: f64, + completed_ms: f64, +} + +struct GpuCanaryMonitor { + enabled: bool, + receiver: Receiver, + stop: Arc, + thread: Option>, + in_flight: Option<(Instant, EvaluationPhase)>, + measurements: Vec, + failures: u64, + max_in_flight: Duration, + stall_reported: bool, +} + +impl GpuCanaryMonitor { + fn start(phase: Arc) -> Self { + let (sender, receiver) = mpsc::channel(); + let stop = Arc::new(AtomicBool::new(false)); + let thread_stop = Arc::clone(&stop); + let thread = thread::spawn(move || { + loop { + let stopping = thread_stop.load(Ordering::Relaxed); + let at = Instant::now(); + let probe_phase = if stopping { + EvaluationPhase::Finishing + } else { + EvaluationPhase::from_u8(phase.load(Ordering::Relaxed)) + }; + if sender + .send(CanaryEvent::Started { + at, + phase: probe_phase, + }) + .is_err() + { + break; + } + let result = gpu_canary_probe(); + let (scheduled_ms, completed_ms, error) = match result { + Ok(sample) => ( + sample.scheduled_seconds * 1_000.0, + sample.completed_seconds * 1_000.0, + None, + ), + Err(error) => (0.0, at.elapsed().as_secs_f64() * 1_000.0, Some(error)), + }; + if sender + .send(CanaryEvent::Completed { + at: Instant::now(), + phase: probe_phase, + completion_phase: EvaluationPhase::from_u8(phase.load(Ordering::Relaxed)), + scheduled_ms, + completed_ms, + error, + }) + .is_err() + { + break; + } + if stopping { + break; + } + if let Some(remaining) = GPU_CANARY_INTERVAL.checked_sub(at.elapsed()) { + thread::sleep(remaining); + } + } + }); + Self { + enabled: true, + receiver, + stop, + thread: Some(thread), + in_flight: None, + measurements: Vec::new(), + failures: 0, + max_in_flight: Duration::ZERO, + stall_reported: false, + } + } + + fn disabled() -> Self { + let (_, receiver) = mpsc::channel(); + Self { + enabled: false, + receiver, + stop: Arc::new(AtomicBool::new(true)), + thread: None, + in_flight: None, + measurements: Vec::new(), + failures: 0, + max_in_flight: Duration::ZERO, + stall_reported: false, + } + } + + fn poll(&mut self, started: Instant) { + while let Ok(event) = self.receiver.try_recv() { + match event { + CanaryEvent::Started { at, phase } => { + self.in_flight = Some((at, phase)); + self.stall_reported = false; + } + CanaryEvent::Completed { + at, + phase, + completion_phase, + scheduled_ms, + completed_ms, + error, + } => { + let probe_started = self.in_flight.take().map(|(at, _)| at); + if let Some(probe_started) = probe_started { + self.max_in_flight = self + .max_in_flight + .max(at.saturating_duration_since(probe_started)); + } + if let Some(error) = error { + self.failures += 1; + eprintln!( + "{}", + json!({ + "event": "gpu_canary_sample", + "elapsed_ms": millis(at.saturating_duration_since(started)), + "started_elapsed_ms": probe_started.map(|at| millis(at.saturating_duration_since(started))), + "observed_elapsed_ms": millis(started.elapsed()), + "phase": phase.label(), + "completion_phase": completion_phase.label(), + "ok": false, + "error": error, + }) + ); + } else { + self.measurements.push(CanaryMeasurement { + phase, + completion_phase, + scheduled_ms, + completed_ms, + }); + eprintln!( + "{}", + json!({ + "event": "gpu_canary_sample", + "elapsed_ms": millis(at.saturating_duration_since(started)), + "started_elapsed_ms": probe_started.map(|at| millis(at.saturating_duration_since(started))), + "observed_elapsed_ms": millis(started.elapsed()), + "phase": phase.label(), + "completion_phase": completion_phase.label(), + "ok": true, + "scheduled_ms": scheduled_ms, + "completed_ms": completed_ms, + }) + ); + } + } + } + } + if let Some((probe_started, phase)) = self.in_flight { + let stalled = probe_started.elapsed(); + self.max_in_flight = self.max_in_flight.max(stalled); + if stalled >= BEACHBALL_THRESHOLD && !self.stall_reported { + self.stall_reported = true; + eprintln!( + "{}", + json!({ + "event": "gpu_canary_stall", + "elapsed_ms": millis(started.elapsed()), + "phase": phase.label(), + "stall_ms": millis(stalled), + "threshold_ms": millis(BEACHBALL_THRESHOLD), + }) + ); + } + } + } + + fn finish(&mut self, started: Instant, timeout: Duration) { + self.stop.store(true, Ordering::Relaxed); + let deadline = Instant::now() + timeout; + while self + .thread + .as_ref() + .is_some_and(|thread| !thread.is_finished()) + && Instant::now() < deadline + { + self.poll(started); + thread::sleep(Duration::from_millis(5)); + } + self.poll(started); + if self.thread.as_ref().is_some_and(JoinHandle::is_finished) + && let Some(thread) = self.thread.take() + { + let _ = thread.join(); + self.poll(started); + } + } + + fn summary(&self) -> Value { + let phases = EvaluationPhase::ALL + .into_iter() + .map(|phase| { + let scheduled = self + .measurements + .iter() + .filter(|sample| sample.phase == phase) + .map(|sample| sample.scheduled_ms) + .collect::>(); + let completed = self + .measurements + .iter() + .filter(|sample| sample.phase == phase) + .map(|sample| sample.completed_ms) + .collect::>(); + ( + phase.label().to_owned(), + json!({ + "samples": completed.len(), + "scheduled_ms": latency_summary(scheduled), + "completed_ms": latency_summary(completed), + }), + ) + }) + .collect::>(); + let completed = self + .measurements + .iter() + .map(|sample| sample.completed_ms) + .collect::>(); + json!({ + "event": "gpu_canary_summary", + "enabled": self.enabled, + "interval_ms": millis(GPU_CANARY_INTERVAL), + "threshold_ms": millis(BEACHBALL_THRESHOLD), + "samples": self.measurements.len(), + "phase_assignment": "probe_start", + "cross_phase_samples": self.measurements.iter().filter(|sample| sample.phase != sample.completion_phase).count(), + "failures": self.failures, + "max_in_flight_ms": millis(self.max_in_flight), + "beachball_risk_observed": self.max_in_flight >= BEACHBALL_THRESHOLD + || completed.iter().any(|latency| *latency >= BEACHBALL_THRESHOLD.as_secs_f64() * 1_000.0), + "completed_ms": latency_summary(completed), + "phases": phases, + }) + } +} + +fn latency_summary(mut values: Vec) -> Value { + values.sort_by(f64::total_cmp); + let percentile = |percent: usize| { + values + .get((values.len().saturating_mul(percent).saturating_add(99) / 100).saturating_sub(1)) + .copied() + }; + json!({ + "p50": percentile(50), + "p95": percentile(95), + "p99": percentile(99), + "max": values.last().copied(), + }) +} + +/// Full-model diagnostic tests reuse the evaluator's probe and phase accounting. +/// This is a safety run, not a clean throughput measurement. A stalled/failed +/// probe terminates this test worker; the external supervisor reaps its group. +#[cfg(test)] +pub(crate) fn diagnostic_canary(phase: Arc, stop: Arc) -> JoinHandle { + thread::spawn(move || { + let started = Instant::now(); + let mut monitor = GpuCanaryMonitor::start(Arc::clone(&phase)); + while !stop.load(Ordering::Relaxed) { + monitor.poll(started); + if monitor.failures != 0 + || monitor.max_in_flight >= BEACHBALL_THRESHOLD + || monitor + .measurements + .iter() + .any(|m| m.completed_ms >= BEACHBALL_THRESHOLD.as_secs_f64() * 1000.0) + { + eprintln!("{}", monitor.summary()); + eprintln!("test worker stopped: GPU canary failure/stall"); + std::process::exit(86); + } + thread::sleep(Duration::from_millis(10)); + } + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + monitor.finish(started, Duration::from_secs(2)); + monitor.summary() + }) +} + +pub(crate) fn run_supervisor(args: impl IntoIterator) -> Result<(), String> { + let args = args.into_iter().collect::>(); + let Some(options) = Options::parse(args.clone())? else { + return Ok(()); + }; + let started = Instant::now(); + let executable = std::env::current_exe() + .map_err(|error| format!("could not locate evaluator executable: {error}"))?; + let mut child = Command::new(executable) + .arg("__model-eval-worker") + .args(&args) + .stdin(Stdio::null()) + .stdout(Stdio::piped()) + .stderr(Stdio::inherit()) + .spawn() + .map_err(|error| format!("could not start evaluator worker: {error}"))?; + let progress = Arc::new(Mutex::new(Progress::new())); + let output_progress = Arc::clone(&progress); + let output = child + .stdout + .take() + .ok_or("evaluator worker stdout is unavailable")?; + let output_thread = thread::spawn(move || forward_worker_output(output, output_progress)); + let mut next_sample = started; + let mut previous = None; + let mut maximum = ResourceUsage::default(); + let mut max_supervisor_lag = Duration::ZERO; + let mut samples = 0_u64; + loop { + if let Some(status) = child + .try_wait() + .map_err(|error| format!("could not monitor evaluator worker: {error}"))? + { + output_thread + .join() + .map_err(|_| "evaluator output reader panicked".to_owned())??; + let progress = *progress + .lock() + .map_err(|_| "evaluator progress monitor was poisoned")?; + write_json(json!({ + "event": "resource_summary", + "elapsed_ms": millis(started.elapsed()), + "samples": samples, + "peak_physical_bytes": maximum.physical_bytes, + "peak_resident_bytes": maximum.resident_bytes, + "cpu_time_ms": maximum.cpu_time_ns / 1_000_000, + "disk_read_bytes": maximum.disk_read_bytes, + "disk_write_bytes": maximum.disk_write_bytes, + "startup_ms": progress.first.map(|first| millis(first.saturating_duration_since(started))), + "max_progress_gap_ms": millis(progress.max_gap), + "max_supervisor_lag_ms": millis(max_supervisor_lag), + "exit_status": status.code(), + }))?; + return status + .success() + .then_some(()) + .ok_or_else(|| format!("worker exited with {status}")); + } + let now = Instant::now(); + if now >= next_sample { + max_supervisor_lag = max_supervisor_lag.max(now.saturating_duration_since(next_sample)); + if let Some(usage) = resource_usage(child.id()) { + samples += 1; + maximum.include(usage); + let cpu_percent = previous.map_or(0.0, |(prior, at): (ResourceUsage, Instant)| { + let wall = now.duration_since(at).as_secs_f64(); + if wall == 0.0 { + 0.0 + } else { + usage.cpu_time_ns.saturating_sub(prior.cpu_time_ns) as f64 + / 1_000_000_000.0 + / wall + * 100.0 + } + }); + eprintln!( + "{}", + json!({ + "event": "resource_sample", + "elapsed_ms": millis(started.elapsed()), + "sample_lag_ms": millis(now.saturating_duration_since(next_sample)), + "cpu_percent": cpu_percent, + "physical_bytes": usage.physical_bytes, + "resident_bytes": usage.resident_bytes, + "lifetime_peak_physical_bytes": usage.peak_physical_bytes, + "disk_read_bytes": usage.disk_read_bytes, + "disk_write_bytes": usage.disk_write_bytes, + }) + ); + previous = Some((usage, now)); + if usage.physical_bytes > options.max_memory_bytes { + return stop_worker( + &mut child, + started, + "memory_limit", + usage.physical_bytes, + &options, + ); + } + } + next_sample = now + options.sample_interval; + } + let progress = *progress + .lock() + .map_err(|_| "evaluator progress monitor was poisoned")?; + if !progress.started && started.elapsed() >= options.start_timeout { + return stop_worker( + &mut child, + started, + "start_timeout", + maximum.physical_bytes, + &options, + ); + } + if progress.started && progress.last.elapsed() >= options.continuation_timeout { + return stop_worker( + &mut child, + started, + "continuation_timeout", + maximum.physical_bytes, + &options, + ); + } + thread::sleep(Duration::from_millis(50)); + } +} + +#[derive(Clone, Copy)] +struct Progress { + started: bool, + first: Option, + last: Instant, + max_gap: Duration, +} + +impl Progress { + fn new() -> Self { + Self { + started: false, + first: None, + last: Instant::now(), + max_gap: Duration::ZERO, + } + } +} + +fn forward_worker_output( + output: impl io::Read, + progress: Arc>, +) -> Result<(), String> { + for line in BufReader::new(output).lines() { + let line = line.map_err(|error| format!("could not read evaluator output: {error}"))?; + println!("{line}"); + io::stdout() + .flush() + .map_err(|error| format!("could not flush evaluator output: {error}"))?; + let value = serde_json::from_str::(&line).ok(); + let event = value + .as_ref() + .and_then(|value| value.get("event")) + .and_then(Value::as_str); + if matches!(event, Some("progress" | "model_loaded")) { + let mut progress = progress + .lock() + .map_err(|_| "evaluator progress monitor was poisoned")?; + let now = Instant::now(); + if progress.started { + progress.max_gap = progress + .max_gap + .max(now.saturating_duration_since(progress.last)); + } else { + progress.first = Some(now); + } + progress.started = true; + progress.last = now; + } + } + Ok(()) +} + +fn stop_worker( + child: &mut std::process::Child, + started: Instant, + reason: &str, + physical_bytes: u64, + options: &Options, +) -> Result<(), String> { + let _ = child.kill(); + let _ = child.wait(); + write_json(json!({ + "event": "supervisor_stop", + "reason": reason, + "elapsed_ms": millis(started.elapsed()), + "physical_bytes": physical_bytes, + "limit_bytes": options.max_memory_bytes, + }))?; + Err(format!("worker stopped by {reason}")) +} + +fn prompts_with_input_file(options: &Options) -> Result, String> { + let mut prompts = Vec::with_capacity(1 + options.additional_prompts.len()); + let Some(path) = &options.input_file else { + prompts.push(options.prompt.clone()); + prompts.extend(options.additional_prompts.iter().cloned()); + return Ok(prompts); + }; + let bytes = fs::metadata(path) + .map_err(|error| format!("could not inspect {}: {error}", path.display()))? + .len(); + if bytes > MAX_INPUT_FILE_BYTES { + return Err(format!( + "{} is larger than the 16 MiB input limit", + path.display() + )); + } + let input = fs::read_to_string(path) + .map_err(|error| format!("could not read {} as UTF-8: {error}", path.display()))?; + if input.len() as u64 > MAX_INPUT_FILE_BYTES { + return Err(format!( + "{} is larger than the 16 MiB input limit", + path.display() + )); + } + prompts.push(format!("{}\n\n{input}", options.prompt)); + prompts.extend(options.additional_prompts.iter().cloned()); + Ok(prompts) +} + +pub(crate) fn run_worker(args: impl IntoIterator) -> Result<(), String> { + let args = args.into_iter().map(OsString::from); + let Some(options) = Options::parse(args)? else { + return Ok(()); + }; + // Held by the worker itself, including if its supervisor loses its tool handle. + let _execution_lock = + lock_evaluation(&std::env::temp_dir().join("ds4-server-model-eval.lock"))?; + let prompts = prompts_with_input_file(&options)?; + let mut config = Config::load(&options.config_path)?; + config.plain_chat = options.plain_chat; + let idle_timeout = Duration::from_secs(config.idle_timeout_minutes.max(1) as u64 * 60); + let reasoning = options + .reasoning + .unwrap_or_else(|| config.reasoning_mode(options.model)); + let mut generation = config.generation_for(options.model, reasoning); + if let Some(max_tokens) = options.max_tokens { + generation.max_generated_tokens = max_tokens as i32; + } + if let Some(context) = options.context { + generation.context_tokens = context; + } + generation.temperature = options.temperature.or(generation.temperature); + generation.top_p = options.top_p.or(generation.top_p); + generation.min_p = options.min_p.or(generation.min_p); + generation.seed = options.seed.or(generation.seed); + generation.system_prompt = + crate::app::headless_chat_system_prompt(&config, options.model, &generation.system_prompt)?; + let mut runtime = config.runtime_for(options.model); + runtime.execution.power_percent = Some(options.power_percent); + if let Some(chunk) = options.prefill_chunk { + runtime.execution.prefill_chunk = Some(chunk); + } + if let Some(quality) = options.quality { + runtime.execution.quality = quality; + } + if let Some(enabled) = options.acceleration { + configure_acceleration(options.model, &mut runtime.speculative, enabled)?; + } + if let Some(ssd) = options.ssd { + runtime.ssd.enabled = ssd; + } + let settings = effective_settings(options.model, &generation, &runtime, &options.models_path)?; + let directory = TempDirectory::new()?; + let metrics = Arc::new(Metrics::new(&directory.path)); + let service = GenerationService::spawn(Arc::clone(&metrics))?; + let process_started = Instant::now(); + let canary_phase = Arc::new(AtomicU8::new(EvaluationPhase::Startup as u8)); + let mut canary = if options.canary { + GpuCanaryMonitor::start(Arc::clone(&canary_phase)) + } else { + GpuCanaryMonitor::disabled() + }; + write_json(json!({ + "event": "start", + "worker_pid": std::process::id(), + "model": options.model.id(), + "prompts": &prompts, + "system_prompt": &settings.turn.system_prompt, + "plain_chat": config.plain_chat, + "input_file": options.input_file.as_ref(), + "warmup": { + "enabled": options.warmup, + "prompt": WARMUP_PROMPT, + "max_generated_tokens": WARMUP_MAX_TOKENS, + }, + "canary": options.canary, + "settings": { + "context_tokens": settings.turn.context_tokens, + "max_generated_tokens": settings.turn.max_generated_tokens, + "power_percent": settings.engine.execution.power_percent, + "prefill_chunk": settings.engine.execution.prefill_chunk, + "quality": settings.engine.execution.quality, + "reasoning": settings.turn.reasoning_mode.as_id(), + "temperature": settings.turn.temperature, + "top_p": settings.turn.top_p, + "min_p": settings.turn.min_p, + "top_k": settings.turn.top_k, + "seed": settings.turn.seed, + "acceleration": acceleration_receipt( + options.model, + settings.engine.speculative, + settings.engine.execution.quality, + settings.turn.temperature, + ), + "ssd": settings.engine.ssd.enabled, + }, + "limits": { + "start_timeout_ms": millis(options.start_timeout), + "continuation_timeout_ms": millis(options.continuation_timeout), + "max_memory_bytes": options.max_memory_bytes, + "sample_ms": millis(options.sample_interval), + } + }))?; + + if options.warmup + && let Err(error) = run_warmup( + &service, + &settings, + &directory.path, + process_started, + &canary_phase, + &mut canary, + idle_timeout, + ) + { + finish_worker_canary( + &mut canary, + &canary_phase, + process_started, + options.continuation_timeout, + )?; + return Err(error); + } + let mut history = Vec::new(); + for (index, prompt) in prompts.into_iter().enumerate() { + history.push(ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: prompt, + }); + let output = run_measured_turn( + index + 1, + &service, + &settings, + history.clone(), + &directory.path, + &metrics, + process_started, + &canary_phase, + &mut canary, + &options, + idle_timeout, + ); + match output { + Ok(output) => history.push(output.message), + Err(error) => { + finish_worker_canary( + &mut canary, + &canary_phase, + process_started, + options.continuation_timeout, + )?; + return Err(error); + } + } + } + finish_worker_canary( + &mut canary, + &canary_phase, + process_started, + options.continuation_timeout, + ) +} + +#[allow(clippy::too_many_arguments)] +fn run_measured_turn( + turn_index: usize, + service: &GenerationService, + settings: &crate::settings::EffectiveSettings, + history: Vec, + directory: &std::path::Path, + metrics: &Arc, + process_started: Instant, + canary_phase: &AtomicU8, + canary: &mut GpuCanaryMonitor, + options: &Options, + idle_timeout: Duration, +) -> Result { + canary_phase.store(EvaluationPhase::Preparing as u8, Ordering::Relaxed); + let baseline = metrics.snapshot(); + reset_gpu_busy_stats(); + let started = Instant::now(); + write_json(json!({ + "event": "measurement_start", + "turn": turn_index, + "conversation_messages": history.len(), + "elapsed_ms": millis(process_started.elapsed()), + }))?; + let generation = service.generate( + settings.engine.clone(), + settings.turn.clone(), + history, + CheckpointTarget::Local { + checkpoint: directory.join("session.bin"), + bootstrap: (turn_index == 1).then(|| directory.join("bootstrap")), + }, + WorkSource::LocalChat, + idle_timeout, + )?; + let mut next_sample = Instant::now(); + let mut max_control_loop_lag = Duration::ZERO; + let mut prefill_started = None; + let mut decode_started = None; + loop { + canary.poll(process_started); + let now = Instant::now(); + if now >= next_sample { + let control_loop_lag = now.saturating_duration_since(next_sample); + max_control_loop_lag = max_control_loop_lag.max(control_loop_lag); + let allocated = + write_runtime_sample(turn_index, started, &metrics.snapshot(), control_loop_lag)?; + if allocated > options.max_memory_bytes { + write_json(json!({ + "event": "worker_stop", + "turn": turn_index, + "reason": "gpu_memory_limit", + "elapsed_ms": millis(started.elapsed()), + "gpu_allocated_bytes": allocated, + "limit_bytes": options.max_memory_bytes, + }))?; + return Err("GPU memory limit exceeded".into()); + } + next_sample = now + options.sample_interval; + } + match generation.events.recv_timeout(Duration::from_millis(50)) { + Ok(GenerationEvent::Loading) => { + canary_phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + write_json(json!({ + "event": "phase", "turn": turn_index, "phase": "loading", + "elapsed_ms": millis(started.elapsed()), + }))?; + } + Ok(GenerationEvent::Loaded { duration }) => { + canary_phase.store(EvaluationPhase::Preparing as u8, Ordering::Relaxed); + write_json(json!({ + "event": "model_loaded", "turn": turn_index, "phase": "preparing", + "elapsed_ms": millis(started.elapsed()), "model_load_ms": millis(duration), + }))?; + } + Ok(GenerationEvent::Activity(activity)) => write_json(json!({ + "event": "activity", "turn": turn_index, "activity": activity, + "elapsed_ms": millis(started.elapsed()), + }))?, + Ok(GenerationEvent::Context { + used, + limit, + tokens_per_second, + }) => { + write_json(json!({ + "event": "progress", + "turn": turn_index, + "phase": if tokens_per_second.is_some() { "decode" } else { "prefill" }, + "elapsed_ms": millis(started.elapsed()), + "context_used": used, + "context_limit": limit, + "tokens_per_second": tokens_per_second, + }))?; + if tokens_per_second.is_none() && prefill_started.is_none() { + canary_phase.store(EvaluationPhase::Prefill as u8, Ordering::Relaxed); + prefill_started = Some(Instant::now()); + write_json(json!({ + "event": "phase", "turn": turn_index, "phase": "prefill", + "elapsed_ms": millis(started.elapsed()), "context_used": used, + "context_limit": limit, + }))?; + } else if tokens_per_second.is_some() && decode_started.is_none() { + canary_phase.store(EvaluationPhase::Decode as u8, Ordering::Relaxed); + decode_started = Some(Instant::now()); + write_json(json!({ + "event": "phase", "turn": turn_index, "phase": "decode", + "elapsed_ms": millis(started.elapsed()), "context_used": used, + "context_limit": limit, + }))?; + } + } + Ok(GenerationEvent::Chunk { .. }) => {} + Ok(GenerationEvent::Finished(result)) => { + let finished = Instant::now(); + let snapshot = metrics.snapshot(); + let output = match result { + Ok(output) => output, + Err(error) => { + write_result_error(turn_index, &error, started, finished)?; + return Err("generation failed".into()); + } + }; + write_result( + turn_index, + &output, + started, + finished, + prefill_started, + decode_started, + max_control_loop_lag, + &snapshot, + &baseline, + )?; + return Ok(output); + } + Ok(GenerationEvent::Compacted(_) | GenerationEvent::Measured(_)) => { + return Err("evaluator received an unexpected runtime event".into()); + } + Err(RecvTimeoutError::Timeout) => {} + Err(RecvTimeoutError::Disconnected) => { + return Err("model runtime stopped before producing a result".into()); + } + } + } +} + +fn run_warmup( + service: &GenerationService, + settings: &crate::settings::EffectiveSettings, + directory: &std::path::Path, + started: Instant, + phase: &AtomicU8, + canary: &mut GpuCanaryMonitor, + idle_timeout: Duration, +) -> Result<(), String> { + phase.store(EvaluationPhase::Warmup as u8, Ordering::Relaxed); + let mut turn = settings.turn.clone(); + turn.max_generated_tokens = WARMUP_MAX_TOKENS; + write_json(json!({ + "event": "phase", + "phase": "warmup", + "elapsed_ms": millis(started.elapsed()), + }))?; + let warmup_started = Instant::now(); + let mut model_load_time = Some(Duration::ZERO); + let generation = service.generate( + settings.engine.clone(), + turn, + vec![ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: WARMUP_PROMPT.to_owned(), + }], + CheckpointTarget::Local { + checkpoint: directory.join("warmup-session.bin"), + bootstrap: Some(directory.join("bootstrap")), + }, + WorkSource::LocalChat, + idle_timeout, + )?; + loop { + canary.poll(started); + match generation.events.recv_timeout(Duration::from_millis(50)) { + Ok(GenerationEvent::Loading) => { + model_load_time = None; + phase.store(EvaluationPhase::Loading as u8, Ordering::Relaxed); + write_json(json!({ + "event": "phase", "phase": "loading", "during": "warmup", + "elapsed_ms": millis(started.elapsed()), + }))?; + } + Ok(GenerationEvent::Loaded { duration }) => { + model_load_time = Some(duration); + phase.store(EvaluationPhase::Warmup as u8, Ordering::Relaxed); + write_json(json!({ + "event": "model_loaded", "phase": "warmup", + "elapsed_ms": millis(started.elapsed()), "model_load_ms": millis(duration), + }))?; + } + Ok(GenerationEvent::Context { + used, + limit, + tokens_per_second, + }) => write_json(json!({ + "event": "progress", + "phase": "warmup", + "elapsed_ms": millis(started.elapsed()), + "context_used": used, + "context_limit": limit, + "tokens_per_second": tokens_per_second, + }))?, + Ok(GenerationEvent::Finished(result)) => { + let elapsed = warmup_started.elapsed(); + let timing = warmup_timing(elapsed, model_load_time); + return match result { + Ok(output) => write_json(json!({ + "event": "warmup_result", + "ok": true, + "elapsed_ms": millis(elapsed), + "timing": timing, + "finish_reason": output.finish_reason, + "completion_tokens": output.completion_tokens, + })), + Err(error) => { + write_json(json!({ + "event": "warmup_result", + "ok": false, + "elapsed_ms": millis(elapsed), + "timing": timing, + "error": error, + }))?; + Err("warmup failed".into()) + } + }; + } + Ok(GenerationEvent::Activity(_)) + | Ok(GenerationEvent::Chunk { .. }) + | Err(RecvTimeoutError::Timeout) => {} + Ok(GenerationEvent::Compacted(_) | GenerationEvent::Measured(_)) => { + return Err("evaluator warmup received an unexpected runtime event".into()); + } + Err(RecvTimeoutError::Disconnected) => { + return Err("model runtime stopped during warmup".into()); + } + } + } +} + +fn warmup_timing(elapsed: Duration, model_load_time: Option) -> Value { + json!({ + "elapsed_scope": "request_including_model_load", + "total_elapsed_ms": millis(elapsed), + "model_load_ms": model_load_time.map(millis), + "non_loading_elapsed_ms": model_load_time.and_then(|load| elapsed.checked_sub(load)).map(millis), + }) +} + +fn finish_worker_canary( + canary: &mut GpuCanaryMonitor, + phase: &AtomicU8, + started: Instant, + timeout: Duration, +) -> Result<(), String> { + phase.store(EvaluationPhase::Finishing as u8, Ordering::Relaxed); + canary.finish(started, timeout); + write_json(canary.summary()) +} + +fn acceleration_kind(model: ModelChoice) -> Option<&'static str> { + if model.supports_dspark() { + Some("dspark") + } else if model.supports_integrated_mtp() { + Some("mtp") + } else { + None + } +} + +fn acceleration_receipt( + model: ModelChoice, + speculative: crate::settings::EngineSpeculativeSettings, + quality: bool, + temperature: f32, +) -> Value { + let dspark = model.supports_dspark(); + let enabled = if dspark { + speculative.dspark + } else { + speculative.glm_mtp + }; + let sampling_mode = if !enabled || (dspark && (quality || speculative.dspark_strict)) { + "target_only" + } else if temperature <= 0.0 { + "greedy" + } else if model.is_qwen38() || (dspark && speculative.dspark_exact_sampling) { + "exact" + } else { + "opportunistic" + }; + json!({ + "kind": acceleration_kind(model), + "enabled": enabled, + "sampling_mode": sampling_mode, + "dspark_confidence_threshold": dspark.then_some(speculative.dspark_confidence_threshold), + "dspark_confidence_for_turn": dspark.then(|| speculative.dspark_confidence_for_temperature(temperature)), + "dspark_confidence_explicit": dspark.then_some(speculative.dspark_confidence_threshold_set), + "dspark_strict": dspark.then_some(speculative.dspark_strict), + "dspark_exact_sampling": dspark.then_some(speculative.dspark_exact_sampling), + "integrated_mtp_timing": model.supports_integrated_mtp().then_some(speculative.glm_mtp_timing), + }) +} + +fn configure_acceleration( + model: ModelChoice, + speculative: &mut crate::settings::SpeculativePreferences, + enabled: bool, +) -> Result<(), String> { + if model.supports_dspark() { + speculative.dspark_enabled = enabled; + if !enabled { + speculative.dspark_confidence_threshold = None; + speculative.dspark_strict = false; + speculative.dspark_exact_sampling = false; + } + } else if model.supports_integrated_mtp() { + speculative.glm_mtp = enabled; + if !enabled { + speculative.glm_mtp_timing = false; + } + } else if enabled { + return Err(format!("{model} has no supported decode acceleration")); + } + Ok(()) +} + +fn write_runtime_sample( + turn_index: usize, + started: Instant, + snapshot: &MetricsSnapshot, + control_loop_lag: Duration, +) -> Result { + let gpu = gpu_busy_stats(); + let allocated = gpu_allocated_bytes(); + write_json(json!({ + "event": "runtime_sample", + "turn": turn_index, + "elapsed_ms": millis(started.elapsed()), + "worker_control_loop_lag_ms": millis(control_loop_lag), + "phase": snapshot.phase.label(), + "context_used": snapshot.context_used, + "context_limit": snapshot.context_limit, + "prefill_tokens_per_second": snapshot.prefill_tokens_per_second, + "decode_tokens_per_second": snapshot.decode_tokens_per_second, + "decode_duration_ns": snapshot.decode_duration_ns, + "prompt_timing": snapshot.prompt_timing, + "gpu_busy_ms": gpu.busy_seconds * 1000.0, + "gpu_max_command_buffer_ms": gpu.max_busy_seconds * 1000.0, + "gpu_command_buffers": gpu.command_buffers, + "gpu_allocated_bytes": allocated, + "speculation": { + "scope": "engine_lifetime_cumulative", + "mode": snapshot.speculative_mode, + "cycles": snapshot.speculative_cycles, + "drafted_tokens": snapshot.drafted_tokens, + "accepted_tokens": snapshot.accepted_draft_tokens, + "verifier_passes": snapshot.verifier_passes, + "verifier_ms": snapshot.verifier_ms, + "repair_ms": snapshot.repair_ms, + }, + "ssd_pread_bytes": snapshot.ssd_pread_bytes, + "ssd_pread_ms": snapshot.ssd_pread_ms, + "ssd_wait_ms": snapshot.ssd_wait_ms, + }))?; + Ok(allocated) +} + +#[allow(clippy::too_many_arguments)] +fn write_result( + turn_index: usize, + output: &GenerationOutput, + started: Instant, + finished: Instant, + prefill_started: Option, + decode_started: Option, + max_control_loop_lag: Duration, + snapshot: &MetricsSnapshot, + baseline: &MetricsSnapshot, +) -> Result<(), String> { + let gpu = gpu_busy_stats(); + let gpu_allocated = gpu_allocated_bytes(); + let wall = finished.duration_since(started); + let prefill_ms = prefill_started.map(|start| { + millis( + decode_started + .unwrap_or(finished) + .saturating_duration_since(start), + ) + }); + let decode_to_request_end_ms = + decode_started.map(|start| millis(finished.saturating_duration_since(start))); + let prefill_work_tokens = output.prompt_tokens.saturating_sub(output.cached_tokens); + let prefill_wall_tokens_per_second = prefill_ms.and_then(|elapsed| { + (elapsed != 0).then_some(prefill_work_tokens as f64 * 1_000.0 / elapsed as f64) + }); + write_json(json!({ + "event": "result", + "turn": turn_index, + "ok": true, + "finish_reason": output.finish_reason, + "timing": { + "wall_ms": millis(wall), + "model_load_ms": snapshot.model_load_ms.saturating_sub(baseline.model_load_ms), + "runtime_ms": snapshot.last_runtime_ms, + "prefill_ms": prefill_ms, + "prefill_scope": "observed_ui_phase_including_bootstrap_restore_and_callbacks", + "prompt_eval": snapshot.prompt_timing, + "prompt_eval_scope": "engine_target_and_mtp_history_excluding_restore_and_checkpoint", + "decode_ms": snapshot.decode_duration_ns.map(|ns| ns as f64 / 1_000_000.0), + "decode_scope": "engine_loop_including_sampling_and_output_excluding_checkpoint", + "decode_to_request_end_ms": decode_to_request_end_ms, + }, + "tokens": { + "prompt": output.prompt_tokens, + "cached": output.cached_tokens, + "completion": output.completion_tokens, + }, + "performance": { + "prefill_work_tokens": prefill_work_tokens, + "prefill_wall_tokens_per_second": prefill_wall_tokens_per_second, + "runtime_suffix_tokens_per_second": snapshot.prefill_tokens_per_second, + "prompt_eval_tokens_per_second": snapshot.prompt_timing.and_then(|p| (p.eval_seconds > 0.0).then_some(p.evaluated_tokens as f64 / p.eval_seconds)), + "decode_tokens_per_second": snapshot.decode_tokens_per_second, + "decode_loop_tokens_per_second": snapshot.decode_duration_ns.map(|ns| f64::from(output.completion_tokens) * 1_000_000_000.0 / ns as f64), + }, + "checkpoint_io": { + "scope": "request_operation_counts_and_last_operation_durations_not_totals", + "read_operations": snapshot.kv_read_operations.saturating_sub(baseline.kv_read_operations), + "write_operations": snapshot.kv_write_operations.saturating_sub(baseline.kv_write_operations), + "last_read_ms": (snapshot.kv_read_operations > baseline.kv_read_operations).then_some(snapshot.last_kv_read_ms), + "last_write_ms": (snapshot.kv_write_operations > baseline.kv_write_operations).then_some(snapshot.last_kv_write_ms), + }, + "worker_control_loop": { + "max_lag_ms": millis(max_control_loop_lag), + }, + "gpu": { + "busy_ms": gpu.busy_seconds * 1000.0, + "busy_ratio": if wall.is_zero() { 0.0 } else { gpu.busy_seconds / wall.as_secs_f64() }, + "max_command_buffer_ms": gpu.max_busy_seconds * 1000.0, + "command_buffers": gpu.command_buffers, + "allocated_bytes": gpu_allocated, + }, + "speculation": { + "mode": snapshot.speculative_mode, + "cycles": snapshot.speculative_cycles.saturating_sub(baseline.speculative_cycles), + "drafted_tokens": snapshot.drafted_tokens.saturating_sub(baseline.drafted_tokens), + "accepted_tokens": snapshot.accepted_draft_tokens.saturating_sub(baseline.accepted_draft_tokens), + "verifier_ms": snapshot.verifier_ms.saturating_sub(baseline.verifier_ms), + "repair_ms": snapshot.repair_ms.saturating_sub(baseline.repair_ms), + }, + "ssd": { + "enabled": snapshot.ssd_enabled, + "resident_bytes": snapshot.ssd_resident_bytes, + "cache_bytes": snapshot.ssd_cache_bytes, + "cache_hits": snapshot.ssd_cache_hits.saturating_sub(baseline.ssd_cache_hits), + "cache_misses": snapshot.ssd_cache_misses.saturating_sub(baseline.ssd_cache_misses), + "pread_bytes": snapshot.ssd_pread_bytes.saturating_sub(baseline.ssd_pread_bytes), + "pread_ms": snapshot.ssd_pread_ms.saturating_sub(baseline.ssd_pread_ms), + "wait_ms": snapshot.ssd_wait_ms.saturating_sub(baseline.ssd_wait_ms), + }, + "reasoning": output.message.reasoning, + "content": output.message.content, + })) +} + +fn write_result_error( + turn_index: usize, + error: &str, + started: Instant, + finished: Instant, +) -> Result<(), String> { + let gpu = gpu_busy_stats(); + write_json(json!({ + "event": "result", + "turn": turn_index, + "ok": false, + "error": error, + "wall_ms": millis(finished.duration_since(started)), + "gpu_busy_ms": gpu.busy_seconds * 1000.0, + "gpu_max_command_buffer_ms": gpu.max_busy_seconds * 1000.0, + "gpu_command_buffers": gpu.command_buffers, + "gpu_allocated_bytes": gpu_allocated_bytes(), + })) +} + +fn write_json(value: Value) -> Result<(), String> { + let stdout = io::stdout(); + let mut stdout = stdout.lock(); + serde_json::to_writer(&mut stdout, &value) + .map_err(|error| format!("could not write evaluator output: {error}"))?; + writeln!(stdout).map_err(|error| format!("could not write evaluator output: {error}"))?; + stdout + .flush() + .map_err(|error| format!("could not flush evaluator output: {error}")) +} + +fn millis(duration: Duration) -> u64 { + duration.as_millis().min(u128::from(u64::MAX)) as u64 +} + +fn lock_evaluation(path: &std::path::Path) -> Result { + let file = fs::OpenOptions::new() + .read(true) + .write(true) + .create(true) + .truncate(false) + .open(path) + .map_err(|error| format!("could not open evaluation lock: {error}"))?; + file.try_lock().map_err(|error| { + format!("could not acquire evaluation lock (another evaluation may be running): {error}") + })?; + Ok(file) +} + +struct TempDirectory { + path: PathBuf, +} + +impl TempDirectory { + fn new() -> Result { + let nonce = SystemTime::now() + .duration_since(UNIX_EPOCH) + .unwrap_or_default() + .as_nanos(); + let path = std::env::temp_dir().join(format!( + "ds4-server-model-eval-{}-{nonce}", + std::process::id() + )); + fs::create_dir(&path) + .map_err(|error| format!("could not create {}: {error}", path.display()))?; + Ok(Self { path }) + } +} + +impl Drop for TempDirectory { + fn drop(&mut self) { + let _ = fs::remove_dir_all(&self.path); + } +} + +fn physical_memory_bytes() -> u64 { + let mut bytes = 0_u64; + let mut size = std::mem::size_of::(); + let result = unsafe { + libc::sysctlbyname( + c"hw.memsize".as_ptr(), + (&mut bytes as *mut u64).cast(), + &mut size, + std::ptr::null_mut(), + 0, + ) + }; + if result == 0 && bytes != 0 { + bytes + } else { + let pages = unsafe { libc::sysconf(libc::_SC_PHYS_PAGES) }; + let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) }; + if pages > 0 && page_size > 0 { + (pages as u64).saturating_mul(page_size as u64) + } else { + 16 * GIB + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn warmup_timing_separates_loading_without_inventing_missing_durations() { + let elapsed = Duration::from_millis(1234); + let timing = warmup_timing(elapsed, Some(Duration::from_millis(1000))); + assert_eq!(timing["total_elapsed_ms"], 1234); + assert_eq!(timing["model_load_ms"], 1000); + assert_eq!(timing["non_loading_elapsed_ms"], 234); + let already_loaded = warmup_timing(elapsed, Some(Duration::ZERO)); + assert_eq!(already_loaded["model_load_ms"], 0); + assert_eq!(already_loaded["non_loading_elapsed_ms"], 1234); + let failed_load = warmup_timing(elapsed, None); + assert!(failed_load["model_load_ms"].is_null()); + assert!(failed_load["non_loading_elapsed_ms"].is_null()); + } + + #[test] + fn canary_cross_phase_samples_keep_their_start_phase() { + let started = Instant::now() - Duration::from_secs(3); + let (sender, receiver) = mpsc::channel(); + let mut monitor = GpuCanaryMonitor::disabled(); + monitor.receiver = receiver; + sender + .send(CanaryEvent::Started { + at: started, + phase: EvaluationPhase::Loading, + }) + .unwrap(); + sender + .send(CanaryEvent::Completed { + at: started + Duration::from_millis(2500), + phase: EvaluationPhase::Loading, + completion_phase: EvaluationPhase::Warmup, + scheduled_ms: 0.1, + completed_ms: 2500.0, + error: None, + }) + .unwrap(); + monitor.poll(started); + let summary = monitor.summary(); + assert_eq!(summary["phase_assignment"], "probe_start"); + assert_eq!(summary["cross_phase_samples"], 1); + assert_eq!(summary["phases"]["loading"]["samples"], 1); + assert_eq!(summary["phases"]["warmup"]["samples"], 0); + assert_eq!(summary["beachball_risk_observed"], true); + } + + #[test] + fn cpu_accounting_matches_getrusage_units() { + let cpu_ns = || { + let mut usage = std::mem::MaybeUninit::::zeroed(); + assert_eq!( + unsafe { libc::getrusage(libc::RUSAGE_SELF, usage.as_mut_ptr()) }, + 0 + ); + let usage = unsafe { usage.assume_init() }; + (usage.ru_utime.tv_sec + usage.ru_stime.tv_sec) as u64 * 1_000_000_000 + + (usage.ru_utime.tv_usec + usage.ru_stime.tv_usec) as u64 * 1_000 + }; + let before = resource_usage(std::process::id()).unwrap().cpu_time_ns; + let expected_before = cpu_ns(); + let started = Instant::now(); + while started.elapsed() < Duration::from_millis(50) { + std::hint::spin_loop(); + } + let expected = cpu_ns() - expected_before; + let measured = resource_usage(std::process::id()).unwrap().cpu_time_ns - before; + assert!( + measured.abs_diff(expected) < 5_000_000, + "proc_pid_rusage={measured}ns getrusage={expected}ns" + ); + } + + #[test] + fn evaluations_exclude_overlapping_workers_and_release_on_exit() { + let directory = TempDirectory::new().unwrap(); + let path = directory.path.join("worker.lock"); + let first = lock_evaluation(&path).unwrap(); + assert!(lock_evaluation(&path).is_err()); + drop(first); + assert!(lock_evaluation(&path).is_ok()); + } + + #[test] + fn parses_safe_defaults_and_overrides() { + let options = Options::parse( + [ + "--model", + "qwen3.8-flash-next", + "--reasoning", + "low", + "--power-percent", + "50", + "--max-tokens", + "32", + "--mtp", + "off", + "--canary", + "off", + "--warmup", + "off", + "--input-file", + "README.md", + ] + .map(OsString::from), + ) + .unwrap() + .unwrap(); + assert_eq!(options.model, ModelChoice::Qwen38FlashNext); + assert_eq!(options.prompt, DEFAULT_PROMPT); + assert_eq!(options.reasoning, Some(ReasoningMode::Low)); + assert_eq!(options.power_percent, 50); + assert_eq!(options.max_tokens, Some(32)); + assert_eq!(options.acceleration, Some(false)); + assert!(!options.canary); + assert!(!options.warmup); + assert!(options.plain_chat); + assert_eq!(options.input_file, Some(PathBuf::from("README.md"))); + assert_eq!(options.start_timeout, Duration::from_secs(120)); + assert_eq!(options.continuation_timeout, Duration::from_secs(120)); + let agent_options = Options::parse( + ["--model", "qwen3.8-flash-next", "--plain-chat", "off"].map(OsString::from), + ) + .unwrap() + .unwrap(); + assert!(!agent_options.plain_chat); + assert!(agent_options.warmup); + } + + #[test] + fn repeated_prompts_form_one_ordered_conversation() { + let options = Options::parse( + [ + "--model", + "qwen3.8-flash-next", + "--prompt", + "first", + "--prompt", + "second", + "--prompt", + "third", + "--input-file", + concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"), + ] + .map(OsString::from), + ) + .unwrap() + .unwrap(); + assert_eq!(options.prompt, "first"); + assert_eq!(options.additional_prompts, ["second", "third"]); + assert_eq!(options.power_percent, 100); + let prompts = prompts_with_input_file(&options).unwrap(); + assert_eq!( + prompts[0], + format!( + "first\n\n{}", + fs::read_to_string(options.input_file.as_ref().unwrap()).unwrap() + ) + ); + assert_eq!(&prompts[1..], ["second", "third"]); + } + + #[test] + fn rejects_unbounded_or_invalid_limits() { + for arguments in [ + vec!["--model", "qwen3.8-flash-next", "--max-tokens", "0"], + vec!["--model", "qwen3.8-flash-next", "--power-percent", "101"], + vec![ + "--model", + "qwen3.8-flash-next", + "--start-timeout-seconds", + "0", + ], + vec![ + "--model", + "qwen3.8-flash-next", + "--continuation-timeout-seconds", + "0", + ], + vec!["--model", "qwen3.8-flash-next", "--sample-ms", "99"], + vec!["--model", "qwen3.8-flash-next", "--canary", "maybe"], + ] { + assert!(Options::parse(arguments.into_iter().map(OsString::from)).is_err()); + } + } + + #[test] + fn acceleration_switch_uses_each_models_native_path() { + let mut deepseek = crate::settings::SpeculativePreferences::default(); + configure_acceleration(ModelChoice::DeepSeekV4Flash0731, &mut deepseek, true).unwrap(); + assert!(deepseek.dspark_enabled); + assert!(!deepseek.glm_mtp); + + let mut glm = crate::settings::SpeculativePreferences::default(); + configure_acceleration(ModelChoice::Glm53Flash, &mut glm, true).unwrap(); + assert!(glm.glm_mtp); + assert!(!glm.dspark_enabled); + + let mut qwen = crate::settings::SpeculativePreferences::default(); + configure_acceleration(ModelChoice::Qwen38FlashNext, &mut qwen, true).unwrap(); + assert!(qwen.glm_mtp); + configure_acceleration(ModelChoice::Qwen38FlashNext, &mut qwen, false).unwrap(); + assert!(!qwen.glm_mtp); + } + + #[test] + fn acceleration_receipt_reports_effective_sampling_contract() { + let deepseek = ModelChoice::DeepSeekV4Flash0731; + let mut preferences = crate::settings::SpeculativePreferences { + dspark_enabled: true, + ..crate::settings::SpeculativePreferences::default() + }; + for (exact, temperature, threshold, mode) in [ + (false, 1.0, 0.6_f32, "opportunistic"), + (true, 1.0, 0.8, "exact"), + (true, 0.0, 0.6, "greedy"), + ] { + preferences.dspark_exact_sampling = exact; + let receipt = + acceleration_receipt(deepseek, preferences.engine_settings(), false, temperature); + assert_eq!(receipt["sampling_mode"], mode); + assert_eq!(receipt["dspark_confidence_for_turn"], json!(threshold)); + assert_eq!(receipt["dspark_confidence_explicit"], false); + } + preferences.dspark_confidence_threshold = Some(0.7); + let receipt = acceleration_receipt(deepseek, preferences.engine_settings(), false, 1.0); + assert_eq!(receipt["dspark_confidence_for_turn"], json!(0.7_f32)); + assert_eq!(receipt["dspark_confidence_explicit"], true); + for (quality, strict) in [(true, false), (false, true)] { + preferences.dspark_strict = strict; + assert_eq!( + acceleration_receipt(deepseek, preferences.engine_settings(), quality, 1.0)["sampling_mode"], + "target_only", + ); + } + let integrated = crate::settings::SpeculativePreferences { + glm_mtp: true, + ..crate::settings::SpeculativePreferences::default() + } + .engine_settings(); + for (model, mode) in [ + (ModelChoice::Glm53Flash, "opportunistic"), + (ModelChoice::Qwen38FlashNext, "exact"), + ] { + let receipt = acceleration_receipt(model, integrated, false, 1.0); + assert_eq!(receipt["sampling_mode"], mode); + assert!(receipt["dspark_confidence_for_turn"].is_null()); + assert_eq!( + acceleration_receipt( + model, + crate::settings::EngineSpeculativeSettings::default(), + false, + 1.0 + )["sampling_mode"], + "target_only", + ); + } + } + + #[test] + fn worker_progress_events_advance_the_watchdog() { + let progress = Arc::new(Mutex::new(Progress::new())); + forward_worker_output( + io::Cursor::new(b"{\"event\":\"phase\",\"phase\":\"loading\"}\n"), + Arc::clone(&progress), + ) + .unwrap(); + assert!(!progress.lock().unwrap().started); + for event in ["model_loaded", "progress"] { + forward_worker_output( + io::Cursor::new(format!("{{\"event\":\"{event}\"}}\n")), + Arc::clone(&progress), + ) + .unwrap(); + let current = *progress.lock().unwrap(); + assert!(current.started); + assert!(current.first.is_some()); + } + } +} diff --git a/src/process_resources.rs b/src/process_resources.rs new file mode 100644 index 0000000..cb78681 --- /dev/null +++ b/src/process_resources.rs @@ -0,0 +1,51 @@ +//! Shared, read-only macOS process accounting for external supervisors. +#[derive(Clone, Copy, Default, serde::Serialize)] +pub(crate) struct ResourceUsage { + pub(crate) cpu_time_ns: u64, + pub(crate) resident_bytes: u64, + pub(crate) physical_bytes: u64, + pub(crate) peak_physical_bytes: u64, + pub(crate) disk_read_bytes: u64, + pub(crate) disk_write_bytes: u64, +} + +impl ResourceUsage { + pub(crate) fn include(&mut self, sample: Self) { + self.cpu_time_ns = self.cpu_time_ns.max(sample.cpu_time_ns); + self.resident_bytes = self.resident_bytes.max(sample.resident_bytes); + self.physical_bytes = self.physical_bytes.max(sample.physical_bytes); + self.peak_physical_bytes = self.peak_physical_bytes.max(sample.peak_physical_bytes); + self.disk_read_bytes = self.disk_read_bytes.max(sample.disk_read_bytes); + self.disk_write_bytes = self.disk_write_bytes.max(sample.disk_write_bytes); + } +} + +#[allow( + deprecated, + reason = "Reuse libc's binding to the supported macOS timebase API" +)] +pub(crate) fn resource_usage(pid: u32) -> Option { + let mut timebase = libc::mach_timebase_info { numer: 0, denom: 0 }; + // proc_pid_rusage CPU times use Mach ticks, unlike getrusage's timeval. + if unsafe { libc::mach_timebase_info(&mut timebase) } != 0 || timebase.denom == 0 { + return None; + } + let mut usage = std::mem::MaybeUninit::::zeroed(); + let result = unsafe { + libc::proc_pid_rusage(pid as i32, libc::RUSAGE_INFO_V4, usage.as_mut_ptr().cast()) + }; + (result == 0).then(|| { + let usage = unsafe { usage.assume_init() }; + ResourceUsage { + cpu_time_ns: ((u128::from(usage.ri_user_time) + u128::from(usage.ri_system_time)) + * u128::from(timebase.numer) + / u128::from(timebase.denom)) + .min(u128::from(u64::MAX)) as u64, + resident_bytes: usage.ri_resident_size, + physical_bytes: usage.ri_phys_footprint, + peak_physical_bytes: usage.ri_lifetime_max_phys_footprint, + disk_read_bytes: usage.ri_diskio_bytesread, + disk_write_bytes: usage.ri_diskio_byteswritten, + } + }) +} diff --git a/src/runtime.rs b/src/runtime.rs index 04caab0..dd79c66 100644 --- a/src/runtime.rs +++ b/src/runtime.rs @@ -38,6 +38,9 @@ pub(crate) enum CheckpointTarget { pub(crate) enum GenerationEvent { Loading, + Loaded { + duration: Duration, + }, Activity(&'static str), Chunk { reasoning: bool, @@ -285,13 +288,15 @@ fn run_command( state.loaded = match Generator::open(&command.engine, Arc::clone(metrics)) { Ok(generator) => { let summary = generator.summary(); + let duration = load_started.elapsed(); metrics.loaded( summary.model, - load_started.elapsed(), + duration, summary.mapped_bytes, summary.tensor_count, summary.vocabulary_size, ); + let _ = command.events.send(GenerationEvent::Loaded { duration }); Some((command.engine.clone(), generator)) } Err(error) => { diff --git a/src/server/request.rs b/src/server/request.rs index 3aad141..ac00399 100644 --- a/src/server/request.rs +++ b/src/server/request.rs @@ -683,7 +683,7 @@ mod tests { ); assert_eq!( request_reasoning(&default, ModelChoice::Qwen38FlashNext, "").unwrap(), - ReasoningMode::XHigh + ReasoningMode::Low ); for (effort, mode) in [ diff --git a/src/server/response.rs b/src/server/response.rs index 44d110c..1203878 100644 --- a/src/server/response.rs +++ b/src/server/response.rs @@ -749,7 +749,7 @@ fn stream_response_with_keepalive( )); } GenerationEvent::Activity(_) | GenerationEvent::Measured(_) => {} - GenerationEvent::Loading => {} + GenerationEvent::Loading | GenerationEvent::Loaded { .. } => {} GenerationEvent::Context { tokens_per_second, .. } => { diff --git a/src/settings.rs b/src/settings.rs index 0ec6049..562cb18 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -24,6 +24,7 @@ const QWEN_REASONING_MODES: [ReasoningMode; 4] = [ ]; const MAX_CPU_THREADS: u32 = 32; pub(crate) const GIB: u64 = 1024 * 1024 * 1024; +pub(crate) const QWEN_DEFAULT_PREFILL_CHUNK: u32 = 2_048; /// DS4 disk KV cache defaults, from `ds4_kvstore.h` and `--kv-disk-space-mb`. pub(crate) const DEFAULT_KV_BUDGET_GIB: u64 = 4; const DEFAULT_KV_MIN_TOKENS: u32 = 512; @@ -75,7 +76,7 @@ impl SpeculativePreferences { glm_mtp_timing: self.glm_mtp_timing, keep_vision_loaded: self.keep_vision_loaded, dspark: self.dspark_enabled, - dspark_confidence_threshold: self.dspark_confidence_threshold.unwrap_or(0.8), + dspark_confidence_threshold: self.dspark_confidence_threshold.unwrap_or(0.6), dspark_confidence_threshold_set: self.dspark_confidence_threshold.is_some(), dspark_strict: self.dspark_strict, dspark_exact_sampling: self.dspark_exact_sampling, @@ -95,6 +96,19 @@ pub(crate) struct EngineSpeculativeSettings { pub(crate) dspark_exact_sampling: bool, } +impl EngineSpeculativeSettings { + /// DS4 Metal uses the stricter automatic threshold only for stochastic + /// exact sampling. Temperature is per turn, not part of model loading. + pub(crate) fn dspark_confidence_for_temperature(self, temperature: f32) -> f32 { + if self.dspark_exact_sampling && temperature > 0.0 && !self.dspark_confidence_threshold_set + { + self.dspark_confidence_threshold.max(0.8) + } else { + self.dspark_confidence_threshold + } + } +} + /// An expert count, or a whole GiB budget. Written as `4` or `64GB`, the same /// spelling the preferences window accepts. #[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)] @@ -461,13 +475,8 @@ impl ExecutionPreferences { { return Err("Prefill chunk is too large.".into()); } - if model.is_glm() { - if self.power_percent.is_some_and(|power| power != 100) { - return Err("GLM currently requires 100% GPU power.".into()); - } - if self.prefill_chunk.is_some() { - return Err("GLM selects its prefill chunk automatically.".into()); - } + if model.is_glm() && self.prefill_chunk.is_some() { + return Err("GLM selects its prefill chunk automatically.".into()); } Ok(()) } @@ -545,7 +554,7 @@ impl ModelChoice { match self { Self::DeepSeekV4Flash0731 | Self::DeepSeekV4Pro => ReasoningMode::Low, Self::Glm52 | Self::Glm53Flash => ReasoningMode::Max, - Self::Qwen38FlashNext => ReasoningMode::XHigh, + Self::Qwen38FlashNext => ReasoningMode::Low, } } @@ -729,6 +738,10 @@ mod tests { let qwen = GenerationPreferences::defaults_for(ModelChoice::Qwen38FlashNext); let qwen_turn = qwen.turn_settings(ModelChoice::Qwen38FlashNext, cache); assert_eq!(qwen.context_tokens, 131_072); + assert_eq!( + ModelChoice::Qwen38FlashNext.default_reasoning_mode(), + ReasoningMode::Low + ); assert_eq!( ModelChoice::Qwen38FlashNext.reasoning_modes(), &[ @@ -815,15 +828,50 @@ mod tests { }; assert!(tuned.validate(ModelChoice::DeepSeekV4Flash0731).is_ok()); assert!(tuned.validate(ModelChoice::Glm52).is_err()); + + let glm_tuned = ExecutionPreferences { + power_percent: Some(50), + ..ExecutionPreferences::default() + }; + assert!(glm_tuned.validate(ModelChoice::Glm52).is_ok()); + assert_eq!(glm_tuned.engine_settings().power_percent, 50); } #[test] fn speculative_settings_match_acceleration_defaults_and_dependencies() { let defaults = SpeculativePreferences::default(); let engine = defaults.engine_settings(); - assert_eq!(engine.dspark_confidence_threshold, 0.8); + assert_eq!(engine.dspark_confidence_threshold, 0.6); assert!(!engine.dspark_confidence_threshold_set); + for (explicit, exact, temperature, expected) in [ + (None, false, 0.0, 0.6), + (None, false, 1.0, 0.6), + (None, true, 0.0, 0.6), + (None, true, 1.0, 0.8), + (Some(0.0), true, 1.0, 0.0), + (Some(0.7), true, 1.0, 0.7), + (Some(0.9), false, 1.0, 0.9), + ] { + // Exercise the persisted-settings path; an omitted value must not + // be confused with an explicit zero (fixed-width draft blocks). + let mut stored = serde_json::json!({ + "dspark_enabled": true, + "dspark_exact_sampling": exact, + }); + if let Some(value) = explicit { + stored["dspark_confidence_threshold"] = serde_json::json!(value); + } + let preferences: SpeculativePreferences = serde_json::from_value(stored).unwrap(); + let settings = preferences.engine_settings(); + assert_eq!(settings.dspark_confidence_threshold_set, explicit.is_some()); + assert_eq!( + settings.dspark_confidence_for_temperature(temperature), + expected, + "explicit={explicit:?}, exact={exact}, temperature={temperature}", + ); + } + let tuned = SpeculativePreferences { dspark_enabled: true, dspark_confidence_threshold: Some(0.7), diff --git a/tests/fixtures/mtplx-allocator.jsonl b/tests/fixtures/mtplx-allocator.jsonl new file mode 100644 index 0000000..be558b4 --- /dev/null +++ b/tests/fixtures/mtplx-allocator.jsonl @@ -0,0 +1,101 @@ +{"op": "init", "active": 0, "cached": 0, "page": 16384, "limit": 4194304, "runtime": "0.32.2"} +{"op": "alloc", "active": 0, "cached": 0, "name": "0", "size": 0, "buffer": null, "storage": 0} +{"op": "alloc", "active": 1, "cached": 0, "name": "1", "size": 1, "buffer": 0, "storage": 1} +{"op": "alloc", "active": 256, "cached": 0, "name": "2", "size": 255, "buffer": 1, "storage": 255} +{"op": "alloc", "active": 512, "cached": 0, "name": "3", "size": 256, "buffer": 2, "storage": 256} +{"op": "alloc", "active": 769, "cached": 0, "name": "4", "size": 257, "buffer": 3, "storage": 257} +{"op": "alloc", "active": 17152, "cached": 0, "name": "5", "size": 16383, "buffer": 4, "storage": 16383} +{"op": "alloc", "active": 33536, "cached": 0, "name": "6", "size": 16384, "buffer": 5, "storage": 16384} +{"op": "alloc", "active": 66304, "cached": 0, "name": "7", "size": 16385, "buffer": 6, "storage": 32768} +{"op": "alloc", "active": 99072, "cached": 0, "name": "8", "size": 32767, "buffer": 7, "storage": 32768} +{"op": "alloc", "active": 131840, "cached": 0, "name": "9", "size": 32768, "buffer": 8, "storage": 32768} +{"op": "alloc", "active": 180992, "cached": 0, "name": "10", "size": 32769, "buffer": 9, "storage": 49152} +{"op": "free", "active": 180992, "cached": 0, "name": "0"} +{"op": "free", "active": 180991, "cached": 1, "name": "1"} +{"op": "free", "active": 180736, "cached": 256, "name": "2"} +{"op": "free", "active": 180480, "cached": 512, "name": "3"} +{"op": "free", "active": 180223, "cached": 769, "name": "4"} +{"op": "free", "active": 163840, "cached": 17152, "name": "5"} +{"op": "free", "active": 147456, "cached": 33536, "name": "6"} +{"op": "free", "active": 114688, "cached": 66304, "name": "7"} +{"op": "free", "active": 81920, "cached": 99072, "name": "8"} +{"op": "free", "active": 49152, "cached": 131840, "name": "9"} +{"op": "free", "active": 0, "cached": 180992, "name": "10"} +{"op": "alloc", "active": 256, "cached": 180736, "name": "0", "size": 256, "buffer": 2, "storage": 256} +{"op": "alloc", "active": 257, "cached": 180735, "name": "1", "size": 1, "buffer": 0, "storage": 1} +{"op": "alloc", "active": 16641, "cached": 164351, "name": "2", "size": 16384, "buffer": 5, "storage": 16384} +{"op": "alloc", "active": 49409, "cached": 131583, "name": "3", "size": 16385, "buffer": 6, "storage": 32768} +{"op": "alloc", "active": 98561, "cached": 82431, "name": "4", "size": 32769, "buffer": 9, "storage": 49152} +{"op": "free", "active": 98305, "cached": 82687, "name": "0"} +{"op": "free", "active": 98304, "cached": 82688, "name": "1"} +{"op": "free", "active": 81920, "cached": 99072, "name": "2"} +{"op": "free", "active": 49152, "cached": 131840, "name": "3"} +{"op": "free", "active": 0, "cached": 180992, "name": "4"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 257, "cached": 0, "name": "a", "size": 257, "buffer": 2, "storage": 257} +{"op": "alloc", "active": 514, "cached": 0, "name": "b", "size": 257, "buffer": 10, "storage": 257} +{"op": "alloc", "active": 771, "cached": 0, "name": "c", "size": 257, "buffer": 11, "storage": 257} +{"op": "free", "active": 514, "cached": 257, "name": "b"} +{"op": "free", "active": 257, "cached": 514, "name": "a"} +{"op": "free", "active": 0, "cached": 771, "name": "c"} +{"op": "alloc", "active": 257, "cached": 514, "name": "x", "size": 256, "buffer": 10, "storage": 257} +{"op": "alloc", "active": 514, "cached": 257, "name": "y", "size": 256, "buffer": 2, "storage": 257} +{"op": "alloc", "active": 771, "cached": 0, "name": "z", "size": 256, "buffer": 11, "storage": 257} +{"op": "free", "active": 514, "cached": 257, "name": "x"} +{"op": "free", "active": 257, "cached": 514, "name": "y"} +{"op": "free", "active": 0, "cached": 771, "name": "z"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 512, "cached": 0, "name": "old", "size": 512, "buffer": 2, "storage": 512} +{"op": "free", "active": 0, "cached": 512, "name": "old"} +{"op": "alloc", "active": 256, "cached": 512, "name": "new", "size": 256, "buffer": 10, "storage": 256} +{"op": "free", "active": 0, "cached": 768, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 511, "cached": 0, "name": "old", "size": 511, "buffer": 2, "storage": 511} +{"op": "free", "active": 0, "cached": 511, "name": "old"} +{"op": "alloc", "active": 511, "cached": 0, "name": "new", "size": 256, "buffer": 2, "storage": 511} +{"op": "free", "active": 0, "cached": 511, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 65536, "cached": 0, "name": "old", "size": 65536, "buffer": 5, "storage": 65536} +{"op": "free", "active": 0, "cached": 65536, "name": "old"} +{"op": "alloc", "active": 32768, "cached": 65536, "name": "new", "size": 32768, "buffer": 2, "storage": 32768} +{"op": "free", "active": 0, "cached": 98304, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 49152, "cached": 0, "name": "old", "size": 49152, "buffer": 5, "storage": 49152} +{"op": "free", "active": 0, "cached": 49152, "name": "old"} +{"op": "alloc", "active": 49152, "cached": 0, "name": "new", "size": 32768, "buffer": 5, "storage": 49152} +{"op": "free", "active": 0, "cached": 49152, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 98304, "cached": 0, "name": "old", "size": 98304, "buffer": 2, "storage": 98304} +{"op": "free", "active": 0, "cached": 98304, "name": "old"} +{"op": "alloc", "active": 65536, "cached": 98304, "name": "new", "size": 65536, "buffer": 5, "storage": 65536} +{"op": "free", "active": 0, "cached": 163840, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 81920, "cached": 0, "name": "old", "size": 81920, "buffer": 2, "storage": 81920} +{"op": "free", "active": 0, "cached": 81920, "name": "old"} +{"op": "alloc", "active": 81920, "cached": 0, "name": "new", "size": 65536, "buffer": 2, "storage": 81920} +{"op": "free", "active": 0, "cached": 81920, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "alloc", "active": 64, "cached": 0, "name": "a", "size": 64, "buffer": 0, "storage": 64} +{"op": "alloc", "active": 192, "cached": 0, "name": "b", "size": 128, "buffer": 1, "storage": 128} +{"op": "alloc", "active": 448, "cached": 0, "name": "c", "size": 256, "buffer": 2, "storage": 256} +{"op": "alloc", "active": 960, "cached": 0, "name": "d", "size": 512, "buffer": 3, "storage": 512} +{"op": "free", "active": 704, "cached": 256, "name": "c"} +{"op": "free", "active": 640, "cached": 320, "name": "a"} +{"op": "free", "active": 128, "cached": 832, "name": "d"} +{"op": "free", "active": 0, "cached": 960, "name": "b"} +{"op": "limit", "active": 0, "cached": 960, "size": 600} +{"op": "alloc", "active": 2048, "cached": 128, "name": "e", "size": 2048, "buffer": 4, "storage": 2048} +{"op": "free", "active": 0, "cached": 2176, "name": "e"} +{"op": "alloc", "active": 10000, "cached": 0, "name": "f", "size": 10000, "buffer": 12, "storage": 10000} +{"op": "free", "active": 0, "cached": 10000, "name": "f"} +{"op": "limit", "active": 0, "cached": 10000, "size": 1} +{"op": "alloc", "active": 32768, "cached": 0, "name": "g", "size": 20000, "buffer": 5, "storage": 32768} +{"op": "free", "active": 0, "cached": 32768, "name": "g"} +{"op": "clear", "active": 0, "cached": 0} +{"op": "limit", "active": 0, "cached": 0, "size": 4096} +{"op": "alloc", "active": 64, "cached": 0, "name": "old", "size": 64, "buffer": 0, "storage": 64} +{"op": "free", "active": 0, "cached": 64, "name": "old"} +{"op": "limit", "active": 0, "cached": 64, "size": 0} +{"op": "alloc", "active": 64, "cached": 0, "name": "new", "size": 64, "buffer": 0, "storage": 64} +{"op": "free", "active": 0, "cached": 0, "name": "new"} +{"op": "clear", "active": 0, "cached": 0} diff --git a/tests/fixtures/mtplx-ar-driver.jsonl b/tests/fixtures/mtplx-ar-driver.jsonl new file mode 100644 index 0000000..2a69bd7 --- /dev/null +++ b/tests/fixtures/mtplx-ar-driver.jsonl @@ -0,0 +1,480 @@ +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "emitted": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 17, 5], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": null, "verify_calls": 3, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35], "emitted": [13, 20, 17, 5, 27, 0, 1, 10], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "emitted": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [23], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "5c8a252b0416e8336dc62ce6682c6583ddbea36cb5f3d747cb26a8e1994f8a95"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 17, 5], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 3, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35], "emitted": [13, 20, 17, 5, 27, 0, 1, 10], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}], "modes": [], "final": null, "verify_calls": 10, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [24], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "834a8684a17e94a870c21baa59b3a0c9d3cfafb692deed50b36dacb401ecd59f"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 10, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 17], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "fe575e3148a8de3978ff7b8ccfa956a7008ee8483494451806d3f54fc23a8f27"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "emitted": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 17, 5], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}], "modes": [], "final": null, "verify_calls": 3, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35], "emitted": [13, 20, 17, 5, 27, 0, 1, 10], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "emitted": [13, 20, 17, 5, 27, 0, 1, 10, 35, 33, 5, 23], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [23], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "5c8a252b0416e8336dc62ce6682c6583ddbea36cb5f3d747cb26a8e1994f8a95"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 17, 5], "emitted": [13, 20, 17], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 3, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 17, 5, 27, 0, 1, 10, 35], "emitted": [13, 20, 17, 5, 27, 0, 1, 10], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [27], "hidden": false}, {"ids": [0], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [10], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}], "modes": [], "final": null, "verify_calls": 10, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [24], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "834a8684a17e94a870c21baa59b3a0c9d3cfafb692deed50b36dacb401ecd59f"}, "verify_calls": 11, "finish": "length"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 10, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": false, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [true, false], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ea4216a84f148e4080b495c29304068cdc98a94287d09d39244c67fbda7d5c37"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ea4216a84f148e4080b495c29304068cdc98a94287d09d39244c67fbda7d5c37"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [true, false], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "46a2a1b5c5333c3494206270735e45bc15e8b44806f5970278cb3e2c93030364"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "46a2a1b5c5333c3494206270735e45bc15e8b44806f5970278cb3e2c93030364"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}], "modes": [], "final": null, "verify_calls": 10, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [24], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "834a8684a17e94a870c21baa59b3a0c9d3cfafb692deed50b36dacb401ecd59f"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 10, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": false, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [3], "emitted": [3], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [3], "emitted": [3], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "cc44d27b378187f93b9d83cbc8ca49a664d4ba517b028ce3aa8628ece08c9d01"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [3, 12], "emitted": [3, 12], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a6485d7c2efcd56f0d043ddb8c5dbdaca9a54e16b82ab103f73488c3775cc6e5"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [3, 12, 11], "emitted": [3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.0, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "emitted": [3, 12, 11, 3, 12, 11, 3, 12, 11, 3, 12, 11], "calls": [{"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [11], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "f24bbbe4364f5e3ac0c88c5d0f84c6ff153b243c01dbcaef778654c466f82d88"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [true, false], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ea4216a84f148e4080b495c29304068cdc98a94287d09d39244c67fbda7d5c37"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 35, 22], "emitted": [13, 35, 22], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ea4216a84f148e4080b495c29304068cdc98a94287d09d39244c67fbda7d5c37"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [true, false], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": null, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "46a2a1b5c5333c3494206270735e45bc15e8b44806f5970278cb3e2c93030364"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "emitted": [13, 35, 22, 18, 28, 24, 17, 19, 23, 35, 7, 9], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [22], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [28], "hidden": false}, {"ids": [24], "hidden": false}, {"ids": [17], "hidden": false}, {"ids": [19], "hidden": false}, {"ids": [23], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [7], "hidden": false}, {"ids": [9], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "46a2a1b5c5333c3494206270735e45bc15e8b44806f5970278cb3e2c93030364"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.0, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 35], "emitted": [13], "calls": [{"ids": [13], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [true, false], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 1, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": false, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [0, 5, 36], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [13], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 0, "capture": true, "stops": [35], "tokens": [], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": false, "stops": [35], "tokens": [13], "emitted": [13], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [0, 5, 36], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 1, "capture": true, "stops": [35], "tokens": [13], "emitted": [13], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": false, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": null, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 2, "capture": true, "stops": [35], "tokens": [13, 20], "emitted": [13, 20], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "853cf549125da9642325e7be4539de6d8869678dfd6132c53c5e214b3cfa9487"}, "verify_calls": 1, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": false, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}], "modes": [], "final": null, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 3, "capture": true, "stops": [35], "tokens": [13, 20, 18], "emitted": [13, 20, 18], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "a23e7114b899a374b6cfb8a97eca887e368627f53d9509485a71793b4b144dd1"}, "verify_calls": 2, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": null, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}], "modes": [], "final": null, "verify_calls": 10, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [13], "tokens": [13], "emitted": [], "calls": [], "modes": [], "final": null, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": false, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}], "modes": [], "final": null, "verify_calls": 8, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5, 24], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}, {"ids": [24], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "834a8684a17e94a870c21baa59b3a0c9d3cfafb692deed50b36dacb401ecd59f"}, "verify_calls": 11, "finish": "length"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [0, 5, 36], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33, 5], "emitted": [13, 20, 18, 1, 25, 6, 3, 12, 35, 33], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}, {"ids": [33], "hidden": false}, {"ids": [5], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "0af7da874f9e94cbb9136604a8cf5071586ea5872fc3c26557c8952112cda657"}, "verify_calls": 10, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [13], "tokens": [13], "emitted": [], "calls": [{"ids": [13], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "031c2422372f6120132e21282a6b70d9ae86753e2c88fb102975282c0969c200"}, "verify_calls": 0, "finish": "stop"} +{"pipeline": true, "asynchronous": true, "temperature": 0.6, "penalty": 0.4, "limit": 12, "capture": true, "stops": [35], "tokens": [13, 20, 18, 1, 25, 6, 3, 12, 35], "emitted": [13, 20, 18, 1, 25, 6, 3, 12], "calls": [{"ids": [13], "hidden": false}, {"ids": [20], "hidden": false}, {"ids": [18], "hidden": false}, {"ids": [1], "hidden": false}, {"ids": [25], "hidden": false}, {"ids": [6], "hidden": false}, {"ids": [3], "hidden": false}, {"ids": [12], "hidden": false}, {"ids": [35], "hidden": false}], "modes": [], "final": {"shape": [1, 37], "sha256": "ab263c1a4af38ed8e31eed8b77be144744191d5368b3ad89f84da7cb56ac56b1"}, "verify_calls": 8, "finish": "stop"} diff --git a/tests/fixtures/mtplx-binding-order.jsonl b/tests/fixtures/mtplx-binding-order.jsonl new file mode 100644 index 0000000..66e81ad --- /dev/null +++ b/tests/fixtures/mtplx-binding-order.jsonl @@ -0,0 +1,4 @@ +{"mask":0,"mtp":false,"count":2466,"sha256":"2ce91a1e50db5b8f3f6be974a4e54f0cb68f580c88bfe8d5f4ffc577b5e0b587"} +{"mask":7,"mtp":false,"count":1782,"sha256":"34f6cfbdb8a6067bab5cf8974682b17344a1e717245babe8350e4b8e03da852a"} +{"mask":0,"mtp":true,"count":2524,"sha256":"603ec8d72ec2b939197c085a663c777a190efdaebddca13939eeaa1be8560207"} +{"mask":7,"mtp":true,"count":1840,"sha256":"cece70de9375d121a102ad162ba1da764366aa16234afe3cac1978f76ab3f695"} diff --git a/tests/fixtures/mtplx-binding-sidecar.jsonl b/tests/fixtures/mtplx-binding-sidecar.jsonl new file mode 100644 index 0000000..a25ff0f --- /dev/null +++ b/tests/fixtures/mtplx-binding-sidecar.jsonl @@ -0,0 +1,4 @@ +{"mask":0,"mtp":false,"tables":[{"layer":1,"resident":false,"hot_mb":1023,"prefetch":true,"shape":[4,160],"sha256":"b28357859bc34b23d26ef11adae8bfeba53b3cc574f58ea9c889dc786caed5c0"}],"ar_ready":false} +{"mask":7,"mtp":false,"tables":[{"layer":1,"resident":false,"hot_mb":1023,"prefetch":true,"shape":[4,160],"sha256":"b28357859bc34b23d26ef11adae8bfeba53b3cc574f58ea9c889dc786caed5c0"}],"ar_ready":false} +{"mask":0,"mtp":true,"tables":[{"layer":1,"resident":false,"hot_mb":1023,"prefetch":true,"shape":[4,160],"sha256":"b28357859bc34b23d26ef11adae8bfeba53b3cc574f58ea9c889dc786caed5c0"}],"ar_ready":false} +{"mask":7,"mtp":true,"tables":[{"layer":1,"resident":false,"hot_mb":1023,"prefetch":true,"shape":[4,160],"sha256":"b28357859bc34b23d26ef11adae8bfeba53b3cc574f58ea9c889dc786caed5c0"}],"ar_ready":false} diff --git a/tests/fixtures/mtplx-binding.jsonl b/tests/fixtures/mtplx-binding.jsonl new file mode 100644 index 0000000..fdd1caf --- /dev/null +++ b/tests/fixtures/mtplx-binding.jsonl @@ -0,0 +1,4 @@ +{"mask":0,"mtp":false,"parameter_count":2466,"metadata_sha256":"b33146c5e762ebff20827a3c1e3d000a13fe09056ac89dc4e32da939e4d96abe","quantized":{"language_model.lm_head":[4,64,[248320,320]],"language_model.model.layers.47.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.47.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.47.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.47.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.47.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.47.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.47.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.47.mlp.gate":[8,64,[512,640]],"language_model.model.layers.47.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.47.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.47.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.47.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.47.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.46.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.46.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.46.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.46.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.46.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.46.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.46.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.46.mlp.gate":[8,64,[512,640]],"language_model.model.layers.46.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.46.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.46.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.46.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.46.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.45.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.45.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.45.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.45.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.45.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.45.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.45.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.45.mlp.gate":[8,64,[512,640]],"language_model.model.layers.45.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.45.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.45.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.45.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.45.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.44.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.44.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.44.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.44.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.44.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.44.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.44.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.44.mlp.gate":[8,64,[512,640]],"language_model.model.layers.44.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.44.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.44.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.44.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.44.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.43.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.43.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.43.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.43.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.43.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.43.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.43.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.43.mlp.gate":[8,64,[512,640]],"language_model.model.layers.43.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.43.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.43.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.43.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.43.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.42.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.42.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.42.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.42.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.42.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.42.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.42.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.42.mlp.gate":[8,64,[512,640]],"language_model.model.layers.42.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.42.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.42.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.42.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.42.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.41.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.41.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.41.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.41.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.41.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.41.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.41.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.41.mlp.gate":[8,64,[512,640]],"language_model.model.layers.41.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.41.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.41.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.41.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.41.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.40.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.40.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.40.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.40.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.40.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.40.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.40.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.40.mlp.gate":[8,64,[512,640]],"language_model.model.layers.40.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.40.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.40.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.40.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.40.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.39.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.39.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.39.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.39.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.39.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.39.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.39.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.39.mlp.gate":[8,64,[512,640]],"language_model.model.layers.39.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.39.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.39.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.39.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.39.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.38.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.38.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.38.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.38.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.38.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.38.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.38.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.38.mlp.gate":[8,64,[512,640]],"language_model.model.layers.38.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.38.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.38.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.38.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.38.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.37.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.37.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.37.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.37.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.37.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.37.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.37.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.37.mlp.gate":[8,64,[512,640]],"language_model.model.layers.37.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.37.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.37.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.37.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.37.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.36.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.36.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.36.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.36.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.36.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.36.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.36.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.36.mlp.gate":[8,64,[512,640]],"language_model.model.layers.36.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.36.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.36.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.36.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.36.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.35.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.35.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.35.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.35.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.35.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.35.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.35.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.35.mlp.gate":[8,64,[512,640]],"language_model.model.layers.35.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.35.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.35.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.35.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.35.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.34.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.34.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.34.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.34.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.34.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.34.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.34.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.34.mlp.gate":[8,64,[512,640]],"language_model.model.layers.34.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.34.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.34.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.34.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.34.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.33.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.33.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.33.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.33.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.33.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.33.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.33.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.33.mlp.gate":[8,64,[512,640]],"language_model.model.layers.33.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.33.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.33.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.33.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.33.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.32.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.32.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.32.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.32.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.32.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.32.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.32.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.32.mlp.gate":[8,64,[512,640]],"language_model.model.layers.32.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.32.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.32.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.32.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.32.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.31.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.31.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.31.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.31.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.31.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.31.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.31.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.31.mlp.gate":[8,64,[512,640]],"language_model.model.layers.31.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.31.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.31.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.31.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.31.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.30.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.30.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.30.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.30.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.30.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.30.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.30.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.30.mlp.gate":[8,64,[512,640]],"language_model.model.layers.30.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.30.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.30.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.30.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.30.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.29.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.29.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.29.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.29.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.29.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.29.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.29.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.29.mlp.gate":[8,64,[512,640]],"language_model.model.layers.29.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.29.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.29.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.29.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.29.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.28.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.28.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.28.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.28.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.28.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.28.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.28.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.28.mlp.gate":[8,64,[512,640]],"language_model.model.layers.28.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.28.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.28.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.28.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.28.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.27.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.27.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.27.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.27.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.27.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.27.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.27.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.27.mlp.gate":[8,64,[512,640]],"language_model.model.layers.27.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.27.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.27.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.27.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.27.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.26.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.26.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.26.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.26.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.26.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.26.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.26.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.26.mlp.gate":[8,64,[512,640]],"language_model.model.layers.26.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.26.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.26.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.26.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.26.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.25.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.25.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.25.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.25.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.25.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.25.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.25.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.25.mlp.gate":[8,64,[512,640]],"language_model.model.layers.25.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.25.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.25.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.25.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.25.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.24.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.24.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.24.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.24.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.24.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.24.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.24.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.24.mlp.gate":[8,64,[512,640]],"language_model.model.layers.24.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.24.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.24.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.24.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.24.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.23.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.23.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.23.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.23.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.23.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.23.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.23.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.23.mlp.gate":[8,64,[512,640]],"language_model.model.layers.23.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.23.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.23.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.23.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.23.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.22.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.22.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.22.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.22.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.22.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.22.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.22.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.22.mlp.gate":[8,64,[512,640]],"language_model.model.layers.22.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.22.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.22.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.22.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.22.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.21.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.21.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.21.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.21.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.21.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.21.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.21.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.21.mlp.gate":[8,64,[512,640]],"language_model.model.layers.21.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.21.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.21.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.21.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.21.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.20.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.20.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.20.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.20.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.20.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.20.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.20.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.20.mlp.gate":[8,64,[512,640]],"language_model.model.layers.20.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.20.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.20.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.20.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.20.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.19.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.19.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.19.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.19.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.19.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.19.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.19.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.19.mlp.gate":[8,64,[512,640]],"language_model.model.layers.19.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.19.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.19.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.19.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.19.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.18.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.18.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.18.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.18.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.18.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.18.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.18.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.18.mlp.gate":[8,64,[512,640]],"language_model.model.layers.18.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.18.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.18.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.18.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.18.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.17.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.17.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.17.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.17.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.17.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.17.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.17.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.17.mlp.gate":[8,64,[512,640]],"language_model.model.layers.17.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.17.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.17.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.17.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.17.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.16.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.16.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.16.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.16.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.16.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.16.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.16.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.16.mlp.gate":[8,64,[512,640]],"language_model.model.layers.16.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.16.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.16.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.16.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.16.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.15.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.15.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.15.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.15.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.15.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.15.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.15.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.15.mlp.gate":[8,64,[512,640]],"language_model.model.layers.15.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.15.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.15.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.15.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.15.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.14.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.14.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.14.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.14.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.14.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.14.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.14.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.14.mlp.gate":[8,64,[512,640]],"language_model.model.layers.14.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.14.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.14.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.14.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.14.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.13.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.13.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.13.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.13.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.13.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.13.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.13.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.13.mlp.gate":[8,64,[512,640]],"language_model.model.layers.13.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.13.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.13.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.13.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.13.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.12.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.12.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.12.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.12.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.12.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.12.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.12.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.12.mlp.gate":[8,64,[512,640]],"language_model.model.layers.12.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.12.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.12.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.12.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.12.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.11.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.11.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.11.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.11.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.11.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.11.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.11.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.11.mlp.gate":[8,64,[512,640]],"language_model.model.layers.11.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.11.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.11.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.11.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.11.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.10.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.10.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.10.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.10.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.10.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.10.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.10.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.10.mlp.gate":[8,64,[512,640]],"language_model.model.layers.10.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.10.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.10.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.10.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.10.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.9.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.9.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.9.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.9.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.9.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.9.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.9.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.9.mlp.gate":[8,64,[512,640]],"language_model.model.layers.9.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.9.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.9.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.9.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.9.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.8.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.8.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.8.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.8.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.8.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.8.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.8.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.8.mlp.gate":[8,64,[512,640]],"language_model.model.layers.8.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.8.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.8.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.8.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.8.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.7.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.7.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.7.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.7.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.7.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.7.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.7.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.7.mlp.gate":[8,64,[512,640]],"language_model.model.layers.7.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.7.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.7.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.7.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.7.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.6.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.6.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.6.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.6.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.6.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.6.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.6.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.6.mlp.gate":[8,64,[512,640]],"language_model.model.layers.6.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.6.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.6.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.6.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.6.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.5.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.5.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.5.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.5.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.5.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.5.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.5.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.5.mlp.gate":[8,64,[512,640]],"language_model.model.layers.5.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.5.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.5.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.5.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.5.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.4.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.4.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.4.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.4.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.4.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.4.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.4.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.4.mlp.gate":[8,64,[512,640]],"language_model.model.layers.4.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.4.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.4.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.4.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.4.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.3.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.3.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.3.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.3.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.3.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.3.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.3.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.3.mlp.gate":[8,64,[512,640]],"language_model.model.layers.3.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.3.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.3.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.3.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.3.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.2.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.2.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.2.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.2.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.2.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.2.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.2.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.2.mlp.gate":[8,64,[512,640]],"language_model.model.layers.2.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.2.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.2.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.2.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.2.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.1.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.1.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.1.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.1.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.1.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.1.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.1.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.1.mlp.gate":[8,64,[512,640]],"language_model.model.layers.1.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.1.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.1.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.1.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.1.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.0.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.0.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.0.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.0.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.0.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.0.mlp.gate":[8,64,[512,640]],"language_model.model.layers.0.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.0.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.0.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.0.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.0.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.embed_tokens":[4,64,[248320,320]]},"norms":{},"ple":[1],"linear":[0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46]} +{"mask":7,"mtp":false,"parameter_count":1782,"metadata_sha256":"fb7106c8a24a6dc1073cbc386d57c9e60a9f30858ecf294bd9bba215b1bfa8b8","quantized":{"language_model.lm_head":[4,64,[248320,320]],"language_model.model.layers.47.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.47.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.47.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.47.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.47.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.47.mlp.gate":[8,64,[512,640]],"language_model.model.layers.47.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.47.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.47.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.46.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.46.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.46.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.46.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.46.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.46.mlp.gate":[8,64,[512,640]],"language_model.model.layers.46.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.46.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.45.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.45.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.45.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.45.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.45.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.45.mlp.gate":[8,64,[512,640]],"language_model.model.layers.45.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.45.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.44.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.44.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.44.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.44.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.44.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.44.mlp.gate":[8,64,[512,640]],"language_model.model.layers.44.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.44.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.43.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.43.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.43.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.43.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.43.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.43.mlp.gate":[8,64,[512,640]],"language_model.model.layers.43.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.43.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.43.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.42.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.42.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.42.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.42.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.42.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.42.mlp.gate":[8,64,[512,640]],"language_model.model.layers.42.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.42.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.41.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.41.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.41.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.41.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.41.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.41.mlp.gate":[8,64,[512,640]],"language_model.model.layers.41.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.41.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.40.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.40.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.40.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.40.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.40.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.40.mlp.gate":[8,64,[512,640]],"language_model.model.layers.40.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.40.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.39.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.39.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.39.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.39.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.39.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.39.mlp.gate":[8,64,[512,640]],"language_model.model.layers.39.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.39.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.39.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.38.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.38.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.38.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.38.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.38.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.38.mlp.gate":[8,64,[512,640]],"language_model.model.layers.38.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.38.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.37.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.37.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.37.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.37.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.37.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.37.mlp.gate":[8,64,[512,640]],"language_model.model.layers.37.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.37.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.36.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.36.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.36.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.36.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.36.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.36.mlp.gate":[8,64,[512,640]],"language_model.model.layers.36.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.36.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.35.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.35.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.35.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.35.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.35.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.35.mlp.gate":[8,64,[512,640]],"language_model.model.layers.35.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.35.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.35.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.34.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.34.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.34.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.34.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.34.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.34.mlp.gate":[8,64,[512,640]],"language_model.model.layers.34.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.34.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.33.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.33.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.33.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.33.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.33.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.33.mlp.gate":[8,64,[512,640]],"language_model.model.layers.33.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.33.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.32.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.32.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.32.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.32.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.32.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.32.mlp.gate":[8,64,[512,640]],"language_model.model.layers.32.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.32.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.31.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.31.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.31.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.31.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.31.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.31.mlp.gate":[8,64,[512,640]],"language_model.model.layers.31.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.31.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.31.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.30.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.30.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.30.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.30.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.30.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.30.mlp.gate":[8,64,[512,640]],"language_model.model.layers.30.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.30.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.29.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.29.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.29.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.29.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.29.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.29.mlp.gate":[8,64,[512,640]],"language_model.model.layers.29.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.29.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.28.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.28.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.28.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.28.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.28.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.28.mlp.gate":[8,64,[512,640]],"language_model.model.layers.28.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.28.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.27.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.27.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.27.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.27.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.27.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.27.mlp.gate":[8,64,[512,640]],"language_model.model.layers.27.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.27.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.27.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.26.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.26.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.26.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.26.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.26.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.26.mlp.gate":[8,64,[512,640]],"language_model.model.layers.26.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.26.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.25.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.25.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.25.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.25.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.25.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.25.mlp.gate":[8,64,[512,640]],"language_model.model.layers.25.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.25.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.24.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.24.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.24.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.24.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.24.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.24.mlp.gate":[8,64,[512,640]],"language_model.model.layers.24.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.24.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.23.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.23.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.23.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.23.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.23.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.23.mlp.gate":[8,64,[512,640]],"language_model.model.layers.23.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.23.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.23.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.22.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.22.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.22.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.22.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.22.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.22.mlp.gate":[8,64,[512,640]],"language_model.model.layers.22.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.22.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.21.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.21.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.21.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.21.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.21.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.21.mlp.gate":[8,64,[512,640]],"language_model.model.layers.21.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.21.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.20.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.20.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.20.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.20.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.20.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.20.mlp.gate":[8,64,[512,640]],"language_model.model.layers.20.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.20.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.19.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.19.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.19.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.19.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.19.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.19.mlp.gate":[8,64,[512,640]],"language_model.model.layers.19.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.19.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.19.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.18.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.18.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.18.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.18.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.18.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.18.mlp.gate":[8,64,[512,640]],"language_model.model.layers.18.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.18.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.17.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.17.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.17.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.17.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.17.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.17.mlp.gate":[8,64,[512,640]],"language_model.model.layers.17.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.17.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.16.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.16.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.16.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.16.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.16.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.16.mlp.gate":[8,64,[512,640]],"language_model.model.layers.16.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.16.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.15.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.15.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.15.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.15.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.15.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.15.mlp.gate":[8,64,[512,640]],"language_model.model.layers.15.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.15.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.15.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.14.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.14.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.14.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.14.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.14.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.14.mlp.gate":[8,64,[512,640]],"language_model.model.layers.14.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.14.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.13.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.13.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.13.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.13.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.13.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.13.mlp.gate":[8,64,[512,640]],"language_model.model.layers.13.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.13.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.12.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.12.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.12.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.12.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.12.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.12.mlp.gate":[8,64,[512,640]],"language_model.model.layers.12.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.12.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.11.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.11.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.11.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.11.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.11.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.11.mlp.gate":[8,64,[512,640]],"language_model.model.layers.11.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.11.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.11.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.10.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.10.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.10.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.10.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.10.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.10.mlp.gate":[8,64,[512,640]],"language_model.model.layers.10.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.10.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.9.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.9.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.9.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.9.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.9.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.9.mlp.gate":[8,64,[512,640]],"language_model.model.layers.9.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.9.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.8.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.8.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.8.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.8.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.8.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.8.mlp.gate":[8,64,[512,640]],"language_model.model.layers.8.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.8.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.7.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.7.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.7.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.7.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.7.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.7.mlp.gate":[8,64,[512,640]],"language_model.model.layers.7.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.7.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.7.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.6.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.6.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.6.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.6.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.6.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.6.mlp.gate":[8,64,[512,640]],"language_model.model.layers.6.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.6.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.5.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.5.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.5.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.5.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.5.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.5.mlp.gate":[8,64,[512,640]],"language_model.model.layers.5.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.5.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.4.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.4.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.4.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.4.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.4.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.4.mlp.gate":[8,64,[512,640]],"language_model.model.layers.4.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.4.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.3.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.3.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.3.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.3.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.3.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.3.mlp.gate":[8,64,[512,640]],"language_model.model.layers.3.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.3.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.3.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.2.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.2.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.2.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.2.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.2.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.2.mlp.gate":[8,64,[512,640]],"language_model.model.layers.2.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.2.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.1.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.1.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.1.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.1.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.1.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.1.mlp.gate":[8,64,[512,640]],"language_model.model.layers.1.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.1.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.0.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.0.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.0.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.0.mlp.gate":[8,64,[512,640]],"language_model.model.layers.0.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.0.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.embed_tokens":[4,64,[248320,320]]},"norms":{},"ple":[1],"linear":[0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46]} +{"mask":0,"mtp":true,"parameter_count":2524,"metadata_sha256":"506883ab5e2ae423e674c97fdcf437cdcc78da6a4289345eb1a9e75f7cdc1dd1","quantized":{"mtp.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"mtp.layers.0.mlp.shared_expert.up_proj":[4,64,[640,320]],"mtp.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"mtp.layers.0.mlp.shared_expert.gate_proj":[4,64,[640,320]],"mtp.layers.0.mlp.switch_mlp.down_proj":[4,32,[512,2560,80]],"mtp.layers.0.mlp.switch_mlp.up_proj":[4,32,[512,640,320]],"mtp.layers.0.mlp.switch_mlp.gate_proj":[4,32,[512,640,320]],"mtp.layers.0.mlp.gate":[8,64,[512,640]],"mtp.layers.0.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"mtp.layers.0.self_attn.o_proj":[4,64,[2560,768]],"mtp.layers.0.self_attn.v_proj":[4,64,[512,320]],"mtp.layers.0.self_attn.k_proj":[4,64,[512,320]],"mtp.layers.0.self_attn.q_proj":[4,64,[12288,320]],"language_model.lm_head":[4,64,[248320,320]],"language_model.model.layers.47.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.47.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.47.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.47.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.47.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.47.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.47.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.47.mlp.gate":[8,64,[512,640]],"language_model.model.layers.47.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.47.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.47.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.47.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.47.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.46.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.46.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.46.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.46.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.46.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.46.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.46.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.46.mlp.gate":[8,64,[512,640]],"language_model.model.layers.46.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.46.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.46.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.46.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.46.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.45.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.45.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.45.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.45.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.45.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.45.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.45.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.45.mlp.gate":[8,64,[512,640]],"language_model.model.layers.45.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.45.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.45.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.45.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.45.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.44.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.44.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.44.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.44.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.44.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.44.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.44.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.44.mlp.gate":[8,64,[512,640]],"language_model.model.layers.44.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.44.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.44.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.44.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.44.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.43.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.43.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.43.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.43.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.43.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.43.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.43.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.43.mlp.gate":[8,64,[512,640]],"language_model.model.layers.43.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.43.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.43.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.43.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.43.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.42.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.42.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.42.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.42.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.42.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.42.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.42.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.42.mlp.gate":[8,64,[512,640]],"language_model.model.layers.42.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.42.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.42.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.42.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.42.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.41.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.41.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.41.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.41.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.41.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.41.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.41.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.41.mlp.gate":[8,64,[512,640]],"language_model.model.layers.41.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.41.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.41.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.41.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.41.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.40.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.40.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.40.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.40.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.40.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.40.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.40.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.40.mlp.gate":[8,64,[512,640]],"language_model.model.layers.40.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.40.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.40.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.40.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.40.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.39.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.39.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.39.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.39.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.39.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.39.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.39.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.39.mlp.gate":[8,64,[512,640]],"language_model.model.layers.39.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.39.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.39.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.39.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.39.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.38.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.38.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.38.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.38.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.38.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.38.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.38.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.38.mlp.gate":[8,64,[512,640]],"language_model.model.layers.38.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.38.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.38.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.38.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.38.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.37.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.37.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.37.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.37.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.37.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.37.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.37.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.37.mlp.gate":[8,64,[512,640]],"language_model.model.layers.37.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.37.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.37.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.37.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.37.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.36.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.36.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.36.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.36.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.36.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.36.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.36.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.36.mlp.gate":[8,64,[512,640]],"language_model.model.layers.36.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.36.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.36.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.36.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.36.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.35.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.35.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.35.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.35.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.35.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.35.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.35.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.35.mlp.gate":[8,64,[512,640]],"language_model.model.layers.35.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.35.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.35.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.35.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.35.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.34.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.34.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.34.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.34.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.34.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.34.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.34.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.34.mlp.gate":[8,64,[512,640]],"language_model.model.layers.34.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.34.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.34.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.34.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.34.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.33.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.33.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.33.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.33.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.33.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.33.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.33.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.33.mlp.gate":[8,64,[512,640]],"language_model.model.layers.33.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.33.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.33.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.33.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.33.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.32.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.32.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.32.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.32.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.32.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.32.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.32.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.32.mlp.gate":[8,64,[512,640]],"language_model.model.layers.32.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.32.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.32.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.32.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.32.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.31.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.31.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.31.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.31.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.31.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.31.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.31.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.31.mlp.gate":[8,64,[512,640]],"language_model.model.layers.31.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.31.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.31.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.31.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.31.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.30.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.30.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.30.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.30.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.30.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.30.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.30.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.30.mlp.gate":[8,64,[512,640]],"language_model.model.layers.30.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.30.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.30.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.30.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.30.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.29.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.29.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.29.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.29.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.29.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.29.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.29.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.29.mlp.gate":[8,64,[512,640]],"language_model.model.layers.29.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.29.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.29.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.29.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.29.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.28.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.28.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.28.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.28.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.28.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.28.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.28.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.28.mlp.gate":[8,64,[512,640]],"language_model.model.layers.28.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.28.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.28.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.28.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.28.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.27.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.27.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.27.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.27.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.27.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.27.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.27.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.27.mlp.gate":[8,64,[512,640]],"language_model.model.layers.27.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.27.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.27.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.27.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.27.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.26.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.26.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.26.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.26.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.26.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.26.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.26.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.26.mlp.gate":[8,64,[512,640]],"language_model.model.layers.26.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.26.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.26.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.26.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.26.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.25.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.25.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.25.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.25.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.25.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.25.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.25.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.25.mlp.gate":[8,64,[512,640]],"language_model.model.layers.25.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.25.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.25.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.25.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.25.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.24.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.24.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.24.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.24.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.24.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.24.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.24.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.24.mlp.gate":[8,64,[512,640]],"language_model.model.layers.24.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.24.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.24.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.24.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.24.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.23.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.23.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.23.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.23.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.23.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.23.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.23.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.23.mlp.gate":[8,64,[512,640]],"language_model.model.layers.23.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.23.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.23.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.23.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.23.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.22.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.22.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.22.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.22.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.22.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.22.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.22.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.22.mlp.gate":[8,64,[512,640]],"language_model.model.layers.22.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.22.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.22.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.22.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.22.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.21.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.21.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.21.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.21.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.21.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.21.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.21.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.21.mlp.gate":[8,64,[512,640]],"language_model.model.layers.21.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.21.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.21.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.21.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.21.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.20.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.20.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.20.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.20.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.20.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.20.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.20.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.20.mlp.gate":[8,64,[512,640]],"language_model.model.layers.20.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.20.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.20.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.20.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.20.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.19.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.19.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.19.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.19.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.19.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.19.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.19.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.19.mlp.gate":[8,64,[512,640]],"language_model.model.layers.19.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.19.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.19.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.19.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.19.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.18.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.18.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.18.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.18.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.18.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.18.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.18.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.18.mlp.gate":[8,64,[512,640]],"language_model.model.layers.18.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.18.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.18.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.18.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.18.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.17.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.17.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.17.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.17.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.17.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.17.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.17.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.17.mlp.gate":[8,64,[512,640]],"language_model.model.layers.17.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.17.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.17.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.17.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.17.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.16.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.16.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.16.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.16.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.16.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.16.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.16.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.16.mlp.gate":[8,64,[512,640]],"language_model.model.layers.16.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.16.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.16.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.16.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.16.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.15.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.15.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.15.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.15.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.15.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.15.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.15.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.15.mlp.gate":[8,64,[512,640]],"language_model.model.layers.15.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.15.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.15.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.15.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.15.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.14.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.14.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.14.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.14.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.14.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.14.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.14.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.14.mlp.gate":[8,64,[512,640]],"language_model.model.layers.14.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.14.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.14.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.14.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.14.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.13.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.13.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.13.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.13.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.13.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.13.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.13.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.13.mlp.gate":[8,64,[512,640]],"language_model.model.layers.13.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.13.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.13.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.13.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.13.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.12.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.12.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.12.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.12.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.12.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.12.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.12.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.12.mlp.gate":[8,64,[512,640]],"language_model.model.layers.12.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.12.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.12.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.12.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.12.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.11.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.11.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.11.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.11.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.11.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.11.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.11.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.11.mlp.gate":[8,64,[512,640]],"language_model.model.layers.11.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.11.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.11.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.11.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.11.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.10.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.10.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.10.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.10.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.10.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.10.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.10.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.10.mlp.gate":[8,64,[512,640]],"language_model.model.layers.10.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.10.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.10.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.10.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.10.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.9.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.9.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.9.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.9.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.9.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.9.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.9.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.9.mlp.gate":[8,64,[512,640]],"language_model.model.layers.9.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.9.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.9.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.9.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.9.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.8.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.8.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.8.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.8.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.8.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.8.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.8.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.8.mlp.gate":[8,64,[512,640]],"language_model.model.layers.8.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.8.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.8.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.8.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.8.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.7.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.7.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.7.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.7.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.7.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.7.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.7.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.7.mlp.gate":[8,64,[512,640]],"language_model.model.layers.7.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.7.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.7.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.7.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.7.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.6.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.6.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.6.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.6.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.6.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.6.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.6.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.6.mlp.gate":[8,64,[512,640]],"language_model.model.layers.6.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.6.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.6.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.6.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.6.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.5.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.5.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.5.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.5.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.5.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.5.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.5.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.5.mlp.gate":[8,64,[512,640]],"language_model.model.layers.5.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.5.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.5.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.5.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.5.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.4.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.4.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.4.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.4.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.4.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.4.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.4.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.4.mlp.gate":[8,64,[512,640]],"language_model.model.layers.4.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.4.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.4.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.4.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.4.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.3.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.3.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.3.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.3.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.3.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.3.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.3.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.3.mlp.gate":[8,64,[512,640]],"language_model.model.layers.3.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.3.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.3.self_attn.v_proj":[4,64,[512,320]],"language_model.model.layers.3.self_attn.k_proj":[4,64,[512,320]],"language_model.model.layers.3.self_attn.q_proj":[4,64,[12288,320]],"language_model.model.layers.2.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.2.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.2.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.2.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.2.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.2.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.2.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.2.mlp.gate":[8,64,[512,640]],"language_model.model.layers.2.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.2.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.2.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.2.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.2.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.1.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.1.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.1.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.1.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.1.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.1.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.1.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.1.mlp.gate":[8,64,[512,640]],"language_model.model.layers.1.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.1.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.1.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.1.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.1.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.0.mlp.shared_expert.up_proj":[4,64,[640,320]],"language_model.model.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.0.mlp.shared_expert.gate_proj":[4,64,[640,320]],"language_model.model.layers.0.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.0.mlp.switch_mlp.up_proj":[4,64,[512,640,320]],"language_model.model.layers.0.mlp.switch_mlp.gate_proj":[4,64,[512,640,320]],"language_model.model.layers.0.mlp.gate":[8,64,[512,640]],"language_model.model.layers.0.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.0.linear_attn.in_proj_a":[4,64,[48,320]],"language_model.model.layers.0.linear_attn.in_proj_b":[4,64,[48,320]],"language_model.model.layers.0.linear_attn.in_proj_z":[4,64,[6144,320]],"language_model.model.layers.0.linear_attn.in_proj_qkv":[4,64,[10240,320]],"language_model.model.embed_tokens":[4,64,[248320,320]]},"norms":{"mtp.pre_fc_norm_embedding.weight":"fd600a4b5af7497016cfc8f4a6d9a71b06ab64ba9ead2a035ce088c51d008a51","mtp.pre_fc_norm_hidden.weight":"c5f0fb8420ee5fa3494090d100a400a670f3540df4a11ab9a76304d07796ffdf"},"ple":[1],"linear":[0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46]} +{"mask":7,"mtp":true,"parameter_count":1840,"metadata_sha256":"6d4f062d5baf0adf41b57fb242d978d17eefebcc0d428fa7a70c040e6bad960c","quantized":{"mtp.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"mtp.layers.0.mlp.shared_expert.up_proj":[4,64,[640,320]],"mtp.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"mtp.layers.0.mlp.shared_expert.gate_proj":[4,64,[640,320]],"mtp.layers.0.mlp.switch_mlp.down_proj":[4,32,[512,2560,80]],"mtp.layers.0.mlp.switch_mlp.up_proj":[4,32,[512,640,320]],"mtp.layers.0.mlp.switch_mlp.gate_proj":[4,32,[512,640,320]],"mtp.layers.0.mlp.gate":[8,64,[512,640]],"mtp.layers.0.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"mtp.layers.0.self_attn.o_proj":[4,64,[2560,768]],"mtp.layers.0.self_attn.v_proj":[4,64,[512,320]],"mtp.layers.0.self_attn.k_proj":[4,64,[512,320]],"mtp.layers.0.self_attn.q_proj":[4,64,[12288,320]],"language_model.lm_head":[4,64,[248320,320]],"language_model.model.layers.47.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.47.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.47.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.47.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.47.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.47.mlp.gate":[8,64,[512,640]],"language_model.model.layers.47.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.47.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.47.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.46.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.46.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.46.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.46.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.46.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.46.mlp.gate":[8,64,[512,640]],"language_model.model.layers.46.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.46.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.45.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.45.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.45.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.45.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.45.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.45.mlp.gate":[8,64,[512,640]],"language_model.model.layers.45.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.45.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.44.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.44.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.44.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.44.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.44.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.44.mlp.gate":[8,64,[512,640]],"language_model.model.layers.44.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.44.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.43.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.43.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.43.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.43.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.43.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.43.mlp.gate":[8,64,[512,640]],"language_model.model.layers.43.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.43.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.43.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.42.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.42.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.42.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.42.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.42.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.42.mlp.gate":[8,64,[512,640]],"language_model.model.layers.42.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.42.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.41.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.41.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.41.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.41.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.41.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.41.mlp.gate":[8,64,[512,640]],"language_model.model.layers.41.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.41.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.40.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.40.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.40.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.40.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.40.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.40.mlp.gate":[8,64,[512,640]],"language_model.model.layers.40.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.40.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.39.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.39.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.39.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.39.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.39.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.39.mlp.gate":[8,64,[512,640]],"language_model.model.layers.39.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.39.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.39.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.38.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.38.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.38.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.38.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.38.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.38.mlp.gate":[8,64,[512,640]],"language_model.model.layers.38.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.38.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.37.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.37.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.37.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.37.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.37.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.37.mlp.gate":[8,64,[512,640]],"language_model.model.layers.37.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.37.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.36.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.36.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.36.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.36.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.36.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.36.mlp.gate":[8,64,[512,640]],"language_model.model.layers.36.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.36.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.35.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.35.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.35.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.35.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.35.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.35.mlp.gate":[8,64,[512,640]],"language_model.model.layers.35.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.35.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.35.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.34.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.34.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.34.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.34.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.34.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.34.mlp.gate":[8,64,[512,640]],"language_model.model.layers.34.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.34.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.33.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.33.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.33.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.33.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.33.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.33.mlp.gate":[8,64,[512,640]],"language_model.model.layers.33.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.33.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.32.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.32.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.32.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.32.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.32.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.32.mlp.gate":[8,64,[512,640]],"language_model.model.layers.32.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.32.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.31.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.31.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.31.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.31.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.31.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.31.mlp.gate":[8,64,[512,640]],"language_model.model.layers.31.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.31.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.31.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.30.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.30.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.30.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.30.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.30.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.30.mlp.gate":[8,64,[512,640]],"language_model.model.layers.30.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.30.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.29.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.29.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.29.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.29.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.29.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.29.mlp.gate":[8,64,[512,640]],"language_model.model.layers.29.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.29.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.28.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.28.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.28.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.28.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.28.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.28.mlp.gate":[8,64,[512,640]],"language_model.model.layers.28.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.28.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.27.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.27.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.27.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.27.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.27.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.27.mlp.gate":[8,64,[512,640]],"language_model.model.layers.27.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.27.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.27.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.26.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.26.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.26.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.26.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.26.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.26.mlp.gate":[8,64,[512,640]],"language_model.model.layers.26.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.26.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.25.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.25.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.25.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.25.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.25.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.25.mlp.gate":[8,64,[512,640]],"language_model.model.layers.25.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.25.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.24.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.24.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.24.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.24.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.24.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.24.mlp.gate":[8,64,[512,640]],"language_model.model.layers.24.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.24.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.23.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.23.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.23.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.23.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.23.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.23.mlp.gate":[8,64,[512,640]],"language_model.model.layers.23.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.23.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.23.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.22.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.22.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.22.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.22.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.22.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.22.mlp.gate":[8,64,[512,640]],"language_model.model.layers.22.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.22.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.21.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.21.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.21.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.21.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.21.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.21.mlp.gate":[8,64,[512,640]],"language_model.model.layers.21.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.21.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.20.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.20.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.20.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.20.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.20.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.20.mlp.gate":[8,64,[512,640]],"language_model.model.layers.20.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.20.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.19.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.19.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.19.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.19.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.19.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.19.mlp.gate":[8,64,[512,640]],"language_model.model.layers.19.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.19.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.19.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.18.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.18.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.18.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.18.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.18.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.18.mlp.gate":[8,64,[512,640]],"language_model.model.layers.18.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.18.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.17.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.17.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.17.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.17.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.17.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.17.mlp.gate":[8,64,[512,640]],"language_model.model.layers.17.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.17.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.16.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.16.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.16.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.16.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.16.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.16.mlp.gate":[8,64,[512,640]],"language_model.model.layers.16.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.16.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.15.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.15.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.15.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.15.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.15.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.15.mlp.gate":[8,64,[512,640]],"language_model.model.layers.15.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.15.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.15.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.14.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.14.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.14.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.14.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.14.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.14.mlp.gate":[8,64,[512,640]],"language_model.model.layers.14.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.14.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.13.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.13.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.13.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.13.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.13.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.13.mlp.gate":[8,64,[512,640]],"language_model.model.layers.13.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.13.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.12.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.12.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.12.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.12.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.12.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.12.mlp.gate":[8,64,[512,640]],"language_model.model.layers.12.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.12.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.11.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.11.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.11.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.11.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.11.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.11.mlp.gate":[8,64,[512,640]],"language_model.model.layers.11.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.11.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.11.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.10.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.10.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.10.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.10.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.10.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.10.mlp.gate":[8,64,[512,640]],"language_model.model.layers.10.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.10.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.9.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.9.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.9.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.9.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.9.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.9.mlp.gate":[8,64,[512,640]],"language_model.model.layers.9.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.9.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.8.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.8.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.8.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.8.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.8.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.8.mlp.gate":[8,64,[512,640]],"language_model.model.layers.8.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.8.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.7.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.7.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.7.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.7.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.7.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.7.mlp.gate":[8,64,[512,640]],"language_model.model.layers.7.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.7.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.7.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.6.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.6.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.6.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.6.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.6.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.6.mlp.gate":[8,64,[512,640]],"language_model.model.layers.6.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.6.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.5.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.5.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.5.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.5.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.5.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.5.mlp.gate":[8,64,[512,640]],"language_model.model.layers.5.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.5.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.4.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.4.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.4.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.4.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.4.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.4.mlp.gate":[8,64,[512,640]],"language_model.model.layers.4.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.4.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.3.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.3.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.3.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.3.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.3.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.3.mlp.gate":[8,64,[512,640]],"language_model.model.layers.3.self_attn.qkv_fused":[4,64,[13312,320]],"language_model.model.layers.3.self_attn.indexer.index_qk_proj":[8,64,[640,640]],"language_model.model.layers.3.self_attn.o_proj":[4,64,[2560,768]],"language_model.model.layers.2.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.2.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.2.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.2.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.2.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.2.mlp.gate":[8,64,[512,640]],"language_model.model.layers.2.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.2.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.1.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.1.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.1.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.1.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.1.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.1.mlp.gate":[8,64,[512,640]],"language_model.model.layers.1.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.1.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.layers.0.mlp.shared_expert_gate":[4,64,[1,320]],"language_model.model.layers.0.mlp.shared_expert.gu":[4,64,[1280,320]],"language_model.model.layers.0.mlp.shared_expert.down_proj":[4,64,[2560,80]],"language_model.model.layers.0.mlp.switch_mlp.gu":[4,64,[512,1280,320]],"language_model.model.layers.0.mlp.switch_mlp.down_proj":[4,64,[512,2560,80]],"language_model.model.layers.0.mlp.gate":[8,64,[512,640]],"language_model.model.layers.0.linear_attn.in_proj_fused":[4,64,[16480,320]],"language_model.model.layers.0.linear_attn.out_proj":[4,64,[2560,768]],"language_model.model.embed_tokens":[4,64,[248320,320]]},"norms":{"mtp.pre_fc_norm_embedding.weight":"fd600a4b5af7497016cfc8f4a6d9a71b06ab64ba9ead2a035ce088c51d008a51","mtp.pre_fc_norm_hidden.weight":"c5f0fb8420ee5fa3494090d100a400a670f3540df4a11ab9a76304d07796ffdf"},"ple":[1],"linear":[0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46]} diff --git a/tests/fixtures/mtplx-compute_g-jit.json b/tests/fixtures/mtplx-compute_g-jit.json new file mode 100644 index 0000000..430689d --- /dev/null +++ b/tests/fixtures/mtplx-compute_g-jit.json @@ -0,0 +1 @@ +{"source_sha256": "34143a98046f8af5538767734fc169a5cab22a4920c26f9ba7ea45b8097152de", "kernels": "[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n device float* D [[buffer(3)]],\n constant const uint& size [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_C = C[index];\n auto tmp_E = static_cast(0);\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_n\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_n(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n device float* D [[buffer(3)]],\n constant const uint& size [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n uint index = N_ * pos.x;\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_C = C[index];\n auto tmp_E = static_cast(0);\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_contiguous_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n device float* D [[buffer(3)]],\n constant const int64_t& size [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y));\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_C = C[index];\n auto tmp_E = static_cast(0);\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = elem_to_loc_1(pos.x, in_strides[0]);\n uint index_B = elem_to_loc_1(pos.x, in_strides[1]);\n uint index_C = elem_to_loc_1(pos.x, in_strides[2]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_1_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]);\n int64_t index_B = elem_to_loc_1(pos.x, in_strides[1]);\n int64_t index_C = elem_to_loc_1(pos.x, in_strides[2]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n uint index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2);\n uint index_C = elem_to_loc_2({pos.x, pos.y}, in_strides + 4);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_2_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n int64_t index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2);\n int64_t index_C = elem_to_loc_2({pos.x, pos.y}, in_strides + 4);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = elem_to_loc_3(pos, in_strides + 0);\n uint index_B = elem_to_loc_3(pos, in_strides + 3);\n uint index_C = elem_to_loc_3(pos, in_strides + 6);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_3_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = elem_to_loc_3(pos, in_strides + 0);\n int64_t index_B = elem_to_loc_3(pos, in_strides + 3);\n int64_t index_C = elem_to_loc_3(pos, in_strides + 6);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[3];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]);\n uint index_B = N_ * pos.x * uint(in_strides[7]) + pos.y * uint(in_strides[6]);\n uint index_C = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[4 + d]);\n index_C += l * uint(in_strides[8 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[3];\n index_B += in_strides[7];\n index_C += in_strides[11];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_4_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[3];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[7]) + pos.y * int64_t(in_strides[6]);\n int64_t index_C = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[4 + d]);\n index_C += l * int64_t(in_strides[8 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[3];\n index_B += in_strides[7];\n index_C += in_strides[11];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[4];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]);\n uint index_B = N_ * pos.x * uint(in_strides[9]) + pos.y * uint(in_strides[8]);\n uint index_C = N_ * pos.x * uint(in_strides[14]) + pos.y * uint(in_strides[13]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[5 + d]);\n index_C += l * uint(in_strides[10 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[4];\n index_B += in_strides[9];\n index_C += in_strides[14];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_5_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[4];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[9]) + pos.y * int64_t(in_strides[8]);\n int64_t index_C = N_ * pos.x * int64_t(in_strides[14]) + pos.y * int64_t(in_strides[13]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[5 + d]);\n index_C += l * int64_t(in_strides[10 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[4];\n index_B += in_strides[9];\n index_C += in_strides[14];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[5];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]);\n uint index_B = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]);\n uint index_C = N_ * pos.x * uint(in_strides[17]) + pos.y * uint(in_strides[16]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[6 + d]);\n index_C += l * uint(in_strides[12 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[5];\n index_B += in_strides[11];\n index_C += in_strides[17];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_6_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[5];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]);\n int64_t index_C = N_ * pos.x * int64_t(in_strides[17]) + pos.y * int64_t(in_strides[16]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[6 + d]);\n index_C += l * int64_t(in_strides[12 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[5];\n index_B += in_strides[11];\n index_C += in_strides[17];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[6];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]);\n uint index_B = N_ * pos.x * uint(in_strides[13]) + pos.y * uint(in_strides[12]);\n uint index_C = N_ * pos.x * uint(in_strides[20]) + pos.y * uint(in_strides[19]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[7 + d]);\n index_C += l * uint(in_strides[14 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[6];\n index_B += in_strides[13];\n index_C += in_strides[20];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_7_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[6];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[13]) + pos.y * int64_t(in_strides[12]);\n int64_t index_C = N_ * pos.x * int64_t(in_strides[20]) + pos.y * int64_t(in_strides[19]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[7 + d]);\n index_C += l * int64_t(in_strides[14 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[6];\n index_B += in_strides[13];\n index_C += in_strides[20];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n constant const int& ndim [[buffer(6)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[ndim - 1];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]);\n uint index_B = N_ * pos.x * uint(in_strides[ndim * 1 + ndim - 1]) + pos.y * uint(in_strides[ndim * 1 + ndim - 2]);\n uint index_C = N_ * pos.x * uint(in_strides[ndim * 2 + ndim - 1]) + pos.y * uint(in_strides[ndim * 2 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 * ndim + d]);\n index_B += l * uint(in_strides[1 * ndim + d]);\n index_C += l * uint(in_strides[2 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[0 * ndim + ndim - 1];\n index_B += in_strides[1 * ndim + ndim - 1];\n index_C += in_strides[2 * ndim + ndim - 1];\n index++;\n }\n}\n[[host_name(\"Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic_large\")]]\n[[kernel]] void Ef4IAsTypeAFf4IExpEGf4INegativeFHV2IBroadcastBCIV2IBroadcastCBJV2IAddHIKV2IBroadcastJDLV2IBroadcastDJMV2ILogAddExpKLNf4IAsTypeMOf4IBroadcastGNPf4IBroadcastNGQf4IMultiplyOPRf4OExpQ_VVVC_V2V2V2_10408321403207385874_strided_dynamic_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device const bfloat16_t* C [[buffer(2)]],\n constant const int64_t* in_strides [[buffer(3)]],\n device float* D [[buffer(4)]],\n constant const int* output_shape [[buffer(5)]],\n constant const int& ndim [[buffer(6)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[ndim - 1];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n auto tmp_E = static_cast(0);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[ndim * 1 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 1 + ndim - 2]);\n int64_t index_C = N_ * pos.x * int64_t(in_strides[ndim * 2 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 2 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 * ndim + d]);\n index_B += l * int64_t(in_strides[1 * ndim + d]);\n index_C += l * int64_t(in_strides[2 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_C = C[index_C];\n float tmp_F = cast_to(tmp_A);\n float tmp_G = Exp()(tmp_F);\n float tmp_H = Negative()(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_J = cast_to(tmp_C);\n bfloat16_t tmp_K = Add()(tmp_I, tmp_J);\n bfloat16_t tmp_L = cast_to(tmp_K);\n bfloat16_t tmp_M = cast_to(tmp_E);\n bfloat16_t tmp_N = LogAddExp()(tmp_L, tmp_M);\n float tmp_O = cast_to(tmp_N);\n float tmp_P = cast_to(tmp_H);\n float tmp_Q = cast_to(tmp_O);\n float tmp_R = Multiply()(tmp_P, tmp_Q);\n float tmp_D = Exp()(tmp_R);\n D[index] = tmp_D;\n index_A += in_strides[0 * ndim + ndim - 1];\n index_B += in_strides[1 * ndim + ndim - 1];\n index_C += in_strides[2 * ndim + ndim - 1];\n index++;\n }\n}\n"} diff --git a/tests/fixtures/mtplx-custom-kernels.jsonl b/tests/fixtures/mtplx-custom-kernels.jsonl new file mode 100644 index 0000000..0f0d586 --- /dev/null +++ b/tests/fixtures/mtplx-custom-kernels.jsonl @@ -0,0 +1,2698 @@ +{"kernel":"hyper_inj_s1","sha256":["62f31b63f6e0f1d97f53b59365e17c6a7b6cee85e4aae70667d1d8efbac637ac","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"]} +{"kernel":"hyper_mix_s1","sha256":["62f31b63f6e0f1d97f53b59365e17c6a7b6cee85e4aae70667d1d8efbac637ac"]} +{"kernel":"hyper_inj_s4","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e","3e93f1ea3dd60b419626d542b6b4903944cb04fb93c220d9b2378f370e0b7118"]} +{"kernel":"hyper_mix_s4","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e"]} +{"kernel":"hyper_inj_s8","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994","65d4615ade50ddbdb6d019edf5897ad13e34dcff2a3164c7371ecd3679770b7c"]} +{"kernel":"hyper_mix_s8","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994"]} +{"kernel":"hyper_v3","sha256":["59264228afb8587ba8d6d5eec11c19ee14c97f963e5986c84b54c0322848e528","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"]} +{"kernel":"gdn_s1","sha256":["8fe6481d0b0f11dad7d8962a1906d553ea9f1963626b02aa8d92d9d4ac6cdc54","3b585bb7ce9d0b57948b91c9af68ae34581acf9c36f4fc54eb666bfaf61821d2","f2abad92cab4665c6e3811cb41c420435a4a25955e5c02a48829dc50d909ecd5","dda1d1761d065f59bf3ee280c9e970958f05a470aae95cb79ae7daef0e23f875"]} +{"kernel":"gdn_s2","sha256":["4c93af90370983dd888261ec5186684154e92ab63320e46252d071754243a6bb","a6ba1f1bc94dcaf6a1dd55be00c36c55571013369a6cca05c78bc200848e30ef","72f0a9650ed21334bee3a877124090679aa766450aa16193c82286cf5e51a0d3","3323929d8f2c2a26cc094b23dacf5c3238a670d0631d2e33e53a65d2e98ec1df"]} +{"kernel":"gdn_s3","sha256":["c64c52fb68eb0fdb3c8a8d25e6f5ed92c0e7aff468433be1935c89b8382b6f30","2acd1dd616b24ad9f8889df4e9403e3847b8fe51a50cfe01a6301dd8f1869e9a","d56eee5685cc68fbd427acaba6f944a8c5cbf1637953d0b5ad38213a51225ccd","087f6a9625a1a1a81b4d56c9fe5bd0e589c4cdb4546b2337db14a3324f61f748"]} +{"kernel":"gdn_s4","sha256":["e1bec731e8a02e18759b27d05d62c4902c63a97ab35479070873433c5f2a1439","138ffe1d3c9d30bda767fb9df80a64d1c28cccd2f03d773a5ab29d425dd52ce9","790de960acbed4c56ac71ae0f3e035b9d24133555bafbe572789ee64e2a617c3","471884c2b906045d0076bc8e7155606b54ef4e35df25e2576ed580bdae36fe53"]} +{"kernel":"gdn_s5","sha256":["fde2d541fadd7f995bfd3be55564b69dd3df2d65a0a6f7e725c56f1170d56044","463109d6b3a618c243bf4cb4c29a6b70b2a99419d787d3f3d3c28bb2e363cda6","71dbf0ae47b5fc469cc646d5a1102f88bd10144ff87c17d357fce81abbfb6e2e","ba993d1d77c0b816fd614f2d40272f7cf3cb967ffbe20bdb6f8fbb78f840e259"]} +{"kernel":"gdn_s6","sha256":["ee37ba60affffe485ce01a6fc878f6bf634a9fd37f9dd37cf0a044e582e4fb46","c3689fdad83e92048986a54cd830925e8fb4d687fb0f25db7050238d4996c9f9","10a79d863b07a11d7b28956742de4cfb232fca6fcc2fa9d0a280da78fa851a22","fe71c54228c70cbfc08cc31191fb849af68dcf1a12cce64f35b12c70922a3f76"]} +{"kernel":"gdn_step_0","sha256":["ff1ba87b6a247ff3696e02cf3ac0b785a6b00a8c4da954e206934d96acc2a55e","dda1d1761d065f59bf3ee280c9e970958f05a470aae95cb79ae7daef0e23f875","afc90e6511288a68d2788ebd77bc636a6d8a8ce314b0d681c53cbc20ca5e7683"]} +{"kernel":"gdn_step_1","sha256":["10391ca30254e19397e4a9f0388f33fd328160249307043712bb05b4603c4cf5","255e0d82bbd0e26bf7e644e6e9e9ad12f273ccec7bc4716b4718382b41d7d6b0","c3af7d71ba221d6e861e93ac1deac7519268cdebaf811e4876bd8f4c665d2550"]} +{"kernel":"gdn_out_gs32_bf16","sha256":["368c0fffa0f2568139ec2ed733c3cce6a50b09d862632f0eedc796177d330d11"]} +{"kernel":"gdn_out_gs32_f32","sha256":["2ce30bb925d7e91c13b67adda0eaa24eadae870f9120cc0e9c91c7d3be700018"]} +{"kernel":"gdn_out_gs64_bf16","sha256":["10a0a68ca1f0f1d231671384288a793f188c2aebe17dc1f0395e40d322f036d4"]} +{"kernel":"gdn_out_gs64_f32","sha256":["e2f74f523bbda6c8d4812863e39e435457866ee2fca319e14121ebb20c246cd0"]} +{"kernel":"gated_delta_s1_mask0","sha256":["f0ef53bd139da5cb2b2c87caa57df0f85ac0d5d142af31715dc6f7043a671fb4","140246b0820fb93b9d8c8109932f3af7b4f58938e046b7fa84d3bc0de7bf7ba3"]} +{"kernel":"gated_delta_s1_mask1","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"]} +{"kernel":"gated_delta_s4_mask0","sha256":["3f809e6514bb444a2a927a064ffeda22006764bd7b826f7a82ce23753d6ba81a","6ce157acc4f92526ac89c32cb2bf51b1470b263c3cbc891db52fcd8909f809ef"]} +{"kernel":"gated_delta_s4_mask1","sha256":["8d88785973404b1c50933e28a1602b68dd6b751d7f6c5bf6561da9ba0c7cd8e8","4647306294876c4ffce732973d4cd9347c0a23b8158fafd683ed74c65d195dc4"]} +{"kernel":"gated_delta_s7_mask0","sha256":["eed20253f2536278720992950ccc39fed420147a86a56cc0824f3279f28a057d","0fde77b8e074d552b7dd4d8c5c16fa97d572c640ba76c9112a7a9e9ede0be938"]} +{"kernel":"gated_delta_s7_mask1","sha256":["00ac03107da4e0044ea8cbd2bdc702adb32a56bfc1b5581fefe6b828e8eb38aa","56b93a88543332169cf3e2145a55fcb1396c7148caa51c90cd33146b10a10159"]} +{"kernel":"gated_delta_s32_mask0","sha256":["ad514a25170a62345e72ed5217f253e09d99a632ff6ec9e309b54686cc65cb82","ee66117f32be18ee0ef452ee5799d25fe67a57d046b0d6e13cbfce86fdb44944"]} +{"kernel":"gated_delta_s32_mask1","sha256":["7b06f5af7346c26eded337ad59757332096e7b96360ba993c9a175a2588edf15","9400c23b4638d5a31af8c750b61b63aac7fd73095778552a2fe4e97868dd92c1"]} +{"kernel":"gated_delta_s2048_mask0","sha256":["96f9777b34bae8d99e44fd7032402e5313cd6a472864237b28e4df7aa3418174","d10e577c9be28041aa11263dd9440f0b471b216d951d634ee6ea926fa415ffc4"]} +{"kernel":"gated_delta_s2048_mask1","sha256":["1555ce90bbb2c7e46a59512c0bf340811c914989e468dd1497e184731284fb47","7d3b4acb1151dc5c5fe06140b1cdd484024546f31c366a40b387e140b4ffd0b4"]} +{"kernel":"affine_m1_n80_k64_g32_b4","sha256":["8261f77fec4bab08d2efea5efab7b4919bcc4174eef23adcbeac5d71e1fcda94"],"m":1,"n":80,"k":64,"group":32,"bits":4} +{"kernel":"affine_m1_n80_k64_g32_b8","sha256":["b44b155fc445cd2d09c779c2f8f7d1ccb0215a0f571829105f89a5f48c2565b3"],"m":1,"n":80,"k":64,"group":32,"bits":8} +{"kernel":"affine_m1_n80_k64_g64_b4","sha256":["24cd1cfe57d4106fbe495f5d7aec7c479e5ba439b175a0bb52749b5a2c1ed5e2"],"m":1,"n":80,"k":64,"group":64,"bits":4} +{"kernel":"affine_m1_n80_k64_g64_b8","sha256":["a6a901fa58067745dce26ae73590d29cffc2d9cce80294f4569a1cf059d3331b"],"m":1,"n":80,"k":64,"group":64,"bits":8} +{"kernel":"affine_m4_n80_k128_g32_b4","sha256":["f6865c27019e106140841f4f8de95bc74db29ba9991d1704a8a46426901aa96c"],"m":4,"n":80,"k":128,"group":32,"bits":4} +{"kernel":"affine_m4_n80_k128_g32_b8","sha256":["f8bf4397330cbf66eff25a76dc74059eb8e9617d9103f7e5aa329c2e88a6a950"],"m":4,"n":80,"k":128,"group":32,"bits":8} +{"kernel":"affine_m4_n80_k128_g64_b4","sha256":["69a4201112af71cbc1552fd59650614a8810f941b1a42753d71842a60a56d6bc"],"m":4,"n":80,"k":128,"group":64,"bits":4} +{"kernel":"affine_m4_n80_k128_g64_b8","sha256":["444c8d313ad4c7a3f49a64e8d1df15240b3f70f6c2e099e3708dc1d973a74b4f"],"m":4,"n":80,"k":128,"group":64,"bits":8} +{"kernel":"affine_m1_n2560_k2560_g32_b4","sha256":["b4603623fac061cb672de4b89621773ab555db1be2cb5071b0299c5f43b4c83d"],"m":1,"n":2560,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m1_n2560_k2560_g32_b8","sha256":["87c3790b55a41eb7f7cbc05360f29b5ad374293689358b1f280eb260ef34fc9c"],"m":1,"n":2560,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m1_n2560_k2560_g64_b4","sha256":["a6ba5c475118859f47a542d90a34c8294c96d791f229a23b11a5375bb6756b8b"],"m":1,"n":2560,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m1_n2560_k2560_g64_b8","sha256":["37bc9d906381410003146659994fdf4c3d24da1114dcc3572793269f7e3d2e38"],"m":1,"n":2560,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m1_n324_k320_g32_b4","sha256":["6be245b5990d78074e9e509cf92057800eb0792e92c3ad66a0ca2809e1407fb5"],"m":1,"n":324,"k":320,"group":32,"bits":4} +{"kernel":"affine_m1_n324_k320_g32_b8","sha256":["a13d7522bd39c6d5f513e0c8186ea229e0d6412fc923c2e05e752719387f8d3f"],"m":1,"n":324,"k":320,"group":32,"bits":8} +{"kernel":"affine_m1_n324_k320_g64_b4","sha256":["b57dd35646569c4dba77a44664c42346e2e055f7154b3d7392aa27234c097fc7"],"m":1,"n":324,"k":320,"group":64,"bits":4} +{"kernel":"affine_m1_n324_k320_g64_b8","sha256":["a31d5e2f47919739a985184cb459d4167e8452bf4db8c99ce394df56a1fe19f4"],"m":1,"n":324,"k":320,"group":64,"bits":8} +{"kernel":"affine_m1_n81_k2560_g32_b4","sha256":["442a01d10d572bf409bbf9545805f03dd98022e24b7317e4569f6d8b013be8d1"],"m":1,"n":81,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m1_n81_k2560_g32_b8","sha256":["53c321ecb0920aacaf82b193d6b24a604cef96881f674a4451853c31be876049"],"m":1,"n":81,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m1_n81_k2560_g64_b4","sha256":["8eade0c5e4c46a560051bae13441575a3aa4942c07b06bb915b47420aa74a9e7"],"m":1,"n":81,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m1_n81_k2560_g64_b8","sha256":["adeb6eb4d697e90b11b8bdd900091834f6aa6f930ecbed86aae233f186d05906"],"m":1,"n":81,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m2_n640_k2560_g32_b4","sha256":["58c68d8476b2dbfdf32e7ef6185fc6d8f316c26ad2feb47d27fee177780cc81c"],"m":2,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m2_n640_k2560_g32_b8","sha256":["eec953d5fac896a86100d2377502ba96d8ec140263a6d23f5f4d2d823ce0cd17"],"m":2,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m2_n640_k2560_g64_b4","sha256":["93702949b90b260af88ea7392190c2076d7d4362172997ff58db2ef3846fe8b9"],"m":2,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m2_n640_k2560_g64_b8","sha256":["23676c6bda6a40092e37faa9009fbc742d918f8ec59818fde05fa0df3504b7ee"],"m":2,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m3_n640_k2560_g32_b4","sha256":["108090b9da754b342ffccc37654809d1d20b4897ce351a6fb7f004c1276fe491"],"m":3,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m3_n640_k2560_g32_b8","sha256":["ff915e5803e418a651dabc565e990a6ea4655f86d72853c7d9dedbfb508ffc8d"],"m":3,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m3_n640_k2560_g64_b4","sha256":["ad2fe75607beeacfd124abb75098870cbc99d67e0241332b896570f2d53b1850"],"m":3,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m3_n640_k2560_g64_b8","sha256":["f29be77ef5eef08d60da05e8a971f5d302c2e526c92e780610ab55982315c94a"],"m":3,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m4_n640_k2560_g32_b4","sha256":["abca087aed90d964285ef3247be6ddb5a876e22e141125f06ca7e44fd360b5e2"],"m":4,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m4_n640_k2560_g32_b8","sha256":["a18c8a9882120394dc29ffa78f29cdaba034a4785473528f260a350fcadd59a6"],"m":4,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m4_n640_k2560_g64_b4","sha256":["dd937bdd0e6758be9e85e6369f5daf9cc508d15fa396902798cb06093bfc6562"],"m":4,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m4_n640_k2560_g64_b8","sha256":["03b8e0aca367c68a79d86c79f7e167f5800ef0766117bac96e52eafb1fa39ace"],"m":4,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m5_n640_k2560_g32_b4","sha256":["b159ac97c8bd961197c1063713cfbb192511d78cd3f9706ec59efce0671c10e0"],"m":5,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m5_n640_k2560_g32_b8","sha256":["2fbf538c6057de167ff94009418d237a744d133e78075a4b6ef8b5a3a516c787"],"m":5,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m5_n640_k2560_g64_b4","sha256":["c4afc0d980c9f3db25505a79e99825ad7f8cec563e81c4ea429ec3a53c9db665"],"m":5,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m5_n640_k2560_g64_b8","sha256":["81bd8ab42615be2dcd25f2fe80848d3c2e01a5a06b91d242ab1493602a8d5d63"],"m":5,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m6_n640_k2560_g32_b4","sha256":["5179925bb7980dc0b72de01dd0d7da66843e7381bda9e91f016d475c0b5a65e0"],"m":6,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m6_n640_k2560_g32_b8","sha256":["b0500407bd8ff6c1587051a7623e34e8746846469f0799defc7104d803da0ffe"],"m":6,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m6_n640_k2560_g64_b4","sha256":["796ba40f1d8d405d38305d5c86b79f8802250b729b96fd0d0142a591f3f948a6"],"m":6,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m6_n640_k2560_g64_b8","sha256":["dd2634182f57290a69d683ef29afb7e963ad22af85cdb4e409d54cd8e3901b50"],"m":6,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m12_n640_k2560_g32_b4","sha256":["b6b7e5ec7866bb60b57c919191b5b287f78cf08f44894fbaa7860e767662faf7"],"m":12,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m12_n640_k2560_g32_b8","sha256":["be4078e4c91747947d5be2220573a1f50f0fd9e2e5fca183c12c420ddbd93ceb"],"m":12,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m12_n640_k2560_g64_b4","sha256":["269da1d7f1a9d7cf7f21e3840e250f60f7f8468bc120ce9ce4da0ccc5de639a6"],"m":12,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m12_n640_k2560_g64_b8","sha256":["c8ed941c1e38577b449097e8f21119ada6d88658a6ee430ef5c07ae33ce01088"],"m":12,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m24_n640_k2560_g32_b4","sha256":["281c3f41e6f5dfaaebbde7824b7566603a8de99c04632956fce1fee8b343cd04"],"m":24,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m24_n640_k2560_g32_b8","sha256":["2b3a0c2e46e1579310ce4d5e12bbd39ec3954af69e7dd69552d755edd4f92cbe"],"m":24,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m24_n640_k2560_g64_b4","sha256":["3878b70b8da7ee2dead6b2ee55d2bfdd23f64e332ba8cd483b06907ed7383c00"],"m":24,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m24_n640_k2560_g64_b8","sha256":["afa8d7721e0eca05f38e0a862063a9f512b5fe22fe1ecbe48fba136ec007d6f3"],"m":24,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m25_n640_k2560_g32_b4","sha256":["308076635359db08b3d8d0bae7871f7ec2bf92c4069aaacc3bc0c993261b0736"],"m":25,"n":640,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m25_n640_k2560_g32_b8","sha256":["326994869abb735897935aa22b56349b68bd2e1d4466651952d45d79d5dd745f"],"m":25,"n":640,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m25_n640_k2560_g64_b4","sha256":["8c1e8008292bef0bf4cd4b48e46e074d8e8fe4d90a5e6b443e1d983f242f438b"],"m":25,"n":640,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m25_n640_k2560_g64_b8","sha256":["151c465fea4a2451d1206d11b24b054516d4f2de885e3860605b307976e92ae4"],"m":25,"n":640,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m13_n6144_k6144_g32_b4","sha256":["e446d5983012d8c19688bae26e533b351b470cd9ce29e17c0b185bedef05df7a"],"m":13,"n":6144,"k":6144,"group":32,"bits":4} +{"kernel":"affine_m13_n6144_k6144_g32_b8","sha256":["89ecf3bd34c53c6d0190e739c93ae1ce371bf94a79757056755625ec464291ea"],"m":13,"n":6144,"k":6144,"group":32,"bits":8} +{"kernel":"affine_m13_n6144_k6144_g64_b4","sha256":["069633ded147384eb46b99a5019746c29c0983be166327a225096c9cef7bb539"],"m":13,"n":6144,"k":6144,"group":64,"bits":4} +{"kernel":"affine_m13_n6144_k6144_g64_b8","sha256":["98d41f2cee190dbb35892497b3a1efd9f9792705fea115ddb30d88ab0c38ebbc"],"m":13,"n":6144,"k":6144,"group":64,"bits":8} +{"kernel":"affine_m33_n48_k2560_g32_b4","sha256":["fb9feaf668a8a40add4c405db15423c8067e086ee19514fe6528e770fc833408"],"m":33,"n":48,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m33_n48_k2560_g32_b8","sha256":["773195adf2c0b0b6b318153a5c203167bf4d9b1bbceb884c506af57b2373e43a"],"m":33,"n":48,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m33_n48_k2560_g64_b4","sha256":["e802d9d2ef2897ef36727c5604ea196dc08a727ca54faf98ff7400f8e527a806"],"m":33,"n":48,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m33_n48_k2560_g64_b8","sha256":["865b8593dbd539cb5ccf16b41224af8448584883410d1d8a04cf044b2480af0b"],"m":33,"n":48,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m13_n16384_k320_g32_b4","sha256":["b46258d4c991b91e04f45df1fe862659a9f18df047cf67adc0e565e4f119d982"],"m":13,"n":16384,"k":320,"group":32,"bits":4} +{"kernel":"affine_m13_n16384_k320_g32_b8","sha256":["fd5d0cc7653a38ad0ec239426593c8781b974d748ce28a5debfeecd9bb2011a8"],"m":13,"n":16384,"k":320,"group":32,"bits":8} +{"kernel":"affine_m13_n16384_k320_g64_b4","sha256":["03f75782aa13a7f3710b26053fb1004f4617e8c2aa082d5f898f4a315e6fb2df"],"m":13,"n":16384,"k":320,"group":64,"bits":4} +{"kernel":"affine_m13_n16384_k320_g64_b8","sha256":["93f2908219bc2fd290cb8e2039667ddb89312c37d0c3f9a59cbef75ad8dc21ee"],"m":13,"n":16384,"k":320,"group":64,"bits":8} +{"kernel":"affine_m65_n16385_k320_g32_b4","sha256":["7ffa396681e884c74722f6b990b477b1d08533598221c325bbe68457e753efb9"],"m":65,"n":16385,"k":320,"group":32,"bits":4} +{"kernel":"affine_m65_n16385_k320_g32_b8","sha256":["e0d91eebceb27c0d4dbcd825f6ad3ad09e63ae3ac68bf35161153a8c9cfd0a0d"],"m":65,"n":16385,"k":320,"group":32,"bits":8} +{"kernel":"affine_m65_n16385_k320_g64_b4","sha256":["a485fb6f9434f2cb03441cb7bc1b0f366618adad896e3fcb7f61f9b3e4964688"],"m":65,"n":16385,"k":320,"group":64,"bits":4} +{"kernel":"affine_m65_n16385_k320_g64_b8","sha256":["a9a8f534e5c88852bd7a7c39cdd4b0ee0f25cb6c522c40fa98b6cca6bb0d4c5a"],"m":65,"n":16385,"k":320,"group":64,"bits":8} +{"kernel":"affine_m13_n16384_k160_g32_b4","sha256":["e8de3595725abc78f1f80c63dd08f15e0bac68b1f1ebc251fbc241aecb925b65"],"m":13,"n":16384,"k":160,"group":32,"bits":4} +{"kernel":"affine_m13_n16384_k160_g32_b8","sha256":["a040880abfc496656ff49a47cd5c602e02acc48771f5215138ef594eb72e3414"],"m":13,"n":16384,"k":160,"group":32,"bits":8} +{"kernel":"affine_m2048_n2560_k2560_g32_b4","sha256":["3f141d664dfbe2a9c85f7625be4273220ad1ef07c6d6eec31801b65d229c509d"],"m":2048,"n":2560,"k":2560,"group":32,"bits":4} +{"kernel":"affine_m2048_n2560_k2560_g32_b8","sha256":["a92f5474e41a32f0a3294a36dbc41513defe3a801cca1b86cad0b41f97edeee3"],"m":2048,"n":2560,"k":2560,"group":32,"bits":8} +{"kernel":"affine_m2048_n2560_k2560_g64_b4","sha256":["9952584a65256657ea995fbab96511f6c6fa72a747cfaf38d60008cc7819f23d"],"m":2048,"n":2560,"k":2560,"group":64,"bits":4} +{"kernel":"affine_m2048_n2560_k2560_g64_b8","sha256":["bc7d1a98fab90ea7036c86129106027c9747b30d628866f4cba6135c37e287f6"],"m":2048,"n":2560,"k":2560,"group":64,"bits":8} +{"kernel":"affine_m33_n16_k32768_g32_b4","sha256":["dfa9873d36499abff00170c0d7bb68d3ee8a1e736445885b8b3cd04339a135c9"],"m":33,"n":16,"k":32768,"group":32,"bits":4} +{"kernel":"affine_m33_n16_k32768_g32_b8","sha256":["ad3ccae612c8630c22c6317a76a68d88be6c2f57ce1611ec846ec7e2dad2e32d"],"m":33,"n":16,"k":32768,"group":32,"bits":8} +{"kernel":"affine_m33_n16_k32768_g64_b4","sha256":["ac512f55cae4d12181119c6451572369c9f1e06165648be23dbe7f1a4b0f3a04"],"m":33,"n":16,"k":32768,"group":64,"bits":4} +{"kernel":"affine_m33_n16_k32768_g64_b8","sha256":["64b57b12ce4edecfc7a7e513692f772907175e750f55cb74a8abac62697b2205"],"m":33,"n":16,"k":32768,"group":64,"bits":8} +{"kernel":"gdn_chain_0","sha256":["d3821a6c36a1e59f2fda34c3f0cac747c2b6ce52719c4051e9da937120ee38a6","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","f6a206f4baa1700148d0e48915b896058afd53b82ce6aa8df801484fa6c70ef7"]} +{"kernel":"gdn_chain_1","sha256":["1fa14b22a07d18cd9f41b7fe727617f523ea62ee532326be9e50a15bf0b514b7","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","937836d1f75fb473faf6f069aca8c1fcfec7a6dfad7105bd0204aadfcc4471bd"]} +{"kernel":"gather_x3_m1_n640_k2560_e8_r40_s0_g32_b4","sha256":["71ce0ef3518564005712c36a6ed9397c1d1e81c5109058c950079d6f1cce0b19"],"batches":3,"m":1,"n":640,"k":2560,"experts":8,"routes":40,"sorted":false,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n640_k2560_e8_r40_s0_g32_b8","sha256":["4f028a6c823b91bf0e978f70ab4630dcf082c674512b30670b5625f65449efa3"],"batches":3,"m":1,"n":640,"k":2560,"experts":8,"routes":40,"sorted":false,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x3_m1_n640_k2560_e8_r40_s0_g64_b4","sha256":["cc6aa80734f556fdda45d20191dbceb8bac7f5181c0bc30a1110a4d25cf4ec95"],"batches":3,"m":1,"n":640,"k":2560,"experts":8,"routes":40,"sorted":false,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n640_k2560_e8_r40_s0_g64_b8","sha256":["b73e7b8721d8f038a6955d3c019adb3fa59caf6ddd6076b105002bdb15a292c7"],"batches":3,"m":1,"n":640,"k":2560,"experts":8,"routes":40,"sorted":false,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x3_m1_n2560_k640_e8_r40_s0_g32_b4","sha256":["e0c3b646601a03d1e3e91be413e97602d6157eb5b6678577377c94a6a53e0bb0"],"batches":3,"m":1,"n":2560,"k":640,"experts":8,"routes":40,"sorted":false,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n2560_k640_e8_r40_s0_g32_b8","sha256":["dcb28b407c75a62b0ebb88c3bec47e4045badfd74312aa3d69e7087218219d3b"],"batches":3,"m":1,"n":2560,"k":640,"experts":8,"routes":40,"sorted":false,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x3_m1_n2560_k640_e8_r40_s0_g64_b4","sha256":["3f6d760faaeb04e1b08b5be36f010f86c644b62608687abe56fc11a9909592b6"],"batches":3,"m":1,"n":2560,"k":640,"experts":8,"routes":40,"sorted":false,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n2560_k640_e8_r40_s0_g64_b8","sha256":["eccabd313d6dc58636ce8cccd3608f5bfee0cae86218f476491b63ed168d6ce4"],"batches":3,"m":1,"n":2560,"k":640,"experts":8,"routes":40,"sorted":false,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x3_m1_n81_k320_e8_r7_s0_g32_b4","sha256":["9116341215513b09cf69c8ed7d073a178453a683d846d5f6af1e38b99111a00a"],"batches":3,"m":1,"n":81,"k":320,"experts":8,"routes":7,"sorted":false,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n81_k320_e8_r7_s0_g32_b8","sha256":["4baa55131dd50e78ade3dfe3ff8462269180ebe0c9506b66cd3bafc898b687c6"],"batches":3,"m":1,"n":81,"k":320,"experts":8,"routes":7,"sorted":false,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x3_m1_n81_k320_e8_r7_s0_g64_b4","sha256":["d1a7f4ac0b38cc65434c700000afdeec8d41c4259dce80b7a38df50d0cf2721e"],"batches":3,"m":1,"n":81,"k":320,"experts":8,"routes":7,"sorted":false,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x3_m1_n81_k320_e8_r7_s0_g64_b8","sha256":["288e9794a60bf467a7d79ed7472293f57ef445a0a2cae8a104c981c249c112c2"],"batches":3,"m":1,"n":81,"k":320,"experts":8,"routes":7,"sorted":false,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x3_m33_n80_k128_e8_r7_s0_g32_b4","sha256":["8eb4354ae6064324e02eda8605329060cdec7088c810d3de4770ce7e60cd0c50"],"batches":3,"m":33,"n":80,"k":128,"experts":8,"routes":7,"sorted":false,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x3_m33_n80_k128_e8_r7_s0_g32_b8","sha256":["bd5ef26ec0698602285c33169be53aebd1116cb63a85508c80db7a8a13991aea"],"batches":3,"m":33,"n":80,"k":128,"experts":8,"routes":7,"sorted":false,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x3_m33_n80_k128_e8_r7_s0_g64_b4","sha256":["1eea3337da303729d1f6369c8076d5269c44ec5decb40f1e2daad3e3b7606de7"],"batches":3,"m":33,"n":80,"k":128,"experts":8,"routes":7,"sorted":false,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x3_m33_n80_k128_e8_r7_s0_g64_b8","sha256":["2c0bbc7e6732a1e2f78481c7a03c32fbdcde32e7231095da99fa6c3cbc5d5c25"],"batches":3,"m":33,"n":80,"k":128,"experts":8,"routes":7,"sorted":false,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x3_m33_n81_k160_e8_r7_s0_g32_b4","sha256":["3caef3082330423ac945e8927169325af9b26f34ba6734ab753b1d026492d717"],"batches":3,"m":33,"n":81,"k":160,"experts":8,"routes":7,"sorted":false,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x3_m33_n81_k160_e8_r7_s0_g32_b8","sha256":["fc3d4a80b1dfba2f995f33b85816fd96f62725aebde6e80b9fd5ff43ecce9c22"],"batches":3,"m":33,"n":81,"k":160,"experts":8,"routes":7,"sorted":false,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x31_m1_n80_k128_e8_r31_s1_g32_b4","sha256":["509b4e5914f44df2fe2b6b711196fb4c99f93181f5d39178d0decb4712d5e115"],"batches":31,"m":1,"n":80,"k":128,"experts":8,"routes":31,"sorted":true,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x31_m1_n80_k128_e8_r31_s1_g32_b8","sha256":["7c7a819ed7d60cd02ed1de29b079ca379d64983e66110784e47a942814afaf38"],"batches":31,"m":1,"n":80,"k":128,"experts":8,"routes":31,"sorted":true,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x31_m1_n80_k128_e8_r31_s1_g64_b4","sha256":["dc86b21307afd20757530a0a8ac40d8631684a82e60991fd2f01594cf49c5f1a"],"batches":31,"m":1,"n":80,"k":128,"experts":8,"routes":31,"sorted":true,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x31_m1_n80_k128_e8_r31_s1_g64_b8","sha256":["3171450a18599b74271572606f12a8394a4683f2bf287bf89c1d78a506f0e967"],"batches":31,"m":1,"n":80,"k":128,"experts":8,"routes":31,"sorted":true,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x32_m1_n80_k128_e8_r32_s1_g32_b4","sha256":["55ff9cd0df64c45dd7605d44f2ea3bc9a7b5d5cb96ded26e31425b640e683c1e"],"batches":32,"m":1,"n":80,"k":128,"experts":8,"routes":32,"sorted":true,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x32_m1_n80_k128_e8_r32_s1_g32_b8","sha256":["f5d7359422f52e9fc7a2d53ae1f037e60b5c9db13f3e6e81a928e39ff7a712c8"],"batches":32,"m":1,"n":80,"k":128,"experts":8,"routes":32,"sorted":true,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x32_m1_n80_k128_e8_r32_s1_g64_b4","sha256":["f84988159b84d15ef7f610be6b3b4f5301ab633379ab7a4fe3982b0bc74cc9fd"],"batches":32,"m":1,"n":80,"k":128,"experts":8,"routes":32,"sorted":true,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x32_m1_n80_k128_e8_r32_s1_g64_b8","sha256":["13b59cd98bf8a40fd774560f196c14d89d9fd34ef11e959af8cd4548081f3ef3"],"batches":32,"m":1,"n":80,"k":128,"experts":8,"routes":32,"sorted":true,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x33_m1_n81_k160_e8_r33_s1_g32_b4","sha256":["1708dfeb80973b430d0f18fdb03d06d93ed57ffb029c895d840cc20ceb889c8b"],"batches":33,"m":1,"n":81,"k":160,"experts":8,"routes":33,"sorted":true,"group":32,"bits":4,"padding":160} +{"kernel":"gather_x33_m1_n81_k160_e8_r33_s1_g32_b8","sha256":["711391b07cc558e7a6e12e3855f37460c5a634b02026a271b5df3fe82d24510f"],"batches":33,"m":1,"n":81,"k":160,"experts":8,"routes":33,"sorted":true,"group":32,"bits":8,"padding":160} +{"kernel":"gather_x512_m1_n1280_k2560_e8_r512_s1_g32_b4","sha256":["4db4cd39ca8f812e63f0b5a5f9837bc6e394cae1d746a7f24839e362e1ac37eb"],"batches":512,"m":1,"n":1280,"k":2560,"experts":8,"routes":512,"sorted":true,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x512_m1_n1280_k2560_e8_r512_s1_g32_b8","sha256":["633753aa1c1f3ad47bd51f4cad12ac7461815418d1754e54e9a2b783737eb882"],"batches":512,"m":1,"n":1280,"k":2560,"experts":8,"routes":512,"sorted":true,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x512_m1_n1280_k2560_e8_r512_s1_g64_b4","sha256":["3d7c24a9dfc205ae43bc10a3eeae134a1f5dea0dd90a92b0281f8a7152b2268c"],"batches":512,"m":1,"n":1280,"k":2560,"experts":8,"routes":512,"sorted":true,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x512_m1_n1280_k2560_e8_r512_s1_g64_b8","sha256":["9a6e4289eebc45d268ba38eaf3e053d5bddc703022c61e04116624f220f1bd60"],"batches":512,"m":1,"n":1280,"k":2560,"experts":8,"routes":512,"sorted":true,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x2047_m1_n80_k128_e512_r2047_s1_g32_b4","sha256":["0ba957dfc690d415b1e3fb5e5290871a7272c86c57174d863d7bd3687bb7445d"],"batches":2047,"m":1,"n":80,"k":128,"experts":512,"routes":2047,"sorted":true,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x2047_m1_n80_k128_e512_r2047_s1_g32_b8","sha256":["0862d29adab547c74430c95898e31cf64940a2a320e6e2c0018ef9402bc68beb"],"batches":2047,"m":1,"n":80,"k":128,"experts":512,"routes":2047,"sorted":true,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x2047_m1_n80_k128_e512_r2047_s1_g64_b4","sha256":["75e44d644da7b3fad5f155dbcb8e2305d468789c123902ce6cc997f3a4f58958"],"batches":2047,"m":1,"n":80,"k":128,"experts":512,"routes":2047,"sorted":true,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x2047_m1_n80_k128_e512_r2047_s1_g64_b8","sha256":["e7b43c9b8d3464fe5a14011e597ee79d2ba7f1a9aee8cd3d9a9b8f18d6dedbb9"],"batches":2047,"m":1,"n":80,"k":128,"experts":512,"routes":2047,"sorted":true,"group":64,"bits":8,"padding":0} +{"kernel":"gather_x2048_m1_n80_k128_e512_r2048_s1_g32_b4","sha256":["f2549e03d1f268eeca60a91c070255c8dd1bcb56497b86f80ed48ab97ba101ae"],"batches":2048,"m":1,"n":80,"k":128,"experts":512,"routes":2048,"sorted":true,"group":32,"bits":4,"padding":0} +{"kernel":"gather_x2048_m1_n80_k128_e512_r2048_s1_g32_b8","sha256":["d6599a2b9845394544638c78da55c8d63a4a23ad043446ec83451e7a49e08ca3"],"batches":2048,"m":1,"n":80,"k":128,"experts":512,"routes":2048,"sorted":true,"group":32,"bits":8,"padding":0} +{"kernel":"gather_x2048_m1_n80_k128_e512_r2048_s1_g64_b4","sha256":["8fa5dd10333d11ae9340701f6ae480e50e6ffd4074672de4e5f295fe7b01d046"],"batches":2048,"m":1,"n":80,"k":128,"experts":512,"routes":2048,"sorted":true,"group":64,"bits":4,"padding":0} +{"kernel":"gather_x2048_m1_n80_k128_e512_r2048_s1_g64_b8","sha256":["c17b07be01f28a899848b62400d7b80e48a932d104030961e8975b2d56ed93d3"],"batches":2048,"m":1,"n":80,"k":128,"experts":512,"routes":2048,"sorted":true,"group":64,"bits":8,"padding":0} +{"kernel":"argsort_u32_r1_w1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"width":1,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"width":1,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"width":1,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w10","sha256":["143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9","143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9"],"rows":1,"width":10,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w10","sha256":["143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9","143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9"],"rows":1,"width":10,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w10","sha256":["143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9","143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9"],"rows":1,"width":10,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w63","sha256":["83b827f167faea1d4911598e7c5c3ff5e28f1dccf65ac015770c68e9396ec6a4","9fdfaa7f8c1e385d781e86b6242c3461c0dd45409714bc79cacc51e82353fad8"],"rows":1,"width":63,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w63","sha256":["3ee7ab7f2dd163893272f27760c67c271f96ea1bf4574f8125063ffa39feec69","ee2652f8969b0e4ec729379e2bdcd3765259c8f383a9694b83cb3b72c28694ee"],"rows":1,"width":63,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w63","sha256":["83b827f167faea1d4911598e7c5c3ff5e28f1dccf65ac015770c68e9396ec6a4","9fdfaa7f8c1e385d781e86b6242c3461c0dd45409714bc79cacc51e82353fad8"],"rows":1,"width":63,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w64","sha256":["d994f68da16c64539831c963ea29b7dded226925163bce814c4bb18466e68aca","5b2d113c6cd332aa082dd0bbcb1b1e78f1be38fe832796c2ab7c070c0beb0fbb"],"rows":1,"width":64,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w64","sha256":["cec04ca3f08c24b0eb9d1eb71a351bf7797420b4a6f56edf3574c756a86b8eed","5bb004d468ecf9b96f5d8b1f501e2188850cf077249698282570f585f5d60b7a"],"rows":1,"width":64,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w64","sha256":["d994f68da16c64539831c963ea29b7dded226925163bce814c4bb18466e68aca","5b2d113c6cd332aa082dd0bbcb1b1e78f1be38fe832796c2ab7c070c0beb0fbb"],"rows":1,"width":64,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w65","sha256":["41eea2ac4eee25cac3ff59a808967613143a5b593edf68cce82fe39a1c868ed4","a60e9d4bc13099893e78cc43ac564eae1266c4387f5438bb7c86945ef16aebf9"],"rows":1,"width":65,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w65","sha256":["15f3c2f56586252d3178b26b02aeb2419b664ab06800d3630ce25ff503287d52","204b3f65af7c0cf48aea9864c1fd80c02587a6f0d2f57051ffb3cc8f2b74b54f"],"rows":1,"width":65,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w65","sha256":["41eea2ac4eee25cac3ff59a808967613143a5b593edf68cce82fe39a1c868ed4","a60e9d4bc13099893e78cc43ac564eae1266c4387f5438bb7c86945ef16aebf9"],"rows":1,"width":65,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w128","sha256":["762cbdc923d1d742607fc694c1f1149073843d53aac296ac8362dfa34e5cc857","1717eb78b87d8080b2fb86824a013f103300f8b19459c953acdff6c48c642dc6"],"rows":1,"width":128,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w128","sha256":["ed60a6685ea23a80e84a1e4255e23fe07f1149ac4383bf8a190835d0125df462","1bf7b87a40f6d7ea7441c57512aada8998734dec97d3266fae6c28802118deac"],"rows":1,"width":128,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w128","sha256":["762cbdc923d1d742607fc694c1f1149073843d53aac296ac8362dfa34e5cc857","1717eb78b87d8080b2fb86824a013f103300f8b19459c953acdff6c48c642dc6"],"rows":1,"width":128,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w129","sha256":["e8412403ece02f8ffc65d47ded2a1729f9c89ca085f19354ef3085c38c99d958","00ad30c352221495a281a63bc795cde162b88d30bc0d1fe30556d0025105d525"],"rows":1,"width":129,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w129","sha256":["bcd1b0b3f5df9e3dc7afe93184dda54ca03918ffcd9d205d93c46199ee0a9dfe","a1f379d333e284184d98b95dd6cb83191eff8d21602bdf1520b243d8a5529570"],"rows":1,"width":129,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w129","sha256":["e8412403ece02f8ffc65d47ded2a1729f9c89ca085f19354ef3085c38c99d958","00ad30c352221495a281a63bc795cde162b88d30bc0d1fe30556d0025105d525"],"rows":1,"width":129,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w256","sha256":["d20a3c4d8d97977b4b6916247769f613d3fae66af8ef8bd27bd31fcd465da924","984b9fa3102ba185b21b1e3964c2a52b0b02d621d5f3ee892c400fedb7a2e1d1"],"rows":1,"width":256,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w256","sha256":["824314460957e7fbd3bd8692516bfb4f932d3ffd42213a9bfedb291b19f3ce5b","061d59e5dfa8432f0d281ccd829f4ee5742321f79f0e283a565911f4d0b1636d"],"rows":1,"width":256,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w256","sha256":["d20a3c4d8d97977b4b6916247769f613d3fae66af8ef8bd27bd31fcd465da924","984b9fa3102ba185b21b1e3964c2a52b0b02d621d5f3ee892c400fedb7a2e1d1"],"rows":1,"width":256,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w257","sha256":["b9bdfd4c0a884151a7a16fdfc2f6ae9d614b82bfcbf77c57b4ca8577dc8ff1af","9548f56a7ac81de46acc9aa0194e7791986f07b7e55f1dd5d6bf7e917885f7cd"],"rows":1,"width":257,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w257","sha256":["74c278f9e05a0827128df416c6ab092a553951196585b4f3b0e3bc7c02ebc1da","86f4351a2d4944527218d8ad91e28b159d0fe4c7acc820997bf98dca896afb3a"],"rows":1,"width":257,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w257","sha256":["b9bdfd4c0a884151a7a16fdfc2f6ae9d614b82bfcbf77c57b4ca8577dc8ff1af","9548f56a7ac81de46acc9aa0194e7791986f07b7e55f1dd5d6bf7e917885f7cd"],"rows":1,"width":257,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w512","sha256":["f159ecdea3bda087906f1890eec9ee48f841d0cc075b074f3ce909ee668e0f8e","980120b6a860c9adcc618157e384d5254a186632bcebbd102e7bdb48e9e052df"],"rows":1,"width":512,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w512","sha256":["d0b56a454836a2cb442a1ea186233b8a698f93061880a3a0430574a683cd9aa2","f121c1ee0f1e9da689f3ddd1749ce34133604ad6ec04fefc3101e02d3f5a551f"],"rows":1,"width":512,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w512","sha256":["f159ecdea3bda087906f1890eec9ee48f841d0cc075b074f3ce909ee668e0f8e","980120b6a860c9adcc618157e384d5254a186632bcebbd102e7bdb48e9e052df"],"rows":1,"width":512,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w513","sha256":["e116d9b2d4912a2c3abd78a089cd8c1c2cde388cad1bba1b3ea3d788272ee094","f7a64453bb8020350df6c996bffcb14e5652684b291b247cc359f27a1a17e58b"],"rows":1,"width":513,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w513","sha256":["2e54d8919b99878562ceb44a460bec75a84973cdd1cfd8da75312a007bbe48fc","4f4f7e5f897eedbfafc8ddb8c6444606bb65a63aa6e11dfb6a120b2e74f7309d"],"rows":1,"width":513,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w513","sha256":["e116d9b2d4912a2c3abd78a089cd8c1c2cde388cad1bba1b3ea3d788272ee094","f7a64453bb8020350df6c996bffcb14e5652684b291b247cc359f27a1a17e58b"],"rows":1,"width":513,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w1024","sha256":["02da7d27e1d8ba647616b8815e7f5e04c4afdb8c00285a580a7395166c39f4a1","2d08f0cf97b9984ec0d2a09e1e6923c1a6b2363c88d468055b5ee4413c042e32"],"rows":1,"width":1024,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w1024","sha256":["c3b02d3507596b34dae8c6a11189f1ebe0c411b7ccc8e7072499fe8d9a8bae10","75c46612c74cbc7f88521d0b9f6776bef49fd2432a9cf9ed704bd766901d8e3f"],"rows":1,"width":1024,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w1024","sha256":["02da7d27e1d8ba647616b8815e7f5e04c4afdb8c00285a580a7395166c39f4a1","2d08f0cf97b9984ec0d2a09e1e6923c1a6b2363c88d468055b5ee4413c042e32"],"rows":1,"width":1024,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w1025","sha256":["52d5858b26af860ea8205de95759579296cd3131039ea7f1bb20ed23913d1689","dfaf40059537fe3953b240b6d2cb40003a20082312622a198b631dc9e358937e"],"rows":1,"width":1025,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w1025","sha256":["2b381d38df72e14063183ffef9473865be9b054c4ac0a9097e16e6dd4dc2c8d1","53c3db9bd495a40836dd6e9aba20fd722e13ec30d16665866549b8a5e047c475"],"rows":1,"width":1025,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w1025","sha256":["52d5858b26af860ea8205de95759579296cd3131039ea7f1bb20ed23913d1689","dfaf40059537fe3953b240b6d2cb40003a20082312622a198b631dc9e358937e"],"rows":1,"width":1025,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w2048","sha256":["7205e5855bc7bad3cca0b89c5d62cb8acc2e9c41ffe64bf9103ea141eafea7ce","4c61c4395a69132228a9dadcf7d24635568a38a0a126f0cacfb247875d572636"],"rows":1,"width":2048,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w2048","sha256":["590e99273f0572f9c41ab7f774fbb3add54fd6d1ae07e7c07089d25a7fceed9e","4861fdb0a066b77a5230f0d38d6df64920394c77331ecc73a5c4b7bc7e1e78bb"],"rows":1,"width":2048,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w2048","sha256":["7205e5855bc7bad3cca0b89c5d62cb8acc2e9c41ffe64bf9103ea141eafea7ce","4c61c4395a69132228a9dadcf7d24635568a38a0a126f0cacfb247875d572636"],"rows":1,"width":2048,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w2049","sha256":["0be395573ecb8a314e64201700dd0af3200279e654aca649bb426ba62799a18d","5e9bfc5dc7344801dab95f25aa4509dbe896d83dc25f7623a37959b52d2db396"],"rows":1,"width":2049,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w2049","sha256":["dbe004c1d59d88c317ac43ab0fa1355c6cc7e978b448b53eddc90bcfbf257ce5","2682154a1533ee18621a746d6bc552e272807f3ed13a9365a2cafc87920d2391"],"rows":1,"width":2049,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w2049","sha256":["0be395573ecb8a314e64201700dd0af3200279e654aca649bb426ba62799a18d","5e9bfc5dc7344801dab95f25aa4509dbe896d83dc25f7623a37959b52d2db396"],"rows":1,"width":2049,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w4097","sha256":["5d9fc2eb24e616736e3f5823486ce415d7ba507f8ed2b4a5fc26c21663b5fc21","d37e4571663eb1d90e83e539b71daafd5d723408fe96ec5011e35c5afd73d031"],"rows":1,"width":4097,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w4097","sha256":["17cb8341e04078598acdbab626d284dd61056941c1a542852aab8f0595ebd760","60aa2a43744484bea409eb131ef9b50ef3a3cd5166cd68d3d3324c7ca1a7f167"],"rows":1,"width":4097,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w4097","sha256":["5d9fc2eb24e616736e3f5823486ce415d7ba507f8ed2b4a5fc26c21663b5fc21","d37e4571663eb1d90e83e539b71daafd5d723408fe96ec5011e35c5afd73d031"],"rows":1,"width":4097,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w20480","sha256":["0588b6b8f5952a0519c8024421d7ef1d9697bff48e164ac4e7837f0f7bafc742","d30ecaae067346b68b581379ee381f00170766a74a11fa654ebff50b584dc186"],"rows":1,"width":20480,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w20480","sha256":["3668a1ca3b3782b0d628fa0b5dff85801f34fc9507ce9e7d6c572508956ff5c3","f7352e02b78189d2d4daf091e694cf7d52392327b91cd8311f7b61563cfbaeba"],"rows":1,"width":20480,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w20480","sha256":["0588b6b8f5952a0519c8024421d7ef1d9697bff48e164ac4e7837f0f7bafc742","d30ecaae067346b68b581379ee381f00170766a74a11fa654ebff50b584dc186"],"rows":1,"width":20480,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w65535","sha256":["4c3c8a03c976e7fad05f5312b73768b06488d6f2e9f5803dee7a121faed5e7b0","c52710d3cab4cb468a19be84756cb950831af82402372673e88ee37472d5acde"],"rows":1,"width":65535,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w65535","sha256":["10b38515cf1d6b69fd79785c9421d3e183c4565184ae6389ed6a4901aa363bb5","e80dd6502bc162def0e0378bf5c8d8d13b23785d4d99e2a7e30d9899bc33e893"],"rows":1,"width":65535,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w65535","sha256":["4c3c8a03c976e7fad05f5312b73768b06488d6f2e9f5803dee7a121faed5e7b0","c52710d3cab4cb468a19be84756cb950831af82402372673e88ee37472d5acde"],"rows":1,"width":65535,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w65536","sha256":["72bbee902a94b28a2d2e8b48da13fc0b0944070e57a277f959c1a8a5e9b7c55b","89a8e53c7b79959ee50d9a5b1c5e1be5cf05c946a9f92487f9cc43ded4d99b95"],"rows":1,"width":65536,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w65536","sha256":["2b186e244cefa1b36e1a32ef98b6d7582abdbc02064c4197151860012190fdc8","e91ea130836d208ba852403e55ab0cc1311973d0002c1644e2ffa804556cd55d"],"rows":1,"width":65536,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w65536","sha256":["72bbee902a94b28a2d2e8b48da13fc0b0944070e57a277f959c1a8a5e9b7c55b","89a8e53c7b79959ee50d9a5b1c5e1be5cf05c946a9f92487f9cc43ded4d99b95"],"rows":1,"width":65536,"dtype":"f32"} +{"kernel":"argsort_u32_r1_w65537","sha256":["ae59d7f7286d867ff3470204c17075b2443a891c05d5a3b5f4add0b1c1e8248d","296fc2b62cab4bc5a0b41be84f5e7ceac48f564a6400ee0ea8a4dc13fc8038a7"],"rows":1,"width":65537,"dtype":"u32"} +{"kernel":"argsort_bf16_r1_w65537","sha256":["1fbdfbf5a5484025ed6568b84b95d6801566026c883731242ce79e81d798fb91","e31cec590b91ec16011f00537af52f40afac3a4512006108fbf2ac2b0c465d13"],"rows":1,"width":65537,"dtype":"bf16"} +{"kernel":"argsort_f32_r1_w65537","sha256":["ae59d7f7286d867ff3470204c17075b2443a891c05d5a3b5f4add0b1c1e8248d","296fc2b62cab4bc5a0b41be84f5e7ceac48f564a6400ee0ea8a4dc13fc8038a7"],"rows":1,"width":65537,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b"],"rows":3,"width":1,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b"],"rows":3,"width":1,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b"],"rows":3,"width":1,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w10","sha256":["57b285fa892c5ae58fc3c68113ddfd3367826440626862f6b41efc9b982c6a84","c2cd7497898f842cbccba6eb299982cedd49dad2b7408610b3a5e5c41495d24c"],"rows":3,"width":10,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w10","sha256":["57b285fa892c5ae58fc3c68113ddfd3367826440626862f6b41efc9b982c6a84","c2cd7497898f842cbccba6eb299982cedd49dad2b7408610b3a5e5c41495d24c"],"rows":3,"width":10,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w10","sha256":["57b285fa892c5ae58fc3c68113ddfd3367826440626862f6b41efc9b982c6a84","c2cd7497898f842cbccba6eb299982cedd49dad2b7408610b3a5e5c41495d24c"],"rows":3,"width":10,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w63","sha256":["a6339f182f34a6639ee35ea3ad96e700b9805dff8e2e49880341752c41f5e1c8","dbd120049038a0a6d507673afcff92589b6cc102ea3ee257834e7aa472f2d48d"],"rows":3,"width":63,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w63","sha256":["c7eb302c4a63566086ea9fcc3e08ef7106ea836fb9d0ea24c3035267b79ad660","840ca7996666261670670537bbf06401cce2c3efec6071ee204d14f2fec2eb51"],"rows":3,"width":63,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w63","sha256":["a6339f182f34a6639ee35ea3ad96e700b9805dff8e2e49880341752c41f5e1c8","dbd120049038a0a6d507673afcff92589b6cc102ea3ee257834e7aa472f2d48d"],"rows":3,"width":63,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w64","sha256":["4d5087efeca2928dfb17b8e46bbd6007a95f942daea1c2fecb548a876cad7a41","37313d038017240ea3d610fb204baecc1a20e1e6b8f17a0e7243e407948c499f"],"rows":3,"width":64,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w64","sha256":["e55f19e733e4fab2f4b1f6a97d3e95a53695e8bc9e39ba2fab447122ef13d066","62043792235af28373c427c08c730a3be053845c87bd532cc672754ad171b721"],"rows":3,"width":64,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w64","sha256":["4d5087efeca2928dfb17b8e46bbd6007a95f942daea1c2fecb548a876cad7a41","37313d038017240ea3d610fb204baecc1a20e1e6b8f17a0e7243e407948c499f"],"rows":3,"width":64,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w65","sha256":["8c4a431224e1c4e3584687c72e57b1f9fe6a6ce7666a95761b97db5bc21df647","0bd7b5fcf36b85cf8cad99114d19181f33a90f33432829b1bfcda2da1170ae53"],"rows":3,"width":65,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w65","sha256":["c9c79c8233b95f1813a7c6798964df324d6a77d1c72c84c812a8a9031ed9b4ab","8e78d3ca3525ea48a3acc361212732e7606c22bec97591febb1c08bdf8b0c943"],"rows":3,"width":65,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w65","sha256":["8c4a431224e1c4e3584687c72e57b1f9fe6a6ce7666a95761b97db5bc21df647","0bd7b5fcf36b85cf8cad99114d19181f33a90f33432829b1bfcda2da1170ae53"],"rows":3,"width":65,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w128","sha256":["c8a655846c03c60ba5ed5331d178409107b8b6a4ad2ebf18197f1467b18daf8c","6b88fda06b6f11ec76ee5972c27ecbc83f2931df1ac04f27b4fb48ea025621f4"],"rows":3,"width":128,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w128","sha256":["5449e316b65b6880dd3be7ef83d4f87b70aef739aadb1938bf3b986dfcf06108","921d5c1b0749bec1239243d93d9e72492fc2fc1383d115598a4f6683f2134966"],"rows":3,"width":128,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w128","sha256":["c8a655846c03c60ba5ed5331d178409107b8b6a4ad2ebf18197f1467b18daf8c","6b88fda06b6f11ec76ee5972c27ecbc83f2931df1ac04f27b4fb48ea025621f4"],"rows":3,"width":128,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w129","sha256":["0f9c3e8624d8895ba8943e545e7a77ae3aff5b61605cc38c4483a436bc6ca20e","c32ae2e53d98767153281dcf4a7d9a698306adf42feec78e67f0844369d3c39a"],"rows":3,"width":129,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w129","sha256":["88ea0a95b0603413fa49024135d0079bf66e2831802469fdf767f35fbf4211a3","31f0bd4d2ebc2b08ec308b69b274c59154ae9ceb0bb992def4f184f5522569c0"],"rows":3,"width":129,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w129","sha256":["0f9c3e8624d8895ba8943e545e7a77ae3aff5b61605cc38c4483a436bc6ca20e","c32ae2e53d98767153281dcf4a7d9a698306adf42feec78e67f0844369d3c39a"],"rows":3,"width":129,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w256","sha256":["585aabe3c5ffce7ea28cf6608037ae7b444f1719067623bcb67e324240b60b39","66e593eebc01677ba3bba5eaffc33a97abd955ba67b54cee475326d79e9035e1"],"rows":3,"width":256,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w256","sha256":["477ca7e9a7092aa9ccbcf3c9fc79d84b3cd124216066010768d19a197e689aae","4425f3bf2c055df121670f038abf7721ef340225dcebb59ef02ab19da0cf13f6"],"rows":3,"width":256,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w256","sha256":["585aabe3c5ffce7ea28cf6608037ae7b444f1719067623bcb67e324240b60b39","66e593eebc01677ba3bba5eaffc33a97abd955ba67b54cee475326d79e9035e1"],"rows":3,"width":256,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w257","sha256":["b630e93e1a8ed4448710f1d11050b1d95183cff620f2a5658ec9fc0d7ff65c8a","3f404e87f4c7b1b3f4a9fcca28965a23541138228be0c5b78e2d2dde3f8240fb"],"rows":3,"width":257,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w257","sha256":["a34be6f125f5ad48ddf633a88225fd13a34830d6e9e08aa1ab8c02bc42dc72aa","5b53654a096af9f2e9dd992de8f2add4138fc38b20cba7af824a9d61b305924e"],"rows":3,"width":257,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w257","sha256":["b630e93e1a8ed4448710f1d11050b1d95183cff620f2a5658ec9fc0d7ff65c8a","3f404e87f4c7b1b3f4a9fcca28965a23541138228be0c5b78e2d2dde3f8240fb"],"rows":3,"width":257,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w512","sha256":["7afd03f969dbfb9517b0310fc9cb65ff01159b272e2e6f8484b3d940d9b1fa6f","5369ef9983b024d3d38bd46d8dc82f630ea13f79a6621fe9001971d5d5dfd310"],"rows":3,"width":512,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w512","sha256":["cde03bd6b25b784abea39bbfbd78c00927533ffa0ee9c437851153bcbb1f38f0","2be6b3bc9057e80ecb6560987901d08e8ec45c8dbedcc17c271c151f86a45624"],"rows":3,"width":512,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w512","sha256":["7afd03f969dbfb9517b0310fc9cb65ff01159b272e2e6f8484b3d940d9b1fa6f","5369ef9983b024d3d38bd46d8dc82f630ea13f79a6621fe9001971d5d5dfd310"],"rows":3,"width":512,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w513","sha256":["45ed0c568aa0141d6dd587c54064b71e4e14ed6153619b28d7cbd3fe55ce1253","49a3e146ee601f63e0ab24ef36238b0b21bfc434236369f9ddf8c76ce13125b2"],"rows":3,"width":513,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w513","sha256":["af17b3455e7e94ed99ea538cf7e94782cf6aa541d4345141aeafc532e94a176a","54c09a5f3b08983d6f972070cdd2d3b80e4cdbf012c78a3e1b5c4b1701b886f8"],"rows":3,"width":513,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w513","sha256":["45ed0c568aa0141d6dd587c54064b71e4e14ed6153619b28d7cbd3fe55ce1253","49a3e146ee601f63e0ab24ef36238b0b21bfc434236369f9ddf8c76ce13125b2"],"rows":3,"width":513,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w1024","sha256":["bf0f6540c39d8b9a9ae22af5345382882a41826db59b9c89b4caae7380b1193f","ab47f5116abd268823779e3c9b41e9ba3610ad41a401022d19751a081d20df4e"],"rows":3,"width":1024,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w1024","sha256":["002c3c92b54f1bad4cfb699b57bc30825c70c5b1370fb6cfbcd893ad312097ee","6069ce1554271204b57419aab4d34d1f95b1e89c191e11cedf5c32bf77cf1c2f"],"rows":3,"width":1024,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w1024","sha256":["bf0f6540c39d8b9a9ae22af5345382882a41826db59b9c89b4caae7380b1193f","ab47f5116abd268823779e3c9b41e9ba3610ad41a401022d19751a081d20df4e"],"rows":3,"width":1024,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w1025","sha256":["3f67893bab2d0f19f521f548e66bd87a300d11b3a68b6200f086e752d5f424e9","020b07e7c19c7cbdef5493b8d21e56dd901b4f963cab03fcb93623b48e450ca6"],"rows":3,"width":1025,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w1025","sha256":["35f0a603f1f44b1a655f1dd85534ddb1f4d46db0478d07a86730aad375e526d3","0fbf09916fc1609bd1b6b522f7f87921c88a38d23a3222729f4638987c85f733"],"rows":3,"width":1025,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w1025","sha256":["3f67893bab2d0f19f521f548e66bd87a300d11b3a68b6200f086e752d5f424e9","020b07e7c19c7cbdef5493b8d21e56dd901b4f963cab03fcb93623b48e450ca6"],"rows":3,"width":1025,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w2048","sha256":["b9a8804388902769d309e1345da16c7d6508df85b6013c75446cb37e09a152c7","72a9b588fb4f446dea531255a96544a1cba70428933d9ae548df13a93d7e174e"],"rows":3,"width":2048,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w2048","sha256":["206b5e24b9021695c3ab456bb86a0270aeac86adda22380d4cae87935f0fe211","ac04f57e09f50892bc13b8fd0c74cb3c4855401bb7b2254aa43141e1e3741ed8"],"rows":3,"width":2048,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w2048","sha256":["b9a8804388902769d309e1345da16c7d6508df85b6013c75446cb37e09a152c7","72a9b588fb4f446dea531255a96544a1cba70428933d9ae548df13a93d7e174e"],"rows":3,"width":2048,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w2049","sha256":["ffc492e439104f1e32f71711c9ba699deb042840c957f0b0c7e0b8c45540a6b5","b39d30af8285fc2e3ee8ab8a76d78251845d639c90fe3b4754ff5f4c6234d548"],"rows":3,"width":2049,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w2049","sha256":["bad8099adcd2161f5cf87517599fc1395ec02dbef78f20e1ee17a0378c426cb2","3c3c892dcf004a01df861ac74eec4bfef43d9bcab9da71dc74fb4a10d9ba2d15"],"rows":3,"width":2049,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w2049","sha256":["ffc492e439104f1e32f71711c9ba699deb042840c957f0b0c7e0b8c45540a6b5","b39d30af8285fc2e3ee8ab8a76d78251845d639c90fe3b4754ff5f4c6234d548"],"rows":3,"width":2049,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w4097","sha256":["af8393c1cb160e140e0c9f310a0e780b9b7c4c0a795ac88eb2c9d030ae95fc08","48602bf2e3e8264e54f68d9f81cc663f6c7d42ece6aeb2d56c22d1481a801835"],"rows":3,"width":4097,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w4097","sha256":["ecbb5e7d24b8be5a20354f126ad1816eba578e1ae4828bacc5f815260e504358","a9dfecfcb20f2db00b76cf75ade1bb39c74e23dea0964209b8ad7c9dbfecc131"],"rows":3,"width":4097,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w4097","sha256":["af8393c1cb160e140e0c9f310a0e780b9b7c4c0a795ac88eb2c9d030ae95fc08","48602bf2e3e8264e54f68d9f81cc663f6c7d42ece6aeb2d56c22d1481a801835"],"rows":3,"width":4097,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w20480","sha256":["3c4f9aeb7b5f52efe7e9473cefc31034bedc168c2783634160b22d54f729791e","bfe1a6905398425e2a640297750ff180a34247e5b58bed9b0c8f17ef1e8b0f2c"],"rows":3,"width":20480,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w20480","sha256":["ca2d5031ca0794755e248b29f0ffb330ce88b06b8fd40cf47135d53db07d432c","dba8ff85d873fe449f733b48551177dd0ec0a15b952dca2164f3e08afdc73ea7"],"rows":3,"width":20480,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w20480","sha256":["3c4f9aeb7b5f52efe7e9473cefc31034bedc168c2783634160b22d54f729791e","bfe1a6905398425e2a640297750ff180a34247e5b58bed9b0c8f17ef1e8b0f2c"],"rows":3,"width":20480,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w65535","sha256":["13bc0a27ffafa1323bfd218b77a6678a88c4c758d03323c3d9cef7d4dab5f49c","0dfb686e3b1b07050ba43b885e3c704bbe01291d968c365dcefdb12a553ca66d"],"rows":3,"width":65535,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w65535","sha256":["facc1f22e9f6833d5d29f1e96fd41f192d121f942be8961bd76ed9b7baffabfd","0586eac559bce1bc61457a07096d21e4c7ba50a5d2c2dd4812200d451db0bf60"],"rows":3,"width":65535,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w65535","sha256":["13bc0a27ffafa1323bfd218b77a6678a88c4c758d03323c3d9cef7d4dab5f49c","0dfb686e3b1b07050ba43b885e3c704bbe01291d968c365dcefdb12a553ca66d"],"rows":3,"width":65535,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w65536","sha256":["6c4c0e559fecafedd4b7a3f6c56d91e04817ca78274a75393eec43ff48a588c9","9797a4b96ec82d38756e24e50d56f5f691431fb7f6282488944b1141a7d0dbcb"],"rows":3,"width":65536,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w65536","sha256":["ef2eadcc36b6738cfcfc284d7f75191f204c6216b9b3b625bac96b523f652a17","6f5bd8c9a94efff2f43e40db2a076288ac20c26ee402a49585b93ee3adc45075"],"rows":3,"width":65536,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w65536","sha256":["6c4c0e559fecafedd4b7a3f6c56d91e04817ca78274a75393eec43ff48a588c9","9797a4b96ec82d38756e24e50d56f5f691431fb7f6282488944b1141a7d0dbcb"],"rows":3,"width":65536,"dtype":"f32"} +{"kernel":"argsort_u32_r3_w65537","sha256":["8bd7ae6c0090770aa9ae76111116d109692393d8b30b38c3967bab529bb1b888","f9a4a9896a6380e3572eacb91e92cfe46c49164cd3a8d643c15de264c9621bb6"],"rows":3,"width":65537,"dtype":"u32"} +{"kernel":"argsort_bf16_r3_w65537","sha256":["d164dadb7a03f52b06ac201306cebf06aabdd8db76bbbdcbc07b576b15f60c23","2865f617a3f999e52697b30043cf9dba48b77c23f43177af26e39554ceebf30e"],"rows":3,"width":65537,"dtype":"bf16"} +{"kernel":"argsort_f32_r3_w65537","sha256":["8bd7ae6c0090770aa9ae76111116d109692393d8b30b38c3967bab529bb1b888","f9a4a9896a6380e3572eacb91e92cfe46c49164cd3a8d643c15de264c9621bb6"],"rows":3,"width":65537,"dtype":"f32"} +{"kernel":"argsort_u32_r2048_w512","sha256":["730c18db18dc3b7a8023813a013917f36c6dfb6d7ccbd6fcd0a2ef0e83f721ad","65fe07a44cd6d58eb5937c5c6d0014b1cdd21b399c752a7d4a0eb820dff5b3f6"],"rows":2048,"width":512,"dtype":"u32"} +{"kernel":"argsort_bf16_r2048_w512","sha256":["9b5a46035c2d4d24fe935d082255adc6c11643d6997de875008bb33342653486","515aaf06fd012f37f838cfe12ad7914e11ed48415b4a5fd413ea16145d5d5015"],"rows":2048,"width":512,"dtype":"bf16"} +{"kernel":"argsort_f32_r2048_w512","sha256":["730c18db18dc3b7a8023813a013917f36c6dfb6d7ccbd6fcd0a2ef0e83f721ad","65fe07a44cd6d58eb5937c5c6d0014b1cdd21b399c752a7d4a0eb820dff5b3f6"],"rows":2048,"width":512,"dtype":"f32"} +{"kernel":"gather_sort_t1_top10_w7","sha256":["81b091362abdfab12056175c692eb5ce17c97c63df62ef10fc53b57248e650f9","70bce6ad9522ddb597d3cf56265e95199058c6e4679477fe8f339ba3b2cdb66e","143de3a0e04132658d3c3d7087e2b201facebd593af25fd77b2f3508baa8a6b9","81b091362abdfab12056175c692eb5ce17c97c63df62ef10fc53b57248e650f9"],"tokens":1,"top_k":10,"width":7} +{"kernel":"gather_sort_t6_top10_w8","sha256":["2d5ae2c17758edbe2636c50e09be0d9adc84853736988bf8f02b9852295d9ca6","8d33b70100992ffaf9c6c89a51d284b74660b49f45a1bec2bbefe9d44afabd8d","4414fb217f236e491cee9ae7a9bfd8a40615dcd4928864bce9604cc0554d6278","465a6d16a69c99aebe8ab951bb0b231f93218febad44651a2a5b403593d53c8f"],"tokens":6,"top_k":10,"width":8} +{"kernel":"gather_sort_t7_top10_w9","sha256":["2dab4e28385dee64e58c55b86ddf3dfb15f2c0e37867855a47b7aa4a4c93b2d1","f143645b49f5d6e524531a178d4406b9e1da6a797fc3de63ac3d559e7ec83111","3a0ca0264c6158f8f7d7d25bd7359209dc29d856247eb83d06fb999dba9411df","cf01836b49b5887eaef5f58bb2148b4dfa8ddd70b150087ff80a95e4fdddb80b"],"tokens":7,"top_k":10,"width":9} +{"kernel":"gather_sort_t7_top10_w2560","sha256":["bb0a73367f67bfb0446b79a2d7e236482b15fe81c3cb79a159eb50709febf700","f143645b49f5d6e524531a178d4406b9e1da6a797fc3de63ac3d559e7ec83111","3a0ca0264c6158f8f7d7d25bd7359209dc29d856247eb83d06fb999dba9411df","6375320ea69f187eaba4426f45958f3c60d0e1dec96bbd605b68ab28b044e1e5"],"tokens":7,"top_k":10,"width":2560} +{"kernel":"gather_sort_t205_top10_w9","sha256":["10603261d71b2e1bd001d1da33d6fdbbee47df53836cff9805d9bfa77f0db56d","1826c6a6a195d18c07aa67d475cde4e4c2aa45020b0e978b1a48dc4bdb8816b1","369c64608a190bf2fc97aaa6e69a902e25e85a4f77cfd3c93695516b66149327","6e8e3e7adbac9aff2b47260f1ea59e5f6e1863a6de342c1f4ea151f46974cedd"],"tokens":205,"top_k":10,"width":9} +{"kernel":"gather_sort_t2048_top10_w2560","sha256":["c8835421ee79870171be24170d8fee8cec661a3deabd5a8e7ed5695f26bf01eb","bbaed932637f5a5d4e3856e4d15e97c9a80f3e89f30d5c1b6d6585f994a1d7c2","d30ecaae067346b68b581379ee381f00170766a74a11fa654ebff50b584dc186","2712a12f565cc514dfede692cc17e5083d106c6b6ecad33d20588cf5c9475918"],"tokens":2048,"top_k":10,"width":2560} +{"kernel":"gather_sort_t6554_top10_w9","sha256":["e3bbe5a51e70c586ae00bec41df7346138fbbca651f75d18ffd834cee4d8ffbb","104219a7212a85394a71dfc9cbc1a682cee34ef50071ad1fb2a9775da4c9e1b1","59f598469bb151d16ef475eaf1fd9b59a67ae0f37c82fc79117859263f064f05","d3741acda882dcf3205b093cfdac4bc39755b993598bf8b929528f98eec0a5ee"],"tokens":6554,"top_k":10,"width":9} +{"kernel":"gate_up_r1_i64","sha256":["d9ebd654c60120ea54437b54d9dc385c426cc6f46fd14d56a544e81b5b1d0caf","d025b497634f8da8a11b5e39cb9b7d4011d5a945bc5755b9316e1f5635627df2"],"rows":1,"intermediate":64} +{"kernel":"gate_up_r1_i640","sha256":["d96fd68453832d4865d1bd9e2a8bc4f3cf2d7bd61e598ea3b4d8153db8a9a1f6","b1e39edb1ef3b9288b1f422d3c337c1e22a29932f46e39603a97d12ab929df1b"],"rows":1,"intermediate":640} +{"kernel":"gate_up_r1_i65534","sha256":["a596055f49bfa98ec21b57f36d8ff23f4f444907a8b8a41fa0e5c5133c34f585","d303bcc712d877880e57cd25ad523e893ce347f88e2bf5ab6974b6d66b0860cb"],"rows":1,"intermediate":65534} +{"kernel":"gate_up_r1_i65536","sha256":["bf9ebca567dd91ac8260307d0eecf52aa220d0f703ce7ea8bad846e25b4d30eb","b7cf11ee943ef0ec7aa6d409688642dc9e50ddbbfb0bae2986d2cf32e5a8b738"],"rows":1,"intermediate":65536} +{"kernel":"gate_up_r1_i65538","sha256":["e81f4bf1104d71f406b5f8aa905ea491f7ccee596927291d896a39443addc28b","fea4634ea95e36d1a1a20a3d2fbe23c252a0d3360863e0a212d0a3a4f50ad2fa"],"rows":1,"intermediate":65538} +{"kernel":"gate_up_r2_i640","sha256":["318af2e54918ab2e58b77c84bd57ebd5db54007945ae797f7cff983e429511ff","0cf994a47dca4f98e4def78b4e3686a665775b0a7d06a85b2f8204a0ea33c94a"],"rows":2,"intermediate":640} +{"kernel":"gate_up_r10_i640","sha256":["11ae673a6aad87b6ad59af19c84c85b63ddb16d513bce857e9c1e3c23c7488bd","a5ee78c8d985d5a8cd621554e192f547a754d325b8db593de3ac24ca7cc563e6"],"rows":10,"intermediate":640} +{"kernel":"gate_up_r60_i640","sha256":["670e2b0a049e8f9e514747690ebce496af9bb78b09b4d0e6e33ad1ae40e4934b","a688211ae7c37de8b14e3d6653cc95dd144385c160d003fe405ed6f637a26ff7"],"rows":60,"intermediate":640} +{"kernel":"gate_up_r70_i640","sha256":["af3dfb718e9a99324067dce3cb0bcca82e57adc32d5c78aff03e5af25d66b806","fff9cb292059ead2022f148f13b7f3f526765a3afad4d260b5b395c1bd40aa0e"],"rows":70,"intermediate":640} +{"kernel":"gate_up_r20480_i640","sha256":["df2a447d7dbab76adafdd3db86738822b86c6b5eb6c6a34b688d203b5ca188a9","e00de93ac3ac43e12d6dd27c7ef2310af186b99e66a7187f1daad5e4d74346ad"],"rows":20480,"intermediate":640} +{"kernel":"switch_t1_e16_k2560_i640_g32_d32","sha256":["5e3e9dbcc30b3862a61b51237466f5a7cbfae5d3f4b605b0da56b22f79bb1c30"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32} +{"kernel":"switch_t1_e16_k2560_i640_g64_d64","sha256":["c8652f40046aa3043ec00c22f7346b201c58cee5027fb5218e57615f3f928b7b"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64} +{"kernel":"switch_t1_e16_k2560_i640_g32_d64","sha256":["b0a0228db85a8f3b56c43c83cf3ddbfb89776df696e681d34b1ad2da576b6b61"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64} +{"kernel":"switch_t6_e16_k2560_i640_g32_d32","sha256":["0438e4f05d68ff7b03096725597e4547f55a0201137f0c79fc5ce292bd1ac8e9"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32} +{"kernel":"switch_t6_e16_k2560_i640_g64_d64","sha256":["c566fa665cac6713739ba00fb578185a365e80cc97d7b8c803357489e6fb59e4"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64} +{"kernel":"switch_t6_e16_k2560_i640_g32_d64","sha256":["34a25e2b88f487436a2d7129393bc2284d7295c68a309ee6fee4c9f7fe3e1043"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64} +{"kernel":"switch_t7_e16_k2560_i640_g32_d32","sha256":["bfab9e949304ee41e55d751cbc4624ae0e1fd7743117dfd74c49d00e6a445c72"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32} +{"kernel":"switch_t7_e16_k2560_i640_g64_d64","sha256":["e0dc580613615f528a81fe80cca9eee76c9965c6b7111a0e9ef626066ff677c5"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64} +{"kernel":"switch_t7_e16_k2560_i640_g32_d64","sha256":["8f9be6a735f21b9d14ceabf17646563dc43fafc28eb9bbf294edf906eb87eaa4"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64} +{"kernel":"switch_t205_e16_k2560_i640_g32_d32","sha256":["f8adcdca3d9ba77f60695eb3968ea47b53ee685bd1711c41f454b98c0be1c264"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32} +{"kernel":"switch_t205_e16_k2560_i640_g64_d64","sha256":["b34374f4286ba01af7bdea748bcfc5c1b9ebf978720492243933fb5cc119c5ed"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64} +{"kernel":"switch_t205_e16_k2560_i640_g32_d64","sha256":["27d924f2c397085ac49c31c0195c194e5037d2057a7c945a00d3600c98f455b2"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64} +{"kernel":"switch_t2048_e16_k2560_i640_g32_d32","sha256":["94df5eebd3fe1b0aa84372b66f4d280b9ca30f1722fa5e163958a8c7f77da266"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32} +{"kernel":"switch_t2048_e16_k2560_i640_g64_d64","sha256":["b2e3a8f186a2ad899175a048a73f58a8cad2da7f4f977af3cb078160d17c0610"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64} +{"kernel":"switch_t2048_e16_k2560_i640_g32_d64","sha256":["6bd79f62e850a4a8a8fea1d03cbf1aa3533f8daec6533db1a296263debc7307b"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64} +{"kernel":"switch_t7_e512_k128_i64_g32_d32","sha256":["9195b0f0b860b600c78999b010a55b842be8288498efe20643bdddfe3e682b65"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":32} +{"kernel":"switch_t7_e512_k128_i64_g64_d64","sha256":["3204e27a44684bdcfbc558c5bb50d3cf6f75680ffd85d73fe120a618ec100f19"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64} +{"kernel":"switch_t7_e512_k128_i64_g32_d64","sha256":["94ba5733d98a49a6293eb83688268d9e4216d86b81889d25b1a3f6c04b58fffe"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64} +{"kernel":"switch_t205_e512_k128_i64_g32_d32","sha256":["8760fd87b8264c909554b68276e495629c2771d1ae0a55011c63faa6fe49746a"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":32} +{"kernel":"switch_t205_e512_k128_i64_g64_d64","sha256":["9437c3aa96488b12188d2d08a7bf43e884300f4837261413e027fcb560574590"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64} +{"kernel":"switch_t205_e512_k128_i64_g32_d64","sha256":["d97821dbd7e95c03b0015374b5d1763c1e39f28fa22c07ea6b2b2b016709e6f6"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64} +{"kernel":"router_r1_e512_norm0","sha256":["f126e3f3943c0828d6fc3572a3080e3046c64bcd010b0dbd5e10c3e89f51151c","504e4882f5c133398b1e9b41f695a20a6d35135e5c58315395524f0478a16bcd","5d7f12a97b9237f04d8ddba113581dcbcab2cd68d6e289e231b477ec0db795c7"],"rows":1,"experts":512,"normalize":false} +{"kernel":"router_r1_e512_norm1","sha256":["f126e3f3943c0828d6fc3572a3080e3046c64bcd010b0dbd5e10c3e89f51151c","504e4882f5c133398b1e9b41f695a20a6d35135e5c58315395524f0478a16bcd","8a20e8c2897e3bb36c0117f7dbb4281d8e0996795a474089b52ba48b7ceb33c7"],"rows":1,"experts":512,"normalize":true} +{"kernel":"router_r7_e512_norm0","sha256":["2a4282f33f2a17564319091ae32040855dd3998db5d0054b0816a9c8d593dfdb","11813cf3cada6c09b51360302ed6fa760019830998af3ba521e76bbdc7cca8bf","1c8f58ae48fb1df2242fb504bd6723c816ac5a9165a02524903ca25324a328f1"],"rows":7,"experts":512,"normalize":false} +{"kernel":"router_r7_e512_norm1","sha256":["2a4282f33f2a17564319091ae32040855dd3998db5d0054b0816a9c8d593dfdb","11813cf3cada6c09b51360302ed6fa760019830998af3ba521e76bbdc7cca8bf","da20503eb7adaea15d3f8de51805dc2853fd9dbc6de083306791d7e520e69e21"],"rows":7,"experts":512,"normalize":true} +{"kernel":"router_r32_e512_norm0","sha256":["b95493c3a6fd4ee4b531185271933eb3e56f9d06c5ea1f4c3c59fbc3e1e051bb","d155d18dd306ecd6e9b0e3401390bcb3e37da81195a93e3504c4f537a41aff91","8f8263c46bf41d245104b3492cfac4da60f0f79d216aa0daa2861a7f98977d9f"],"rows":32,"experts":512,"normalize":false} +{"kernel":"router_r32_e512_norm1","sha256":["b95493c3a6fd4ee4b531185271933eb3e56f9d06c5ea1f4c3c59fbc3e1e051bb","d155d18dd306ecd6e9b0e3401390bcb3e37da81195a93e3504c4f537a41aff91","3acd0095b2ab2c4081e2f022f0ea0c493f6da68c806d9b8344560576ebae2b1d"],"rows":32,"experts":512,"normalize":true} +{"kernel":"router_r2048_e512_norm0","sha256":["259925f178f308f6718e5f4e71a32df124f6a6c099f032608efa175e39c9ea8b","fbe00e7a8ee74e71e025d5f57333b2a641d58ed7e30b7cc09caee01990931f7e","befb17c7770b03b2c321cf0b5a1941822f5550d424064c0e0bfebcb3438a7c64"],"rows":2048,"experts":512,"normalize":false} +{"kernel":"router_r2048_e512_norm1","sha256":["259925f178f308f6718e5f4e71a32df124f6a6c099f032608efa175e39c9ea8b","fbe00e7a8ee74e71e025d5f57333b2a641d58ed7e30b7cc09caee01990931f7e","84f2d7bc3081166f3f2c31290cc2497c424011ba7f6c7bc0dc44bebfccb0d528"],"rows":2048,"experts":512,"normalize":true} +{"kernel":"router_r1_e16_norm0","sha256":["8e7cfe83712b141c1d87f50f1bf8c5077236f2a70706bf8e73df903e995d3c66","ee016b383c22bbcdf0fc6d91224136daa704349fdef8e41407f2ed6d9114bb23","e8a5dc8d97e4a3586a140c71b83882ba42b3ba8e90b593a70374a23dbdfb43ef"],"rows":1,"experts":16,"normalize":false} +{"kernel":"router_r1_e16_norm1","sha256":["8e7cfe83712b141c1d87f50f1bf8c5077236f2a70706bf8e73df903e995d3c66","ee016b383c22bbcdf0fc6d91224136daa704349fdef8e41407f2ed6d9114bb23","e39cb363b591c7d09cddeb0bf02e31b533ba3802e5d8a55e77631631314526d9"],"rows":1,"experts":16,"normalize":true} +{"kernel":"router_r7_e16_norm0","sha256":["ebbf5b448085ab24d4207c51df8d731ac9ea10e62f3b78013edd37b43a9ab23e","98c89788697b4e169e913a0da06021e8b7adfd3e53b3f540dd35d9ebc34932fd","83fabfbd6bbbce70cdd8a0da0b2cc413353673306cd5ab973b411381be5fff34"],"rows":7,"experts":16,"normalize":false} +{"kernel":"router_r7_e16_norm1","sha256":["ebbf5b448085ab24d4207c51df8d731ac9ea10e62f3b78013edd37b43a9ab23e","98c89788697b4e169e913a0da06021e8b7adfd3e53b3f540dd35d9ebc34932fd","a3fc0c13454a493d52626c52478072da2be52c466e581c5cbf58b3a773175d9c"],"rows":7,"experts":16,"normalize":true} +{"kernel":"router_r3_e4096_norm0","sha256":["5c0021adb591fa5adb55497078e05f53b78c2da3798175ca7aed7804617e99b9","f49f02ffe0243a64705487c808b3d95ffba6f1b447c8216db8881988c019c62f","6f36932721eb404498ac5dbfeb75752930a8b30545c9e8f9803b880a0ff78b28"],"rows":3,"experts":4096,"normalize":false} +{"kernel":"router_r3_e4096_norm1","sha256":["5c0021adb591fa5adb55497078e05f53b78c2da3798175ca7aed7804617e99b9","f49f02ffe0243a64705487c808b3d95ffba6f1b447c8216db8881988c019c62f","39923e5b8f490eff19ed1095ab142ac5472bb5b34492c229fe5340a47d720ad4"],"rows":3,"experts":4096,"normalize":true} +{"kernel":"router_r3_e4097_norm0","sha256":["3d0fbd614c6e618d8b40862773a41bf01138899791e3406eeb4d51c3ec649ab0","b829d215bda2387640dcdfc28fcb1a9fd3281fd971fa7fb634674e143513f52b","6f36932721eb404498ac5dbfeb75752930a8b30545c9e8f9803b880a0ff78b28"],"rows":3,"experts":4097,"normalize":false} +{"kernel":"router_r3_e4097_norm1","sha256":["3d0fbd614c6e618d8b40862773a41bf01138899791e3406eeb4d51c3ec649ab0","b829d215bda2387640dcdfc28fcb1a9fd3281fd971fa7fb634674e143513f52b","39923e5b8f490eff19ed1095ab142ac5472bb5b34492c229fe5340a47d720ad4"],"rows":3,"experts":4097,"normalize":true} +{"kernel":"moe_t1_e16_k2560_i640_g64_d64_norm0","sha256":["564c71aedc9932cbc5ed0dcf584edd857f075617c7f501d1f17e1ac1f3e794c0"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t1_e16_k2560_i640_g64_d64_norm1","sha256":["564c71aedc9932cbc5ed0dcf584edd857f075617c7f501d1f17e1ac1f3e794c0"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t1_e16_k2560_i640_g32_d64_norm0","sha256":["41ab122c4b1e585c909ca1e409bedfd2734746750a82b7de5a56a7524ceaa699"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t1_e16_k2560_i640_g32_d64_norm1","sha256":["41ab122c4b1e585c909ca1e409bedfd2734746750a82b7de5a56a7524ceaa699"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t4_e16_k2560_i640_g64_d64_norm0","sha256":["db6e97b4c124f22b12530bb963c1ead73d105bd428b2ec410fb558bf3cb8ff94"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t4_e16_k2560_i640_g64_d64_norm1","sha256":["db6e97b4c124f22b12530bb963c1ead73d105bd428b2ec410fb558bf3cb8ff94"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t4_e16_k2560_i640_g32_d64_norm0","sha256":["49748a18b5bd2a7bbb154ef51f4181aa1397306765aedfdd29f284051cef4a15"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t4_e16_k2560_i640_g32_d64_norm1","sha256":["49748a18b5bd2a7bbb154ef51f4181aa1397306765aedfdd29f284051cef4a15"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t6_e16_k2560_i640_g64_d64_norm0","sha256":["3379d230d8f09b17fc793be5cefcc3fd30eb6576951e63b10c42c963a95f9ed6"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t6_e16_k2560_i640_g64_d64_norm1","sha256":["3379d230d8f09b17fc793be5cefcc3fd30eb6576951e63b10c42c963a95f9ed6"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t6_e16_k2560_i640_g32_d64_norm0","sha256":["4cdd02e29fc6972925e9ef8418c7845b8ceb4a2c9fffc0d4669b167a71140684"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t6_e16_k2560_i640_g32_d64_norm1","sha256":["4cdd02e29fc6972925e9ef8418c7845b8ceb4a2c9fffc0d4669b167a71140684"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e16_k2560_i640_g64_d64_norm0","sha256":["b48cbf46219149bb9d81b76bc2d826dc7f0597eedbd01e38ba8de914f8d3d6ab"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e16_k2560_i640_g64_d64_norm1","sha256":["b48cbf46219149bb9d81b76bc2d826dc7f0597eedbd01e38ba8de914f8d3d6ab"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e16_k2560_i640_g32_d64_norm0","sha256":["eb2731451d21922eb3fe2b965ccacd9cccc01205b9973b2f309e4b1c12f3d872"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e16_k2560_i640_g32_d64_norm1","sha256":["eb2731451d21922eb3fe2b965ccacd9cccc01205b9973b2f309e4b1c12f3d872"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t25_e16_k2560_i640_g64_d64_norm0","sha256":["8381ae137081f231fcccd395ed6b050c15fe2dacd0829fde2a27f7c7021015c8"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t25_e16_k2560_i640_g64_d64_norm1","sha256":["8381ae137081f231fcccd395ed6b050c15fe2dacd0829fde2a27f7c7021015c8"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t25_e16_k2560_i640_g32_d64_norm0","sha256":["e2c4d4c689e4d086330475289edb7dac5d8a5ee057ddca3913ad6817b404e67c"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t25_e16_k2560_i640_g32_d64_norm1","sha256":["e2c4d4c689e4d086330475289edb7dac5d8a5ee057ddca3913ad6817b404e67c"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t205_e16_k2560_i640_g64_d64_norm0","sha256":["d41dca58cfaac657117f90e32e95b4b8ae6f33f7c520bd73d22028f2867d0646"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t205_e16_k2560_i640_g64_d64_norm1","sha256":["d41dca58cfaac657117f90e32e95b4b8ae6f33f7c520bd73d22028f2867d0646"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t205_e16_k2560_i640_g32_d64_norm0","sha256":["7f1eae24484b340c477a568a57aca328f660e403f33f8f834c6817e004274d67"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t205_e16_k2560_i640_g32_d64_norm1","sha256":["7f1eae24484b340c477a568a57aca328f660e403f33f8f834c6817e004274d67"],"tokens":205,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t2048_e16_k2560_i640_g64_d64_norm0","sha256":["464ef64ee5f9d1682fc8a073b40be1a84ad7d02184b6f0e61487d0a47b0e0e73"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t2048_e16_k2560_i640_g64_d64_norm1","sha256":["464ef64ee5f9d1682fc8a073b40be1a84ad7d02184b6f0e61487d0a47b0e0e73"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t2048_e16_k2560_i640_g32_d64_norm0","sha256":["0b705b0031bcf5711e47c32c94fda4c9173923bf15383cb19da032ea04f2be71"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t2048_e16_k2560_i640_g32_d64_norm1","sha256":["0b705b0031bcf5711e47c32c94fda4c9173923bf15383cb19da032ea04f2be71"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e512_k128_i64_g64_d64_norm0","sha256":["b0a28bb10b2cbdbb4eb884d751196e17c590ca3efd34cd8147ccbedc41e13d9e"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e512_k128_i64_g64_d64_norm1","sha256":["6836c8bf5aa44a0cb00c19f589118f4793cc006f5f82551473be52c11586f335"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e512_k128_i64_g32_d64_norm0","sha256":["d06859089832ee8a87b6c1ac7af563e805808704a7bc8970a189b9284d2594bd"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e512_k128_i64_g32_d64_norm1","sha256":["e415adffc6e600b29964f0cd891c2fedc0d30ffb63e21b99c5d0869db425d476"],"tokens":7,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t205_e512_k128_i64_g64_d64_norm0","sha256":["d8deee289ee468d14242f44020c20e145e82cbc7653558ecbf99b0de391f8104"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t205_e512_k128_i64_g64_d64_norm1","sha256":["03ea980870ea78b60348144c623d2d0922c4797c4a1480d62292f6a279cd7543"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t205_e512_k128_i64_g32_d64_norm0","sha256":["22082e1183e68d5fabf44de1d175a129038d70a3bf47ad8ede329f7250b07de2"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t205_e512_k128_i64_g32_d64_norm1","sha256":["106ac537db2883f670fb0301963a08b640b3ae18adfe79908f769b3d7f853189"],"tokens":205,"experts":512,"k":128,"intermediate":64,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t1_e512_k2560_i640_g64_d64_norm0","sha256":["47e51ecad8f90471e8d87f8ad8fd74525e842490b4711074a495a1482bc1afb0"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t1_e512_k2560_i640_g64_d64_norm1","sha256":["47e51ecad8f90471e8d87f8ad8fd74525e842490b4711074a495a1482bc1afb0"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t1_e512_k2560_i640_g32_d64_norm0","sha256":["f65f7a34731ae972ba0f5d77d168b6250677fcfc807fe149c1b6a948ea949d8b"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t1_e512_k2560_i640_g32_d64_norm1","sha256":["f65f7a34731ae972ba0f5d77d168b6250677fcfc807fe149c1b6a948ea949d8b"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e512_k2560_i640_g64_d64_norm0","sha256":["bc396e42b5a91c64cffcdb4eb20b2a3a108458906c633cb5c8e214ba59f19e08"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e512_k2560_i640_g64_d64_norm1","sha256":["f01870b66e5348620f8d1ece588fa19b92d4eeb5005cf3839d2b784ed3b42fb7"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t7_e512_k2560_i640_g32_d64_norm0","sha256":["f6d461d337e4053776032e48eb47beaa8b131a4e32349da1106a28e515249440"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t7_e512_k2560_i640_g32_d64_norm1","sha256":["5de69c9a5d90af0d2f9737aa7c23de537f5229c7386356cd15e0f10aa5878233"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_t2048_e512_k2560_i640_g64_d64_norm0","sha256":["cde1fa2dafea0a91ec22b44571a1b646adf15d528f99c9e15fcd8dccaed7636d"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false} +{"kernel":"moe_t2048_e512_k2560_i640_g64_d64_norm1","sha256":["e4bd032db1611fc84e2204ed9afac6dabf828a9149f75e8dc309d30e5a6ef298"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true} +{"kernel":"moe_t2048_e512_k2560_i640_g32_d64_norm0","sha256":["cb563542600f56593d6c788a13a7aed8c87da8b11b001a422041c3fd29f7676e"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false} +{"kernel":"moe_t2048_e512_k2560_i640_g32_d64_norm1","sha256":["2658c007f7b877f3f875a9442119c188ea3d6e3220dba63a34ef179fb4fe83c7"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g32_d32_norm0","sha256":["c7bcab530f5356d570489c146065029107d7c85b1178c7838be716669c4102d5"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g32_d32_norm1","sha256":["c7bcab530f5356d570489c146065029107d7c85b1178c7838be716669c4102d5"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g32_d64_norm0","sha256":["5b1f390755107e2e013bf3ddb0aaa2d05dca1283016e3247be8ecf144e9e5358"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g32_d64_norm1","sha256":["5b1f390755107e2e013bf3ddb0aaa2d05dca1283016e3247be8ecf144e9e5358"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g64_d32_norm0","sha256":["cffdd9824abf93eb632c505bad0982bb6590ec1c22fbf8495dd70cbdecfa3ac1"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g64_d32_norm1","sha256":["cffdd9824abf93eb632c505bad0982bb6590ec1c22fbf8495dd70cbdecfa3ac1"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g64_d64_norm0","sha256":["4a41e78447d74f4aa32d5bd73729ea8f0df70d9060c88041ce9eaa11da398a0c"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e16_k2560_i640_g64_d64_norm1","sha256":["4a41e78447d74f4aa32d5bd73729ea8f0df70d9060c88041ce9eaa11da398a0c"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g32_d32_norm0","sha256":["1ff52f2f7933fb2a19fda3b382d7a926cff03ea69632d2372a98c0b68150910a"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g32_d32_norm1","sha256":["1ff52f2f7933fb2a19fda3b382d7a926cff03ea69632d2372a98c0b68150910a"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g32_d64_norm0","sha256":["90ed60b9ac42bd4acc2d096cffce5371289fba4578a83626e1cfe5c979918c86"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g32_d64_norm1","sha256":["90ed60b9ac42bd4acc2d096cffce5371289fba4578a83626e1cfe5c979918c86"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g64_d32_norm0","sha256":["c02b4bf7305d485c3448b65b1ff88f6d1a68f49b223ecb0ec67a8868378f3a62"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g64_d32_norm1","sha256":["c02b4bf7305d485c3448b65b1ff88f6d1a68f49b223ecb0ec67a8868378f3a62"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g64_d64_norm0","sha256":["178683e634d47d934f2e67c19bcfa3baf1edf61a000fd8fc1a81e5fcbe6ce61e"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t2_e16_k2560_i640_g64_d64_norm1","sha256":["178683e634d47d934f2e67c19bcfa3baf1edf61a000fd8fc1a81e5fcbe6ce61e"],"tokens":2,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g32_d32_norm0","sha256":["ad2b235d72ed937e078c9c1be5e5a1d2e1795fea2839c1b11b95b4d39723b5b9"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g32_d32_norm1","sha256":["ad2b235d72ed937e078c9c1be5e5a1d2e1795fea2839c1b11b95b4d39723b5b9"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g32_d64_norm0","sha256":["2980a4789d7c4bc99e584f035610f11855c064abc2127844ac3d2b41954f0dd5"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g32_d64_norm1","sha256":["2980a4789d7c4bc99e584f035610f11855c064abc2127844ac3d2b41954f0dd5"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g64_d32_norm0","sha256":["fe0794848363f60cf8cc9320dc0ace7201597558172f46b82e41f094c5299544"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g64_d32_norm1","sha256":["fe0794848363f60cf8cc9320dc0ace7201597558172f46b82e41f094c5299544"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g64_d64_norm0","sha256":["120948c72bbf9ca61c1ee9fe6803ec185baaf2744895939797caf6d67e4714e6"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t3_e16_k2560_i640_g64_d64_norm1","sha256":["120948c72bbf9ca61c1ee9fe6803ec185baaf2744895939797caf6d67e4714e6"],"tokens":3,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g32_d32_norm0","sha256":["662dc99d0639fd7d2009efad492e718004be38ea7c5c827d6c8ec6c628f29d9b"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g32_d32_norm1","sha256":["662dc99d0639fd7d2009efad492e718004be38ea7c5c827d6c8ec6c628f29d9b"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g32_d64_norm0","sha256":["9f02217ac1d4ed5b7ff759203d9bc067c92ae7bd05b4a9d7b9d912d31dfc316a"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g32_d64_norm1","sha256":["9f02217ac1d4ed5b7ff759203d9bc067c92ae7bd05b4a9d7b9d912d31dfc316a"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g64_d32_norm0","sha256":["0dff83965ae934291f3d36068b1effc8aac6d0a201548ca6a9ec36a572287bcf"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g64_d32_norm1","sha256":["0dff83965ae934291f3d36068b1effc8aac6d0a201548ca6a9ec36a572287bcf"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g64_d64_norm0","sha256":["1943156fb2b82fe342d7c14fa562cda8fd2eba0eee8b2d025fb2490c58ae6b63"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e16_k2560_i640_g64_d64_norm1","sha256":["1943156fb2b82fe342d7c14fa562cda8fd2eba0eee8b2d025fb2490c58ae6b63"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g32_d32_norm0","sha256":["3f6c41cd2243dd1b3659fc2f37cf9b2f22b6a6c4bbc372df0dc4db0ed938093f"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g32_d32_norm1","sha256":["3f6c41cd2243dd1b3659fc2f37cf9b2f22b6a6c4bbc372df0dc4db0ed938093f"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g32_d64_norm0","sha256":["be2a2e5574407168b9666f60051122e9bbf4f775ab0089352b26fcf16fe46f67"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g32_d64_norm1","sha256":["be2a2e5574407168b9666f60051122e9bbf4f775ab0089352b26fcf16fe46f67"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g64_d32_norm0","sha256":["9c0e2b272a3ad7c3534a174606c7646e163ac9d40bffce1668197730ebb2349b"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g64_d32_norm1","sha256":["9c0e2b272a3ad7c3534a174606c7646e163ac9d40bffce1668197730ebb2349b"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g64_d64_norm0","sha256":["0493818bdbaefb4cbfd666a75f142d852a9862ed98eb86838e6ee8624e7c8d7f"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t5_e16_k2560_i640_g64_d64_norm1","sha256":["0493818bdbaefb4cbfd666a75f142d852a9862ed98eb86838e6ee8624e7c8d7f"],"tokens":5,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g32_d32_norm0","sha256":["a5b347abf3773b527eb6b97032197e66b06e5cea501955c2b1715044b1be0546"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g32_d32_norm1","sha256":["a5b347abf3773b527eb6b97032197e66b06e5cea501955c2b1715044b1be0546"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g32_d64_norm0","sha256":["eb2731451d21922eb3fe2b965ccacd9cccc01205b9973b2f309e4b1c12f3d872"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g32_d64_norm1","sha256":["eb2731451d21922eb3fe2b965ccacd9cccc01205b9973b2f309e4b1c12f3d872"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g64_d32_norm0","sha256":["1301dec15b0398d11ed5008c24c98747379902cb57a36ad69ef571dc45f42b69"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g64_d32_norm1","sha256":["1301dec15b0398d11ed5008c24c98747379902cb57a36ad69ef571dc45f42b69"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g64_d64_norm0","sha256":["b48cbf46219149bb9d81b76bc2d826dc7f0597eedbd01e38ba8de914f8d3d6ab"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t7_e16_k2560_i640_g64_d64_norm1","sha256":["b48cbf46219149bb9d81b76bc2d826dc7f0597eedbd01e38ba8de914f8d3d6ab"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g32_d32_norm0","sha256":["7b841b90c73701b0064798fbad1fd245bfdb6ee8cf7695640e7b06e7a08d10ea"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g32_d32_norm1","sha256":["7b841b90c73701b0064798fbad1fd245bfdb6ee8cf7695640e7b06e7a08d10ea"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g32_d64_norm0","sha256":["a5777116c922a0406bb19b64b5df7b484c18664c029ab3aeb6164cc5992e3602"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g32_d64_norm1","sha256":["a5777116c922a0406bb19b64b5df7b484c18664c029ab3aeb6164cc5992e3602"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g64_d32_norm0","sha256":["9106abce25e160d38e86848c635f51efdb4ca75cc433bdb231f8d6f513db9dee"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g64_d32_norm1","sha256":["9106abce25e160d38e86848c635f51efdb4ca75cc433bdb231f8d6f513db9dee"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g64_d64_norm0","sha256":["9dc8cee1618c9f0dd46426e6750c0c6b955613a24f7c43340b4efac0b16fa522"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t1_e512_k2560_i640_g64_d64_norm1","sha256":["9dc8cee1618c9f0dd46426e6750c0c6b955613a24f7c43340b4efac0b16fa522"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g32_d32_norm0","sha256":["57713abc4f86e9f8989119ac20e8ff980a86c60ba3778f546dcd25e898960d19"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g32_d32_norm1","sha256":["6e3eb5ad50e889460cd1852754ae69c15df80f086796baf46b28a4c87375201e"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g32_d64_norm0","sha256":["3405b185e32687f5c1527f7518be8a379dd55958d5a61c60e8e3ddfa3a3a908e"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g32_d64_norm1","sha256":["4d288651a339d243e829004bb7c559cdd69e8fc325d52a2f77214a6fead26b8c"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g64_d32_norm0","sha256":["b671efa8694e647e96f686b555b57943d033fadd2a31f09c43b8c13e0076ef51"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g64_d32_norm1","sha256":["1ae6a964705287bb2b381b35feb8acb6b99c5365cfdfab9ea737ec33fb80d7ba"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":32,"normalize":true,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g64_d64_norm0","sha256":["dd3f39b7b3a8fa99ae28d682c197112141d60ae5d93ee96d98359d0a00366035"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true} +{"kernel":"moe_fused_t4_e512_k2560_i640_g64_d64_norm1","sha256":["e12ed4ebe80bebe7cef72c5efe2f9b03beaa9f330e74fa07f5dd9029e6d82b21"],"tokens":4,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true} +{"kernel":"moe_separate_e1_s0_t1_e16_k2560_i640_g64_d64_norm0","sha256":["e97f9b7daee8faaa90858fb29a7c8aac4823e8cbb9a2f67c58b46fd10a4821dc"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e16_k2560_i640_g64_d64_norm1","sha256":["e97f9b7daee8faaa90858fb29a7c8aac4823e8cbb9a2f67c58b46fd10a4821dc"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e16_k2560_i640_g32_d64_norm0","sha256":["f93930b1593f39f5fae050bf4dbc7152796edd7ba71f1491fbae2b18ae28b967"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e16_k2560_i640_g32_d64_norm1","sha256":["f93930b1593f39f5fae050bf4dbc7152796edd7ba71f1491fbae2b18ae28b967"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t1_e16_k2560_i640_g64_d64_norm0","sha256":["ef07d9bcc560c4db14095aea06dc8dddf8b3ef3f676ba2eac8f8c63462e74523"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e16_k2560_i640_g64_d64_norm1","sha256":["ef07d9bcc560c4db14095aea06dc8dddf8b3ef3f676ba2eac8f8c63462e74523"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e16_k2560_i640_g32_d64_norm0","sha256":["3c1a4f8376b6c216d446696942f6db86c7b7afab6dde7cb64ca52b1565c945d5"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e16_k2560_i640_g32_d64_norm1","sha256":["3c1a4f8376b6c216d446696942f6db86c7b7afab6dde7cb64ca52b1565c945d5"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e16_k2560_i640_g64_d64_norm0","sha256":["fe2dc6c6588e9d723539b1c7b321534e27b471f0bce1d252b33c9f85a81beb48"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e16_k2560_i640_g64_d64_norm1","sha256":["fe2dc6c6588e9d723539b1c7b321534e27b471f0bce1d252b33c9f85a81beb48"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e16_k2560_i640_g32_d64_norm0","sha256":["84882064cfd0a857203552ea9d864503ec5a84143fe6a77e2c2e10e218a2fd0e"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e16_k2560_i640_g32_d64_norm1","sha256":["84882064cfd0a857203552ea9d864503ec5a84143fe6a77e2c2e10e218a2fd0e"],"tokens":1,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t4_e16_k2560_i640_g64_d64_norm0","sha256":["cf2f6134c07222c6a3df24cc0c705c6bdc3f806985abccc9e08d4126041b3313"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t4_e16_k2560_i640_g64_d64_norm1","sha256":["cf2f6134c07222c6a3df24cc0c705c6bdc3f806985abccc9e08d4126041b3313"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t4_e16_k2560_i640_g32_d64_norm0","sha256":["01dd75a8c72bd096da8aa2ab5a992a696d235ae03c2d4ec0614566ccec9014df"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t4_e16_k2560_i640_g32_d64_norm1","sha256":["01dd75a8c72bd096da8aa2ab5a992a696d235ae03c2d4ec0614566ccec9014df"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t4_e16_k2560_i640_g64_d64_norm0","sha256":["4a13655aa0580da17ddae75ec723228ff66cf31decb3ccd15665d8149ec2bbe7"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t4_e16_k2560_i640_g64_d64_norm1","sha256":["4a13655aa0580da17ddae75ec723228ff66cf31decb3ccd15665d8149ec2bbe7"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t4_e16_k2560_i640_g32_d64_norm0","sha256":["0003b03bc76267261360c773926926a027a321f73808accac0a92792561f7e80"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t4_e16_k2560_i640_g32_d64_norm1","sha256":["0003b03bc76267261360c773926926a027a321f73808accac0a92792561f7e80"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t4_e16_k2560_i640_g64_d64_norm0","sha256":["ee0fe8fdd15bb1d2b62d4c29a4f723b44baa63e08d2ed8bb4fffa8c79a8a6ff8"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t4_e16_k2560_i640_g64_d64_norm1","sha256":["ee0fe8fdd15bb1d2b62d4c29a4f723b44baa63e08d2ed8bb4fffa8c79a8a6ff8"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t4_e16_k2560_i640_g32_d64_norm0","sha256":["632cac369b4fe37b6dff7a7b543dfea8dcff49be5774a0e2578fc58b3d15e81f"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t4_e16_k2560_i640_g32_d64_norm1","sha256":["632cac369b4fe37b6dff7a7b543dfea8dcff49be5774a0e2578fc58b3d15e81f"],"tokens":4,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t6_e16_k2560_i640_g64_d64_norm0","sha256":["7d4028c38007db670b2131bace71838b923f93594c9f1f6b66bcf76b950a0490"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t6_e16_k2560_i640_g64_d64_norm1","sha256":["7d4028c38007db670b2131bace71838b923f93594c9f1f6b66bcf76b950a0490"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t6_e16_k2560_i640_g32_d64_norm0","sha256":["cd490b73b8e52321c33c0cc2ca3c37d439d5011a66b97de04a12998e588a259c"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t6_e16_k2560_i640_g32_d64_norm1","sha256":["cd490b73b8e52321c33c0cc2ca3c37d439d5011a66b97de04a12998e588a259c"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t6_e16_k2560_i640_g64_d64_norm0","sha256":["ead877a2b34853c717e713dd425b70db042e396e1988999b68d279c7a22d312b"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t6_e16_k2560_i640_g64_d64_norm1","sha256":["ead877a2b34853c717e713dd425b70db042e396e1988999b68d279c7a22d312b"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t6_e16_k2560_i640_g32_d64_norm0","sha256":["2c11c2ce151d0d40db6aa75f14ba189291d23674ea46f6b038ba0ac9b0218803"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t6_e16_k2560_i640_g32_d64_norm1","sha256":["2c11c2ce151d0d40db6aa75f14ba189291d23674ea46f6b038ba0ac9b0218803"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t6_e16_k2560_i640_g64_d64_norm0","sha256":["4645145d82689a8667d34dfc9a626b09133643d9d4226c3372b7a49bc9253ee2"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t6_e16_k2560_i640_g64_d64_norm1","sha256":["4645145d82689a8667d34dfc9a626b09133643d9d4226c3372b7a49bc9253ee2"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t6_e16_k2560_i640_g32_d64_norm0","sha256":["5095029f4b3d4e17763b9cea8274e8a282c4f208e9bf85dad15e69865e1a101a"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t6_e16_k2560_i640_g32_d64_norm1","sha256":["5095029f4b3d4e17763b9cea8274e8a282c4f208e9bf85dad15e69865e1a101a"],"tokens":6,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t7_e16_k2560_i640_g64_d64_norm0","sha256":["77451a65f7c2e6427438714703eb5ae990759b171c0525a0cb4f3008df655da8"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e16_k2560_i640_g64_d64_norm1","sha256":["77451a65f7c2e6427438714703eb5ae990759b171c0525a0cb4f3008df655da8"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e16_k2560_i640_g32_d64_norm0","sha256":["432895aa6bcfbdb03ca2ae738d1a61445077b24ee7f15e3e0ad28f6cdd7320af"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e16_k2560_i640_g32_d64_norm1","sha256":["432895aa6bcfbdb03ca2ae738d1a61445077b24ee7f15e3e0ad28f6cdd7320af"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t7_e16_k2560_i640_g64_d64_norm0","sha256":["35cac373e9f5cca41f0c4d13afeb3bdbcc4c1981294504cf97866181d1831af8"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e16_k2560_i640_g64_d64_norm1","sha256":["35cac373e9f5cca41f0c4d13afeb3bdbcc4c1981294504cf97866181d1831af8"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e16_k2560_i640_g32_d64_norm0","sha256":["5b7529806bdf50c1ed4ef4828232b568663ef9db3380a4b3c6eecb5ce57a6621"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e16_k2560_i640_g32_d64_norm1","sha256":["5b7529806bdf50c1ed4ef4828232b568663ef9db3380a4b3c6eecb5ce57a6621"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e16_k2560_i640_g64_d64_norm0","sha256":["1b255dd39dd70436d7980e54d6e5ec018237ad3babab8178b332f77b67346345"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e16_k2560_i640_g64_d64_norm1","sha256":["1b255dd39dd70436d7980e54d6e5ec018237ad3babab8178b332f77b67346345"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e16_k2560_i640_g32_d64_norm0","sha256":["72ba2a55cbc595e4ec92c59e44ddf50c0ff39b0bf245b3b619f1c4ebabb073df"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e16_k2560_i640_g32_d64_norm1","sha256":["72ba2a55cbc595e4ec92c59e44ddf50c0ff39b0bf245b3b619f1c4ebabb073df"],"tokens":7,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t25_e16_k2560_i640_g64_d64_norm0","sha256":["0ef0d51e48e7e5b3e4670d4424c7f65deb8c1fbab8108922df7f6f823aeb7fa3"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t25_e16_k2560_i640_g64_d64_norm1","sha256":["0ef0d51e48e7e5b3e4670d4424c7f65deb8c1fbab8108922df7f6f823aeb7fa3"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t25_e16_k2560_i640_g32_d64_norm0","sha256":["5c7b427e9485c6eceb121db8fe0a4deb683267453c74456900f46365c96febe0"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t25_e16_k2560_i640_g32_d64_norm1","sha256":["5c7b427e9485c6eceb121db8fe0a4deb683267453c74456900f46365c96febe0"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t25_e16_k2560_i640_g64_d64_norm0","sha256":["a8a8d268ca6889c6ab81968e979c8a54b35255eb917698afd617549cfcd30f31"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t25_e16_k2560_i640_g64_d64_norm1","sha256":["a8a8d268ca6889c6ab81968e979c8a54b35255eb917698afd617549cfcd30f31"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t25_e16_k2560_i640_g32_d64_norm0","sha256":["8f9f95073a44f64cccc9d2a1978f0e567378f83259601a89f53ffa516278796e"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t25_e16_k2560_i640_g32_d64_norm1","sha256":["8f9f95073a44f64cccc9d2a1978f0e567378f83259601a89f53ffa516278796e"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t25_e16_k2560_i640_g64_d64_norm0","sha256":["d3cc651528b4a33028610129c3258bed61bafd8ffc8b6019f73c0235b1cf449c"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t25_e16_k2560_i640_g64_d64_norm1","sha256":["d3cc651528b4a33028610129c3258bed61bafd8ffc8b6019f73c0235b1cf449c"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t25_e16_k2560_i640_g32_d64_norm0","sha256":["6dc169d84611cabd62959ef826028f73f97da855db1cef942d0b8dc32610dbea"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t25_e16_k2560_i640_g32_d64_norm1","sha256":["6dc169d84611cabd62959ef826028f73f97da855db1cef942d0b8dc32610dbea"],"tokens":25,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t2048_e16_k2560_i640_g64_d64_norm0","sha256":["f8ab0ac429608436e31859b0cb13f973b4303e720343ff09d11b57e36119a288"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e16_k2560_i640_g64_d64_norm1","sha256":["f8ab0ac429608436e31859b0cb13f973b4303e720343ff09d11b57e36119a288"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e16_k2560_i640_g32_d64_norm0","sha256":["c8ac9747b6cc731ba530a43ee7aca008fb67507051d4eddf8eda8ff8aab9d86b"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e16_k2560_i640_g32_d64_norm1","sha256":["c8ac9747b6cc731ba530a43ee7aca008fb67507051d4eddf8eda8ff8aab9d86b"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t2048_e16_k2560_i640_g64_d64_norm0","sha256":["ce4ea3590cf914a85fe9a1bf47a081b179bf1faef5121ee99f0aec334201c0ad"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e16_k2560_i640_g64_d64_norm1","sha256":["ce4ea3590cf914a85fe9a1bf47a081b179bf1faef5121ee99f0aec334201c0ad"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e16_k2560_i640_g32_d64_norm0","sha256":["102d0814fe9c5b54e7ea20fe689b234345087b2fb81ede86c348d174f05b2007"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e16_k2560_i640_g32_d64_norm1","sha256":["102d0814fe9c5b54e7ea20fe689b234345087b2fb81ede86c348d174f05b2007"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e16_k2560_i640_g64_d64_norm0","sha256":["60be47f0619db819ddacf53819ee26ea2ed83fa776eedda60621292f3d888acd"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e16_k2560_i640_g64_d64_norm1","sha256":["60be47f0619db819ddacf53819ee26ea2ed83fa776eedda60621292f3d888acd"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e16_k2560_i640_g32_d64_norm0","sha256":["0229ae516cc7df398bf01491f4011efe93aa8a01bd101a32f4af8aa72bd769b2"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e16_k2560_i640_g32_d64_norm1","sha256":["0229ae516cc7df398bf01491f4011efe93aa8a01bd101a32f4af8aa72bd769b2"],"tokens":2048,"experts":16,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t1_e512_k2560_i640_g64_d64_norm0","sha256":["3924612faae4ca0997ef3ebb7588eab1a0c6f6d0e825f1430a52fb3f98d055e9"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e512_k2560_i640_g64_d64_norm1","sha256":["3924612faae4ca0997ef3ebb7588eab1a0c6f6d0e825f1430a52fb3f98d055e9"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e512_k2560_i640_g32_d64_norm0","sha256":["815b457c41db5239fbfa94a592fecfb5adc1f3fce8abbe59647557aa5c6394ac"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t1_e512_k2560_i640_g32_d64_norm1","sha256":["815b457c41db5239fbfa94a592fecfb5adc1f3fce8abbe59647557aa5c6394ac"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t1_e512_k2560_i640_g64_d64_norm0","sha256":["8f1a1afa05b0df2515ad5a5a6d30fe802dcc40d00867a6d86c770d4dd27169a2"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e512_k2560_i640_g64_d64_norm1","sha256":["8f1a1afa05b0df2515ad5a5a6d30fe802dcc40d00867a6d86c770d4dd27169a2"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e512_k2560_i640_g32_d64_norm0","sha256":["493e7fd03ebd1654161c71c881e88ec51c3384b0f476a770a1e2890629bdaa20"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t1_e512_k2560_i640_g32_d64_norm1","sha256":["493e7fd03ebd1654161c71c881e88ec51c3384b0f476a770a1e2890629bdaa20"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e512_k2560_i640_g64_d64_norm0","sha256":["d9417c1c40770ea9461bf4b4b17fc1dc4c9c237bc8344bef8eb9716377cd1816"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e512_k2560_i640_g64_d64_norm1","sha256":["d9417c1c40770ea9461bf4b4b17fc1dc4c9c237bc8344bef8eb9716377cd1816"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e512_k2560_i640_g32_d64_norm0","sha256":["2d25b90dad92c7b3b43015a1466614ea32152ace6016bb1c819e405a38d757a9"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t1_e512_k2560_i640_g32_d64_norm1","sha256":["2d25b90dad92c7b3b43015a1466614ea32152ace6016bb1c819e405a38d757a9"],"tokens":1,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t7_e512_k2560_i640_g64_d64_norm0","sha256":["dbda7e748221adf654dc17932450305822fd12fd87bd495b88ce73bc87f44802"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e512_k2560_i640_g64_d64_norm1","sha256":["e1e6f54a449f2d7d330e6334e312c0788533172da5950e50d9c8e9c23a353f7b"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e512_k2560_i640_g32_d64_norm0","sha256":["aac2a196df076e4939c552902f6d8533c3f01ac6d2a2769188aac6116040fc58"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t7_e512_k2560_i640_g32_d64_norm1","sha256":["6a50b5deb4bff5fde00b26421c8738d0791bbcbeeaa1c26f66298fe73e4eef18"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t7_e512_k2560_i640_g64_d64_norm0","sha256":["dcac8dcb14d06a3873315a11170ece4ca69d5c834330faf07f268e0c01ececd4"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e512_k2560_i640_g64_d64_norm1","sha256":["0f209796eb97c193a785032111b2776ef079ba7f5a85ffdf57560197bed17a72"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e512_k2560_i640_g32_d64_norm0","sha256":["e5ae583604a2cddc19322dbf2480f6d396cef5df8b6cba93c9971ead7a7f2802"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t7_e512_k2560_i640_g32_d64_norm1","sha256":["067032b4221a67dd7a6c34cba7dede3d4ab0ef61d53f842e6ed9cf3025640e5c"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e512_k2560_i640_g64_d64_norm0","sha256":["83c011e4e9a6c680dd77e78ae05c4055f1b0d68b1cc56e21047aaf62fb369676"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e512_k2560_i640_g64_d64_norm1","sha256":["6f028734aecad95510d17278636791907bf72d78d211655fa84e02df66cf9a87"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e512_k2560_i640_g32_d64_norm0","sha256":["1efb1c447e2fec5f7a42e4b62f582a797f0a8b3483206ef901c10259ba4a3745"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t7_e512_k2560_i640_g32_d64_norm1","sha256":["8d25deb02b7a0f121530cf456c0c8508c2ace0e9a63933280bb7a03b0c4fc60c"],"tokens":7,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s0_t2048_e512_k2560_i640_g64_d64_norm0","sha256":["5483d153d9119eec87673b8788495ad45036875f3b4da3fa551cc7a37348c934"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e512_k2560_i640_g64_d64_norm1","sha256":["43d109d2cba8f33a2aa43ea262315cb17817a32d6a1e6ddfd8561256fa72f5ed"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e512_k2560_i640_g32_d64_norm0","sha256":["162f9fd2bc0ec11b52f1f23d86b1107c0c3436ce7b49d6d77bd7afb4fce9defc"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e1_s0_t2048_e512_k2560_i640_g32_d64_norm1","sha256":["3d02292e7072ccdb1ec49520b794d8db11a057d13cb1e690af3b9423e32c87be"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":false} +{"kernel":"moe_separate_e0_s1_t2048_e512_k2560_i640_g64_d64_norm0","sha256":["ea518bf2f6a3e54d1d5079b5f1497f7021191ac8f7d231a44488224e2107ef8a"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e512_k2560_i640_g64_d64_norm1","sha256":["4548283b8dd8f507478df631489ed82dd5ec2c603f9a1c550dd1d1061a668fdb"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e512_k2560_i640_g32_d64_norm0","sha256":["afaff11bac0590683009815306308e469be53449175729b09e4429934e4608f7"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e0_s1_t2048_e512_k2560_i640_g32_d64_norm1","sha256":["7888018c9612ae6db131c95bbf81b9d714b2cae0065dc717c8473e0e8d419505"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":false,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e512_k2560_i640_g64_d64_norm0","sha256":["8316e21c053969aabcff21f6f2477081519829bfee39249647176ba8fe7c2aa3"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e512_k2560_i640_g64_d64_norm1","sha256":["e8714b9497c68168a61ee2c991e044b3af5fd134672d76de18d6b3a6ca4af883"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":64,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e512_k2560_i640_g32_d64_norm0","sha256":["9e2aca3bd908d0ca18be13e1c4b5f6c74ea0441797e21b157050d05864f60ae8"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":false,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"moe_separate_e1_s1_t2048_e512_k2560_i640_g32_d64_norm1","sha256":["f4d3758289c0252dcf035d9b7b6fca0b630e5836d18c71426697a77e28a16546"],"tokens":2048,"experts":512,"k":2560,"intermediate":640,"gu_group":32,"down_group":64,"normalize":true,"fused":true,"separate_experts":true,"separate_shared":true} +{"kernel":"groupnorm_r1_w10240_g2560","sha256":["87980215e9bcd8cec010d89ae40b160b7353e5ec303397e21e25f91d5f5f606c"],"rows":1,"width":10240,"group":2560} +{"kernel":"groupnorm_r4_w10240_g2560","sha256":["4558d3e927968853e95b44124fc27a1a99652bca3a8cc28a3f8141e19756ccf6"],"rows":4,"width":10240,"group":2560} +{"kernel":"groupnorm_r2048_w10240_g2560","sha256":["7c9739d43a6c4de2262eaf6eb8fbd680bd4f81c3e69179e1bd221c6ac099ef05"],"rows":2048,"width":10240,"group":2560} +{"kernel":"groupnorm_r1_w65534_g2","sha256":["ab9d681d3da343a03425a0737d714154a0c3faee147b5b7fb9589134c8ec4735"],"rows":1,"width":65534,"group":2} +{"kernel":"groupnorm_r1_w65536_g128","sha256":["7e96b9f01ac6d0100b3fb26e6eeda386a3e205d4d51b60cd67c216adda8099e1"],"rows":1,"width":65536,"group":128} +{"kernel":"groupnorm_r1_w65538_g2","sha256":["cb112b7821a93a64eea0a1d7650772829b100af5e6a28f8703624ed272b3178d"],"rows":1,"width":65538,"group":2} +{"kernel":"groupnorm_r3_w32768_g8192","sha256":["0bfecbff1f406a1bcbf93fcb258f233fa7e404060f4e2fdc55cf313b2d5d8732"],"rows":3,"width":32768,"group":8192} +{"kernel":"groupnorm_r1_w256_g128","sha256":["5b5aa4d11b023bc8bd268d953a95e3e7e04738636d24e7a0ae26f3e607fa6f5c"],"rows":1,"width":256,"group":128} +{"kernel":"groupnorm_r7_w128_g128","sha256":["2d7b20dadbf736cf0b62841a0033ddc2b23f6bd3a4c87a7a591a35845a32e558"],"rows":7,"width":128,"group":128} +{"kernel":"groupnorm_r3_w16384_g4096","sha256":["d230dc363c55e8ca4f38fccce17e6f7b02ddebdafefc7321d67f2633bd74b294"],"rows":3,"width":16384,"group":4096} +{"kernel":"gatednorm_t1_none","sha256":["4ccfb58e2eb46890d73b4b43ca0a58a744fa65696c585a2162da532f65f128da"],"tokens":1,"mode":"none"} +{"kernel":"gatednorm_t1_contiguous","sha256":["d67da74d476e41052b359b4878fb477e915153ca8b2fb2cefcef14465eec60fa"],"tokens":1,"mode":"contiguous"} +{"kernel":"gatednorm_t1_projected","sha256":["0ae3b1cc1591be76504a9a6a7cc09f04f3d1988504639e4d3c2cc3cf1fae2794"],"tokens":1,"mode":"projected"} +{"kernel":"gatednorm_t4_none","sha256":["9515d7b3fb64e14f6fa510f2838892c5d38b7ae4c51fc241f52efdb64ea329f8"],"tokens":4,"mode":"none"} +{"kernel":"gatednorm_t4_contiguous","sha256":["cedf0901381b54037bb27f5fd812cab4d44a3debba1c0cc41083f55ac5944aff"],"tokens":4,"mode":"contiguous"} +{"kernel":"gatednorm_t4_projected","sha256":["ad93ba907fa22b64bb3cc50ba5a662903ee2e7ec8fd53e41121580651c4f9f48"],"tokens":4,"mode":"projected"} +{"kernel":"gatednorm_t7_none","sha256":["a6ac41de04b581e027f9fc461ab4d3eb25cf6ef63808a7da3c267c37737c0727"],"tokens":7,"mode":"none"} +{"kernel":"gatednorm_t7_contiguous","sha256":["7863b2b24f33fe66256765e5f0e0f9a388a931695cad200310889854e026af1a"],"tokens":7,"mode":"contiguous"} +{"kernel":"gatednorm_t7_projected","sha256":["2071bdb66aceb28542c955a63bec1575776acce00902713f5c911491271735d0"],"tokens":7,"mode":"projected"} +{"kernel":"gatednorm_t11_none","sha256":["3c1cf732396cdf7b5b3612961ee1b9f84b721baa3e965aab68310304e655c83b"],"tokens":11,"mode":"none"} +{"kernel":"gatednorm_t11_contiguous","sha256":["5d1868ba3b85c4710a5932e3db222b9a1f45def75c94239627fb4dd2a55e0daf"],"tokens":11,"mode":"contiguous"} +{"kernel":"gatednorm_t11_projected","sha256":["f566ee7754fe8f5cb2d44b28f6d16181f7cc96b33da9742a06f582cb95630d5b"],"tokens":11,"mode":"projected"} +{"kernel":"gatednorm_t2048_none","sha256":["352620959fd6cbfd0b7ad9b9f02603db3531349bca30f2e2885f6e97087520bb"],"tokens":2048,"mode":"none"} +{"kernel":"gatednorm_t2048_contiguous","sha256":["e1f663a167b28f3bc1571acfea9bb3ce35ab2dbf2edd57d0fe4df3b6c07b0273"],"tokens":2048,"mode":"contiguous"} +{"kernel":"gatednorm_t2048_projected","sha256":["1c8010482c295168b7622c5d164544c5650653ad3123f26372590dc92579cd1c"],"tokens":2048,"mode":"projected"} +{"kernel":"delta_update_r1_stride48_initial0_mask0_step0","sha256":["de492e4d0bebf7e98396aaaab28dd425ab57fb758dab34833db610d4367e6c60","fa3cf4d4874dac64ec482674b1f8e3c5a9264318553481fcda26cf3faa1ecb76","d96a566f0a0a23b55c0ba73ccf35bcbfab1ed0975a9f4dd93afb5a706be0a1bc","f775738dd4a9abffbc4aef00e21caaf039765e0170dbf10793c9a9deb6a416ad"],"rows":1,"stride":48,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r1_stride48_initial0_mask0_step1","sha256":["bda3ee7fb3814a267bb5362f2ee0bd0da48c0914a95256d0a68fc3140fc17813","c2de14b065d54fb85edd08be695de2bdd4532f5d78c4e734f02c573489bbeff0","2388e517237f25e7a450fbb5d4dd900d41f7fb5647ba9e30d782fa24d8c45e45","49d77eb164bf8fe0e051b706704d3988fdcfcebd88ed7dd459cd32268af3ec9d"],"rows":1,"stride":48,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r1_stride48_initial0_mask1_step0","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","d96a566f0a0a23b55c0ba73ccf35bcbfab1ed0975a9f4dd93afb5a706be0a1bc","f775738dd4a9abffbc4aef00e21caaf039765e0170dbf10793c9a9deb6a416ad"],"rows":1,"stride":48,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r1_stride48_initial0_mask1_step1","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","2388e517237f25e7a450fbb5d4dd900d41f7fb5647ba9e30d782fa24d8c45e45","49d77eb164bf8fe0e051b706704d3988fdcfcebd88ed7dd459cd32268af3ec9d"],"rows":1,"stride":48,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r1_stride48_initial1_mask0_step0","sha256":["2b10ca4c27d25f4c5d66923ae83df3297c20e6ee5f0570c57880434bb8fcf4f0","31410d7fbe905eb75f7cf21530641f897782ebc43b88b4019054a9aea3199956","d96a566f0a0a23b55c0ba73ccf35bcbfab1ed0975a9f4dd93afb5a706be0a1bc","f775738dd4a9abffbc4aef00e21caaf039765e0170dbf10793c9a9deb6a416ad"],"rows":1,"stride":48,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r1_stride48_initial1_mask0_step1","sha256":["d64df3525960392b6151a5ddc5e60d9cb7e1fcff16439d76d9ff0bdf6bce2a41","818549da3b8cb8256529736a1db90ef80f0f64653d5c60e1d650db4e54843b6b","2388e517237f25e7a450fbb5d4dd900d41f7fb5647ba9e30d782fa24d8c45e45","49d77eb164bf8fe0e051b706704d3988fdcfcebd88ed7dd459cd32268af3ec9d"],"rows":1,"stride":48,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r1_stride48_initial1_mask1_step0","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","d96a566f0a0a23b55c0ba73ccf35bcbfab1ed0975a9f4dd93afb5a706be0a1bc","f775738dd4a9abffbc4aef00e21caaf039765e0170dbf10793c9a9deb6a416ad"],"rows":1,"stride":48,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r1_stride48_initial1_mask1_step1","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","2388e517237f25e7a450fbb5d4dd900d41f7fb5647ba9e30d782fa24d8c45e45","49d77eb164bf8fe0e051b706704d3988fdcfcebd88ed7dd459cd32268af3ec9d"],"rows":1,"stride":48,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r1_stride16480_initial0_mask0_step0","sha256":["e7729d482681d52909f6a1ab0d6566fa2fc8a41639d87627833c8d9f89874697","fdb6f41efd3dd7c4806e0acb8034911ac65e21762b07ebfb7248b32b39c5b0cd","331269e5c45ff590f9ed1e311ba0e6664ba03e512892e41d70b9b4cc7c42330e","6a3fa64c35f876c01e4264b1e4422ce3a7a2a5614f1b314c67bacf4dd92edef8"],"rows":1,"stride":16480,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r1_stride16480_initial0_mask0_step1","sha256":["3050b63fbc04b76e865976a3073aa4d108901bca3a9a8b3224053e3c608953d9","374497dac2fc1a46071877d507fd67734ee58453a30fed776b28b298d01aa582","7351dd07ae4fe65e9488d4866b1e0242b93b55bf196629d67851a256ed2b7d35","5ab52bed4127a38cc37d0ebe2a897c5097cf75fe543f90444a2988fb3ea07f08"],"rows":1,"stride":16480,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r1_stride16480_initial0_mask1_step0","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","331269e5c45ff590f9ed1e311ba0e6664ba03e512892e41d70b9b4cc7c42330e","6a3fa64c35f876c01e4264b1e4422ce3a7a2a5614f1b314c67bacf4dd92edef8"],"rows":1,"stride":16480,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r1_stride16480_initial0_mask1_step1","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","7351dd07ae4fe65e9488d4866b1e0242b93b55bf196629d67851a256ed2b7d35","5ab52bed4127a38cc37d0ebe2a897c5097cf75fe543f90444a2988fb3ea07f08"],"rows":1,"stride":16480,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r1_stride16480_initial1_mask0_step0","sha256":["d969658b3e76178798120ada076e90b1b9a4464c7d2669978caddb5b7f520846","e9bef7ed8183b2976e8c33366d4262af8300656be489cb24f13a8e5dc1d149f6","331269e5c45ff590f9ed1e311ba0e6664ba03e512892e41d70b9b4cc7c42330e","6a3fa64c35f876c01e4264b1e4422ce3a7a2a5614f1b314c67bacf4dd92edef8"],"rows":1,"stride":16480,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r1_stride16480_initial1_mask0_step1","sha256":["64e4261c58f107cbad0a8546445aca9ea62dfb98f6faee347fc7aa04c7d34d42","ba4ce70c42ecb0e530528960db608f1da82bcd2ffdd90be5a1726714ca61dc58","7351dd07ae4fe65e9488d4866b1e0242b93b55bf196629d67851a256ed2b7d35","5ab52bed4127a38cc37d0ebe2a897c5097cf75fe543f90444a2988fb3ea07f08"],"rows":1,"stride":16480,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r1_stride16480_initial1_mask1_step0","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","331269e5c45ff590f9ed1e311ba0e6664ba03e512892e41d70b9b4cc7c42330e","6a3fa64c35f876c01e4264b1e4422ce3a7a2a5614f1b314c67bacf4dd92edef8"],"rows":1,"stride":16480,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r1_stride16480_initial1_mask1_step1","sha256":["de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","7351dd07ae4fe65e9488d4866b1e0242b93b55bf196629d67851a256ed2b7d35","5ab52bed4127a38cc37d0ebe2a897c5097cf75fe543f90444a2988fb3ea07f08"],"rows":1,"stride":16480,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r4_stride48_initial0_mask0_step0","sha256":["67e1f90a41879381f736b752385bd57861a02e1b7675dbd8c3214dbe097fe2b1","c1cc95a15cb26803113bf7739a54c766fb57a137ef058ced607f1ba968fd7c1c","1ce068d0dcad30a81d5fcce1b683b968fb340c015103f8958075872a0aacd559","acd5778a1801e0374ce26b33a20665009fe30d861a22da1f9d9f8ddb8916da63"],"rows":4,"stride":48,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r4_stride48_initial0_mask0_step1","sha256":["babcc12a7abd61d28c0443e0ac30c3d0bac6030cd4c7021842058ce6215ae50d","d18b8819cce94058d31deb76b2c4812901daeaf963d0bc0d476e4b80274a6815","23120b7bb747aa8d6af54a435b6086cdf3d0985deab0c29de6c2687158e5c0a4","4146770bd1dcd475e66d8fc29eb8bafc3a72b03a6f8f968aa3fcd1d28ebcabb3"],"rows":4,"stride":48,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r4_stride48_initial0_mask1_step0","sha256":["2ee9c91c25ec21691b0f6b30e23c3f2239f575c2440b8372fbca26a8df663d0c","ab727eab2021e6c9564bb511c239f2e7052a6a0f5f50e4126469d5a9a9034189","1ce068d0dcad30a81d5fcce1b683b968fb340c015103f8958075872a0aacd559","acd5778a1801e0374ce26b33a20665009fe30d861a22da1f9d9f8ddb8916da63"],"rows":4,"stride":48,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r4_stride48_initial0_mask1_step1","sha256":["d38f7130ae3a3d6b938e0b84779700336bf78c75b0493812627e966ac03c93cf","148b09e68911c51449185d3c080df54304fa50902fd15e2f047427380aaaf4c9","23120b7bb747aa8d6af54a435b6086cdf3d0985deab0c29de6c2687158e5c0a4","4146770bd1dcd475e66d8fc29eb8bafc3a72b03a6f8f968aa3fcd1d28ebcabb3"],"rows":4,"stride":48,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r4_stride48_initial1_mask0_step0","sha256":["68bb4b63ba7c3b6b7a405678dfbedf6eb204e973a7a63947fc61dd9102cf3427","c5c93f80b18103233d212955efbcd82e8898e44bcae752be0d2155e8d86a0f50","1ce068d0dcad30a81d5fcce1b683b968fb340c015103f8958075872a0aacd559","acd5778a1801e0374ce26b33a20665009fe30d861a22da1f9d9f8ddb8916da63"],"rows":4,"stride":48,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r4_stride48_initial1_mask0_step1","sha256":["70dbc250b70b1d5660b6570b6d0e0169cb8910875de383a41a7d5dffb334694c","3c18d83c22b0a588804cbb71c65fcf04f18d6214e2334a636ad6d9bb2a3d8ff6","23120b7bb747aa8d6af54a435b6086cdf3d0985deab0c29de6c2687158e5c0a4","4146770bd1dcd475e66d8fc29eb8bafc3a72b03a6f8f968aa3fcd1d28ebcabb3"],"rows":4,"stride":48,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r4_stride48_initial1_mask1_step0","sha256":["7e62502bbcb2766e4659aad16e4071f2b8e2bf712a1ff7e81bfb8cad2b56c832","ee856039646fda330123eed81064681888aff303ea62677cc0d5990314ee982d","1ce068d0dcad30a81d5fcce1b683b968fb340c015103f8958075872a0aacd559","acd5778a1801e0374ce26b33a20665009fe30d861a22da1f9d9f8ddb8916da63"],"rows":4,"stride":48,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r4_stride48_initial1_mask1_step1","sha256":["519a37fdfee49bba6a4f2237b02714e435c4c343ea85862d917b831e107d8314","14c820213a85cab1111932f59f213151b2d0695d272543f15ba931e21582493c","23120b7bb747aa8d6af54a435b6086cdf3d0985deab0c29de6c2687158e5c0a4","4146770bd1dcd475e66d8fc29eb8bafc3a72b03a6f8f968aa3fcd1d28ebcabb3"],"rows":4,"stride":48,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r4_stride16480_initial0_mask0_step0","sha256":["96baccb49d591e8878d0c12c95af7dcaae70b36659f55d208dd3a88141cb3da7","fa7c0f7a5b1c04e9841a05f72803ae2d4f43f978a23a438a8f609a8682b14473","502c920c2301bba46571c7b706f02bc4fb09a6f7b8e30a2cb98ac6f3db9212d9","a15376453e57af9efbc63d97037d24296c3c3920498f4947fb5a503021b5b02a"],"rows":4,"stride":16480,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r4_stride16480_initial0_mask0_step1","sha256":["46d8e1dd1c2cb38707c19df6f8c6040f47633cb56ce6890caee36cf58bc8603f","210bb2aa0c2e3f7cbeb9911b7b66ed5fdd120730ef0602ec39ce3dfeb6d06a20","733655684667a2b67ea43731d5215fc11f5e94b996e4b85cb1bfd3d96dcb1aa2","833914cec110805ed1a2673193f866469c5b73bb2da0b65c9d3c62e10ac6817a"],"rows":4,"stride":16480,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r4_stride16480_initial0_mask1_step0","sha256":["8779734356d88f39d6056c649588b81afec28ad733bab5e9c8334c594624b37b","73ecca6e7d37646d74053abbfab5c948b75d62e309c4d1baf1df888c3fa19f2f","502c920c2301bba46571c7b706f02bc4fb09a6f7b8e30a2cb98ac6f3db9212d9","a15376453e57af9efbc63d97037d24296c3c3920498f4947fb5a503021b5b02a"],"rows":4,"stride":16480,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r4_stride16480_initial0_mask1_step1","sha256":["6e7d719cd72d64f9a921e851f6f01900e60520893befd50139e0e51999c4ba09","a1fe395b5863e03a5d8ecdedd09a756d610c5a114699b6bbe989707568784a9f","733655684667a2b67ea43731d5215fc11f5e94b996e4b85cb1bfd3d96dcb1aa2","833914cec110805ed1a2673193f866469c5b73bb2da0b65c9d3c62e10ac6817a"],"rows":4,"stride":16480,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r4_stride16480_initial1_mask0_step0","sha256":["c88ea643915173267831c8c6cd117d6d64b9d5f25b3749d8183edebc611f201b","08349d2488c93430e1acffcaaa908b3dd22b1e376571150b331f44684efd9738","502c920c2301bba46571c7b706f02bc4fb09a6f7b8e30a2cb98ac6f3db9212d9","a15376453e57af9efbc63d97037d24296c3c3920498f4947fb5a503021b5b02a"],"rows":4,"stride":16480,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r4_stride16480_initial1_mask0_step1","sha256":["09251a695793f206ba16f3d9cdd5b852e27ac1206c384e22eb212c023e0c7307","4d5b11979110d58ff30c420867f3a6f712fa1371b2c5916422ce72807f7f7e26","733655684667a2b67ea43731d5215fc11f5e94b996e4b85cb1bfd3d96dcb1aa2","833914cec110805ed1a2673193f866469c5b73bb2da0b65c9d3c62e10ac6817a"],"rows":4,"stride":16480,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r4_stride16480_initial1_mask1_step0","sha256":["8ae28dce22f77dccc8753008956dd1d69a11ef33dec9a325f98a155d45d8fd55","bbe55c855dede2b059a0255e226551e1c1f0977e46cbcf228486da5b62500ce1","502c920c2301bba46571c7b706f02bc4fb09a6f7b8e30a2cb98ac6f3db9212d9","a15376453e57af9efbc63d97037d24296c3c3920498f4947fb5a503021b5b02a"],"rows":4,"stride":16480,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r4_stride16480_initial1_mask1_step1","sha256":["8b4e4e7051eb6e5c50b16b02da6974e0a20194949a476ab123822ef5461f1719","75e854b9f7246d5d06d299f1203620896104097f2ddbec80075a4efcee805d91","733655684667a2b67ea43731d5215fc11f5e94b996e4b85cb1bfd3d96dcb1aa2","833914cec110805ed1a2673193f866469c5b73bb2da0b65c9d3c62e10ac6817a"],"rows":4,"stride":16480,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r7_stride48_initial0_mask0_step0","sha256":["2435cc9b1776bffccaaea5bcef31fc44213fbc429dd8bb6cf4b65e335221e93f","d93fef2742827549aeb2bfdf49633243008167a96ecd9dca2889ff0c38b0afda","b8c3791f736c104654736a12b50897ff4ab6dcc919845094fc8f637166940aa7","1c90591f9a4ee81a0fb0a4a20fec8f974749284aeacb3778e3bdceb91b3de066"],"rows":7,"stride":48,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r7_stride48_initial0_mask0_step1","sha256":["50ea8780ceb51c72adde22223e16914f90e75875e166e611b29111d2c353a5e3","f97c9a7a69c81f8956245556319d783664f59de1a78ff52babde9cc99ee94eb2","8071a70ecd1f4ad078683eed287dd651b7f67e8394227056bc0b48d15f9a4121","5ff5efad965d520beeb0fc0d918245d76f6fd598a625f573d7ad0c59ec6c2ecc"],"rows":7,"stride":48,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r7_stride48_initial0_mask1_step0","sha256":["cbbe1daa3366fa663fe81c41d9291f14772227d425bff3bfe3473d0f1fe9047d","49d1cb1d71b26aa90d1a997bf39b6cc96da9181989e1de9a90a36b93df2213e1","b8c3791f736c104654736a12b50897ff4ab6dcc919845094fc8f637166940aa7","1c90591f9a4ee81a0fb0a4a20fec8f974749284aeacb3778e3bdceb91b3de066"],"rows":7,"stride":48,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r7_stride48_initial0_mask1_step1","sha256":["69e0fb32da1959d27908f76f3c8b3d6f104185035bbc3ed8bddb40441971fab8","8bc6e310122343fac7a99592ef6db026bde8db33d58b1fafcc76a747cafe454d","8071a70ecd1f4ad078683eed287dd651b7f67e8394227056bc0b48d15f9a4121","5ff5efad965d520beeb0fc0d918245d76f6fd598a625f573d7ad0c59ec6c2ecc"],"rows":7,"stride":48,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r7_stride48_initial1_mask0_step0","sha256":["8522d91204379578f4df80c7f8b282866b6cd1a35608d96927038828c2a22897","9bff188f108960e7064fff33cbae32fc92bcf428f4745fbd7f75de0f278051cc","b8c3791f736c104654736a12b50897ff4ab6dcc919845094fc8f637166940aa7","1c90591f9a4ee81a0fb0a4a20fec8f974749284aeacb3778e3bdceb91b3de066"],"rows":7,"stride":48,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r7_stride48_initial1_mask0_step1","sha256":["b6ffcefe9f4742eef686fe40eb63e63a35e300134596f6bb53bc07a3804d947d","2f328cf1f92e66083298982fb438408acb8cf3990cba9c4aa09fc904b3910ff8","8071a70ecd1f4ad078683eed287dd651b7f67e8394227056bc0b48d15f9a4121","5ff5efad965d520beeb0fc0d918245d76f6fd598a625f573d7ad0c59ec6c2ecc"],"rows":7,"stride":48,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r7_stride48_initial1_mask1_step0","sha256":["e8477d62bc4fe4cd7b698c4d4e59bf363dcb070e79c4ea66e038722921d1d476","d01e098edd83dd2105217b8ef04e4f7b0f69255d3e6b93a76bef2d34d955109c","b8c3791f736c104654736a12b50897ff4ab6dcc919845094fc8f637166940aa7","1c90591f9a4ee81a0fb0a4a20fec8f974749284aeacb3778e3bdceb91b3de066"],"rows":7,"stride":48,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r7_stride48_initial1_mask1_step1","sha256":["f46c8305fa5602d26189304c953b7640cc92464d8745a71123746a105c84f53d","c4d552d454d819264161711cf8b9e20adffd01f1924704ece742499d682533ad","8071a70ecd1f4ad078683eed287dd651b7f67e8394227056bc0b48d15f9a4121","5ff5efad965d520beeb0fc0d918245d76f6fd598a625f573d7ad0c59ec6c2ecc"],"rows":7,"stride":48,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r7_stride16480_initial0_mask0_step0","sha256":["e6d246028694c59a7d07f65161723e2828e412d16f4e412528fc39757d31052c","81139b0fd12b1c84373b26503eefae3721ad587e0bc0ec2dd4257b69854a49c6","5a518a288d9c9baf1ceeeccfe2e2666b3970137f4b13e2b693e3218c3467e7d9","38e69a14f54f9c7adc13b34f3034bb13dc345a514119e406e298240113be1677"],"rows":7,"stride":16480,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r7_stride16480_initial0_mask0_step1","sha256":["e707c18a76c8568362a54a3db0138edb00279607cf19a53b9b7f461b37cedeaf","47464bd5cbcd1ae650134b1f14c50752715dc26281113cdf5d82a93e81458d09","42291e834251d9db2924febab7fb8064224e3f6ec681c67ac1f4e869a7f72696","031ebc4af65dd5ceb5a39d97d7aef684153681b83113b21ffb856978e1b9c711"],"rows":7,"stride":16480,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r7_stride16480_initial0_mask1_step0","sha256":["232a94ac00eed5e460a86e22675f5aabd5b10df9c251f8467628941c43dc96be","e0e4a08bdeec80516ad01c924704d1895c4fc9a3d43b4d5bed56d93561c95390","5a518a288d9c9baf1ceeeccfe2e2666b3970137f4b13e2b693e3218c3467e7d9","38e69a14f54f9c7adc13b34f3034bb13dc345a514119e406e298240113be1677"],"rows":7,"stride":16480,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r7_stride16480_initial0_mask1_step1","sha256":["51b408f38758362a4528d79e418b057661e261468e99502107f1a0534642d34c","0f52789f32e0618a8e88db8990609a9e4de4043a9708ddd24c0e46a60af5f500","42291e834251d9db2924febab7fb8064224e3f6ec681c67ac1f4e869a7f72696","031ebc4af65dd5ceb5a39d97d7aef684153681b83113b21ffb856978e1b9c711"],"rows":7,"stride":16480,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r7_stride16480_initial1_mask0_step0","sha256":["7248c80dc78069038725278b78ee7b89c4e77bc25e3d1a56f7f1ebe0d33432ed","c286237d899332a70d66a72f17a2e773816bc8d3c55ba46add9a4ad35203a9ed","5a518a288d9c9baf1ceeeccfe2e2666b3970137f4b13e2b693e3218c3467e7d9","38e69a14f54f9c7adc13b34f3034bb13dc345a514119e406e298240113be1677"],"rows":7,"stride":16480,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r7_stride16480_initial1_mask0_step1","sha256":["7782c0f63e3fb66f524defb988f83652342ca55ee4412c4bfb83499f08aa30f4","4a24b930e9f51a4a10761f96beab891fefca73d1432261f2a88659ed1ba1bd71","42291e834251d9db2924febab7fb8064224e3f6ec681c67ac1f4e869a7f72696","031ebc4af65dd5ceb5a39d97d7aef684153681b83113b21ffb856978e1b9c711"],"rows":7,"stride":16480,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r7_stride16480_initial1_mask1_step0","sha256":["5921fe21d75fceeb5e0e2f88c5beb88a4100b072a1db78e486dd492baa39629e","0f5845553ec757a62f9c3417e5983f1eda0e3a83e86ada8ce86fce3ceeafcd4e","5a518a288d9c9baf1ceeeccfe2e2666b3970137f4b13e2b693e3218c3467e7d9","38e69a14f54f9c7adc13b34f3034bb13dc345a514119e406e298240113be1677"],"rows":7,"stride":16480,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r7_stride16480_initial1_mask1_step1","sha256":["c3839251b3c885a3aa781257e20d13be1bc13b437d912e5d00bddbce34b4b1aa","b6c82c0a3d31edfbbd7294422bc5e98870e4313c4e884512123228dd6e78b4a5","42291e834251d9db2924febab7fb8064224e3f6ec681c67ac1f4e869a7f72696","031ebc4af65dd5ceb5a39d97d7aef684153681b83113b21ffb856978e1b9c711"],"rows":7,"stride":16480,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r32_stride48_initial0_mask0_step0","sha256":["78ac5ac8a39bcbd7cffa74eeb92b6e7f1994c882678ba295031163b737ea1ff2","c363b135606947df2d79d2b710bd7e08344b02ae0368444653454c1c4e623d9b","e8d48a5c3f723212452c499270174abb1ace6a01c36d2a83b4a5b6482b2f1a0b","ad767e9158acc4f0047d98a7c6b62e90228fe263429bb01cd9d9f86659ab0811"],"rows":32,"stride":48,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r32_stride48_initial0_mask0_step1","sha256":["cf509387e8b7877e3d3598f17e4eb5f0b419e49239e5fa6cd157687d97d42abd","faad569c855d6f7b7a1cf06d6872da46694caebcb68bd1ca450bb77a0d7b6064","df5ad133d22cca00a8c7051ca46b6df4cd3152456a342def456ab9588c8efddf","d98c24ca27de023fd843b24bba2f7746b249f51f72223acbc9d244d9662c55ca"],"rows":32,"stride":48,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r32_stride48_initial0_mask1_step0","sha256":["a7cbea92975289a9f9344ea4565841dabd97ea9fe2ca967108bc8a745020f742","d8219b21efa37dc77fd04097510c641dd0ee868cf31b8d9148b1831b4f1ac0bb","e8d48a5c3f723212452c499270174abb1ace6a01c36d2a83b4a5b6482b2f1a0b","ad767e9158acc4f0047d98a7c6b62e90228fe263429bb01cd9d9f86659ab0811"],"rows":32,"stride":48,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r32_stride48_initial0_mask1_step1","sha256":["c3ae46cf66f3630ec779a4570fd09db83969d0346f222f1639d48ae30ca53495","3cac25c6e82aec4e9146cc72cb233982d6e28743ec377394ae84f86eb1a7e875","df5ad133d22cca00a8c7051ca46b6df4cd3152456a342def456ab9588c8efddf","d98c24ca27de023fd843b24bba2f7746b249f51f72223acbc9d244d9662c55ca"],"rows":32,"stride":48,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r32_stride48_initial1_mask0_step0","sha256":["f1b82c277d8e923280b08f4f44cff11a65162eb01be1048542cf1b96ba60934f","24d450dca0a0d6a50e515fec55de3e6e62fdc7f8fd819357b6cff3062876205f","e8d48a5c3f723212452c499270174abb1ace6a01c36d2a83b4a5b6482b2f1a0b","ad767e9158acc4f0047d98a7c6b62e90228fe263429bb01cd9d9f86659ab0811"],"rows":32,"stride":48,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r32_stride48_initial1_mask0_step1","sha256":["a75276330c28bcb235e8b92502c09e1781fc22f3bf466ae63165da4433d71452","a4dff6ff9eff2e41b743a39c9c8b07ff3211e28577706148bab37917461c17e3","df5ad133d22cca00a8c7051ca46b6df4cd3152456a342def456ab9588c8efddf","d98c24ca27de023fd843b24bba2f7746b249f51f72223acbc9d244d9662c55ca"],"rows":32,"stride":48,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r32_stride48_initial1_mask1_step0","sha256":["5162bc2cfe3ad9008481aa8692a0fb96a101076346069a9bec654ff48e8a5bc5","06b471119b1a1c9acb646bde85011e9f6ad27764d1944e8820aac33d257b671a","e8d48a5c3f723212452c499270174abb1ace6a01c36d2a83b4a5b6482b2f1a0b","ad767e9158acc4f0047d98a7c6b62e90228fe263429bb01cd9d9f86659ab0811"],"rows":32,"stride":48,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r32_stride48_initial1_mask1_step1","sha256":["8e4c5f656ce71733d8029347e6638f951bc36419ce29ae2adc816b982e347f29","f589ef079a25f042f426657f7c53b22b2b9d2c0c0cec91383d98ccec9ef6b558","df5ad133d22cca00a8c7051ca46b6df4cd3152456a342def456ab9588c8efddf","d98c24ca27de023fd843b24bba2f7746b249f51f72223acbc9d244d9662c55ca"],"rows":32,"stride":48,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r32_stride16480_initial0_mask0_step0","sha256":["2d871cc08974098a79e28dc8d37ffd16516a7f9bdef8f7699d3dd5a04dee3aa2","274356f43898a449742488cce5dea5f51a13e4278e121cfa2301b8b870d67781","b21ea58117e3bcb4693becbab9298735ce511a6cf427832bd2b44148d06d60bc","55114c3daf92b5b5665e2dd77b1b6e2538a062cca7e862ab0cb1249b1975f156"],"rows":32,"stride":16480,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r32_stride16480_initial0_mask0_step1","sha256":["e220ead926df6a7dda3fe9c05fef59e6656ba398e7a468211911f9a4e3ad0e7f","40470354dc6563b7d61da5035a025d1e2ead8f8287bad9afde17fe3150f7bd63","fba1331869fe9f06634bd2c468c726283c9f2ac67df4459d7815914e6f51d2b0","1e8d91a8a5fca3c8ee1335e1f9f8f6940034354c6a246cde03dda5ad41adf9ba"],"rows":32,"stride":16480,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r32_stride16480_initial0_mask1_step0","sha256":["460aff40a38204d3bcecff8d4028a8836aa8c923427d6b3f43a48632d67c2d9b","3c8ea73634fb0c577d6aba59e78722a2e16fabc2f5179d1d38e529e03dd877a4","b21ea58117e3bcb4693becbab9298735ce511a6cf427832bd2b44148d06d60bc","55114c3daf92b5b5665e2dd77b1b6e2538a062cca7e862ab0cb1249b1975f156"],"rows":32,"stride":16480,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r32_stride16480_initial0_mask1_step1","sha256":["d51240bdb77136240b8a4bd2777b10b77648106f265b7df1f001f01f5b6f1dc2","c8aa82180916d77370f2952d143abacc7eb100f5f575bd47a3a85819b5adefb1","fba1331869fe9f06634bd2c468c726283c9f2ac67df4459d7815914e6f51d2b0","1e8d91a8a5fca3c8ee1335e1f9f8f6940034354c6a246cde03dda5ad41adf9ba"],"rows":32,"stride":16480,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r32_stride16480_initial1_mask0_step0","sha256":["7c6349a82cf8e46995f87039f4300da61c945f3b024fe28334cf557761ffddb7","dc47f92180854eeb84323ef5565896510850acb1d58127b6fdb26dac37df87f2","b21ea58117e3bcb4693becbab9298735ce511a6cf427832bd2b44148d06d60bc","55114c3daf92b5b5665e2dd77b1b6e2538a062cca7e862ab0cb1249b1975f156"],"rows":32,"stride":16480,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r32_stride16480_initial1_mask0_step1","sha256":["12be63aa100a4b7e3428b36f941fed6464fca3dd6396d285c569bbe452a5509f","483daa9f0ace68ca38999b0d45a56c5b72ed9a5a38087a566ff1195c3a687a20","fba1331869fe9f06634bd2c468c726283c9f2ac67df4459d7815914e6f51d2b0","1e8d91a8a5fca3c8ee1335e1f9f8f6940034354c6a246cde03dda5ad41adf9ba"],"rows":32,"stride":16480,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r32_stride16480_initial1_mask1_step0","sha256":["6f48b5d87ba6c7a73e0056e5cc19fde88247fda8e49c1602eac6154696b295bc","4b04bc7157c59815de06641787619f2bf2f37c2ab29de5997e58554c97a89e9d","b21ea58117e3bcb4693becbab9298735ce511a6cf427832bd2b44148d06d60bc","55114c3daf92b5b5665e2dd77b1b6e2538a062cca7e862ab0cb1249b1975f156"],"rows":32,"stride":16480,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r32_stride16480_initial1_mask1_step1","sha256":["b7940bc0dac110d3923054c6102e2723c720ed968cc1eec0c02fd02c1444be86","2e686c9f7b4deb665d34d33f3e5360154c429491efc8cf61b1b81e72184ea0d2","fba1331869fe9f06634bd2c468c726283c9f2ac67df4459d7815914e6f51d2b0","1e8d91a8a5fca3c8ee1335e1f9f8f6940034354c6a246cde03dda5ad41adf9ba"],"rows":32,"stride":16480,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r2048_stride48_initial0_mask0_step0","sha256":["4c606e058e3cd7d0a42755448d06d09b73508348a28efed289746ebd8f1cb10b","17376325f45cc1fe9cffd13a77954f86e0948f1328c63ad3accfc2e104986806","3efa078610d19655d61a2feea3e24a5655a93698307cdf76ce669603ffe0b246","647803a57058f64fea9d6c4e514ea4310f5b6f058c0a906d6d7039b5b026e047"],"rows":2048,"stride":48,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r2048_stride48_initial0_mask0_step1","sha256":["42dab996376b3746a0ea9c09218fcb12aa1dcb39f37d424637770fab39cc73c7","3b4408877e391946704a41df8e43a8a82cede7af3a48f80a5f3f3ade4804e01c","e67632fa5f4c5a0e827855bb2621e7a38602a78707e65efaa180ad5e2de3bc9e","9692267f6768734ebe58fbabc437f4586b55b459e31b8fee8dd6f8068ea9aacc"],"rows":2048,"stride":48,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r2048_stride48_initial0_mask1_step0","sha256":["32a429680a823603870fd091659def19bb1c359ca4a787f3a3b380c5ade4ddea","4abe7b73f2aae47ed87ff8807842e71e5378d2885460fb8a28f4a354dab3923d","3efa078610d19655d61a2feea3e24a5655a93698307cdf76ce669603ffe0b246","647803a57058f64fea9d6c4e514ea4310f5b6f058c0a906d6d7039b5b026e047"],"rows":2048,"stride":48,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r2048_stride48_initial0_mask1_step1","sha256":["dcb92f7eb85669c1def51e1dd7d4948e19faddb8d9b2963a82abf6a1a552d321","e379041baa966b07e74d6a68ea7595c760f233451eebe4d1fb3eafe2f2647c57","e67632fa5f4c5a0e827855bb2621e7a38602a78707e65efaa180ad5e2de3bc9e","9692267f6768734ebe58fbabc437f4586b55b459e31b8fee8dd6f8068ea9aacc"],"rows":2048,"stride":48,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r2048_stride48_initial1_mask0_step0","sha256":["68686c28ef1b9741b53e4e3339e939f0eac81b858f7d02eed0e95606640d3cf5","17376325f45cc1fe9cffd13a77954f86e0948f1328c63ad3accfc2e104986806","3efa078610d19655d61a2feea3e24a5655a93698307cdf76ce669603ffe0b246","647803a57058f64fea9d6c4e514ea4310f5b6f058c0a906d6d7039b5b026e047"],"rows":2048,"stride":48,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r2048_stride48_initial1_mask0_step1","sha256":["42dab996376b3746a0ea9c09218fcb12aa1dcb39f37d424637770fab39cc73c7","3b4408877e391946704a41df8e43a8a82cede7af3a48f80a5f3f3ade4804e01c","e67632fa5f4c5a0e827855bb2621e7a38602a78707e65efaa180ad5e2de3bc9e","9692267f6768734ebe58fbabc437f4586b55b459e31b8fee8dd6f8068ea9aacc"],"rows":2048,"stride":48,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r2048_stride48_initial1_mask1_step0","sha256":["f03a2d625d0a6780695e9e7fcd317c1068066069a7720efee8cf0e6997192134","4abe7b73f2aae47ed87ff8807842e71e5378d2885460fb8a28f4a354dab3923d","3efa078610d19655d61a2feea3e24a5655a93698307cdf76ce669603ffe0b246","647803a57058f64fea9d6c4e514ea4310f5b6f058c0a906d6d7039b5b026e047"],"rows":2048,"stride":48,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r2048_stride48_initial1_mask1_step1","sha256":["dcb92f7eb85669c1def51e1dd7d4948e19faddb8d9b2963a82abf6a1a552d321","e379041baa966b07e74d6a68ea7595c760f233451eebe4d1fb3eafe2f2647c57","e67632fa5f4c5a0e827855bb2621e7a38602a78707e65efaa180ad5e2de3bc9e","9692267f6768734ebe58fbabc437f4586b55b459e31b8fee8dd6f8068ea9aacc"],"rows":2048,"stride":48,"initial":true,"masked":true,"step":1} +{"kernel":"delta_update_r2048_stride16480_initial0_mask0_step0","sha256":["be21c7a6ba26fa047998a0ee61373fcc23208517c1e8754c79cd341b15e7d4a7","58e690f5f190c05e71ee2f45385c706e7f3676f285c691d51c7cd11cb68c3848","ea55e04c9b79d687af7b372048990b0ef568bdfa430de65545801cc59b0900af","5316b145358abf7d093f97459e6231acec66ba0949a227b4b756ed9b608ac68b"],"rows":2048,"stride":16480,"initial":false,"masked":false,"step":0} +{"kernel":"delta_update_r2048_stride16480_initial0_mask0_step1","sha256":["3036bd89bd3b1ba4b48ddc653b223119d796fd141651ac9921fcd3d297e1618e","0b6dc86b4b1f6a7bc08ecd7df203a865e22c2a569082cf5a09197c53d30e30ec","605aefc1779b17cf682e6aaf84dfcc553f28816dc292ccd7eb5309ed2eb4389b","f9b686d7e07f444b87dbd8514bdf2c9ce2834506c932cd5be06a3f11ab575a93"],"rows":2048,"stride":16480,"initial":false,"masked":false,"step":1} +{"kernel":"delta_update_r2048_stride16480_initial0_mask1_step0","sha256":["48f7010d616307b0684a37e0065ff46955581cecbdd1de3b5731bf72ce54c304","ae2c4aff3d8cbba4edbcdc59bbbf54c2108d575c6a1cc965d96ba71771c376b2","ea55e04c9b79d687af7b372048990b0ef568bdfa430de65545801cc59b0900af","5316b145358abf7d093f97459e6231acec66ba0949a227b4b756ed9b608ac68b"],"rows":2048,"stride":16480,"initial":false,"masked":true,"step":0} +{"kernel":"delta_update_r2048_stride16480_initial0_mask1_step1","sha256":["83b7e7d197faf182d3819e065d843b1cceb1a250b06c458d6d5c5406e65dfdb3","e70d98fea35993f0e67d47f889259864cfbceeb307982bcb93ba4a0cfaf0abd0","605aefc1779b17cf682e6aaf84dfcc553f28816dc292ccd7eb5309ed2eb4389b","f9b686d7e07f444b87dbd8514bdf2c9ce2834506c932cd5be06a3f11ab575a93"],"rows":2048,"stride":16480,"initial":false,"masked":true,"step":1} +{"kernel":"delta_update_r2048_stride16480_initial1_mask0_step0","sha256":["fd8fa30abac952ad718144cfa4dc84e5d181a241a9ba7a72089dabf1b1c1da41","58e690f5f190c05e71ee2f45385c706e7f3676f285c691d51c7cd11cb68c3848","ea55e04c9b79d687af7b372048990b0ef568bdfa430de65545801cc59b0900af","5316b145358abf7d093f97459e6231acec66ba0949a227b4b756ed9b608ac68b"],"rows":2048,"stride":16480,"initial":true,"masked":false,"step":0} +{"kernel":"delta_update_r2048_stride16480_initial1_mask0_step1","sha256":["3036bd89bd3b1ba4b48ddc653b223119d796fd141651ac9921fcd3d297e1618e","0b6dc86b4b1f6a7bc08ecd7df203a865e22c2a569082cf5a09197c53d30e30ec","605aefc1779b17cf682e6aaf84dfcc553f28816dc292ccd7eb5309ed2eb4389b","f9b686d7e07f444b87dbd8514bdf2c9ce2834506c932cd5be06a3f11ab575a93"],"rows":2048,"stride":16480,"initial":true,"masked":false,"step":1} +{"kernel":"delta_update_r2048_stride16480_initial1_mask1_step0","sha256":["f3d93f6cbccb31a19b09cd15cfd8c029d1a4dcc589ccd1ea361b5771688301dc","ae2c4aff3d8cbba4edbcdc59bbbf54c2108d575c6a1cc965d96ba71771c376b2","ea55e04c9b79d687af7b372048990b0ef568bdfa430de65545801cc59b0900af","5316b145358abf7d093f97459e6231acec66ba0949a227b4b756ed9b608ac68b"],"rows":2048,"stride":16480,"initial":true,"masked":true,"step":0} +{"kernel":"delta_update_r2048_stride16480_initial1_mask1_step1","sha256":["83b7e7d197faf182d3819e065d843b1cceb1a250b06c458d6d5c5406e65dfdb3","e70d98fea35993f0e67d47f889259864cfbceeb307982bcb93ba4a0cfaf0abd0","605aefc1779b17cf682e6aaf84dfcc553f28816dc292ccd7eb5309ed2eb4389b","f9b686d7e07f444b87dbd8514bdf2c9ce2834506c932cd5be06a3f11ab575a93"],"rows":2048,"stride":16480,"initial":true,"masked":true,"step":1} +{"kernel":"gdn_staged_r1_initial0_mask0_fused0_lenNone_step0","sha256":["ba14cb39c68606e446c2f3a77aa8592f10a1fa087083c2ae2a990b786c0c6e37","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","ae688e9703131b5dd6703dead6fdeff1b69ef4a8cc8392037bb2a9ce7a55f953","789ffb8d331a10e5950a841f0ffab243d404d6cf60ab0c4b138b5b0bc2c6cfca","d296b101b68a7341d2bdbb0c45b68e347a6fe6477597869112061aaa41d561be","bbe978da035622aa7d86e40f703500dc9acf6bb7b3108ba0744e3eb78591ae70"],"rows":1,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial0_mask0_fused0_lenNone_step1","sha256":["e3a3eacff5fc50eb8440f4b1bd4ba5ccdd9bb5b4427c0612b55b73f4c434a0a7","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","70eb81498ae117f9d6ea08a505ceb131fd0515e46ae46f986661581c280b28e0","f9f1d0b431476c8c7e24ce5a5ebc9e5db82bdceb9cbaaa40db10b6fcd4533e3d","bd303e466bf186c480fb069156808936744b748bbc7023777453be81a21c608c","8d5aba3fb5ea63fe67fe93b1ef1b552b699b4f1f74557e6d6818c8085a0eda75"],"rows":1,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial0_mask0_fused1_lenNone_step0","sha256":["f4e539f6a137fe7de2d41e8749049ce583a90200380f2e8984c76b5dbb845f47","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5fb5707796cad8d973d84dd555bb9612b81606e9dd7362eabe7da53b5061fec1","8c85b9e37808fcc86dd981aa3a5b68b7f05b9b11079cad2c007005dbb0bf51e7","9a3ced135f377edd2af7e8a61b3ca1bae0626dee4af518bf7716c1329835938c","318eb2c9d9863eeb4e0c39a092a59b73f2ca30790955b8cd1f41218cee8cf5ea"],"rows":1,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r1_initial0_mask0_fused1_lenNone_step1","sha256":["19bf45fed4ed66fce12a911af559e7c90ba37eee4c78dd9bdb5e9633e3c60e42","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","6b0becde07785c31ca13b5bc3d119510da65cf6554c3a9b82ad5f82bfc257587","d4d87c5496c4cb34df992ff8fa065f3ecb2709f16dcbcb1b1c874f3b59e8f112","f5edf44ba7bba3525005c92162a4bb262b55b909a15ea943731f49022643cf5b","860021d41d43d0de50aa90341f5cf879514d3e2ce3bc6001af80c2d32997252a"],"rows":1,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r1_initial0_mask1_fused0_lenNone_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3"],"rows":1,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial0_mask1_fused0_lenNone_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3"],"rows":1,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial0_mask1_fused1_lenNone_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3"],"rows":1,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial0_mask1_fused1_lenNone_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3"],"rows":1,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused0_lenNone_step0","sha256":["58baefc9571c7b84ead7d8aff97052771f9e46bcf4b574f2704a70d9c85e19f4","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b","4586f67feb130e44462c22cb56ff13279b797749d98451478859832d8f40667a","590e840d373bd592075972b7b49a3f1ca6b84843322570ef71ec2471a6d67104","5b8ed7d7f96d9b5c393bde4081d523eb32463b9b67fac8209e63e69ec67d2a5c"],"rows":1,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused0_lenNone_step1","sha256":["d6d11952c67a232c1df0a3f52b63d47bcf785493c6029c23e713e9c8fd9bcfb2","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","a3d25a7638bfbf3c2d48efa5b58fd8e5560fb903586bdc9ea2ba5a1034561c44","70a9b66d2d1cbd37489030cd49a7a8b1045746522ecd4ebaa4083487f7706d02","f66fa7d5fa713c951485f768462605750804b1e1c71a5c2146b038f150433696","307b73d8920c283855970b20da032aeb278c8fa5b2017fd62b40a77fbee75097"],"rows":1,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_lenNone_step0","sha256":["539b0745714d4f198b0e0137ececb76861978a88771cf7d98e3dc4ccfad30f74","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","a4fbfcf67b664a6cd12999aff8f2b8a06afddfd63b4351f2cf3db63d6cd82730","f17ac8f0cfc007adde49e853b40c15673a9a5d216eacccc464ca32412a3656ec","806f1741b0f242324583efdd6429eba564c62c0aadf36bd5b7790fa1b868f0b8","5eea6e0d090633fc448f1d6b75fd08f386e7e47a95155d01f894092366527769"],"rows":1,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_lenNone_step1","sha256":["289e3ed686e6b63ebf0130548382493780181b5c094a08495cc1b10ec44cc676","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","57abf18504c3fefd312116bd39794340143c9a389f8bd470a6d6186aa0189966","392c5c560e53c30dcc566fe9b79228634de3f9da63d0760056bcbe3cdc1c29fa","2984dff079f90b85dd344f368f949ddf5f40830da398e6981970635f8b9b6e7d","d610a591c0d4788ea8ca60daec66345d232755686a3e67f5a0e68f7a9df0255a"],"rows":1,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r1_initial1_mask1_fused0_lenNone_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","42feeef8fba5dd886b817a42b6afb8033b2caffe00816860d376c7a058c2cfee","d61a4e8d1428c7756244fc88527061ae27666fd5ac8652169283f789b3d7b329","b0581b8dc91e3c8f2ae519cf4d37cd0abd6c021592c0b7fd3b3cf8a2f2f0963f"],"rows":1,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask1_fused0_lenNone_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","6c0f13c9762ec3f0837f558a02913785ca64294460a7cc61e9e35b0df072293c","ff70bf38686186c5a4eed6848fde37369ebb39519658d22c854fecb1e4c25a6a","7eb6f0c089f0927aaf57e540e4b5bd1630e68bb12bc50a93d394e470dcb3993e"],"rows":1,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask1_fused1_lenNone_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","42feeef8fba5dd886b817a42b6afb8033b2caffe00816860d376c7a058c2cfee","d61a4e8d1428c7756244fc88527061ae27666fd5ac8652169283f789b3d7b329","b0581b8dc91e3c8f2ae519cf4d37cd0abd6c021592c0b7fd3b3cf8a2f2f0963f"],"rows":1,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask1_fused1_lenNone_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e","6c0f13c9762ec3f0837f558a02913785ca64294460a7cc61e9e35b0df072293c","ff70bf38686186c5a4eed6848fde37369ebb39519658d22c854fecb1e4c25a6a","7eb6f0c089f0927aaf57e540e4b5bd1630e68bb12bc50a93d394e470dcb3993e"],"rows":1,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask0_fused0_lenNone_step0","sha256":["35f9d187b3af952e9387cc8ec3a8664a201b80e0dd1fe013e242570159e6032f","e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","8aea2d5246df8ba11644d25ff0bbdb16a1e18b357f67a73efab257d5a37daed6","add068ab10c65fb21eacdd2b39e12f0c456cd98bf949dd47d836a54b3e542d0d","3b480dc3867a57eea16804f187b469706fa2f42bc210c1579612fa180a08a353","84147b19724987b1deee3e3b24f27f5902d1b8026c373ced6ba7fc3da1664260"],"rows":2,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask0_fused0_lenNone_step1","sha256":["5e90cb5550726307ec7e1b4f8ce220aa12c5a58846875ebdce39da1cc724afb9","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","8d58b173fcbb6782aad9b28476e6f20ab34b0aaa0259cc66d1e109c746c2b5fd","1fd28957c17f0ecb49d6cece1880f7a1322f1a1db0821ea78cf44fc10282e5eb","2f1af6f05a3917333f6281847aa173fbd2fc3960f772e8a99edd458e6ba0699b","1afa9f3e41b8d757096e4496548a16eda0c08940146dd19d58ac019f05556ad9"],"rows":2,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask0_fused1_lenNone_step0","sha256":["a1f65fd63c03adfa6da8e6a8f371e82379fbfc94f5985ace7e38ab2b28c363d1","e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","9a83e37b4c8c14c82c3aeccb7d8706b15578bb4d77ab8b2fc5bc821510df1ce8","1b54646a28fde90133de9fd2c4091808d5755fd8db38a2e94b883007478c9307","c137417a97cdc0883b5ceb75aa6fd93e37d04d7f0a6d1f1ad141e34d4c03a9e8","8ae8853a6e81724f208b893f6f404b9fe6cee18c3cd503b9b411c43796c8d409"],"rows":2,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r2_initial0_mask0_fused1_lenNone_step1","sha256":["5f96f76af8132252d5f2edcc433cf6aa04165ecf2e51dc1ee8fbee13f2812f4c","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","fd9f7990bae5a529f6e105100a8b563f2a69b6d6ecd28d0c6caf2a93cd6a8db2","f2c75891be70f514312d147096ffae0613d68970eca44a9ac2b0ad65d262c863","5ada4024db7dca7c3f7a454df70ca145580fce0ab6d8544e187c8c2b95b93a83","029f36390abfae30ecba403f7ec8a3fb5a02675609c4fe76c450618d772a9acf"],"rows":2,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r2_initial0_mask1_fused0_lenNone_step0","sha256":["4453daa45612996b92ebf8732028f9ceed77ebc4cb7da86519fe28ea0105b248","a51114eaf6041489fc6b85209ff871b667e9417b7dda16a86afe4cd5297005c4","5c314cf3a8469fcabc6fd9bdcaac0ece3b8f401709921610deb0bcf3c0b0cbcc","9ccf2d9a863308b0388dd712c91e96d5acef4999644904feabf70db3bffdb4fe","18014df97916ab8b2284bf547c509b09132d93afe2fc742ff7cf89ba285823b6","7590f832c4c4c106126f06647177b0e11cd44720226501dab0f9d1200f0d5c8d"],"rows":2,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask1_fused0_lenNone_step1","sha256":["c20fb2d6b3cfb911ec73007d6e70b863598b8abd6e28990ff70db10feb9c6e6f","111da05b33d1d42fc819ce4dc18ca0edcb83018ed6cb92e8f5f9ead8de670ba7","5d8070cf4c0d9d667f3bf0ccb53e81b849f049c53f91f2f1bd5db97724b873c0","4af8cfc1ea9f4b157f800be0e84a84f3943eb9124381f78d39a55182401ee445","9b734928d9c9ed3995bbe6017b74babcc3f20b4493986286f0518d12c0e1ab3d","7a0799fa810f1f2f67ca77eca46176f4900b630ca98137ac8598c6ed3d9a28f3"],"rows":2,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask1_fused1_lenNone_step0","sha256":["4453daa45612996b92ebf8732028f9ceed77ebc4cb7da86519fe28ea0105b248","a51114eaf6041489fc6b85209ff871b667e9417b7dda16a86afe4cd5297005c4","5c314cf3a8469fcabc6fd9bdcaac0ece3b8f401709921610deb0bcf3c0b0cbcc","9ccf2d9a863308b0388dd712c91e96d5acef4999644904feabf70db3bffdb4fe","18014df97916ab8b2284bf547c509b09132d93afe2fc742ff7cf89ba285823b6","7590f832c4c4c106126f06647177b0e11cd44720226501dab0f9d1200f0d5c8d"],"rows":2,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial0_mask1_fused1_lenNone_step1","sha256":["c20fb2d6b3cfb911ec73007d6e70b863598b8abd6e28990ff70db10feb9c6e6f","111da05b33d1d42fc819ce4dc18ca0edcb83018ed6cb92e8f5f9ead8de670ba7","5d8070cf4c0d9d667f3bf0ccb53e81b849f049c53f91f2f1bd5db97724b873c0","4af8cfc1ea9f4b157f800be0e84a84f3943eb9124381f78d39a55182401ee445","9b734928d9c9ed3995bbe6017b74babcc3f20b4493986286f0518d12c0e1ab3d","7a0799fa810f1f2f67ca77eca46176f4900b630ca98137ac8598c6ed3d9a28f3"],"rows":2,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask0_fused0_lenNone_step0","sha256":["4bee6c6b2ea815f09a91ecbef6c6a950c7ff0fdac54c01642f83d2099e90407a","ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","f9f5c8ef813a3be33b61453ff41f9c1bcc536da6581f469f7df8cce8b0741871","12c9ce96dc4b5cced7f5a289124388c5441e7da6358a3971f9a025a856923ef8","e34cc5550c639786107bbfbf135eaf2959b7b7545e7c18270d5c32491d004d6c","a471844cc5124a04b99a8d39dc752d53516b471d7ed12ae04fbfde95c6646e10"],"rows":2,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask0_fused0_lenNone_step1","sha256":["8aec48e7ac5896f5001a950f7f706f43cf0fa0b04cf1a96e08792fd34b2c476e","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","1fd1e67dc9d6675a2892276eaf79fcb8b7992402f41088de90fc30db8a81a85a","4f3daec88f1e410149c0dcd0fef55f22b7f9670a9bbc6d13a320b61201d273ba","b602e35a90cee352cc81d00b35e93555e5b8d63ab2ab489c0950c3353a781a21","2e20387eee43d6bf94cf52c3d19191fa80eef577dce9ff50775d74056f5fa72e"],"rows":2,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask0_fused1_lenNone_step0","sha256":["48c7505c26172dafaaba454994a0d13d2a95c0b2343336b2370703df973e7976","ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","640a1f2a249f0767937ba7c2bf0f77e05464a05c4e802415e45466852f0a0037","c789634567bee00a204db49951d332d48316e7873908acab5a455ce0a5f0e3cf","3b22de42c706fc2078a4731f377c480a4380a8d7d303321a41f94b7769884c96","e7489377c0227a361168ce6f52d536c1a53de887fca7d4d43b52e4d40f764d6d"],"rows":2,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r2_initial1_mask0_fused1_lenNone_step1","sha256":["cbbc2984dfa737b6c92771ba65c60f35b905e7ef1dd1c191f4710b44752d2efb","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","5850ed05258ae63e633e01b8241b23955182ca7b1529721ba67daec7e7fadf0b","9fd7ca74522181c4e22175fbb66b1eb4ba7fa584dafcac135367270ead3caa58","c10349ff096882d32ff28a50d9defd7eea9d24cd8d0bf1508b9751d3b76ac8d7","5fe6537a8d292099b2ab0c36e4cfc96537a549a338a646fbb8bf52c83137c6ca"],"rows":2,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r2_initial1_mask1_fused0_lenNone_step0","sha256":["253923e0999ef635e31892a98d336755f76dff0ac11dd2d3662b33837a4f2965","827de4088538a6a4967d18ed716556bd5216f3380f6c5961cf2a448aadb76150","4baf37810d971864f33c729e45d028da34f925f4036cda69baf023f0acad5ebe","ef4a71f9c42e27c6f10fd8ebc25bcc1809e84957e24212f57176817004ab5dae","3542600d1c77b42be05ea3a84fca22c095370e29bead1b4f2dbcd3420e45837c","8cb958d13a0e01891dde63f5b2c6aeac7a7baf2949956609e0887e8c73871d13"],"rows":2,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask1_fused0_lenNone_step1","sha256":["bc58d378ff0c5f9874f5a803512be44806be21a82557edcb902ddd2c104a56af","111da05b33d1d42fc819ce4dc18ca0edcb83018ed6cb92e8f5f9ead8de670ba7","6b6069ce787181e1fb112aa17f67ba2e16c0cba2a2aaa369d73f5ab339f24910","eb0134e9dd0a6122465344037c7a44e470cd459e12b8988a047a46502bb7c336","e2bafaf228a020b0e58f9eb01fb5dc21b82db81afb424bb0906791d1ec7cc6a9","386a99e40744054e2fe140c0242c83829f81c1b1bc1cf8ad798cc31597290477"],"rows":2,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask1_fused1_lenNone_step0","sha256":["253923e0999ef635e31892a98d336755f76dff0ac11dd2d3662b33837a4f2965","827de4088538a6a4967d18ed716556bd5216f3380f6c5961cf2a448aadb76150","4baf37810d971864f33c729e45d028da34f925f4036cda69baf023f0acad5ebe","ef4a71f9c42e27c6f10fd8ebc25bcc1809e84957e24212f57176817004ab5dae","3542600d1c77b42be05ea3a84fca22c095370e29bead1b4f2dbcd3420e45837c","8cb958d13a0e01891dde63f5b2c6aeac7a7baf2949956609e0887e8c73871d13"],"rows":2,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2_initial1_mask1_fused1_lenNone_step1","sha256":["bc58d378ff0c5f9874f5a803512be44806be21a82557edcb902ddd2c104a56af","111da05b33d1d42fc819ce4dc18ca0edcb83018ed6cb92e8f5f9ead8de670ba7","6b6069ce787181e1fb112aa17f67ba2e16c0cba2a2aaa369d73f5ab339f24910","eb0134e9dd0a6122465344037c7a44e470cd459e12b8988a047a46502bb7c336","e2bafaf228a020b0e58f9eb01fb5dc21b82db81afb424bb0906791d1ec7cc6a9","386a99e40744054e2fe140c0242c83829f81c1b1bc1cf8ad798cc31597290477"],"rows":2,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask0_fused0_lenNone_step0","sha256":["61d194a8ad72706b13379ec95c472d4555e3a78bdb86152504dfb4d373ee5985","a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","8feacbeff872d852cd92efe76af19760beca1bcf09ef4d4cc0f4d8195cf8580e","bf84190ff85e2fd11af6243e692f0a72bb490026f2b44b647d97a4c76ad4cf1f","d297e295ef88304d8971f4f21078ee46428d3b4b8fce5b0ad5ca2db6abe78a2a","2e4aab778f9177342fb36cb75210d6193d5c73ea797f34dc48e128211c3cc2af"],"rows":4,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask0_fused0_lenNone_step1","sha256":["1625ce70f9064a5e8fb97a7cb1e285578c31f2529ac39ec505d98bf460339b29","520b275f2d7ed0838ffe6a7deafd8a2cd44dd4f2034e77591eff783cf882f592","650d26edffcdd514968d6d390fa7960d98a8b0511d9c832c4029bd7f89022911","0730a4b429dc5ebee38b4309e8550e870e94a2b346916d1c8bb064ac13820a77","11d73f9068f9f4ff67d944a5fbc9dfc5f277bf45505fce4ba189093eea1724fd","268e25aee2b52845a15e103731166dadf144baace939be6d944a866a10594a56"],"rows":4,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask0_fused1_lenNone_step0","sha256":["83cf5289161b8460e094b25b1c59f88fdd66c457931fea30cad72c3ea8b9217c","a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","b1fc9d2e68b1cb8b5384b8bbd202b0326ec81933c37638dd5bfbc8039a67e00e","fe347cb0a2c57e538febe35a6eaad954c4c7d18db36807b46db1b3f9bee5337a","669e5cc861f2b64811f6ed202028bfd21d3dca103c7f60e9c358057e9d772987","d5cf16cf0f41569542a8cc3fd93643cf362a208dbf26d7fb898705a46eb64f5c"],"rows":4,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r4_initial0_mask0_fused1_lenNone_step1","sha256":["991f107e9c5c1546c7fd63f4ee6801b3d6fa842a2e35e3e0d7397c038a4b961f","520b275f2d7ed0838ffe6a7deafd8a2cd44dd4f2034e77591eff783cf882f592","56755208c6ee43f29d14883e3ef44a2c1ad1f3696e75fc2aaa5aaa74137c0a1f","d904b2d2aa6ca2a86edb2b8fa77ecafbcf41c16d19bd974362443e4e5163e006","b65d1772e62bf431c1218d82ceb3c24cb78ec2ac9efa6992389d801517eace61","3c05b8297043594f37e6106b8481535e32984e646d613cda05acca78abab5818"],"rows":4,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r4_initial0_mask1_fused0_lenNone_step0","sha256":["1384a16bae82894315646037cafdeba2e27388d89a3cd5b3132ef74c760131d4","a33a184de319e731de9d2c3469a5909f57ef55a0a4b346650aaa2a71948d2563","1bba5deeea299b2cf28bc8ed1c582cedbf5a7c54f23bc4062bda703d2d818191","d19c381f2fca87960d3078d1dfe6a7d5d24de7fa7dfecc5702872ea72741d339","33873dc054f792d3fe89faa880b9fd1b5fb8f03315ba12a8ba9e68473fdd33dd","0122e32acbb19b82ff17ab5ef5d29c6764c45dd38dabc80357b1b5461511c7b9"],"rows":4,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask1_fused0_lenNone_step1","sha256":["34fe37a589c7e93109ba9e3a60ceb2fa5d4ae2d50fa7f63807ef03d7f39d36f2","1592850e38187e7de45122ce32b326cd23a07fdbacfb52dc1c7bfbe9593a898c","b87c6bcba6c8d57b16290a63c14e4ffea05881538dbbc314f3ac1819b28a1129","84614d21fecdc48c99f3199e9f3b5dfafe76e2dfc288d816728009cc40847fcc","b61950552cfe8026ba652df53b2441262378c06f38abd7489e898c79f8d5f48b","a36331f937c7aa4c6a5b33b8d86ab159104d0ec79f8424675e56f2b9245e5f61"],"rows":4,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask1_fused1_lenNone_step0","sha256":["1384a16bae82894315646037cafdeba2e27388d89a3cd5b3132ef74c760131d4","a33a184de319e731de9d2c3469a5909f57ef55a0a4b346650aaa2a71948d2563","1bba5deeea299b2cf28bc8ed1c582cedbf5a7c54f23bc4062bda703d2d818191","d19c381f2fca87960d3078d1dfe6a7d5d24de7fa7dfecc5702872ea72741d339","33873dc054f792d3fe89faa880b9fd1b5fb8f03315ba12a8ba9e68473fdd33dd","0122e32acbb19b82ff17ab5ef5d29c6764c45dd38dabc80357b1b5461511c7b9"],"rows":4,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial0_mask1_fused1_lenNone_step1","sha256":["34fe37a589c7e93109ba9e3a60ceb2fa5d4ae2d50fa7f63807ef03d7f39d36f2","1592850e38187e7de45122ce32b326cd23a07fdbacfb52dc1c7bfbe9593a898c","b87c6bcba6c8d57b16290a63c14e4ffea05881538dbbc314f3ac1819b28a1129","84614d21fecdc48c99f3199e9f3b5dfafe76e2dfc288d816728009cc40847fcc","b61950552cfe8026ba652df53b2441262378c06f38abd7489e898c79f8d5f48b","a36331f937c7aa4c6a5b33b8d86ab159104d0ec79f8424675e56f2b9245e5f61"],"rows":4,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused0_lenNone_step0","sha256":["4fc8dbd816d60dd902ff7909ca1fd254db6e9ad960946de7d0c3c901a34d903b","a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","f60c8f2c67451a82abb41cc99257ade8965cf43f11b4c2ec3bf07a8c3f1fed62","eb5ff892302b7ac1398119b441eabc69b6149380094badbaf22ca712b77209b7","18976a439143eb3d452bc268d25bba8e35819f955c67debddbc74488613cc08e","9445cd24fb3f2ae120227bb7f5c3a3aa303ea8df90011fd4add946630f9a8507"],"rows":4,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused0_lenNone_step1","sha256":["679e2a6298617221d92a9f2e2bbbad066ac1b6b5485bb63bcf17788fd7d17013","520b275f2d7ed0838ffe6a7deafd8a2cd44dd4f2034e77591eff783cf882f592","635b7636e379b0ba62bbfc4d211420204e3a7cd743b45052cf28d2c05457f96f","0730a4b429dc5ebee38b4309e8550e870e94a2b346916d1c8bb064ac13820a77","11d73f9068f9f4ff67d944a5fbc9dfc5f277bf45505fce4ba189093eea1724fd","268e25aee2b52845a15e103731166dadf144baace939be6d944a866a10594a56"],"rows":4,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_lenNone_step0","sha256":["36edfcdfcaf4fbc689256b33c4628286174647a9f0362180bef5062293f62dcd","a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","73702aa03e13141ce2a3ba6236becedefafb111fce95c8a6888962895e9ee1c4","e7a502cebd645351581dfc336c8e41d2561672e218c38e3ed9ee0dbc7f8213ee","3573590803cb2518c24b6ecd73db0b213e815e63083c6cd8f63df5be9af9113f","223209c773785b867d33d03098b94a9d47412a4866e2e1e5c2a318fe62b3d9fb"],"rows":4,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_lenNone_step1","sha256":["03337354f9e65658c82d0fc38ea9ea97fe83155596c3607c5c2e3a19daf6f82c","520b275f2d7ed0838ffe6a7deafd8a2cd44dd4f2034e77591eff783cf882f592","ed49a35a6fe39b704ce3cfe1e1f799b3d87c9bec9fa119543201a6606e6e040c","d904b2d2aa6ca2a86edb2b8fa77ecafbcf41c16d19bd974362443e4e5163e006","b65d1772e62bf431c1218d82ceb3c24cb78ec2ac9efa6992389d801517eace61","3c05b8297043594f37e6106b8481535e32984e646d613cda05acca78abab5818"],"rows":4,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r4_initial1_mask1_fused0_lenNone_step0","sha256":["6bd4ccc9145c9f24ef463f9d96062bd682f5468a1379be7eb4a72d396fc3c436","a33a184de319e731de9d2c3469a5909f57ef55a0a4b346650aaa2a71948d2563","a250ed62e6bb5ca2aa75d49e0b7f0de4f401c9d29632b536502857587cf29348","ded40aa22f38cb80fec3878f19c960d96aebbc26e2b8b73d8580de29fe1a7c6f","c23d2d1d81a53c22386a6d3e79ff1f087b2044f8a9d7a67ed2c69fe5b6949a79","a21df271e392d4f064f6d679f625cad74bf4c25da0241fb4a6aaa22eda3298a4"],"rows":4,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask1_fused0_lenNone_step1","sha256":["75cd4bd3a809a6866702d9b265f92f97cb18414bf52b6de177579b5dfff9d052","1592850e38187e7de45122ce32b326cd23a07fdbacfb52dc1c7bfbe9593a898c","f7d6bd2042a09c84dbce17e21fbfde93c6ec1e9372f3e435347460100681b405","84614d21fecdc48c99f3199e9f3b5dfafe76e2dfc288d816728009cc40847fcc","b61950552cfe8026ba652df53b2441262378c06f38abd7489e898c79f8d5f48b","a36331f937c7aa4c6a5b33b8d86ab159104d0ec79f8424675e56f2b9245e5f61"],"rows":4,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask1_fused1_lenNone_step0","sha256":["6bd4ccc9145c9f24ef463f9d96062bd682f5468a1379be7eb4a72d396fc3c436","a33a184de319e731de9d2c3469a5909f57ef55a0a4b346650aaa2a71948d2563","a250ed62e6bb5ca2aa75d49e0b7f0de4f401c9d29632b536502857587cf29348","ded40aa22f38cb80fec3878f19c960d96aebbc26e2b8b73d8580de29fe1a7c6f","c23d2d1d81a53c22386a6d3e79ff1f087b2044f8a9d7a67ed2c69fe5b6949a79","a21df271e392d4f064f6d679f625cad74bf4c25da0241fb4a6aaa22eda3298a4"],"rows":4,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask1_fused1_lenNone_step1","sha256":["75cd4bd3a809a6866702d9b265f92f97cb18414bf52b6de177579b5dfff9d052","1592850e38187e7de45122ce32b326cd23a07fdbacfb52dc1c7bfbe9593a898c","f7d6bd2042a09c84dbce17e21fbfde93c6ec1e9372f3e435347460100681b405","84614d21fecdc48c99f3199e9f3b5dfafe76e2dfc288d816728009cc40847fcc","b61950552cfe8026ba652df53b2441262378c06f38abd7489e898c79f8d5f48b","a36331f937c7aa4c6a5b33b8d86ab159104d0ec79f8424675e56f2b9245e5f61"],"rows":4,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask0_fused0_lenNone_step0","sha256":["fa42930454590afc68ee0490a12648bc332d372c35b1c050fb99cd63b4d884f8","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","0594e3ad3ac14c114f5a7962ec527e28cb4023053b28f0d1eed677010d2c36bb","bc3b0d546311599eeb07105b151625a3ab8b7b63d0c65295e4eaa89b11519757","176e446b48b70c1fd2ee332919540ffa9061836e107a9cfbe901ab737ad6549e","a574acd9302e261bc1e716ea7f895ae1cdd1fd3cf5f885159afb5e28d93c6b97"],"rows":6,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask0_fused0_lenNone_step1","sha256":["4fbb1df2672a95f6a7c419651afe13803239517d637b3c14af1f7215f41329f2","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","98161c038aeba494476607bcf5dce71de268d9a78c04510ee9156dd3842919b6","4d3292dea724fb52b664d19f9e43f91e547028bcf564e25f35bfa12e971c5bd3","edc4d6a4c415e9f91ab87a020cacc4b3b2eedd5ace6b4b0506d7b657011ef189","f9a78ddeb666c53d95c87b7496cdf77b60825fdd00ec94a20de1bf43565fd2b6"],"rows":6,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask0_fused1_lenNone_step0","sha256":["f7aa7fc5f99636aab30750b825dcb205d26bfdf818ea42963c81f80d9d465699","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","37694df5932c9aa12fbd8fd14a175d52b8028a8aba9a34f6ebd882704c01ded0","6faf3debf11bae8a3217b7c8dced29fee25868ab9ca9b92944f57b662c32f0f9","45659031a0c34ea47b96388311d0e918d37e5f8e86ac11f3f431cf15a5cd1ea7","d7857d5668f9e831126519288724f78507ba6edae2106c40b48f4e14cc74a941"],"rows":6,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r6_initial0_mask0_fused1_lenNone_step1","sha256":["464fda99f1f948aba1de7e248a4573bc9b937218d79ffbe09cd0ead45648612f","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","951cbc6974c400d0f45f107ee9add8d8b176af66dfdda40ef35e8a95f2294d52","7ff721685b3e71d02f50bf27377279fbddb1d42f9236411c9ea1fc419ece6e02","c0e58df3f8aa700f5a517d0ac0a30dc6e4adba6ed782891ad04dbb01da005169","ded47040ccc9eec9b928e41ca32595087dd8f4e66e2e278e81f2571355a660f1"],"rows":6,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r6_initial0_mask1_fused0_lenNone_step0","sha256":["f52854d781ba076c42a8c9f524db4dc67156c1e2ea969cd7832c99e4820a5e48","89efa6963b515a6e64ee4fe5995423079e4c0f7d5447eacfc8aee18215e8ab93","d71acfb276b5e956ffbc58f1a34dba307db3a066b464adc2a09401c96d645db8","4225ff3b77ec5701a341bf8c0e7c75b64f237d7bcd46b8cadaa124e180d5165d","c89683398e2d15a5a244ed99540f27c45a3e9adaed7fb34b9e13d437ec8cba55","e5842060f3d3c02f7b8d0ce276028e41aa7def9d6318af36e338c7b3975b598a"],"rows":6,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask1_fused0_lenNone_step1","sha256":["96b5f369a31df452aec8357a3e9e9e1f12a874058bdcac1a1505eaa581ea31be","5c3ba90771505828c174ea31ee0c80ba3b929103ce96217a749d6ce530a3c5dd","c161a9c6812e1e482e7ca08f5dfdabd169c53106a8f2945956a62e0d81be6f56","a53d3b22cdff2f6000e8f7f7ce27c1a4b0dd8a1661f1dce825fca407a60e6c02","4e72f0fd5341d6d3af163e0fc1637501580d0c4c8ac0b1079f2c18203716d40c","ac1794ad4b935a11e602bcbebbe287dad89b2eadaafeb2888ca055d6541c28ca"],"rows":6,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask1_fused1_lenNone_step0","sha256":["f52854d781ba076c42a8c9f524db4dc67156c1e2ea969cd7832c99e4820a5e48","89efa6963b515a6e64ee4fe5995423079e4c0f7d5447eacfc8aee18215e8ab93","d71acfb276b5e956ffbc58f1a34dba307db3a066b464adc2a09401c96d645db8","4225ff3b77ec5701a341bf8c0e7c75b64f237d7bcd46b8cadaa124e180d5165d","c89683398e2d15a5a244ed99540f27c45a3e9adaed7fb34b9e13d437ec8cba55","e5842060f3d3c02f7b8d0ce276028e41aa7def9d6318af36e338c7b3975b598a"],"rows":6,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial0_mask1_fused1_lenNone_step1","sha256":["96b5f369a31df452aec8357a3e9e9e1f12a874058bdcac1a1505eaa581ea31be","5c3ba90771505828c174ea31ee0c80ba3b929103ce96217a749d6ce530a3c5dd","c161a9c6812e1e482e7ca08f5dfdabd169c53106a8f2945956a62e0d81be6f56","a53d3b22cdff2f6000e8f7f7ce27c1a4b0dd8a1661f1dce825fca407a60e6c02","4e72f0fd5341d6d3af163e0fc1637501580d0c4c8ac0b1079f2c18203716d40c","ac1794ad4b935a11e602bcbebbe287dad89b2eadaafeb2888ca055d6541c28ca"],"rows":6,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask0_fused0_lenNone_step0","sha256":["cd641a9e3321ddeddf58fc0bf0498af87be8109d44524ec3f615a8f5d0bf7a2d","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","3ad9e1dc0ab8c6af7d252fdb4d94f813d7c25b262b806afcf4f1a50c42fda50d","c14f7611ce05d4cabc5889dfb99783229af2262e114ef482b1da444bf51639a7","b7f87de26301f7283b57d483c55070e412488ce69910b0d9efb15b4ee459b39c","ac8cb143bc239f622ff6006b3af9119cf6038a389282db875fb1b93c0db83818"],"rows":6,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask0_fused0_lenNone_step1","sha256":["9e048f4f7d1b66ddf0ac7ad16645520d1a282bec1a3f989811289eb06253d0e5","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","e3a1f9dc2134b9207b84b445d113e1f5f61b303d701123308627b84986fa8f7a","4d3292dea724fb52b664d19f9e43f91e547028bcf564e25f35bfa12e971c5bd3","edc4d6a4c415e9f91ab87a020cacc4b3b2eedd5ace6b4b0506d7b657011ef189","f9a78ddeb666c53d95c87b7496cdf77b60825fdd00ec94a20de1bf43565fd2b6"],"rows":6,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask0_fused1_lenNone_step0","sha256":["148739488f5f690d9557fc6a687f0bc0959fbc5d10f873f17218d4ac665e6fad","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","0d0e49059e61df3e57d847b53c1cf213a97b448ff98bf0fd5be54cc1ab2d29d7","e184f97b2926999164ee1fe3e1712534f4e4bdd83a4974fe2a94ae4415cb57b1","99a57f8714f491970d30775d683e16d9101709c02d90ed5fe722f9d64354c8c9","bfc7a6d25e1fa3a2193485ddaf958e9b49d97eaa82b245e1c45d7d7b5930b155"],"rows":6,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":true} +{"kernel":"gdn_staged_r6_initial1_mask0_fused1_lenNone_step1","sha256":["9af10f9fec19939aafb5f14d8589b4b335413b0f6fb0b6052b864da63028a9b0","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","2d5e81cce6a1bf0aabaa0ba412137fffc9792e8be6f35b1171ff659c1ab691cd","7ff721685b3e71d02f50bf27377279fbddb1d42f9236411c9ea1fc419ece6e02","c0e58df3f8aa700f5a517d0ac0a30dc6e4adba6ed782891ad04dbb01da005169","ded47040ccc9eec9b928e41ca32595087dd8f4e66e2e278e81f2571355a660f1"],"rows":6,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":true} +{"kernel":"gdn_staged_r6_initial1_mask1_fused0_lenNone_step0","sha256":["e5f3f436ab76d0d192597e2a87e0d3222c6aa24e459f68c741651adda78ab34b","89efa6963b515a6e64ee4fe5995423079e4c0f7d5447eacfc8aee18215e8ab93","bc2fee71995ab0261aa139a1ded6d5f60cf6246ae17fbe2462d32fe6bc0f5fd8","a518e8f9e2f29b1e301006e1985e2126fe6bbfe30bf4af2ac4b07eada1039eca","ee0ca288692ad32e508bf84e7245aeee691f3154a56cc1cf007f16c30ddf5ec6","d3cba2934bd0881115a8dce63d149aee90977c7ce2a83090a5de86052fc4fa0f"],"rows":6,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask1_fused0_lenNone_step1","sha256":["3ccd3ed7db4a4159d85f512a9faa92bafbf077d31ee5eb96fbd275db97c6e446","5c3ba90771505828c174ea31ee0c80ba3b929103ce96217a749d6ce530a3c5dd","c9379dd1673401626213bb34306bdc26fc88c12c659807f990ccd0e6fbfdd737","a53d3b22cdff2f6000e8f7f7ce27c1a4b0dd8a1661f1dce825fca407a60e6c02","4e72f0fd5341d6d3af163e0fc1637501580d0c4c8ac0b1079f2c18203716d40c","ac1794ad4b935a11e602bcbebbe287dad89b2eadaafeb2888ca055d6541c28ca"],"rows":6,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask1_fused1_lenNone_step0","sha256":["e5f3f436ab76d0d192597e2a87e0d3222c6aa24e459f68c741651adda78ab34b","89efa6963b515a6e64ee4fe5995423079e4c0f7d5447eacfc8aee18215e8ab93","bc2fee71995ab0261aa139a1ded6d5f60cf6246ae17fbe2462d32fe6bc0f5fd8","a518e8f9e2f29b1e301006e1985e2126fe6bbfe30bf4af2ac4b07eada1039eca","ee0ca288692ad32e508bf84e7245aeee691f3154a56cc1cf007f16c30ddf5ec6","d3cba2934bd0881115a8dce63d149aee90977c7ce2a83090a5de86052fc4fa0f"],"rows":6,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r6_initial1_mask1_fused1_lenNone_step1","sha256":["3ccd3ed7db4a4159d85f512a9faa92bafbf077d31ee5eb96fbd275db97c6e446","5c3ba90771505828c174ea31ee0c80ba3b929103ce96217a749d6ce530a3c5dd","c9379dd1673401626213bb34306bdc26fc88c12c659807f990ccd0e6fbfdd737","a53d3b22cdff2f6000e8f7f7ce27c1a4b0dd8a1661f1dce825fca407a60e6c02","4e72f0fd5341d6d3af163e0fc1637501580d0c4c8ac0b1079f2c18203716d40c","ac1794ad4b935a11e602bcbebbe287dad89b2eadaafeb2888ca055d6541c28ca"],"rows":6,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask0_fused0_lenNone_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","c7227caac7dbdfdf51a806669516201d92e7bba9695504cd8d252dda52ee84ab","dc1a35ec9e917f9c47aafc4a29df5a9097f6587c31ddaba8ada57bec490c3653","eea1de794af6532e282e69656a31cdd8e8a53ff8a977892c5328237b40109421","ac64703d3dfd0257cfe4da1824d7e748041584355a6a94db656ed1272ea25b1f"],"rows":7,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask0_fused0_lenNone_step1","sha256":["968dbb2568ba6aa202d1ef555feef8ecf42b94250e5a99ec2a6fa5d33a822469","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3327ddf698a8ffe1d5a79d1fe17af6865b9d33d83614c5aa0ff102c3711eafc0","1e61b10578fb6f98e4de0084f8a6a57112deb1b84f7ee2bdfab52e0412e09658","c0004af0c68a05106b129b07d1a3b8b988c8d43d6ff54348cc1924273820e841","ed2706dd260a6edfb2ba2a4a23e8b9f0ea75605881259b745c88ac3d85cc0f7f"],"rows":7,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask0_fused1_lenNone_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","c7227caac7dbdfdf51a806669516201d92e7bba9695504cd8d252dda52ee84ab","dc1a35ec9e917f9c47aafc4a29df5a9097f6587c31ddaba8ada57bec490c3653","eea1de794af6532e282e69656a31cdd8e8a53ff8a977892c5328237b40109421","ac64703d3dfd0257cfe4da1824d7e748041584355a6a94db656ed1272ea25b1f"],"rows":7,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask0_fused1_lenNone_step1","sha256":["968dbb2568ba6aa202d1ef555feef8ecf42b94250e5a99ec2a6fa5d33a822469","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3327ddf698a8ffe1d5a79d1fe17af6865b9d33d83614c5aa0ff102c3711eafc0","1e61b10578fb6f98e4de0084f8a6a57112deb1b84f7ee2bdfab52e0412e09658","c0004af0c68a05106b129b07d1a3b8b988c8d43d6ff54348cc1924273820e841","ed2706dd260a6edfb2ba2a4a23e8b9f0ea75605881259b745c88ac3d85cc0f7f"],"rows":7,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask1_fused0_lenNone_step0","sha256":["c05ce092dbe76d41c5e4a79cbe60b7316000afd3e2a81ab881908c09750a53da","eb03bdeb94458fb833d513d1b07a5f535ce76970bc0c285b66ebb5c6e1d42f27","d71acfb276b5e956ffbc58f1a34dba307db3a066b464adc2a09401c96d645db8","c840360416e3666076379003b649ee9044ef92d9d15e9ac240500b1b34aa4116","bc0cb8cf11fa6297ccee785085f6ac048fea36b7b73bb0c8b8bad0b7916983b7","14c804aa2dc2ee91cde4d416ce3da5adc27effdd54b14409bfafa0e859d1f9cc"],"rows":7,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask1_fused0_lenNone_step1","sha256":["86148af3686e86c15cf317b36d285921f1148d26f1aeb056d90d92523330f666","84b80d581073d2cf23576e271487a34d7340faec84bc97d367f947275eadb4ec","35a00747cc93326a6bd1e4b2b6395af965867f8becad96b1603317c5c6c340eb","8b83024b4d244c50edc033b540e5016db9e48fc66c598d3592293d78cb1b1284","d4520c2ad7cf0165fd83aa2422e5b03afede297372710ed53f7471e82934f72e","8ac29a1135ace70f26de7fe9ad806bfd91d5abc89b8f9f799b585664f8d70acf"],"rows":7,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask1_fused1_lenNone_step0","sha256":["c05ce092dbe76d41c5e4a79cbe60b7316000afd3e2a81ab881908c09750a53da","eb03bdeb94458fb833d513d1b07a5f535ce76970bc0c285b66ebb5c6e1d42f27","d71acfb276b5e956ffbc58f1a34dba307db3a066b464adc2a09401c96d645db8","c840360416e3666076379003b649ee9044ef92d9d15e9ac240500b1b34aa4116","bc0cb8cf11fa6297ccee785085f6ac048fea36b7b73bb0c8b8bad0b7916983b7","14c804aa2dc2ee91cde4d416ce3da5adc27effdd54b14409bfafa0e859d1f9cc"],"rows":7,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial0_mask1_fused1_lenNone_step1","sha256":["86148af3686e86c15cf317b36d285921f1148d26f1aeb056d90d92523330f666","84b80d581073d2cf23576e271487a34d7340faec84bc97d367f947275eadb4ec","35a00747cc93326a6bd1e4b2b6395af965867f8becad96b1603317c5c6c340eb","8b83024b4d244c50edc033b540e5016db9e48fc66c598d3592293d78cb1b1284","d4520c2ad7cf0165fd83aa2422e5b03afede297372710ed53f7471e82934f72e","8ac29a1135ace70f26de7fe9ad806bfd91d5abc89b8f9f799b585664f8d70acf"],"rows":7,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused0_lenNone_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce","c38bc1c82a5902f1943d6e451b734ac10ebe3ae6a0f51f4e8f838961da08f05f","0183bc16a24acd8f3f5a182a45eb635811386ede9976171702d0a8dcdeb512e7","e689cd9a927bb3f599604da9165fbd48cc022330aba89f3cc780b67a3845cd35"],"rows":7,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused0_lenNone_step1","sha256":["847c4ac3d309d40aa5395a3f7cf7681a973281de925f2d383b115e5e7e0f4c06","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3378fa492ded9795fa71cc9b7bc644711d5abf5f7a160be686966930cd9ffe72","1e61b10578fb6f98e4de0084f8a6a57112deb1b84f7ee2bdfab52e0412e09658","c0004af0c68a05106b129b07d1a3b8b988c8d43d6ff54348cc1924273820e841","ed2706dd260a6edfb2ba2a4a23e8b9f0ea75605881259b745c88ac3d85cc0f7f"],"rows":7,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_lenNone_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce","c38bc1c82a5902f1943d6e451b734ac10ebe3ae6a0f51f4e8f838961da08f05f","0183bc16a24acd8f3f5a182a45eb635811386ede9976171702d0a8dcdeb512e7","e689cd9a927bb3f599604da9165fbd48cc022330aba89f3cc780b67a3845cd35"],"rows":7,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_lenNone_step1","sha256":["847c4ac3d309d40aa5395a3f7cf7681a973281de925f2d383b115e5e7e0f4c06","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3378fa492ded9795fa71cc9b7bc644711d5abf5f7a160be686966930cd9ffe72","1e61b10578fb6f98e4de0084f8a6a57112deb1b84f7ee2bdfab52e0412e09658","c0004af0c68a05106b129b07d1a3b8b988c8d43d6ff54348cc1924273820e841","ed2706dd260a6edfb2ba2a4a23e8b9f0ea75605881259b745c88ac3d85cc0f7f"],"rows":7,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask1_fused0_lenNone_step0","sha256":["dbc6523d9bc03a376e8911d32038cee4475131e678b2749bb33b86e3b68a7331","eb03bdeb94458fb833d513d1b07a5f535ce76970bc0c285b66ebb5c6e1d42f27","bc2fee71995ab0261aa139a1ded6d5f60cf6246ae17fbe2462d32fe6bc0f5fd8","61e174c63c4bd41b5439da75ce5c97bdab5e729bc06c4377809952a3d4601ae6","07588ede6243b7c3b1c563755c0dca1dbe577e0eaefd68f5cbc9718c5a47b9b3","aab60f9d901103345dcf0a47c947434cac41566dce485de96078c9288db055dd"],"rows":7,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask1_fused0_lenNone_step1","sha256":["684b709dc3563b253ba7db46af4bff2921afe3bc4fc4ef7001f2c3f92268132c","84b80d581073d2cf23576e271487a34d7340faec84bc97d367f947275eadb4ec","6121d0064136de16dfefac1e1ac95c64218636ad85b116920b670ef160e05505","8b83024b4d244c50edc033b540e5016db9e48fc66c598d3592293d78cb1b1284","d4520c2ad7cf0165fd83aa2422e5b03afede297372710ed53f7471e82934f72e","8ac29a1135ace70f26de7fe9ad806bfd91d5abc89b8f9f799b585664f8d70acf"],"rows":7,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask1_fused1_lenNone_step0","sha256":["dbc6523d9bc03a376e8911d32038cee4475131e678b2749bb33b86e3b68a7331","eb03bdeb94458fb833d513d1b07a5f535ce76970bc0c285b66ebb5c6e1d42f27","bc2fee71995ab0261aa139a1ded6d5f60cf6246ae17fbe2462d32fe6bc0f5fd8","61e174c63c4bd41b5439da75ce5c97bdab5e729bc06c4377809952a3d4601ae6","07588ede6243b7c3b1c563755c0dca1dbe577e0eaefd68f5cbc9718c5a47b9b3","aab60f9d901103345dcf0a47c947434cac41566dce485de96078c9288db055dd"],"rows":7,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask1_fused1_lenNone_step1","sha256":["684b709dc3563b253ba7db46af4bff2921afe3bc4fc4ef7001f2c3f92268132c","84b80d581073d2cf23576e271487a34d7340faec84bc97d367f947275eadb4ec","6121d0064136de16dfefac1e1ac95c64218636ad85b116920b670ef160e05505","8b83024b4d244c50edc033b540e5016db9e48fc66c598d3592293d78cb1b1284","d4520c2ad7cf0165fd83aa2422e5b03afede297372710ed53f7471e82934f72e","8ac29a1135ace70f26de7fe9ad806bfd91d5abc89b8f9f799b585664f8d70acf"],"rows":7,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask0_fused0_lenNone_step0","sha256":["aef35bb8af541981cdabccc8f3b63235660b0846db2029f48d1ba518c023bd3e","e36fd1639505e977fd067bb38f309f8d97754507974be78c3123f8279b26fd7f","6a48d77441755fb96df11ee0d50fb83d6eb2985a09d83cb85fd6ce1ca90a05a8","2d6e6d0d7b77942c78c24e4bb9392fb570d8a0fed0023c012ef637ed53d91feb","b29e4105fcd55289953852f99ef85fc805b72de2fc145c5c9041fdea23caa479","d9304aee03aac4f49c840127d602b4b3bf77dec0ea53ee316171a5f6de5f7230"],"rows":32,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask0_fused0_lenNone_step1","sha256":["14801b7c753b6abee3df2d5944cdf8e9957f46907ce14fb469cae3b1f38e262d","072f36a77f09ebef9e7b28fb7c530e610207840282bfe744fbde89346773027d","d30172989985200844bfa42044f8dc1cd6158a59a6601b090ae9fa55a76088cc","a468db6c3a40c837e9b2c713907d07aac1d392bee36941ce4a941603bfc5302d","c7affb689e53ffaf2a3c94b4e4f6067ae29a840d1a0b8ab4d1ec06e394df9e36","02e6e478ebd1bd7f704f7ec10c1b7394c8cb20c2f544b48a690b01c5fc407c7e"],"rows":32,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask0_fused1_lenNone_step0","sha256":["aef35bb8af541981cdabccc8f3b63235660b0846db2029f48d1ba518c023bd3e","e36fd1639505e977fd067bb38f309f8d97754507974be78c3123f8279b26fd7f","6a48d77441755fb96df11ee0d50fb83d6eb2985a09d83cb85fd6ce1ca90a05a8","2d6e6d0d7b77942c78c24e4bb9392fb570d8a0fed0023c012ef637ed53d91feb","b29e4105fcd55289953852f99ef85fc805b72de2fc145c5c9041fdea23caa479","d9304aee03aac4f49c840127d602b4b3bf77dec0ea53ee316171a5f6de5f7230"],"rows":32,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask0_fused1_lenNone_step1","sha256":["14801b7c753b6abee3df2d5944cdf8e9957f46907ce14fb469cae3b1f38e262d","072f36a77f09ebef9e7b28fb7c530e610207840282bfe744fbde89346773027d","d30172989985200844bfa42044f8dc1cd6158a59a6601b090ae9fa55a76088cc","a468db6c3a40c837e9b2c713907d07aac1d392bee36941ce4a941603bfc5302d","c7affb689e53ffaf2a3c94b4e4f6067ae29a840d1a0b8ab4d1ec06e394df9e36","02e6e478ebd1bd7f704f7ec10c1b7394c8cb20c2f544b48a690b01c5fc407c7e"],"rows":32,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask1_fused0_lenNone_step0","sha256":["4d9c9c1664f9810c3a7eb584ed6ef556e5e140f9f7e9268e04209fdfe67d3cf2","53901cd200181670210111a6f0aa657d63da6fd882e4b8cc727aa0796effb762","f6be4da90ad4b5161d15f43a24bcc2245f7e6bd98d83a59fa07f49e1fd8cbe4e","4433755d5528954267d2ab67d3941b50ba121dee5a1c0a9c7bf4e9dd453c35e0","18ab004dbd20bd81cc685a386855725d12c9b9064677ff5da607e73d9f1f979d","28742f09f535a1aff08dbb0870ff7fca4848f9c597dcf550fa6abf6d2f92a08a"],"rows":32,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask1_fused0_lenNone_step1","sha256":["aa78a07ccb58887b401d9df6c287751b918d4809727b4272077af4a45765f23f","0aedbe731aab413826111f329715cb479b92cc586e10ba5813f4964761d74503","0d98966d33b77a2c0f703a9e9941c347ba8fcaf67287383e9331bafd4f522f1c","6286d0d6919c3b05d21b8160e68cd7a328f6acb5ab0bbce8b6e4b97f40aa7e7e","0eda544fcd713d7a2c9233736e8932a3deae6f9bb1ab6611b70944641520ca79","72edc25300701d6cd56c6cb7cb7173fdbd5967933d5883214278bf3268ced17c"],"rows":32,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask1_fused1_lenNone_step0","sha256":["4d9c9c1664f9810c3a7eb584ed6ef556e5e140f9f7e9268e04209fdfe67d3cf2","53901cd200181670210111a6f0aa657d63da6fd882e4b8cc727aa0796effb762","f6be4da90ad4b5161d15f43a24bcc2245f7e6bd98d83a59fa07f49e1fd8cbe4e","4433755d5528954267d2ab67d3941b50ba121dee5a1c0a9c7bf4e9dd453c35e0","18ab004dbd20bd81cc685a386855725d12c9b9064677ff5da607e73d9f1f979d","28742f09f535a1aff08dbb0870ff7fca4848f9c597dcf550fa6abf6d2f92a08a"],"rows":32,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial0_mask1_fused1_lenNone_step1","sha256":["aa78a07ccb58887b401d9df6c287751b918d4809727b4272077af4a45765f23f","0aedbe731aab413826111f329715cb479b92cc586e10ba5813f4964761d74503","0d98966d33b77a2c0f703a9e9941c347ba8fcaf67287383e9331bafd4f522f1c","6286d0d6919c3b05d21b8160e68cd7a328f6acb5ab0bbce8b6e4b97f40aa7e7e","0eda544fcd713d7a2c9233736e8932a3deae6f9bb1ab6611b70944641520ca79","72edc25300701d6cd56c6cb7cb7173fdbd5967933d5883214278bf3268ced17c"],"rows":32,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask0_fused0_lenNone_step0","sha256":["3585dc7a21247d919ddb3e420b276284aafb4e89615fa5fa9e4a79002a7bb543","e36fd1639505e977fd067bb38f309f8d97754507974be78c3123f8279b26fd7f","f036c7c26b01386507728fe53abd0c784b0d69a850f389a569b4566f1404261c","72dacf2d1a4502713f70f4f04899f44a81c63cb0fb5eae20b96d14795db65ecf","bbcaa7c590593ab356f0469258d2ff8ec9a23d47df01fe7357ae271744b46a64","2ccc826daab05c7c3d869f6824d3b77963857917d2437d3ed5e31e2e6c0200ab"],"rows":32,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask0_fused0_lenNone_step1","sha256":["2c6256ae4745bffe93b8b7b932d8279e6f09b20c5855869f97f6c4f397c052d9","072f36a77f09ebef9e7b28fb7c530e610207840282bfe744fbde89346773027d","0ea29c3569f92ef858785349c07dd05f8308f42ff7cd78e7eea4bc2924f5e49f","a468db6c3a40c837e9b2c713907d07aac1d392bee36941ce4a941603bfc5302d","c7affb689e53ffaf2a3c94b4e4f6067ae29a840d1a0b8ab4d1ec06e394df9e36","02e6e478ebd1bd7f704f7ec10c1b7394c8cb20c2f544b48a690b01c5fc407c7e"],"rows":32,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask0_fused1_lenNone_step0","sha256":["3585dc7a21247d919ddb3e420b276284aafb4e89615fa5fa9e4a79002a7bb543","e36fd1639505e977fd067bb38f309f8d97754507974be78c3123f8279b26fd7f","f036c7c26b01386507728fe53abd0c784b0d69a850f389a569b4566f1404261c","72dacf2d1a4502713f70f4f04899f44a81c63cb0fb5eae20b96d14795db65ecf","bbcaa7c590593ab356f0469258d2ff8ec9a23d47df01fe7357ae271744b46a64","2ccc826daab05c7c3d869f6824d3b77963857917d2437d3ed5e31e2e6c0200ab"],"rows":32,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask0_fused1_lenNone_step1","sha256":["2c6256ae4745bffe93b8b7b932d8279e6f09b20c5855869f97f6c4f397c052d9","072f36a77f09ebef9e7b28fb7c530e610207840282bfe744fbde89346773027d","0ea29c3569f92ef858785349c07dd05f8308f42ff7cd78e7eea4bc2924f5e49f","a468db6c3a40c837e9b2c713907d07aac1d392bee36941ce4a941603bfc5302d","c7affb689e53ffaf2a3c94b4e4f6067ae29a840d1a0b8ab4d1ec06e394df9e36","02e6e478ebd1bd7f704f7ec10c1b7394c8cb20c2f544b48a690b01c5fc407c7e"],"rows":32,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask1_fused0_lenNone_step0","sha256":["db1dceb47e4712abf2519c301705169d69792e1d6940c100c7faaaa209d83460","53901cd200181670210111a6f0aa657d63da6fd882e4b8cc727aa0796effb762","763b6f78c524091d6fb495f523e0f70d42d47a964d9492ee33699db0ea6e8895","77804ce1754e0ef62d7b9b1fdcbadffce784f6d0347625807a3bc66360201e3b","f7ad635788a6f4da192fc772c68f7643f2a1ceddd55f5e0271fcd0b4628714a3","d29ee2e13639e8f02f533eb5bd4c9f93563ca05a3a9bcc37267891f9a7e05469"],"rows":32,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask1_fused0_lenNone_step1","sha256":["694da88c712c2382f51d0d7e9576ec429cf3e010e49d8109c4fabeccb0d1ed09","0aedbe731aab413826111f329715cb479b92cc586e10ba5813f4964761d74503","900be2f7f73ec591cfc8986ee464b266ce90f5f1c2f46f1b494eb03018761ef3","6286d0d6919c3b05d21b8160e68cd7a328f6acb5ab0bbce8b6e4b97f40aa7e7e","0eda544fcd713d7a2c9233736e8932a3deae6f9bb1ab6611b70944641520ca79","72edc25300701d6cd56c6cb7cb7173fdbd5967933d5883214278bf3268ced17c"],"rows":32,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask1_fused1_lenNone_step0","sha256":["db1dceb47e4712abf2519c301705169d69792e1d6940c100c7faaaa209d83460","53901cd200181670210111a6f0aa657d63da6fd882e4b8cc727aa0796effb762","763b6f78c524091d6fb495f523e0f70d42d47a964d9492ee33699db0ea6e8895","77804ce1754e0ef62d7b9b1fdcbadffce784f6d0347625807a3bc66360201e3b","f7ad635788a6f4da192fc772c68f7643f2a1ceddd55f5e0271fcd0b4628714a3","d29ee2e13639e8f02f533eb5bd4c9f93563ca05a3a9bcc37267891f9a7e05469"],"rows":32,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r32_initial1_mask1_fused1_lenNone_step1","sha256":["694da88c712c2382f51d0d7e9576ec429cf3e010e49d8109c4fabeccb0d1ed09","0aedbe731aab413826111f329715cb479b92cc586e10ba5813f4964761d74503","900be2f7f73ec591cfc8986ee464b266ce90f5f1c2f46f1b494eb03018761ef3","6286d0d6919c3b05d21b8160e68cd7a328f6acb5ab0bbce8b6e4b97f40aa7e7e","0eda544fcd713d7a2c9233736e8932a3deae6f9bb1ab6611b70944641520ca79","72edc25300701d6cd56c6cb7cb7173fdbd5967933d5883214278bf3268ced17c"],"rows":32,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask0_fused0_lenNone_step0","sha256":["b93e58c7a83950db3dc2828ff89dea7fde5ccc511f777d04d6d45350cb863aba","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86","57d1c6efb0a42f23992ebc95ebb0453b730be389dc034f592c0d92ab447f9ed8","dae97e2ada49b7a8ea47ddf8e7208174b1136a6702c79e797b47782d2d30337c","74dd89f31e93122e5d22c934e60c8993871a205b58ee0e85396a5e030544a92a"],"rows":2048,"initial":false,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask0_fused0_lenNone_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341","b72bdd50618eed88ec5487e96aba81640da10452bf7f858f45bcf8b336a6c57e","6080f08d40e445924a223880b8e2770a1cd97c428d8fc8750a28f156a82a294e","9bb40ce2d14eb503562c96d8ca4a9892caf1c79c1d526c92f6b47608f71c2b2f"],"rows":2048,"initial":false,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask0_fused1_lenNone_step0","sha256":["b93e58c7a83950db3dc2828ff89dea7fde5ccc511f777d04d6d45350cb863aba","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86","57d1c6efb0a42f23992ebc95ebb0453b730be389dc034f592c0d92ab447f9ed8","dae97e2ada49b7a8ea47ddf8e7208174b1136a6702c79e797b47782d2d30337c","74dd89f31e93122e5d22c934e60c8993871a205b58ee0e85396a5e030544a92a"],"rows":2048,"initial":false,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask0_fused1_lenNone_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341","b72bdd50618eed88ec5487e96aba81640da10452bf7f858f45bcf8b336a6c57e","6080f08d40e445924a223880b8e2770a1cd97c428d8fc8750a28f156a82a294e","9bb40ce2d14eb503562c96d8ca4a9892caf1c79c1d526c92f6b47608f71c2b2f"],"rows":2048,"initial":false,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask1_fused0_lenNone_step0","sha256":["03c4a7af60792bdece4381a8f27d63a017aec875e0e24758ff4357618bc2e391","903d128bfbb57d2d7e2a35ed08e818eae33bbc6f8489c9e257fdf71334eaea2c","004017d5c1c5ef8d0a2dd0364c69a3b7f2bdb2a906f928aaeecb845eacfe9608","86431e722963bdd3f0f64f8f291371840561d5c7c07b8e1e489b30b21784b19b","8a0737105fd06dc8b9815be34020bb16aafa167249b72a1fdacb8dee7513ef44","392ba98b0981cc94bb172af73f3b386660d904052c645a9eff4aa0bedd867d5a"],"rows":2048,"initial":false,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask1_fused0_lenNone_step1","sha256":["8114520fe2d39eb7c17b749606d9c71220faef406a5837c75718a4aac4539e9d","72b76b5a35dba2ffe63a8bf0942aacbf1e00bc3667a6069d84c60c2206b3c157","785af30a97189396b1ca8bc2b7853d5019001659340ff55f6f0fd7281783c8e2","222de9a61fe45c929acdb6e87a9b94857c98109cc50cc8534b4a0bb4c9acfe2b","191f296ba1978f682792a776b0baa5a73bc5ca4c3089a3b9fa25e2bfb5710353","d840f07d594d5fda8384bcf836b3d4a94c267fde289bfa4264e9e803bc93dca4"],"rows":2048,"initial":false,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask1_fused1_lenNone_step0","sha256":["03c4a7af60792bdece4381a8f27d63a017aec875e0e24758ff4357618bc2e391","903d128bfbb57d2d7e2a35ed08e818eae33bbc6f8489c9e257fdf71334eaea2c","004017d5c1c5ef8d0a2dd0364c69a3b7f2bdb2a906f928aaeecb845eacfe9608","86431e722963bdd3f0f64f8f291371840561d5c7c07b8e1e489b30b21784b19b","8a0737105fd06dc8b9815be34020bb16aafa167249b72a1fdacb8dee7513ef44","392ba98b0981cc94bb172af73f3b386660d904052c645a9eff4aa0bedd867d5a"],"rows":2048,"initial":false,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial0_mask1_fused1_lenNone_step1","sha256":["8114520fe2d39eb7c17b749606d9c71220faef406a5837c75718a4aac4539e9d","72b76b5a35dba2ffe63a8bf0942aacbf1e00bc3667a6069d84c60c2206b3c157","785af30a97189396b1ca8bc2b7853d5019001659340ff55f6f0fd7281783c8e2","222de9a61fe45c929acdb6e87a9b94857c98109cc50cc8534b4a0bb4c9acfe2b","191f296ba1978f682792a776b0baa5a73bc5ca4c3089a3b9fa25e2bfb5710353","d840f07d594d5fda8384bcf836b3d4a94c267fde289bfa4264e9e803bc93dca4"],"rows":2048,"initial":false,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask0_fused0_lenNone_step0","sha256":["e03ed37dad137116f2fb9ba48e01b7d22381687d05dc12f7b42acd54fea378a7","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86","48b1ec14782faa7c65c3b65278e600f3b9db076eb2aeaeab184e977d6629e62a","fb515719a33d35e49b9bdfdde377ebd1581e7c54901008f185f5418145daf699","ed2f72907cc3d3e1f7618cbb5d938b6d91e09d29c54e486fee2b0f2456d574be"],"rows":2048,"initial":true,"masked":false,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask0_fused0_lenNone_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341","b72bdd50618eed88ec5487e96aba81640da10452bf7f858f45bcf8b336a6c57e","6080f08d40e445924a223880b8e2770a1cd97c428d8fc8750a28f156a82a294e","9bb40ce2d14eb503562c96d8ca4a9892caf1c79c1d526c92f6b47608f71c2b2f"],"rows":2048,"initial":true,"masked":false,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask0_fused1_lenNone_step0","sha256":["e03ed37dad137116f2fb9ba48e01b7d22381687d05dc12f7b42acd54fea378a7","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86","48b1ec14782faa7c65c3b65278e600f3b9db076eb2aeaeab184e977d6629e62a","fb515719a33d35e49b9bdfdde377ebd1581e7c54901008f185f5418145daf699","ed2f72907cc3d3e1f7618cbb5d938b6d91e09d29c54e486fee2b0f2456d574be"],"rows":2048,"initial":true,"masked":false,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask0_fused1_lenNone_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341","b72bdd50618eed88ec5487e96aba81640da10452bf7f858f45bcf8b336a6c57e","6080f08d40e445924a223880b8e2770a1cd97c428d8fc8750a28f156a82a294e","9bb40ce2d14eb503562c96d8ca4a9892caf1c79c1d526c92f6b47608f71c2b2f"],"rows":2048,"initial":true,"masked":false,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask1_fused0_lenNone_step0","sha256":["cd18ed851e6d4628253ab0b2388c9de2130fbe2a660861750862afa027c0b507","903d128bfbb57d2d7e2a35ed08e818eae33bbc6f8489c9e257fdf71334eaea2c","004017d5c1c5ef8d0a2dd0364c69a3b7f2bdb2a906f928aaeecb845eacfe9608","c39217d71fdb7ded270e1a8790ccb9c8c3bf15c4334a8d9a8d24d65cbb3aaac5","c1de3412362fd72dcce61d44142dc44498e1ac81002249d4794ac4d6c27f3704","db7ce4438e5fafc19cecc596a87681f450c92e60850fd67a1a2832ea686952a2"],"rows":2048,"initial":true,"masked":true,"fused":false,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask1_fused0_lenNone_step1","sha256":["8114520fe2d39eb7c17b749606d9c71220faef406a5837c75718a4aac4539e9d","72b76b5a35dba2ffe63a8bf0942aacbf1e00bc3667a6069d84c60c2206b3c157","785af30a97189396b1ca8bc2b7853d5019001659340ff55f6f0fd7281783c8e2","222de9a61fe45c929acdb6e87a9b94857c98109cc50cc8534b4a0bb4c9acfe2b","191f296ba1978f682792a776b0baa5a73bc5ca4c3089a3b9fa25e2bfb5710353","d840f07d594d5fda8384bcf836b3d4a94c267fde289bfa4264e9e803bc93dca4"],"rows":2048,"initial":true,"masked":true,"fused":false,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask1_fused1_lenNone_step0","sha256":["cd18ed851e6d4628253ab0b2388c9de2130fbe2a660861750862afa027c0b507","903d128bfbb57d2d7e2a35ed08e818eae33bbc6f8489c9e257fdf71334eaea2c","004017d5c1c5ef8d0a2dd0364c69a3b7f2bdb2a906f928aaeecb845eacfe9608","c39217d71fdb7ded270e1a8790ccb9c8c3bf15c4334a8d9a8d24d65cbb3aaac5","c1de3412362fd72dcce61d44142dc44498e1ac81002249d4794ac4d6c27f3704","db7ce4438e5fafc19cecc596a87681f450c92e60850fd67a1a2832ea686952a2"],"rows":2048,"initial":true,"masked":true,"fused":true,"length":null,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r2048_initial1_mask1_fused1_lenNone_step1","sha256":["8114520fe2d39eb7c17b749606d9c71220faef406a5837c75718a4aac4539e9d","72b76b5a35dba2ffe63a8bf0942aacbf1e00bc3667a6069d84c60c2206b3c157","785af30a97189396b1ca8bc2b7853d5019001659340ff55f6f0fd7281783c8e2","222de9a61fe45c929acdb6e87a9b94857c98109cc50cc8534b4a0bb4c9acfe2b","191f296ba1978f682792a776b0baa5a73bc5ca4c3089a3b9fa25e2bfb5710353","d840f07d594d5fda8384bcf836b3d4a94c267fde289bfa4264e9e803bc93dca4"],"rows":2048,"initial":true,"masked":true,"fused":true,"length":null,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len-3_step0","sha256":["1735b193f131c0e800f76f2d70006da6cad40775c7787a01ca0cf2bbfc31a32d","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b","4586f67feb130e44462c22cb56ff13279b797749d98451478859832d8f40667a","590e840d373bd592075972b7b49a3f1ca6b84843322570ef71ec2471a6d67104","5b8ed7d7f96d9b5c393bde4081d523eb32463b9b67fac8209e63e69ec67d2a5c"],"rows":1,"initial":true,"masked":false,"fused":true,"length":-3,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len-3_step1","sha256":["f3aae7264d5226e685ce07f8d00454c017f32f2cc564506d193ebb807ee3e137","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","aaf05bfe91181da6060f585d3cce78830fdff567f69f8810d6d2f4b6539a041d","de7cf914b1210c97c561be501124e31904dc6eade2113f9a2b16137b1d683ece","626dedb24cdea9dd46856e179f82cc8fe5c65e2ca59bf85e0cf53bd4d725e493","e85d35b99db99c6b91e7066cb1f62a5e056eee1882eeb54311a2cfd01b6f7ab8"],"rows":1,"initial":true,"masked":false,"fused":true,"length":-3,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len0_step0","sha256":["1735b193f131c0e800f76f2d70006da6cad40775c7787a01ca0cf2bbfc31a32d","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b","4586f67feb130e44462c22cb56ff13279b797749d98451478859832d8f40667a","590e840d373bd592075972b7b49a3f1ca6b84843322570ef71ec2471a6d67104","5b8ed7d7f96d9b5c393bde4081d523eb32463b9b67fac8209e63e69ec67d2a5c"],"rows":1,"initial":true,"masked":false,"fused":true,"length":0,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len0_step1","sha256":["f3aae7264d5226e685ce07f8d00454c017f32f2cc564506d193ebb807ee3e137","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","aaf05bfe91181da6060f585d3cce78830fdff567f69f8810d6d2f4b6539a041d","de7cf914b1210c97c561be501124e31904dc6eade2113f9a2b16137b1d683ece","626dedb24cdea9dd46856e179f82cc8fe5c65e2ca59bf85e0cf53bd4d725e493","e85d35b99db99c6b91e7066cb1f62a5e056eee1882eeb54311a2cfd01b6f7ab8"],"rows":1,"initial":true,"masked":false,"fused":true,"length":0,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len4_step0","sha256":["1735b193f131c0e800f76f2d70006da6cad40775c7787a01ca0cf2bbfc31a32d","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b","4586f67feb130e44462c22cb56ff13279b797749d98451478859832d8f40667a","590e840d373bd592075972b7b49a3f1ca6b84843322570ef71ec2471a6d67104","5b8ed7d7f96d9b5c393bde4081d523eb32463b9b67fac8209e63e69ec67d2a5c"],"rows":1,"initial":true,"masked":false,"fused":true,"length":4,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r1_initial1_mask0_fused1_len4_step1","sha256":["499012f098dd375f5d6da93b9b44377961fe31ea56841649d24c85777a8f7e48","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","a3d25a7638bfbf3c2d48efa5b58fd8e5560fb903586bdc9ea2ba5a1034561c44","70a9b66d2d1cbd37489030cd49a7a8b1045746522ecd4ebaa4083487f7706d02","f66fa7d5fa713c951485f768462605750804b1e1c71a5c2146b038f150433696","307b73d8920c283855970b20da032aeb278c8fa5b2017fd62b40a77fbee75097"],"rows":1,"initial":true,"masked":false,"fused":true,"length":4,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len-3_step0","sha256":["4fc8dbd816d60dd902ff7909ca1fd254db6e9ad960946de7d0c3c901a34d903b","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","f60c8f2c67451a82abb41cc99257ade8965cf43f11b4c2ec3bf07a8c3f1fed62","eb5ff892302b7ac1398119b441eabc69b6149380094badbaf22ca712b77209b7","18976a439143eb3d452bc268d25bba8e35819f955c67debddbc74488613cc08e","9445cd24fb3f2ae120227bb7f5c3a3aa303ea8df90011fd4add946630f9a8507"],"rows":4,"initial":true,"masked":false,"fused":true,"length":-3,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len-3_step1","sha256":["4d27b7b3359e30cc7966d2ff518a78180d739085ee7751a36008ab1c10e9e2a2","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","77f14b0fac2c91c5d9db41856318de0300e0d9748058f8f324ae6de93ce555a2","d0e6c8fb1bb683fbd0f51ad9d60c3f1f41421d84fb588106b74d801786012c17","46291dfe9417460fb2c915de4140d31bd014b790a5c0d8cb57e74392cc7874e5","e91c1a6d5f85c985b5b25f4664c09f9590d10090c4061d4774678a45645eb049"],"rows":4,"initial":true,"masked":false,"fused":true,"length":-3,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len3_step0","sha256":["4fc8dbd816d60dd902ff7909ca1fd254db6e9ad960946de7d0c3c901a34d903b","9842b9b0eaf27467a2e513478541d2972429266da2801684bff6a6ec2a7ad380","f60c8f2c67451a82abb41cc99257ade8965cf43f11b4c2ec3bf07a8c3f1fed62","eb5ff892302b7ac1398119b441eabc69b6149380094badbaf22ca712b77209b7","18976a439143eb3d452bc268d25bba8e35819f955c67debddbc74488613cc08e","9445cd24fb3f2ae120227bb7f5c3a3aa303ea8df90011fd4add946630f9a8507"],"rows":4,"initial":true,"masked":false,"fused":true,"length":3,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len3_step1","sha256":["7eb8e8bb2fe49542e77878a56462ec68b48794faffb7850db149fd6130a4cae8","225a2e4e71f538eaa182d16f3055902328293ca9545baf5709731e50b5e3c901","673ab3fdc72fc377f52472f1155e606d6fb4cfb7c2b2a5e9c859ebc72fcf4a07","de27600f3bdb2640d080c004c873ce410a7b99831af072ad134fd7cc0584d242","439df007479509dea0df4cab6c818ee831189dd73b493fcf6e752f38d5abe39c","3560c4df163e1b890b1669a1ae4a7b0c786361d8fdd0eb4f7f88e2d51c57c60e"],"rows":4,"initial":true,"masked":false,"fused":true,"length":3,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len7_step0","sha256":["4fc8dbd816d60dd902ff7909ca1fd254db6e9ad960946de7d0c3c901a34d903b","a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","f60c8f2c67451a82abb41cc99257ade8965cf43f11b4c2ec3bf07a8c3f1fed62","eb5ff892302b7ac1398119b441eabc69b6149380094badbaf22ca712b77209b7","18976a439143eb3d452bc268d25bba8e35819f955c67debddbc74488613cc08e","9445cd24fb3f2ae120227bb7f5c3a3aa303ea8df90011fd4add946630f9a8507"],"rows":4,"initial":true,"masked":false,"fused":true,"length":7,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r4_initial1_mask0_fused1_len7_step1","sha256":["679e2a6298617221d92a9f2e2bbbad066ac1b6b5485bb63bcf17788fd7d17013","520b275f2d7ed0838ffe6a7deafd8a2cd44dd4f2034e77591eff783cf882f592","635b7636e379b0ba62bbfc4d211420204e3a7cd743b45052cf28d2c05457f96f","0730a4b429dc5ebee38b4309e8550e870e94a2b346916d1c8bb064ac13820a77","11d73f9068f9f4ff67d944a5fbc9dfc5f277bf45505fce4ba189093eea1724fd","268e25aee2b52845a15e103731166dadf144baace939be6d944a866a10594a56"],"rows":4,"initial":true,"masked":false,"fused":true,"length":7,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len-3_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce","c38bc1c82a5902f1943d6e451b734ac10ebe3ae6a0f51f4e8f838961da08f05f","0183bc16a24acd8f3f5a182a45eb635811386ede9976171702d0a8dcdeb512e7","e689cd9a927bb3f599604da9165fbd48cc022330aba89f3cc780b67a3845cd35"],"rows":7,"initial":true,"masked":false,"fused":true,"length":-3,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len-3_step1","sha256":["2152027d8e625e3c29690ab3640ce07bcdb73be1382fe1959db1a7a4d941cd53","363327a5de74355cffb7327ae1fce96c47654a5f5fd184ee7d88f018ea9e4a8c","64181bed5b60aefe75a8318fd13f4a6881a1f82a5de26b2b644fba32eae9cb02","911bea02207cc6f29377c9dc47ab6a23209784d067294b41f0c2b25ad4a860ed","1ccd5b02756572795bd129f11c502fa5058b137593813b8b5d888889e4c2b762","c0900190a4eeac6622a8510744907246a73f03ca78f4c827756f604fe91d3893"],"rows":7,"initial":true,"masked":false,"fused":true,"length":-3,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len6_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce","c38bc1c82a5902f1943d6e451b734ac10ebe3ae6a0f51f4e8f838961da08f05f","0183bc16a24acd8f3f5a182a45eb635811386ede9976171702d0a8dcdeb512e7","e689cd9a927bb3f599604da9165fbd48cc022330aba89f3cc780b67a3845cd35"],"rows":7,"initial":true,"masked":false,"fused":true,"length":6,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len6_step1","sha256":["1f32f18ce14997b19a5d8890b4f7668927ccd4f1efb767ed5aca856096278b8e","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","76b09178d84041f9aa0be4c4fc69818b4dd7e09b86f8456614a961980a8b12b0","91a7beda7d77cf4af6630f2002bc53c14caed759bf11810c32d28471f4a44012","be00f6b0bffab6f9fab318a1f5d2cde1d057718ab2eeb3912605efa5782f613e","96dc24f32635a0c1676eb00bb774c4e195c2b66380d7f8bee6d80aae91a81ff7"],"rows":7,"initial":true,"masked":false,"fused":true,"length":6,"step":1,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len10_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce","c38bc1c82a5902f1943d6e451b734ac10ebe3ae6a0f51f4e8f838961da08f05f","0183bc16a24acd8f3f5a182a45eb635811386ede9976171702d0a8dcdeb512e7","e689cd9a927bb3f599604da9165fbd48cc022330aba89f3cc780b67a3845cd35"],"rows":7,"initial":true,"masked":false,"fused":true,"length":10,"step":0,"used_fused":false} +{"kernel":"gdn_staged_r7_initial1_mask0_fused1_len10_step1","sha256":["847c4ac3d309d40aa5395a3f7cf7681a973281de925f2d383b115e5e7e0f4c06","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3378fa492ded9795fa71cc9b7bc644711d5abf5f7a160be686966930cd9ffe72","1e61b10578fb6f98e4de0084f8a6a57112deb1b84f7ee2bdfab52e0412e09658","c0004af0c68a05106b129b07d1a3b8b988c8d43d6ff54348cc1924273820e841","ed2706dd260a6edfb2ba2a4a23e8b9f0ea75605881259b745c88ac3d85cc0f7f"],"rows":7,"initial":true,"masked":false,"fused":true,"length":10,"step":1,"used_fused":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode0_step0","sha256":["ba14cb39c68606e446c2f3a77aa8592f10a1fa087083c2ae2a990b786c0c6e37","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","ae688e9703131b5dd6703dead6fdeff1b69ef4a8cc8392037bb2a9ce7a55f953"],"layout":"fused","rows":1,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode0_step1","sha256":["e3a3eacff5fc50eb8440f4b1bd4ba5ccdd9bb5b4427c0612b55b73f4c434a0a7","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","70eb81498ae117f9d6ea08a505ceb131fd0515e46ae46f986661581c280b28e0"],"layout":"fused","rows":1,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode1_step0","sha256":["f4e539f6a137fe7de2d41e8749049ce583a90200380f2e8984c76b5dbb845f47","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5fb5707796cad8d973d84dd555bb9612b81606e9dd7362eabe7da53b5061fec1"],"layout":"fused","rows":1,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial0_mode1_step1","sha256":["d5598606227433814242800052868ef227ed286a974fc9085f5fe4c4997ab614","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","f51bc489301e4f32c1096164b5260fe5b5f2b89045b2e766486cc704e4a85aa4"],"layout":"fused","rows":1,"initial":0,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode2_step0","sha256":["f4e539f6a137fe7de2d41e8749049ce583a90200380f2e8984c76b5dbb845f47","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5fb5707796cad8d973d84dd555bb9612b81606e9dd7362eabe7da53b5061fec1"],"layout":"fused","rows":1,"initial":0,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial0_mode2_step1","sha256":["19bf45fed4ed66fce12a911af559e7c90ba37eee4c78dd9bdb5e9633e3c60e42","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","6b0becde07785c31ca13b5bc3d119510da65cf6554c3a9b82ad5f82bfc257587"],"layout":"fused","rows":1,"initial":0,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial0_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"fused","rows":1,"initial":0,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"fused","rows":1,"initial":0,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode4_step0","sha256":["49cbaf55b9a7734e41b2ea1f14e45b0efa5a1f749cd1d37e8f49676f10033084","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","ae688e9703131b5dd6703dead6fdeff1b69ef4a8cc8392037bb2a9ce7a55f953"],"layout":"fused","rows":1,"initial":0,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode4_step1","sha256":["f7b24900f31350ff44c5f532da36f924d5d1f1f09a62c4a97986416bc72d383d","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","70eb81498ae117f9d6ea08a505ceb131fd0515e46ae46f986661581c280b28e0"],"layout":"fused","rows":1,"initial":0,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode5_step0","sha256":["ba14cb39c68606e446c2f3a77aa8592f10a1fa087083c2ae2a990b786c0c6e37","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","ae688e9703131b5dd6703dead6fdeff1b69ef4a8cc8392037bb2a9ce7a55f953"],"layout":"fused","rows":1,"initial":0,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial0_mode5_step1","sha256":["5b0ab4c7eb48214e281ac4d31916de8085f1f2cffadbc1f2130455356c1bfa4c","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","4e425449a34ed6be6027fa20a843ecaa6601d8e475a77e85f9d29e4ad117437c"],"layout":"fused","rows":1,"initial":0,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode0_step0","sha256":["58baefc9571c7b84ead7d8aff97052771f9e46bcf4b574f2704a70d9c85e19f4","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b"],"layout":"fused","rows":1,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode0_step1","sha256":["d6d11952c67a232c1df0a3f52b63d47bcf785493c6029c23e713e9c8fd9bcfb2","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","a3d25a7638bfbf3c2d48efa5b58fd8e5560fb903586bdc9ea2ba5a1034561c44"],"layout":"fused","rows":1,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode1_step0","sha256":["d3821a6c36a1e59f2fda34c3f0cac747c2b6ce52719c4051e9da937120ee38a6","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","f6a206f4baa1700148d0e48915b896058afd53b82ce6aa8df801484fa6c70ef7"],"layout":"fused","rows":1,"initial":1,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode1_step1","sha256":["1fa14b22a07d18cd9f41b7fe727617f523ea62ee532326be9e50a15bf0b514b7","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","937836d1f75fb473faf6f069aca8c1fcfec7a6dfad7105bd0204aadfcc4471bd"],"layout":"fused","rows":1,"initial":1,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode2_step0","sha256":["539b0745714d4f198b0e0137ececb76861978a88771cf7d98e3dc4ccfad30f74","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","a4fbfcf67b664a6cd12999aff8f2b8a06afddfd63b4351f2cf3db63d6cd82730"],"layout":"fused","rows":1,"initial":1,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial1_mode2_step1","sha256":["289e3ed686e6b63ebf0130548382493780181b5c094a08495cc1b10ec44cc676","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","57abf18504c3fefd312116bd39794340143c9a389f8bd470a6d6186aa0189966"],"layout":"fused","rows":1,"initial":1,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial1_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"fused","rows":1,"initial":1,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"fused","rows":1,"initial":1,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode4_step0","sha256":["1735b193f131c0e800f76f2d70006da6cad40775c7787a01ca0cf2bbfc31a32d","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","108931ae8b895ba070f0eaaefd674750068dc40683e2ffd469f2e55088b64a8b"],"layout":"fused","rows":1,"initial":1,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode4_step1","sha256":["499012f098dd375f5d6da93b9b44377961fe31ea56841649d24c85777a8f7e48","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","a3d25a7638bfbf3c2d48efa5b58fd8e5560fb903586bdc9ea2ba5a1034561c44"],"layout":"fused","rows":1,"initial":1,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode5_step0","sha256":["d3821a6c36a1e59f2fda34c3f0cac747c2b6ce52719c4051e9da937120ee38a6","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","f6a206f4baa1700148d0e48915b896058afd53b82ce6aa8df801484fa6c70ef7"],"layout":"fused","rows":1,"initial":1,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial1_mode5_step1","sha256":["1fa14b22a07d18cd9f41b7fe727617f523ea62ee532326be9e50a15bf0b514b7","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","937836d1f75fb473faf6f069aca8c1fcfec7a6dfad7105bd0204aadfcc4471bd"],"layout":"fused","rows":1,"initial":1,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode0_step0","sha256":["2ade5eaf13ba78a23e04df88b7ec6f0d59be40d63a9f620abc45a3eb6aeb8d79","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5521ff7b1d93f146a2946c75643dc6ce9c2140e8bec7229927adc1898eab097a"],"layout":"fused","rows":1,"initial":2,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode0_step1","sha256":["928fe4a56ae783be452eb341640bb22809db27e561ae9c1aa2a4493fb9165dcb","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","44122644f453adaaa0c20c5f17b23198e6c458abf8f4442ba0d9f23dbfb9d053"],"layout":"fused","rows":1,"initial":2,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode1_step0","sha256":["9cf12619b866cd2792b054acde09547969f37e5e7f1cb5a92c1b4392b80f1023","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","854d9f5032ea50d1cfb322bbaa111c711abae230bc93ef07dea766e5274b7e3e"],"layout":"fused","rows":1,"initial":2,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode1_step1","sha256":["3d6ed47812f3bade3e1c7ff467e164da3ccb3f56cc8fff1541bbf5a233d9d7a9","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","f4ea25fac5aceb7225f24efa72fbdc20b80e340cbc1a6c0d48247a67ff392631"],"layout":"fused","rows":1,"initial":2,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode2_step0","sha256":["94864b4229a6d840932034911fab03f4d6e3228eba01fa85be17f15392e632c3","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","2494fda3c35507843f1e1a8e83146784eeef0feb434c5cfd75e42a633d462678"],"layout":"fused","rows":1,"initial":2,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial2_mode2_step1","sha256":["c287aa4c94ad7e70c7e27a2ef5fbece7e8bb975f22cdced820945567ca76323d","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","c0cae5343696c5d1e8e05ed71573cd5b2fea7d68b579b6cef636de8ab372b5f8"],"layout":"fused","rows":1,"initial":2,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial2_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"fused","rows":1,"initial":2,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"fused","rows":1,"initial":2,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode4_step0","sha256":["75b489b26d2b49f01ce8a3bc2befcfa765b87b4198f006fd17eaf00e0ca3c3fa","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5521ff7b1d93f146a2946c75643dc6ce9c2140e8bec7229927adc1898eab097a"],"layout":"fused","rows":1,"initial":2,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode4_step1","sha256":["2ff1f335faf4a95853178ab6269bf5cc271ffe34aac14b8c5a0194fcec561982","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","44122644f453adaaa0c20c5f17b23198e6c458abf8f4442ba0d9f23dbfb9d053"],"layout":"fused","rows":1,"initial":2,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode5_step0","sha256":["9cf12619b866cd2792b054acde09547969f37e5e7f1cb5a92c1b4392b80f1023","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","854d9f5032ea50d1cfb322bbaa111c711abae230bc93ef07dea766e5274b7e3e"],"layout":"fused","rows":1,"initial":2,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial2_mode5_step1","sha256":["3d6ed47812f3bade3e1c7ff467e164da3ccb3f56cc8fff1541bbf5a233d9d7a9","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","f4ea25fac5aceb7225f24efa72fbdc20b80e340cbc1a6c0d48247a67ff392631"],"layout":"fused","rows":1,"initial":2,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode0_step0","sha256":["bf8a4e95340dce707874c6dcf93957256fde1708bc8464299f98edf01c87cea0","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","3b7f7a1f9f7bc608ae64136b276a95c8a2351348f540abab327aabe18df0ea32"],"layout":"fused","rows":1,"initial":3,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode0_step1","sha256":["45030a169e12f0b7d92b34ae62cb4fa63f18db2736307bb31443b9a0c03ac729","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","b84b8e796a4c35904fca1c8809ef903d41c11fe0ef63c0461fe3d73de6c63449"],"layout":"fused","rows":1,"initial":3,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode1_step0","sha256":["b8b99fe1593e1bf933b38000892ee43010aae0a630fd407f48ceaa7fda35eca6","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","67ea198a3fa1a9b2d2e52a133321d34e7f38839b0edc7272682d4b62806c9427"],"layout":"fused","rows":1,"initial":3,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial3_mode1_step1","sha256":["99921bc1df38b95dac1af3495fc5111adfe0c1a8e3119738e668fe7f2aa2a341","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","0894cc8ad31a9b98ba44bc8042f6a0a5d2ccd99905804e7693cb165f1bcbe56a"],"layout":"fused","rows":1,"initial":3,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode2_step0","sha256":["b8b99fe1593e1bf933b38000892ee43010aae0a630fd407f48ceaa7fda35eca6","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","67ea198a3fa1a9b2d2e52a133321d34e7f38839b0edc7272682d4b62806c9427"],"layout":"fused","rows":1,"initial":3,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial3_mode2_step1","sha256":["95d4c32527b84c3419b5d4f2740258fcb1f7aabf8a1eca3c60a612ac11f47825","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","1eb783e3dc07bc23a057cb5f5ab0a43137b132fee8b3d1cc19a827e96a1d2059"],"layout":"fused","rows":1,"initial":3,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r1_initial3_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"fused","rows":1,"initial":3,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"fused","rows":1,"initial":3,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode4_step0","sha256":["ed45bc5173ea4bef84e2d7d18d68ec97828512f95951946204c73d18aa0dd117","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","3b7f7a1f9f7bc608ae64136b276a95c8a2351348f540abab327aabe18df0ea32"],"layout":"fused","rows":1,"initial":3,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode4_step1","sha256":["a129b59c38c8bb75973f95c9af619916e1eeac17a7b5b05791de862936c7b254","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","b84b8e796a4c35904fca1c8809ef903d41c11fe0ef63c0461fe3d73de6c63449"],"layout":"fused","rows":1,"initial":3,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode5_step0","sha256":["bf8a4e95340dce707874c6dcf93957256fde1708bc8464299f98edf01c87cea0","a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","3b7f7a1f9f7bc608ae64136b276a95c8a2351348f540abab327aabe18df0ea32"],"layout":"fused","rows":1,"initial":3,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r1_initial3_mode5_step1","sha256":["144d4578dd736431c940cc945b22fe4549b666b14dd2a16ec71c52f9303bd1ad","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","69efac4598d3c8fe107cbb92ed5f5a6a61db9d3a20ed2ab3bc4be9cb4b013c6d"],"layout":"fused","rows":1,"initial":3,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_fused_r2_initial0_mode0_step0","sha256":["35f9d187b3af952e9387cc8ec3a8664a201b80e0dd1fe013e242570159e6032f","e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","8aea2d5246df8ba11644d25ff0bbdb16a1e18b357f67a73efab257d5a37daed6"],"layout":"fused","rows":2,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2_initial0_mode0_step1","sha256":["5e90cb5550726307ec7e1b4f8ce220aa12c5a58846875ebdce39da1cc724afb9","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","8d58b173fcbb6782aad9b28476e6f20ab34b0aaa0259cc66d1e109c746c2b5fd"],"layout":"fused","rows":2,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2_initial0_mode1_step0","sha256":["a1f65fd63c03adfa6da8e6a8f371e82379fbfc94f5985ace7e38ab2b28c363d1","e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","9a83e37b4c8c14c82c3aeccb7d8706b15578bb4d77ab8b2fc5bc821510df1ce8"],"layout":"fused","rows":2,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r2_initial0_mode1_step1","sha256":["5f96f76af8132252d5f2edcc433cf6aa04165ecf2e51dc1ee8fbee13f2812f4c","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","fd9f7990bae5a529f6e105100a8b563f2a69b6d6ecd28d0c6caf2a93cd6a8db2"],"layout":"fused","rows":2,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r2_initial1_mode0_step0","sha256":["4bee6c6b2ea815f09a91ecbef6c6a950c7ff0fdac54c01642f83d2099e90407a","ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","f9f5c8ef813a3be33b61453ff41f9c1bcc536da6581f469f7df8cce8b0741871"],"layout":"fused","rows":2,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2_initial1_mode0_step1","sha256":["8aec48e7ac5896f5001a950f7f706f43cf0fa0b04cf1a96e08792fd34b2c476e","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","1fd1e67dc9d6675a2892276eaf79fcb8b7992402f41088de90fc30db8a81a85a"],"layout":"fused","rows":2,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2_initial1_mode1_step0","sha256":["48c7505c26172dafaaba454994a0d13d2a95c0b2343336b2370703df973e7976","ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","640a1f2a249f0767937ba7c2bf0f77e05464a05c4e802415e45466852f0a0037"],"layout":"fused","rows":2,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r2_initial1_mode1_step1","sha256":["cbbc2984dfa737b6c92771ba65c60f35b905e7ef1dd1c191f4710b44752d2efb","bc52b054739fdf33122d27a40b12a0647ac568b168384108a1d8a4ffc961e810","5850ed05258ae63e633e01b8241b23955182ca7b1529721ba67daec7e7fadf0b"],"layout":"fused","rows":2,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r6_initial0_mode0_step0","sha256":["fa42930454590afc68ee0490a12648bc332d372c35b1c050fb99cd63b4d884f8","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","0594e3ad3ac14c114f5a7962ec527e28cb4023053b28f0d1eed677010d2c36bb"],"layout":"fused","rows":6,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r6_initial0_mode0_step1","sha256":["4fbb1df2672a95f6a7c419651afe13803239517d637b3c14af1f7215f41329f2","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","98161c038aeba494476607bcf5dce71de268d9a78c04510ee9156dd3842919b6"],"layout":"fused","rows":6,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r6_initial0_mode1_step0","sha256":["f7aa7fc5f99636aab30750b825dcb205d26bfdf818ea42963c81f80d9d465699","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","37694df5932c9aa12fbd8fd14a175d52b8028a8aba9a34f6ebd882704c01ded0"],"layout":"fused","rows":6,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r6_initial0_mode1_step1","sha256":["464fda99f1f948aba1de7e248a4573bc9b937218d79ffbe09cd0ead45648612f","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","951cbc6974c400d0f45f107ee9add8d8b176af66dfdda40ef35e8a95f2294d52"],"layout":"fused","rows":6,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r6_initial1_mode0_step0","sha256":["cd641a9e3321ddeddf58fc0bf0498af87be8109d44524ec3f615a8f5d0bf7a2d","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","3ad9e1dc0ab8c6af7d252fdb4d94f813d7c25b262b806afcf4f1a50c42fda50d"],"layout":"fused","rows":6,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r6_initial1_mode0_step1","sha256":["9e048f4f7d1b66ddf0ac7ad16645520d1a282bec1a3f989811289eb06253d0e5","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","e3a1f9dc2134b9207b84b445d113e1f5f61b303d701123308627b84986fa8f7a"],"layout":"fused","rows":6,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r6_initial1_mode1_step0","sha256":["148739488f5f690d9557fc6a687f0bc0959fbc5d10f873f17218d4ac665e6fad","9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","0d0e49059e61df3e57d847b53c1cf213a97b448ff98bf0fd5be54cc1ab2d29d7"],"layout":"fused","rows":6,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r6_initial1_mode1_step1","sha256":["9af10f9fec19939aafb5f14d8589b4b335413b0f6fb0b6052b864da63028a9b0","ea00f9a4788afb00a970a9f4199e39ff7ff625488b9e00251d633ff9b2c2c487","2d5e81cce6a1bf0aabaa0ba412137fffc9792e8be6f35b1171ff659c1ab691cd"],"layout":"fused","rows":6,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_fused_r7_initial0_mode0_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","c7227caac7dbdfdf51a806669516201d92e7bba9695504cd8d252dda52ee84ab"],"layout":"fused","rows":7,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial0_mode0_step1","sha256":["968dbb2568ba6aa202d1ef555feef8ecf42b94250e5a99ec2a6fa5d33a822469","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3327ddf698a8ffe1d5a79d1fe17af6865b9d33d83614c5aa0ff102c3711eafc0"],"layout":"fused","rows":7,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial0_mode1_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","c7227caac7dbdfdf51a806669516201d92e7bba9695504cd8d252dda52ee84ab"],"layout":"fused","rows":7,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial0_mode1_step1","sha256":["968dbb2568ba6aa202d1ef555feef8ecf42b94250e5a99ec2a6fa5d33a822469","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3327ddf698a8ffe1d5a79d1fe17af6865b9d33d83614c5aa0ff102c3711eafc0"],"layout":"fused","rows":7,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial1_mode0_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce"],"layout":"fused","rows":7,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial1_mode0_step1","sha256":["847c4ac3d309d40aa5395a3f7cf7681a973281de925f2d383b115e5e7e0f4c06","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3378fa492ded9795fa71cc9b7bc644711d5abf5f7a160be686966930cd9ffe72"],"layout":"fused","rows":7,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial1_mode1_step0","sha256":["ffcaa37a69e9c2546b3d6c39206f6017f3aab38fbbf1d81469db271aee293d08","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","b5eace1dbe5e733b79eec0c5a7cdbb9d8cd7cf598bb24e93caf8a008c721ecce"],"layout":"fused","rows":7,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r7_initial1_mode1_step1","sha256":["847c4ac3d309d40aa5395a3f7cf7681a973281de925f2d383b115e5e7e0f4c06","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3378fa492ded9795fa71cc9b7bc644711d5abf5f7a160be686966930cd9ffe72"],"layout":"fused","rows":7,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial0_mode0_step0","sha256":["18e1f563672d8c401300dbd4ba3d81622d6e71e750c02fd3194a964855206542","8b1f0b7041461612865d88e006d59ef9039e387e89ef2bb8c5da8607a5b6baee","e1c5e86430897a9097ed1f2042475bbe3a0599a1626ddb9e4006575f30b7630a"],"layout":"fused","rows":33,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial0_mode0_step1","sha256":["7b47c65ada70f5451bc343d96c6c475a2f3620d158612cb879c86e3f739dfe60","00181946e13a24f5b0423f468729d95532b47f25cc019dff3485115fea58088d","8945179f1f269dd4913410d9bebfec853edf5a478c680e665f8fb57d37a7cb7b"],"layout":"fused","rows":33,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial0_mode1_step0","sha256":["18e1f563672d8c401300dbd4ba3d81622d6e71e750c02fd3194a964855206542","8b1f0b7041461612865d88e006d59ef9039e387e89ef2bb8c5da8607a5b6baee","e1c5e86430897a9097ed1f2042475bbe3a0599a1626ddb9e4006575f30b7630a"],"layout":"fused","rows":33,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial0_mode1_step1","sha256":["7b47c65ada70f5451bc343d96c6c475a2f3620d158612cb879c86e3f739dfe60","00181946e13a24f5b0423f468729d95532b47f25cc019dff3485115fea58088d","8945179f1f269dd4913410d9bebfec853edf5a478c680e665f8fb57d37a7cb7b"],"layout":"fused","rows":33,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial1_mode0_step0","sha256":["b0bd8327e6d6c2957c768ce5afaece0b3b109d653e312e04b05f970b8b956420","8b1f0b7041461612865d88e006d59ef9039e387e89ef2bb8c5da8607a5b6baee","4c798216052156814d42ece87358e5455f3d6f8025c99eb08645a511766d419f"],"layout":"fused","rows":33,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial1_mode0_step1","sha256":["ff3959961cf011bdee42d34324ece025cda579bb5bcbe6c0d4caab22153685f7","00181946e13a24f5b0423f468729d95532b47f25cc019dff3485115fea58088d","7d11d23f4c9efa03bd13f076beb8c345dbdddfde7336c9cafe3098bb4dc80c4f"],"layout":"fused","rows":33,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial1_mode1_step0","sha256":["b0bd8327e6d6c2957c768ce5afaece0b3b109d653e312e04b05f970b8b956420","8b1f0b7041461612865d88e006d59ef9039e387e89ef2bb8c5da8607a5b6baee","4c798216052156814d42ece87358e5455f3d6f8025c99eb08645a511766d419f"],"layout":"fused","rows":33,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r33_initial1_mode1_step1","sha256":["ff3959961cf011bdee42d34324ece025cda579bb5bcbe6c0d4caab22153685f7","00181946e13a24f5b0423f468729d95532b47f25cc019dff3485115fea58088d","7d11d23f4c9efa03bd13f076beb8c345dbdddfde7336c9cafe3098bb4dc80c4f"],"layout":"fused","rows":33,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial0_mode0_step0","sha256":["b93e58c7a83950db3dc2828ff89dea7fde5ccc511f777d04d6d45350cb863aba","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86"],"layout":"fused","rows":2048,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial0_mode0_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341"],"layout":"fused","rows":2048,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial0_mode1_step0","sha256":["b93e58c7a83950db3dc2828ff89dea7fde5ccc511f777d04d6d45350cb863aba","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86"],"layout":"fused","rows":2048,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial0_mode1_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341"],"layout":"fused","rows":2048,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial1_mode0_step0","sha256":["e03ed37dad137116f2fb9ba48e01b7d22381687d05dc12f7b42acd54fea378a7","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86"],"layout":"fused","rows":2048,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial1_mode0_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341"],"layout":"fused","rows":2048,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial1_mode1_step0","sha256":["e03ed37dad137116f2fb9ba48e01b7d22381687d05dc12f7b42acd54fea378a7","6005fff0f64b6b1e12da7672d026e472bd9e73b203d0cb7e0c8ddcc1fead7042","aca612a479b4a7929c77b3b31e3f168c96c8d75708476253163df119a093ac86"],"layout":"fused","rows":2048,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_fused_r2048_initial1_mode1_step1","sha256":["ef3a6e5f53cba282a2ddd04ef9085cf4cc7a67dc0e0bca68ac32f99565212258","35aa5340b84d90cfbb1b2770f8e356faee0cf6d6a12de30a11d8dc11b7df7425","40a76f0899c244778237dd2c9436f05976cbd4c9a6469f1cd4a1330e1e48e341"],"layout":"fused","rows":2048,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode0_step0","sha256":["cf494cd7fd7ad0d9a62fe3d1b9705c6e8f053478b6a573399bd740f431b7ced3","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","eae1cf075a43c8003ea375d71eb1109d192e1d5071b02eaac1d5c57be106b8ff"],"layout":"separate","rows":1,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode0_step1","sha256":["b5a4b3c0ab00d2cfa4467f791707448d48fe5cd75a4b5ee7ca451b8875f9f343","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","1edd7d3f7d92323c73ef52ab713e23a316b7e9bd5604f5b7070861a2f4363ad0"],"layout":"separate","rows":1,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode1_step0","sha256":["03f6d65bc935ec6f6c0397b394c4c14cd78e2557899bab8f60b21fe51c7a3179","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","5c2242bab54c09b0cee752adbf05c83c3041d7e9fc3d014969908efe46b62766"],"layout":"separate","rows":1,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial0_mode1_step1","sha256":["75315a544e9a7ed073315af5211bb09886d6488f603125bbe34cec8188f987c0","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","9fdcd9eb707f10112bff2a9ae0eed2cbb9ff7a8b50a67604623a90a8c0bc4d68"],"layout":"separate","rows":1,"initial":0,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode2_step0","sha256":["03f6d65bc935ec6f6c0397b394c4c14cd78e2557899bab8f60b21fe51c7a3179","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","5c2242bab54c09b0cee752adbf05c83c3041d7e9fc3d014969908efe46b62766"],"layout":"separate","rows":1,"initial":0,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial0_mode2_step1","sha256":["f35c18d3b6bee3ee26e96020768dffb4e64aeab083f794a151962f37789bf223","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","47db9f4eb29a03cd543c18bbf5c817361bf55463be43e18fcae36157f2860553"],"layout":"separate","rows":1,"initial":0,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial0_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"separate","rows":1,"initial":0,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"separate","rows":1,"initial":0,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode4_step0","sha256":["b87b047fd03ce8b0ce98fd59d8d492f233a61e8dd104d5b890271dd82ef3dcae","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","eae1cf075a43c8003ea375d71eb1109d192e1d5071b02eaac1d5c57be106b8ff"],"layout":"separate","rows":1,"initial":0,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode4_step1","sha256":["0fdfa2132765cb7d6ea279ec4bd5482a0f9bad4c5eb85bbd11e3c872a87e5f0b","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","1edd7d3f7d92323c73ef52ab713e23a316b7e9bd5604f5b7070861a2f4363ad0"],"layout":"separate","rows":1,"initial":0,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode5_step0","sha256":["cf494cd7fd7ad0d9a62fe3d1b9705c6e8f053478b6a573399bd740f431b7ced3","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","eae1cf075a43c8003ea375d71eb1109d192e1d5071b02eaac1d5c57be106b8ff"],"layout":"separate","rows":1,"initial":0,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial0_mode5_step1","sha256":["ce04d552f34b6e4429e794349d1df1d74799bdee87355b446634fd818613ad42","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","b5881303d5e076147caccaabb5cf8bbc72a83109c76fd83c9390352cfdb10c32"],"layout":"separate","rows":1,"initial":0,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode0_step0","sha256":["b9670bb3638c4cae9aad9afb2e2592277cd222ba0824f6df0f8fcfec7405781d","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","6432eaa40ff68b6cb6262c6210956f9762aab4cad71eff6bbfb3de64c54294b4"],"layout":"separate","rows":1,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode0_step1","sha256":["a248dfce0a93fd091c43aa3af56a371e661e2366d55dd7d91475612085fb0493","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","20f7c22efd993ca8fc12523be27cc3230a089ef40b8c2567558cb657e4e4d737"],"layout":"separate","rows":1,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode1_step0","sha256":["ad74bf99dbf75412dd6f5445917d663c6fc129d2a7fb5799d8f5aab75b9a4a76","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","84d9c62a2f9f69e85df63b0f5b477e996a399376c09941ed87104461bb9cd042"],"layout":"separate","rows":1,"initial":1,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode1_step1","sha256":["63f318bafad34b83d9374b1a74654b23aa8c468bf1d5ad0494358b27e313fde6","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","7422e2e5bbf50ca2d50497ce2a8f7a6900cea62dc894eb879cbda6bf8671d421"],"layout":"separate","rows":1,"initial":1,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode2_step0","sha256":["51cc01f638d14d30a08629e6a12cfa7dc6f874427d5a1901e4aa80ebd05a58c3","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","2d699b8de0ee525da7728256627b9537fede18d121532f3ce9e1b80ce3df366e"],"layout":"separate","rows":1,"initial":1,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial1_mode2_step1","sha256":["b94b5c85f996addf18ce5a9827a5374fc0623ad18eb04ae3f9fd9e868ed22159","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","4988fe6f3ff99dc304c438274ed9942cadbe5c09848c378b76c524873837105b"],"layout":"separate","rows":1,"initial":1,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial1_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"separate","rows":1,"initial":1,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"separate","rows":1,"initial":1,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode4_step0","sha256":["d397e0bf27ce77c8f9dc60b7930df08e59ce6c65cfdca4ca91feda40e7f72ccb","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","6432eaa40ff68b6cb6262c6210956f9762aab4cad71eff6bbfb3de64c54294b4"],"layout":"separate","rows":1,"initial":1,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode4_step1","sha256":["caa26f03fb9f47535d1c278691512a019df6017f2c8f9d1b3766645c4296504e","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","20f7c22efd993ca8fc12523be27cc3230a089ef40b8c2567558cb657e4e4d737"],"layout":"separate","rows":1,"initial":1,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode5_step0","sha256":["ad74bf99dbf75412dd6f5445917d663c6fc129d2a7fb5799d8f5aab75b9a4a76","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","84d9c62a2f9f69e85df63b0f5b477e996a399376c09941ed87104461bb9cd042"],"layout":"separate","rows":1,"initial":1,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial1_mode5_step1","sha256":["63f318bafad34b83d9374b1a74654b23aa8c468bf1d5ad0494358b27e313fde6","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","7422e2e5bbf50ca2d50497ce2a8f7a6900cea62dc894eb879cbda6bf8671d421"],"layout":"separate","rows":1,"initial":1,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode0_step0","sha256":["afa3e1d4554bc79de363c200980f640cd500cc4fc1c47a2f0b465ad97647c6e8","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","b0f538378252e983dc7ee3222e852d59952672010427a652a52056ce64478fbf"],"layout":"separate","rows":1,"initial":2,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode0_step1","sha256":["2d0871747e39346f8e9fdff1d643881b554a4ce61d4258002f61ec7fee02f66f","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","11061fa9582d9bcfe1dd5b959f77ae5132b2fb4be5cb9e7edf495f24c0d4a2ef"],"layout":"separate","rows":1,"initial":2,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode1_step0","sha256":["0c98fd8e91f52166a62d86df9c411f8796b4e92602f2ef37c51109f31b48637e","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","7ba604905efa45f526fd85f726de19c8da7201fa3ac5fbf3db5d3acde0cd3a23"],"layout":"separate","rows":1,"initial":2,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode1_step1","sha256":["21afc5e78dc391955aef5ab788efbf6ff12ec67ddfe3e85b89d46b96c5319bdf","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","d04e94b1faa9d0dd13b22ffdd8498fdda45c1df8856de68e900530943d941ad1"],"layout":"separate","rows":1,"initial":2,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode2_step0","sha256":["e443b4985dd5e44c917df29d073bb147131901cf1ba221ed64fb5fb332055f4e","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","d397b98fc5bf06b77ad3b9c30a70147db06e6e2e8af8d1da42feee3f994ec740"],"layout":"separate","rows":1,"initial":2,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial2_mode2_step1","sha256":["04bd53d18301e5c16ed39fac896fe95fba919d8e3b3386885d7f8d43fc1ee633","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","725399a5d0d23a087204d2a4fd78b20e00250d5c1e21f6460b60687d7b48282a"],"layout":"separate","rows":1,"initial":2,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial2_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"separate","rows":1,"initial":2,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"separate","rows":1,"initial":2,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode4_step0","sha256":["b4fe073dd002319ab68437a61ffbf7d071e8087e805054eb34cfbefcfdc6d6f1","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","b0f538378252e983dc7ee3222e852d59952672010427a652a52056ce64478fbf"],"layout":"separate","rows":1,"initial":2,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode4_step1","sha256":["0e416875ba6adc8640c21456ad5cc44f28e5d79251f5ca52e48d8665c30b19f5","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","11061fa9582d9bcfe1dd5b959f77ae5132b2fb4be5cb9e7edf495f24c0d4a2ef"],"layout":"separate","rows":1,"initial":2,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode5_step0","sha256":["0c98fd8e91f52166a62d86df9c411f8796b4e92602f2ef37c51109f31b48637e","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","7ba604905efa45f526fd85f726de19c8da7201fa3ac5fbf3db5d3acde0cd3a23"],"layout":"separate","rows":1,"initial":2,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial2_mode5_step1","sha256":["21afc5e78dc391955aef5ab788efbf6ff12ec67ddfe3e85b89d46b96c5319bdf","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","d04e94b1faa9d0dd13b22ffdd8498fdda45c1df8856de68e900530943d941ad1"],"layout":"separate","rows":1,"initial":2,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode0_step0","sha256":["63a4e087eb8ce05bd503579780deb417dd94057f333b975a7d52db1d75a8872b","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","8cb333a6982fe440a30422fa0df247418904ed965574efe4d941c1d6f1f3e5e2"],"layout":"separate","rows":1,"initial":3,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode0_step1","sha256":["61f107db5f5f9fe455cc36b3e1061e78528bbc402ed77a47ccdda61d51591c58","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","415332d162126205b7db7230887d3d73b95780f4a6bf00268fdac10e8a16e641"],"layout":"separate","rows":1,"initial":3,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode1_step0","sha256":["cf993bc74ae6fa6bf3f9514686780a2330445f267f3f4b44ce94df4eb94666eb","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","58b3ab5f89a8a016acb9c0e2526e1953176ad6641b204f1e910ef6afa47aa914"],"layout":"separate","rows":1,"initial":3,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial3_mode1_step1","sha256":["d41ba1bf949e430c54cdd1e3ff1420dac6e5e9ea3dfa1bef3c2004631b6e9444","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","d0dc9da8891e2a5ce813b4cadb85460fd7f70b62a54f12a649f99cde075a5622"],"layout":"separate","rows":1,"initial":3,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode2_step0","sha256":["cf993bc74ae6fa6bf3f9514686780a2330445f267f3f4b44ce94df4eb94666eb","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","58b3ab5f89a8a016acb9c0e2526e1953176ad6641b204f1e910ef6afa47aa914"],"layout":"separate","rows":1,"initial":3,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial3_mode2_step1","sha256":["822899f6a5e3c14a59b61df68564aa87b59987c140fb6e4d5a08ca533a3c174e","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","d3e78352a7f2282ab867daacf83b47f7b82a5a95f70305b2315b98e32ab62e7f"],"layout":"separate","rows":1,"initial":3,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r1_initial3_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"separate","rows":1,"initial":3,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"separate","rows":1,"initial":3,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode4_step0","sha256":["86a30390fb76347bcd6473140121ee7ef458d6267551de5884e63730b462f6df","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","8cb333a6982fe440a30422fa0df247418904ed965574efe4d941c1d6f1f3e5e2"],"layout":"separate","rows":1,"initial":3,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode4_step1","sha256":["62877ef432453ab65362fc81d75e83130029dfd53a7320d28ca5301f3d6f5a9c","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","415332d162126205b7db7230887d3d73b95780f4a6bf00268fdac10e8a16e641"],"layout":"separate","rows":1,"initial":3,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode5_step0","sha256":["63a4e087eb8ce05bd503579780deb417dd94057f333b975a7d52db1d75a8872b","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","8cb333a6982fe440a30422fa0df247418904ed965574efe4d941c1d6f1f3e5e2"],"layout":"separate","rows":1,"initial":3,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r1_initial3_mode5_step1","sha256":["1792d17105e56c39e126130009ed38699dbe05fad66c52e43a907d1d27785831","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","c6ed39e677a4e3ecbd6448b8c3feb8bad921ebc4dda85b4247fd75e3144e9d07"],"layout":"separate","rows":1,"initial":3,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_separate_r2_initial0_mode0_step0","sha256":["5b24da6b91a5022d4384e7e744e052a7e2c61f95d80156ce772b3ad94c279104","e7279276ed9e3dd23cd003143e3d763262c4b5a5c9f36dfb295c1483f8e16ad7","917fa3ea1765fe976178199c7f9b24e4f3b04c4b005e6f6027511ae0564915ee"],"layout":"separate","rows":2,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2_initial0_mode0_step1","sha256":["4a5705b5379b6a202ddfe1038e4e13ed5f42ff46247be89d91945c793938ba36","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","6afdc78e77814bd6b9d16bb7b581bb32cb3fb2ce3957ba3d98078147f548ad03"],"layout":"separate","rows":2,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2_initial0_mode1_step0","sha256":["fc14e37b0931ee3aaf7c04989266ac54bd0dbe2ef1666ab0e77a06e0e3bc9460","e7279276ed9e3dd23cd003143e3d763262c4b5a5c9f36dfb295c1483f8e16ad7","98a59b2a5cfbe050a1d7fb782dbcc5e9d61fe0023b43c063ab8820b89fc20225"],"layout":"separate","rows":2,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r2_initial0_mode1_step1","sha256":["3ecc50b75e3974ef471932ded8e576e170c5f35d803ee4f94430aebd718846ee","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","0db4ea0fdbbe6567bc6e0ff9ed822475812330de8935898576dbff5a72a3b0eb"],"layout":"separate","rows":2,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r2_initial1_mode0_step0","sha256":["818d7fa4474537b34931e5f0fc12e6f0435927f0bb6c23b00ee6b8287c46296b","4ddbae3f7708882f8ffe68155ba8419e485457a98dc6084ed9c041ef0baa50cf","12ea43ce27601969412ab12b00f5f03b09766b697d099a210b102aeaaf22da9d"],"layout":"separate","rows":2,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2_initial1_mode0_step1","sha256":["8b0c42eef13a29fdd16f5926e77608f8a757303f941148f4add18c8ba3767483","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","631618b9bea20a986825345dc4e7ae2f5d37ec149c5099d98fb9bbba00a4409d"],"layout":"separate","rows":2,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2_initial1_mode1_step0","sha256":["4634247cc894cf5ac6e9eb0000488a893dd1671fcd09705f458280ee93ed1f62","4ddbae3f7708882f8ffe68155ba8419e485457a98dc6084ed9c041ef0baa50cf","385572eb9bff7496c00cf126dffe726aff9959ae0281fa85c0d481588f3c291c"],"layout":"separate","rows":2,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r2_initial1_mode1_step1","sha256":["f36626e6b1dca53e0320438151db65d856e2434607c8d212878ce34727e11800","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","163a311eea597bca99d56f19dfe16a2cd31ed3907fca5dce2d7b5dd552626e0e"],"layout":"separate","rows":2,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r6_initial0_mode0_step0","sha256":["f41c8aa2449be1c97e6c1d562c7ed190cdb86e6709466d8909ee431c8fa61a50","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","a9214fea9035d5adbb72aa50244e30cb242f46053ba720b05350404f0b440c59"],"layout":"separate","rows":6,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r6_initial0_mode0_step1","sha256":["0c7a34157aa8b7699840629f221e9949e330313a102841e11e42e0da63d3918b","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","2879fbef7b6efaeb9109206e70559de2debf03c2268e4085db5b19ddae3744b7"],"layout":"separate","rows":6,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r6_initial0_mode1_step0","sha256":["822aae506936208fe3dd15495831b1a05622ae92d06d6a52753885b120038d03","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","07f199ebb1d86e7dd759830a9254bcb208017841e8cb608399d69e79dd95bbc6"],"layout":"separate","rows":6,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r6_initial0_mode1_step1","sha256":["c8fc018a03cba224080f7fdf2873c80c015b616ad122d47aad5011290d07ebb1","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","0ea3a8cd2d8368c61046ddd412ad44709a13448f4fb03850f4ede55fc070ab77"],"layout":"separate","rows":6,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r6_initial1_mode0_step0","sha256":["4fe1d7a798e3855f9237e4166ecf3473c323854591aca064dbc2a638aa548751","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","541e6be6bbb66df5714e0305ae45c9a5e25cd431f1daa75cc931529f99bd28bc"],"layout":"separate","rows":6,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r6_initial1_mode0_step1","sha256":["9c7b8dec8ac0bd127bde0df886ef19b1897d9b56c9e7ca64b93ab6fa23256121","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","ffb94e42226ae0a5bc874fe6e3ea89d8227e81166e640a65a1efd864b215b926"],"layout":"separate","rows":6,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r6_initial1_mode1_step0","sha256":["900e598746e45efc2d9ea1fd06690e8e6633fbb0c4427318953085be7b094c9d","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","62fa5c590cb12474fd5b1f18dafd7660ab171cd84ff9ac798f7d2fe8fa725a2d"],"layout":"separate","rows":6,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r6_initial1_mode1_step1","sha256":["b0f71815c6f5099003e3fe513bf9be726ab321809700190c367efeef855ddc91","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","35b000d473929bd5da1bb2085d94e253b100e7096df169a1b5bbac44ec4c8a92"],"layout":"separate","rows":6,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_separate_r7_initial0_mode0_step0","sha256":["579ee3ef70fe9d5d30efb7487e90a96788dd58ac06083e4f056f28794eff76d5","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","b6a7796ae2120847ac2b4895f6240f50af47dca26934fd13ce29f9ba06267a23"],"layout":"separate","rows":7,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial0_mode0_step1","sha256":["c8230ddda26bb20d34dd84928ebc87c6c5658e738b28afb6590a44913548173e","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","383f0a8bfc690afd18d76a689beb8254f8b0e35ca05e467244f65175794b8c2e"],"layout":"separate","rows":7,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial0_mode1_step0","sha256":["579ee3ef70fe9d5d30efb7487e90a96788dd58ac06083e4f056f28794eff76d5","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","b6a7796ae2120847ac2b4895f6240f50af47dca26934fd13ce29f9ba06267a23"],"layout":"separate","rows":7,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial0_mode1_step1","sha256":["c8230ddda26bb20d34dd84928ebc87c6c5658e738b28afb6590a44913548173e","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","383f0a8bfc690afd18d76a689beb8254f8b0e35ca05e467244f65175794b8c2e"],"layout":"separate","rows":7,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial1_mode0_step0","sha256":["8a385b37dcd25f59a0aa80891fa22bd20559baf1287d847fb3ecbe5dc624d5db","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","cd9f33d5edca4249ae9bc2653e1477a19992874af505de88dd4888fbb335ea7b"],"layout":"separate","rows":7,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial1_mode0_step1","sha256":["24e071aed4462b551d5357fe51a42960e5eff6d2d8e04cb631c74f19292428f8","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","55fea0de8ec51182eda6ae04181a808b55fbc0a42ece52722e2bb0b9596e6746"],"layout":"separate","rows":7,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial1_mode1_step0","sha256":["8a385b37dcd25f59a0aa80891fa22bd20559baf1287d847fb3ecbe5dc624d5db","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","cd9f33d5edca4249ae9bc2653e1477a19992874af505de88dd4888fbb335ea7b"],"layout":"separate","rows":7,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r7_initial1_mode1_step1","sha256":["24e071aed4462b551d5357fe51a42960e5eff6d2d8e04cb631c74f19292428f8","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","55fea0de8ec51182eda6ae04181a808b55fbc0a42ece52722e2bb0b9596e6746"],"layout":"separate","rows":7,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial0_mode0_step0","sha256":["eda14deef4ab438c5942bc48571844e7ceea4e73a3dee7eaf6cc8b7372a884d3","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","f4743c7d1d7acfc2d9ba33c200225a61fdc75b19313e0d890cce4f7373c2d639"],"layout":"separate","rows":33,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial0_mode0_step1","sha256":["7e09d01ee5780f5016753fae6a05cf38bd558c610f233457c58cd3b531d40294","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","44f758451186c7435bdf162b3861d6bb45b738cdf29975ae0e39d3c0e08075b3"],"layout":"separate","rows":33,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial0_mode1_step0","sha256":["eda14deef4ab438c5942bc48571844e7ceea4e73a3dee7eaf6cc8b7372a884d3","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","f4743c7d1d7acfc2d9ba33c200225a61fdc75b19313e0d890cce4f7373c2d639"],"layout":"separate","rows":33,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial0_mode1_step1","sha256":["7e09d01ee5780f5016753fae6a05cf38bd558c610f233457c58cd3b531d40294","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","44f758451186c7435bdf162b3861d6bb45b738cdf29975ae0e39d3c0e08075b3"],"layout":"separate","rows":33,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial1_mode0_step0","sha256":["81c2f14ddbc370ee15e535b4d03b529497bff5391a39fe4f56acecb62265e0a5","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","2c76611431073530981f08a13b41c6a0a2a2ea5ed176a0f4eb1f9763dafe0049"],"layout":"separate","rows":33,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial1_mode0_step1","sha256":["736d1033767a476b1bd215af1809bfdf322f7a8309809f37c793467c2c933800","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","efa77733c3d69205a741fa747951d202863ecfcf5376258786ba0b710c7505f3"],"layout":"separate","rows":33,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial1_mode1_step0","sha256":["81c2f14ddbc370ee15e535b4d03b529497bff5391a39fe4f56acecb62265e0a5","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","2c76611431073530981f08a13b41c6a0a2a2ea5ed176a0f4eb1f9763dafe0049"],"layout":"separate","rows":33,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r33_initial1_mode1_step1","sha256":["736d1033767a476b1bd215af1809bfdf322f7a8309809f37c793467c2c933800","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","efa77733c3d69205a741fa747951d202863ecfcf5376258786ba0b710c7505f3"],"layout":"separate","rows":33,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial0_mode0_step0","sha256":["996158e90f348a88e897be2b7c5ccfb8ff6c2f5436e62deec04300649f37d9c7","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","86725cc68be695281a6f4d609d175e75151b0ab80db48612163c7f5c9facc9ab"],"layout":"separate","rows":2048,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial0_mode0_step1","sha256":["66ed601d96b448056698766ea131d81aade039d37a2710d2afbf261f9b02da96","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","06bf667076a31dd08147b9a24620b086dfafd34b2d491fa80beea0eb9b808170"],"layout":"separate","rows":2048,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial0_mode1_step0","sha256":["996158e90f348a88e897be2b7c5ccfb8ff6c2f5436e62deec04300649f37d9c7","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","86725cc68be695281a6f4d609d175e75151b0ab80db48612163c7f5c9facc9ab"],"layout":"separate","rows":2048,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial0_mode1_step1","sha256":["66ed601d96b448056698766ea131d81aade039d37a2710d2afbf261f9b02da96","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","06bf667076a31dd08147b9a24620b086dfafd34b2d491fa80beea0eb9b808170"],"layout":"separate","rows":2048,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial1_mode0_step0","sha256":["23da1e01659e55c84174608b7baefa61fcfcd459e36ac4b1c4f9f6fed943edb2","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","86725cc68be695281a6f4d609d175e75151b0ab80db48612163c7f5c9facc9ab"],"layout":"separate","rows":2048,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial1_mode0_step1","sha256":["66ed601d96b448056698766ea131d81aade039d37a2710d2afbf261f9b02da96","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","06bf667076a31dd08147b9a24620b086dfafd34b2d491fa80beea0eb9b808170"],"layout":"separate","rows":2048,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial1_mode1_step0","sha256":["23da1e01659e55c84174608b7baefa61fcfcd459e36ac4b1c4f9f6fed943edb2","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","86725cc68be695281a6f4d609d175e75151b0ab80db48612163c7f5c9facc9ab"],"layout":"separate","rows":2048,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_separate_r2048_initial1_mode1_step1","sha256":["66ed601d96b448056698766ea131d81aade039d37a2710d2afbf261f9b02da96","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","06bf667076a31dd08147b9a24620b086dfafd34b2d491fa80beea0eb9b808170"],"layout":"separate","rows":2048,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode0_step0","sha256":["3215cffb02b0127f67c603bce8e5ba67c23610c0a8561c7a5be87fff6f6de815","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","486ee864bf361fe60a729c0c3e61d28bd58a2c7d853ccb2bd276daffe46d46e6"],"layout":"mixed","rows":1,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode0_step1","sha256":["7ec2138594dbe5f9b6f0bad96fac2177f18a93971f91217bf11ce338a5284c40","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","47b686c466df285753a96b3b8780f0bf5c46cce53efc9e36d9e759d80d893191"],"layout":"mixed","rows":1,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode1_step0","sha256":["495b3d5906ef12d8ab1a1b2c256e2201e3189aba7fdffc31a6b33829515e7191","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","5858ef8277dd405760101da0ac22bcc2676a865d4e5454491127dcc9f6826ab1"],"layout":"mixed","rows":1,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial0_mode1_step1","sha256":["c309e7f06b8ca356e4c51da1443796e297e04138614274961fe357447f66dc70","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","77fdad907225116606b452a626a81936e63b929e31a6ef1db049d922019fcbbc"],"layout":"mixed","rows":1,"initial":0,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode2_step0","sha256":["495b3d5906ef12d8ab1a1b2c256e2201e3189aba7fdffc31a6b33829515e7191","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","5858ef8277dd405760101da0ac22bcc2676a865d4e5454491127dcc9f6826ab1"],"layout":"mixed","rows":1,"initial":0,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial0_mode2_step1","sha256":["133010dc3bd369bf0b6dfa137308f5aafdc0ec90b22dda126e0ce368a75d9751","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","47030b2819c3559e15ace692c8cede602c8745358ae65fecf87df1d3dec65450"],"layout":"mixed","rows":1,"initial":0,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial0_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"mixed","rows":1,"initial":0,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"mixed","rows":1,"initial":0,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode4_step0","sha256":["5c645a1995fa6c300e27ac861c7271fd5d1234f6da48bb8bcb7922c6b8d1ca8e","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","486ee864bf361fe60a729c0c3e61d28bd58a2c7d853ccb2bd276daffe46d46e6"],"layout":"mixed","rows":1,"initial":0,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode4_step1","sha256":["22a6f0f17084facc03d75d5233fea40c07b17df11a1eec92b4ca312aaf231fa5","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","47b686c466df285753a96b3b8780f0bf5c46cce53efc9e36d9e759d80d893191"],"layout":"mixed","rows":1,"initial":0,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode5_step0","sha256":["3215cffb02b0127f67c603bce8e5ba67c23610c0a8561c7a5be87fff6f6de815","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","486ee864bf361fe60a729c0c3e61d28bd58a2c7d853ccb2bd276daffe46d46e6"],"layout":"mixed","rows":1,"initial":0,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial0_mode5_step1","sha256":["86c0bbdf5f35d95ac2ab6cb83e84e9a24feeac816260549aa0e3da2b1448f6e1","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","ac7ffc850b87b05327005bcf7abcb1ca0c32ddbd07dfcdad4c01a660e95f1add"],"layout":"mixed","rows":1,"initial":0,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode0_step0","sha256":["d1f7d350701958cbeb1106d3640a9336a29dd133e6e8287888022e736031d83e","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","87d1d75bebe43cd0ba40a3ca78032884227cc72c0aeeb1c39eb8ed00895adfa4"],"layout":"mixed","rows":1,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode0_step1","sha256":["c8a634b987caf178e2dbfc0aac0e2f45352318fc70c7a7721f4dab7b8ac350ee","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","ce0870468c39940099111add93324c98f75533f872ebeae55148154f48261bdf"],"layout":"mixed","rows":1,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode1_step0","sha256":["98a282840d01e9abe519d3d777d6f80def801a61ed6605de93272c02d190cc97","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","30009704261c987216bc643ab518bcb8bfe1566e2fb7418401efb74c8c57de8c"],"layout":"mixed","rows":1,"initial":1,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode1_step1","sha256":["a6690faf791b2396e38e479b0d37c39b1c5995c200916efe2e39a49f783cef36","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","75605bdcd244b0f614e97bfde868361aaf3d7217e5cb8ac7fe2691693aa85e7a"],"layout":"mixed","rows":1,"initial":1,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode2_step0","sha256":["a1214c94bbdc756187176dd28b7c34367db997d189ac18f749f74d2fa09ad123","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","a060843c741867fae2243816460d5e9724f3abdd4804458196afc628c4ee1e08"],"layout":"mixed","rows":1,"initial":1,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial1_mode2_step1","sha256":["52faaad13db8cb29bddecd430180acff94258c7c1671a78b72ab6f5c236efe9a","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","92666cefd94d03ced0cc6f0d59ee078756efb9bf63edaaab0a3b8a56a97d2136"],"layout":"mixed","rows":1,"initial":1,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial1_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"mixed","rows":1,"initial":1,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"mixed","rows":1,"initial":1,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode4_step0","sha256":["196aec0d37214cb9660814207e99a6c3a1bfa254b2db3069f0924636cb9367ad","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","87d1d75bebe43cd0ba40a3ca78032884227cc72c0aeeb1c39eb8ed00895adfa4"],"layout":"mixed","rows":1,"initial":1,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode4_step1","sha256":["0d3cc24b341b68ce8842689505669d7ea96ff251179fd156993aa1f6bc54fb72","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","ce0870468c39940099111add93324c98f75533f872ebeae55148154f48261bdf"],"layout":"mixed","rows":1,"initial":1,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode5_step0","sha256":["98a282840d01e9abe519d3d777d6f80def801a61ed6605de93272c02d190cc97","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","30009704261c987216bc643ab518bcb8bfe1566e2fb7418401efb74c8c57de8c"],"layout":"mixed","rows":1,"initial":1,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial1_mode5_step1","sha256":["a6690faf791b2396e38e479b0d37c39b1c5995c200916efe2e39a49f783cef36","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","75605bdcd244b0f614e97bfde868361aaf3d7217e5cb8ac7fe2691693aa85e7a"],"layout":"mixed","rows":1,"initial":1,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode0_step0","sha256":["ee6c52b988328087456df659df1f31d1de94769463bbbd951dc1ca2b1161fac1","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","af1583f9e864a1da4059fd094f0549f37c8123fa1d2eaf2be43c0633a068d752"],"layout":"mixed","rows":1,"initial":2,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode0_step1","sha256":["daa72a18c29e18ff13030b46143a0e7b3de30f5994660b1fe504e0bc7be572f7","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","30c2fc3e9354cf2f02820fb4d61a9e7a07063d81f75119d209b39cad00a58851"],"layout":"mixed","rows":1,"initial":2,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode1_step0","sha256":["444c7089304ed32680c31d2f707475c56678259441a9d75cecffdb000564c885","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","1bd0c5b4279a7283643d8c848508780cec6e71905cf3fbf41d32b14a47e4a04c"],"layout":"mixed","rows":1,"initial":2,"mode":1,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode1_step1","sha256":["d4756ede1bac21de5bd5cb78f71ff394cea8a42d0b0ebec99e26bce7e2cde6e7","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","3f57f13ffea3fcfe39f57c9ec3516e9e3bf0537e6810b07e6851f3ae261b0e96"],"layout":"mixed","rows":1,"initial":2,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode2_step0","sha256":["5ce6f73b578893d5d7d92991e690cd8f6e62b90ca3778e8a6f49fd4d42bdab28","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","b85f4601f5436ca7a36b8b4e30332c520902a4136c5071551a869adf42a9ec04"],"layout":"mixed","rows":1,"initial":2,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial2_mode2_step1","sha256":["147ad3849c8c3b5dd02f21ee281e373e0f96555186a2ce096e61353880b3c0eb","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","83595c1998b369e6a8b71defa6c4cae71ae1759df48115706589c57fcc769908"],"layout":"mixed","rows":1,"initial":2,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial2_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"mixed","rows":1,"initial":2,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","01026bbddc365eb3ea4d57c8517418ed7d510d4827c8a9576aa4c579fbf9bd3e"],"layout":"mixed","rows":1,"initial":2,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode4_step0","sha256":["2a9a68927b861d78041783fbc563267730c40166024dfdb68b78bd5ab0b48e66","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","af1583f9e864a1da4059fd094f0549f37c8123fa1d2eaf2be43c0633a068d752"],"layout":"mixed","rows":1,"initial":2,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode4_step1","sha256":["bf5302dc3436f874024561399d61faba67f658edd80e43290a0c6e19e68b8b6c","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","30c2fc3e9354cf2f02820fb4d61a9e7a07063d81f75119d209b39cad00a58851"],"layout":"mixed","rows":1,"initial":2,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode5_step0","sha256":["444c7089304ed32680c31d2f707475c56678259441a9d75cecffdb000564c885","ac732c948bd22da904e34b3028180c3b12365f19d9ae26f8b2881965fc2991d0","1bd0c5b4279a7283643d8c848508780cec6e71905cf3fbf41d32b14a47e4a04c"],"layout":"mixed","rows":1,"initial":2,"mode":5,"step":0,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial2_mode5_step1","sha256":["d4756ede1bac21de5bd5cb78f71ff394cea8a42d0b0ebec99e26bce7e2cde6e7","61f0c58e4d1e3c7f145d170506f5015a5bca6b840b485256b6cc1362654e564b","3f57f13ffea3fcfe39f57c9ec3516e9e3bf0537e6810b07e6851f3ae261b0e96"],"layout":"mixed","rows":1,"initial":2,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode0_step0","sha256":["91c0d5d768b6ba250e5a58b26875a167b23a535a71429c5d17b401aae8e941dc","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","ae4e84bdcab9a9ef061004f742750621a8034679909a03706f352b4bece39521"],"layout":"mixed","rows":1,"initial":3,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode0_step1","sha256":["728384328d9633337dbd92749ef328cb8502fb06639b8a9a3388d3e2abbf0462","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","b18a0b7ee88835d3c91777f16b7b70327d7efc382f28cee816a981fe244e15b8"],"layout":"mixed","rows":1,"initial":3,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode1_step0","sha256":["e0545355ac64910675e86273a52b9a8b61218f75e1d36e69bff19293c057ff1f","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","9e4dc83e69735550df9c87342ce580cf4ed5f88059066619636cdaea8e375abc"],"layout":"mixed","rows":1,"initial":3,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial3_mode1_step1","sha256":["7d3515ff9e6695c50d66b588bf308c6bbfb51fb23ed3644b989853dbc9939b0b","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","ffa01c2c73f0cbdd8f54c1ef87a7e9baf33c943e30a425d6c88f25c869009680"],"layout":"mixed","rows":1,"initial":3,"mode":1,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode2_step0","sha256":["e0545355ac64910675e86273a52b9a8b61218f75e1d36e69bff19293c057ff1f","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","9e4dc83e69735550df9c87342ce580cf4ed5f88059066619636cdaea8e375abc"],"layout":"mixed","rows":1,"initial":3,"mode":2,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial3_mode2_step1","sha256":["bc9f53d7836b5d37a42f5defb58e4e334cab0d13f40cb54d6bb852308a0f5a3c","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","c12e44956bf6657dcf8b623b6dd0db94c1133b247b48719449ffabfa9dabb226"],"layout":"mixed","rows":1,"initial":3,"mode":2,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r1_initial3_mode3_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","10ca92f727201ae7331bc16e57601daf0e7609baa99fffc7d4080cdad6bbedd9","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"mixed","rows":1,"initial":3,"mode":3,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode3_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","bccd9e2daf5c5638fc822c96a0e0304569931a0a9af36625066dfdb3af56d3ff","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"layout":"mixed","rows":1,"initial":3,"mode":3,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode4_step0","sha256":["62aa8edf69977f07d696a23ae44c2a4b04d43667496f6556182974ea9d7c3a85","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","ae4e84bdcab9a9ef061004f742750621a8034679909a03706f352b4bece39521"],"layout":"mixed","rows":1,"initial":3,"mode":4,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode4_step1","sha256":["f61f9d73aa397e0281f76627288eaa319db640ee3f5ce235a641189b335bc143","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","b18a0b7ee88835d3c91777f16b7b70327d7efc382f28cee816a981fe244e15b8"],"layout":"mixed","rows":1,"initial":3,"mode":4,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode5_step0","sha256":["91c0d5d768b6ba250e5a58b26875a167b23a535a71429c5d17b401aae8e941dc","e6c9fe558be298be277ceae0fd19fbf946e5953757667e14c259b9d98a224d6b","ae4e84bdcab9a9ef061004f742750621a8034679909a03706f352b4bece39521"],"layout":"mixed","rows":1,"initial":3,"mode":5,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r1_initial3_mode5_step1","sha256":["3fc424e0822d16ff9c552c12512c2db8689544c0abe9ee1f8a48c756bbe040b6","44699fcbc0932430570eb841ce4ddbe2de351b82a0608d811c2215e9f685ae98","1f3cd579ec316c3c85e7ace27ff1c05fd76d358659d6f6f442ac654b6435cea6"],"layout":"mixed","rows":1,"initial":3,"mode":5,"step":1,"used_step":true,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2_initial0_mode0_step0","sha256":["78eae1e6dfb20accfd035dbc8a7dfa46fd74130f6af72fe72b35f8c67e1a56d5","e7279276ed9e3dd23cd003143e3d763262c4b5a5c9f36dfb295c1483f8e16ad7","640bad8f978c36510ea2ee3fee5a358f580e81074c64a6268f57760ea9260605"],"layout":"mixed","rows":2,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2_initial0_mode0_step1","sha256":["4965fbac1bb4b5729c23862cb28f9afc162e28f1795b1841217bd77dc6d915d1","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","611b9ae5b3b1512c49e78c91301a6d17f78ee5f092976f89b833301cfe01a332"],"layout":"mixed","rows":2,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2_initial0_mode1_step0","sha256":["bb87c59375bbf3cabef29780fc843a516ce9b208a5ca732351714a5184301603","e7279276ed9e3dd23cd003143e3d763262c4b5a5c9f36dfb295c1483f8e16ad7","9bec3173accca7788c4408c23e54eb4463c6f724a9d94d2e84a29448341ea090"],"layout":"mixed","rows":2,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r2_initial0_mode1_step1","sha256":["a3964fec2153c781db4e24ef638a4d8a259fe1c951a11b923a8070159e5b1c7a","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","6411cdee9f07838c7ac4a7f4a4e685f5ccb8b0114b550385282458dfc04e1db7"],"layout":"mixed","rows":2,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r2_initial1_mode0_step0","sha256":["b562e5aa9981aa4938a89573e193da490d0303ed9635553641fa78ff0b913fdb","4ddbae3f7708882f8ffe68155ba8419e485457a98dc6084ed9c041ef0baa50cf","e4c2ed973e619c5e3396fa16c5c949e56d7fe6b16b72fe9d927c2422364907d2"],"layout":"mixed","rows":2,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2_initial1_mode0_step1","sha256":["ef2dfca3aff6534c306dbf383ba48a7be88ff2d2353f59613bf10034a2d3d3bc","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","3fa7d4f325229be052787b1b2520d39ca749daf94bc26b64074fafe1e03cc311"],"layout":"mixed","rows":2,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2_initial1_mode1_step0","sha256":["4b048ccac00882a2fea49a6c208c8e4519ac415a8b34120481752873cda9e9d0","4ddbae3f7708882f8ffe68155ba8419e485457a98dc6084ed9c041ef0baa50cf","881ce642731ec03bdd2878ab8c837cd2120042f52097f6e3315f1ffd37846d33"],"layout":"mixed","rows":2,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r2_initial1_mode1_step1","sha256":["852806a1dc6763e4e40a6d284d4c3b4446bde6e0609f269b97787915778d6ba9","4c2d76253ddc424aa346ef04823fb8f58c59c8fba548ade7fd3e0c0b958d69df","e299e838b5e2a827cbf9d14051bf8100c2851023fd03454b07dfae6c7a14b8a3"],"layout":"mixed","rows":2,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r6_initial0_mode0_step0","sha256":["ed0a3c979ca207392bea5c59a37458095e6666c1cfbf30f079192242d9b01176","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","b657766bc7da648cc832c4ba217c2ace76dc87ae7748a5f8f8181f028b997a05"],"layout":"mixed","rows":6,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r6_initial0_mode0_step1","sha256":["67adfe455d6162b11cfbd66885f1bdf215c2e356eaa1ef4ef9e4787c2dc527ec","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","e9e34db610d3996b6d10f3395fc03d902553e11a4f4f781deec606f4084b0260"],"layout":"mixed","rows":6,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r6_initial0_mode1_step0","sha256":["9684a0fe9da135e3a3ab4fdbf912809e1b12d1ab8aee6f92d2deebfc389a6112","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","2e798db3ae372161008fdedf97373915320b71b3b652c8aedc464f17358ac13e"],"layout":"mixed","rows":6,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r6_initial0_mode1_step1","sha256":["7cfa19fe858976d3f34f8622fb6f7eb2785a538106d62ff417da914f65204bd9","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","269790d6f526bb976cf0992ad6f42b90af7f7a2bdab9041f17e65cc49c3010e0"],"layout":"mixed","rows":6,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r6_initial1_mode0_step0","sha256":["e6f8388a6c7e4b8d34222ac92d5264da7392a831d85eb06fbe2ae19482a6ec59","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","8232d939ed858aab8d558aa511718b845602cb2231ef7eaf12106f936f49c3f5"],"layout":"mixed","rows":6,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r6_initial1_mode0_step1","sha256":["34795f5db657303ee6e2e3707085b4d26c44dcd3105c08def1b189536afce945","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","ca05e2af10aeba8cd52c8b978415f7df6e473905a85ebd7ba3b096bb3b2d9487"],"layout":"mixed","rows":6,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r6_initial1_mode1_step0","sha256":["0ba7667f53d3e903c444d63bb99fadb2a22cdbf1a89cae493cec6a1df47ea2a8","ab2d9b4b7e846308a9d14697ef458a28c2f3b8f29dd7324bd60f247d56e9dae9","234da8dd99a654e938c1118e82882f98b643a4f497a3ee953f657e1c3d977d17"],"layout":"mixed","rows":6,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r6_initial1_mode1_step1","sha256":["f61c01927f6eac52e2dfe88e5f03987137e063094a89aa509e6b029c9a520677","d6d4d97b12c63e6c9844987c98262c6cc0c2b9ff64a8a3aab2860959988b8abc","5500b67fadf624c03ace41e32afb51ff7c698ed0cadf2407f5c8acdf0bf05a31"],"layout":"mixed","rows":6,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":true} +{"kernel":"gdn_forward_mixed_r7_initial0_mode0_step0","sha256":["8083e4337271e74332ad62306e7f5af0d680df025c61842f8c6681f9aef39218","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","a3ba4635d987d9d42d322d941290994e3c2b5df5bfe5f6591003375534d2b27e"],"layout":"mixed","rows":7,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial0_mode0_step1","sha256":["fa8f87db40bbf1947d058ba2ee8eded528ed81edc9aefdee26ba45fd501dfdd4","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","44840bbecfc8356b5f364c57e6b33cd61601eec3548d3d728b9e56e9bb9efdd1"],"layout":"mixed","rows":7,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial0_mode1_step0","sha256":["8083e4337271e74332ad62306e7f5af0d680df025c61842f8c6681f9aef39218","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","a3ba4635d987d9d42d322d941290994e3c2b5df5bfe5f6591003375534d2b27e"],"layout":"mixed","rows":7,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial0_mode1_step1","sha256":["fa8f87db40bbf1947d058ba2ee8eded528ed81edc9aefdee26ba45fd501dfdd4","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","44840bbecfc8356b5f364c57e6b33cd61601eec3548d3d728b9e56e9bb9efdd1"],"layout":"mixed","rows":7,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial1_mode0_step0","sha256":["beee041a1cc3ff8cf102a952d63b7615ab96870b50ebecfc795d4b48d40197f0","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","1127df0da0ee339174b591b21b215ed2fc30cf6c09fe23a38b5dc4867a9ffbb9"],"layout":"mixed","rows":7,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial1_mode0_step1","sha256":["d4dc44ae32d6155d554e4ea68d64d5a27782b90e7b218e753bf2f3cd4997ba84","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","096c94673fcee840009e6887c870266129783dbb8ac9d5818e03959fa4fd8991"],"layout":"mixed","rows":7,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial1_mode1_step0","sha256":["beee041a1cc3ff8cf102a952d63b7615ab96870b50ebecfc795d4b48d40197f0","7d16bb13ea59dde8f7b61fe59c7ba38686df4a3e697e87d0a600bfb86f45da76","1127df0da0ee339174b591b21b215ed2fc30cf6c09fe23a38b5dc4867a9ffbb9"],"layout":"mixed","rows":7,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r7_initial1_mode1_step1","sha256":["d4dc44ae32d6155d554e4ea68d64d5a27782b90e7b218e753bf2f3cd4997ba84","e78baa9d9786bcc11aa11f8a21953e307b37a3b3ca5534e1b16877f348ee5810","096c94673fcee840009e6887c870266129783dbb8ac9d5818e03959fa4fd8991"],"layout":"mixed","rows":7,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial0_mode0_step0","sha256":["101e6bf6bf03addb8fac26bda200d55e4076e0aa822384e7eed3196ae54af8e6","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","e7bc3a0d729850aaf62302a02fa436e2a564b8e8053911328509d8e6a15812ec"],"layout":"mixed","rows":33,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial0_mode0_step1","sha256":["780fba811f1c428da4d9c7e363f71953d00f94a81f0a150b1b276b190b74cb87","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","2e5dc1c094d4c1d7bef2e0f5c1bef58c2d5d79b8a9f0e23e1594c88191bdb979"],"layout":"mixed","rows":33,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial0_mode1_step0","sha256":["101e6bf6bf03addb8fac26bda200d55e4076e0aa822384e7eed3196ae54af8e6","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","e7bc3a0d729850aaf62302a02fa436e2a564b8e8053911328509d8e6a15812ec"],"layout":"mixed","rows":33,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial0_mode1_step1","sha256":["780fba811f1c428da4d9c7e363f71953d00f94a81f0a150b1b276b190b74cb87","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","2e5dc1c094d4c1d7bef2e0f5c1bef58c2d5d79b8a9f0e23e1594c88191bdb979"],"layout":"mixed","rows":33,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial1_mode0_step0","sha256":["2b490ec52c31749850d34c4ef4c2d2703f8ef0cd1db891b1074556c3a574c11d","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","6eddff87f675dfed7d1a67507c8fc7ab540eb967b51b68da482fb2c569d363d1"],"layout":"mixed","rows":33,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial1_mode0_step1","sha256":["612f4a13e8f59a22626814713d35c8f0a7a4de743d6b8a92ac86298515a18c44","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","cf9f88d45f242c3798859fdb8c778ed2d0b84fd6cc8b4c15e8e97a16121e8720"],"layout":"mixed","rows":33,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial1_mode1_step0","sha256":["2b490ec52c31749850d34c4ef4c2d2703f8ef0cd1db891b1074556c3a574c11d","591c0b6ddbc059e4ecf2eb42ee80949fb49f64238105706cf7162cf4b610238c","6eddff87f675dfed7d1a67507c8fc7ab540eb967b51b68da482fb2c569d363d1"],"layout":"mixed","rows":33,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r33_initial1_mode1_step1","sha256":["612f4a13e8f59a22626814713d35c8f0a7a4de743d6b8a92ac86298515a18c44","d6afc2dab9ec21c6b57e9825c5c69821028c085598d099d2f91f6ea1fe719786","cf9f88d45f242c3798859fdb8c778ed2d0b84fd6cc8b4c15e8e97a16121e8720"],"layout":"mixed","rows":33,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial0_mode0_step0","sha256":["8c677ab4cc00a5d7ac37cbac5ecda341613210faa99473664acaca1951597aa8","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","d0389114297f3ee92fda99ae3e825c0bffb5a9b7fdec32dc312faf91f7881708"],"layout":"mixed","rows":2048,"initial":0,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial0_mode0_step1","sha256":["4797e6a209b7ef994c4b0b11b8886f4670ba4b0e3c7398d283a3ad9fd56f7160","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","fa3f101d3eae1cd191bfdb9914bb707b26445024f3c3a623857054e651f6dbe7"],"layout":"mixed","rows":2048,"initial":0,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial0_mode1_step0","sha256":["8c677ab4cc00a5d7ac37cbac5ecda341613210faa99473664acaca1951597aa8","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","d0389114297f3ee92fda99ae3e825c0bffb5a9b7fdec32dc312faf91f7881708"],"layout":"mixed","rows":2048,"initial":0,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial0_mode1_step1","sha256":["4797e6a209b7ef994c4b0b11b8886f4670ba4b0e3c7398d283a3ad9fd56f7160","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","fa3f101d3eae1cd191bfdb9914bb707b26445024f3c3a623857054e651f6dbe7"],"layout":"mixed","rows":2048,"initial":0,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial1_mode0_step0","sha256":["5bce20396c962a8fd37b07500144b4b9066ad46b69a5c83e21bafa7a493238b8","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","d0389114297f3ee92fda99ae3e825c0bffb5a9b7fdec32dc312faf91f7881708"],"layout":"mixed","rows":2048,"initial":1,"mode":0,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial1_mode0_step1","sha256":["4797e6a209b7ef994c4b0b11b8886f4670ba4b0e3c7398d283a3ad9fd56f7160","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","fa3f101d3eae1cd191bfdb9914bb707b26445024f3c3a623857054e651f6dbe7"],"layout":"mixed","rows":2048,"initial":1,"mode":0,"step":1,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial1_mode1_step0","sha256":["5bce20396c962a8fd37b07500144b4b9066ad46b69a5c83e21bafa7a493238b8","018cd6fd8ce3dda382b85a4088061f47a615e55798f1036ad4a799424d094a9d","d0389114297f3ee92fda99ae3e825c0bffb5a9b7fdec32dc312faf91f7881708"],"layout":"mixed","rows":2048,"initial":1,"mode":1,"step":0,"used_step":false,"used_conv":false} +{"kernel":"gdn_forward_mixed_r2048_initial1_mode1_step1","sha256":["4797e6a209b7ef994c4b0b11b8886f4670ba4b0e3c7398d283a3ad9fd56f7160","753619de85648211d170c678e6182ae37293040fa3b9b1b057e1797926501e99","fa3f101d3eae1cd191bfdb9914bb707b26445024f3c3a623857054e651f6dbe7"],"layout":"mixed","rows":2048,"initial":1,"mode":1,"step":1,"used_step":false,"used_conv":false} +{"kernel":"qsa_prepare_r1_stride512_dim1_pos0","sha256":["9f3a4db4749f56c048a57459ddb8a00f1450d5b1a8e5d515c3726c6ccc962bfa"],"rows":1,"stride":512,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride640_dim1_pos0","sha256":["9f3a4db4749f56c048a57459ddb8a00f1450d5b1a8e5d515c3726c6ccc962bfa"],"rows":1,"stride":640,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride1280_dim2_pos0","sha256":["b7f1952b788300179fc2f43c3fce9475b5e15e8179e408e894b78cae36d658df"],"rows":1,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride512_dim1_pos32767","sha256":["66f3593626d70285977d84dae84617e0c38b1fd7bdfa3d03fa11b0b94ca49568"],"rows":1,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride640_dim1_pos32767","sha256":["66f3593626d70285977d84dae84617e0c38b1fd7bdfa3d03fa11b0b94ca49568"],"rows":1,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride1280_dim2_pos32767","sha256":["a417366c2cb69cf4e04ffdd3a704392b76b098709876cb1839343b14a9ad5ce4"],"rows":1,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride512_dim1_pos262141","sha256":["a009da0c9d7b27d2721824422bd3f11e3cd192431d4364ed5f95c8b89ac0d8ab"],"rows":1,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride640_dim1_pos262141","sha256":["a009da0c9d7b27d2721824422bd3f11e3cd192431d4364ed5f95c8b89ac0d8ab"],"rows":1,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r1_stride1280_dim2_pos262141","sha256":["7f45e09f2ae0a5d7e83e86f22e93fd8fffd6ea3768bb030facccc584c84f321e"],"rows":1,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride512_dim1_pos0","sha256":["b3e6650bd68124eedea583952ebd62021fc1385365c085f1f23ed4a669bd6189"],"rows":4,"stride":512,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride640_dim1_pos0","sha256":["e30e58c3bbaf9efb888afe8694f4dee1a434797f6a73e178324cd8f673eacaed"],"rows":4,"stride":640,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride1280_dim2_pos0","sha256":["893ee0d9f51e8d537ef16dcc8798babb7c03ba78e54652e059d9a2b24f55a061"],"rows":4,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride512_dim1_pos32767","sha256":["2feb725221d52a420318e299486502ebc3a824df60a6481324437133b56f13a4"],"rows":4,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride640_dim1_pos32767","sha256":["d2d8b2b12308b7dc659a307d38c5f609014c88f0c677a034fdef8ba7c87fe746"],"rows":4,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride1280_dim2_pos32767","sha256":["ee592c0254c9bfbaa7d73343e9156187d6f115f606b7357003780065ca1bc5d5"],"rows":4,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride512_dim1_pos262141","sha256":["c73ef9ee21dca4b94fe33fbab846e9effb213c9b8a9122e2da254d090a674a53"],"rows":4,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride640_dim1_pos262141","sha256":["07ae73152c8d15ef524a3f24d261d423c6a58ecd27595d88c50187a2e20e6ef7"],"rows":4,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r4_stride1280_dim2_pos262141","sha256":["811916fbc88233e6e8590cf9d1203fe15fb8f2326234322b4a2a6dc172712d73"],"rows":4,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride512_dim1_pos0","sha256":["e8e194f24551d7d697667e3d6f34a7bf1c5ab47b810845e170f8a428175ee54d"],"rows":7,"stride":512,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride640_dim1_pos0","sha256":["0098df9f218c8c03aaf79eecfcb033d81577e9532f4d80e2370f2a10a43a8c3b"],"rows":7,"stride":640,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride1280_dim2_pos0","sha256":["08cd86d32d576eb45a134556749f3b4dd1c43c1332b67bfcf2089bfa8f203e38"],"rows":7,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride512_dim1_pos32767","sha256":["2befaaa45e11291a1404d5e744884f22e3fedd7ef3474a2d3dc89672a8c181a7"],"rows":7,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride640_dim1_pos32767","sha256":["a322137ac37b788b838925e2f33fe5fb25db4a5a4f90445f67258d610de850b9"],"rows":7,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride1280_dim2_pos32767","sha256":["ad473862d154f4691931bbad8a6e4246d893cc5d32fac0cf11d3d986e9f8115a"],"rows":7,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride512_dim1_pos262141","sha256":["8b4d6e87c9b48c15eb28d7e344434f5333d68d71f7eedb234e455bcc98e696c7"],"rows":7,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride640_dim1_pos262141","sha256":["dc04fd5e4ea8a1b09879340ac4d78a501ffa4e478541e4ce84943abcb1009fbd"],"rows":7,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r7_stride1280_dim2_pos262141","sha256":["0aee3a66f7db0a2754bc9a0e94d03c501f110f23ed87f1eb6d2183449a107d8f"],"rows":7,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride512_dim1_pos0","sha256":["0fa30e38bd6a0ab6e364e539142448fe689b3c33776da754d2f8406a56691c95"],"rows":32,"stride":512,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride640_dim1_pos0","sha256":["909dc598c0f14aa2eab8fd8c061b34f833d06486fe8504773379367b6543c471"],"rows":32,"stride":640,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride1280_dim2_pos0","sha256":["fb9ccdb072305673dc756789a6487beb05ec929d7dce1a7d66e08f9b3e398e11"],"rows":32,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride512_dim1_pos32767","sha256":["81a5da712de40ed8a10d9d34966601d273d48b86701e7784d833b7e47e6bde60"],"rows":32,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride640_dim1_pos32767","sha256":["9a6dab666e7af6664ef58f42f69ef5c9d6dbc26127be781a7da03f3c005eb69c"],"rows":32,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride1280_dim2_pos32767","sha256":["33a9b1c6c1546130769bd60b46139e95e54154cee6600193ab2c29aa5fdfce14"],"rows":32,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride512_dim1_pos262141","sha256":["cc2695dd72c758b035a27ccb17e581863fe96065bf5474a8fa7b1631d00d74a6"],"rows":32,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride640_dim1_pos262141","sha256":["609948c52675d2a54bb5432e8278e8dc34c7edf882816c52fbcaa727dc23e743"],"rows":32,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r32_stride1280_dim2_pos262141","sha256":["02ce8f9b5f693cd3b5c3f7fd280a5bf28a8e77aab15a01c24a05369d76af640f"],"rows":32,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride512_dim1_pos0","sha256":["2a3734a784006356774a82d557f8c4b487828c8efbe6a512fce0ffc4e205b569"],"rows":2048,"stride":512,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride640_dim1_pos0","sha256":["84b0a532845eb3f93f6113f4c1942ab17f8d8adb5255b9a40f41e34ebe0f205c"],"rows":2048,"stride":640,"dimstride":1,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride1280_dim2_pos0","sha256":["b9865497d0ce41f6bf27e08228fd9904c60c77901a3ac73419a3552b9d826817"],"rows":2048,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride512_dim1_pos32767","sha256":["348f31b5dc73f2ad63e5287926bfded553da97d7ceed4aa4548bdff971a8b12a"],"rows":2048,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride640_dim1_pos32767","sha256":["0d32e1cacbeb53d09ede5da269c36fdacf932e7eef54f639403eb67c0172f0e2"],"rows":2048,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride1280_dim2_pos32767","sha256":["5f4603157f8d797f77749588440919c9c146a9db3c307b3ba0b9163ab6bfc263"],"rows":2048,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride512_dim1_pos262141","sha256":["0bf421afc6dfaaec15b929eee3558ab4d8710b313c398cd178435f32534c15d0"],"rows":2048,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride640_dim1_pos262141","sha256":["0cfd9a3dec02e2dc18150b3002c3bdeef4e78ae64c78d7a2b741ff70dfa0394e"],"rows":2048,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_prepare_r2048_stride1280_dim2_pos262141","sha256":["312ddea930cec971d91b6c362058129dae8998c5db4ec94bd8841be6a0952555"],"rows":2048,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride128_dim1_start0","sha256":["74da49bc415708cc57e211be51dc11261b758fdf65ca23051eb3d710266449a3"],"blocks":1,"stride":128,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride640_dim1_start0","sha256":["aa65179ef015a51d9f3a6d9c95df888662ca8d8234e4bebe20b848e44d01e40c"],"blocks":1,"stride":640,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride1280_dim2_start0","sha256":["c42f057bd56632ab9bcc65cf34f1e585c1b488aae4fa0a124b8a5a7f85b3f547"],"blocks":1,"stride":1280,"dimstride":2,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride128_dim1_start8191","sha256":["1321a0b6b230c56d3061788aa320d1c419e8c731e95588511afc0bfab19e3a01"],"blocks":1,"stride":128,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride640_dim1_start8191","sha256":["a00d1d9534cd8ba1a09f713cb28b69996623285e7ad72035983e12bd830d65b0"],"blocks":1,"stride":640,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride1280_dim2_start8191","sha256":["c6d2a408828310a79d26b8ea761f226d88a0e43d11c4d22dc8229f2567e1078b"],"blocks":1,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride128_dim1_start65535","sha256":["ba2c50948701a09f89cdc3620a7f7961f83f6378d309810026f4000cdead8f34"],"blocks":1,"stride":128,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride640_dim1_start65535","sha256":["3ba2f60a38be10af5c10449462e1427d85521a8792abe079b9f8cdbfd895bd15"],"blocks":1,"stride":640,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n1_stride1280_dim2_start65535","sha256":["a8dc074df37e213039e7e4cf71592e8fe56a51b6dcb4a21b7fe7f3a655c96d32"],"blocks":1,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride128_dim1_start0","sha256":["9dea9804a0a99a7f5c91b2615a168d50f980d22078b741fc0d627c7a67777b05"],"blocks":2,"stride":128,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride640_dim1_start0","sha256":["975cd2e0d39492907eba397757623daf5c5d9b38f5408743f4cf5c0f27c5e479"],"blocks":2,"stride":640,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride1280_dim2_start0","sha256":["2e6245d5c65d7bc51d66a5a742c3764bc40d8c849dff3ecebf696a72da62c962"],"blocks":2,"stride":1280,"dimstride":2,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride128_dim1_start8191","sha256":["da8bca7ed6c44be25b2b14c0965c4fb65d91552545262cfa29cb8b8a965ba53c"],"blocks":2,"stride":128,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride640_dim1_start8191","sha256":["caa46be7b4446442d4476bc0c868d9e73183546ee16b98cd2080781aede57a68"],"blocks":2,"stride":640,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride1280_dim2_start8191","sha256":["0381660b6de7d0673f63f2bdf2f1dad4284e22efba354d7b6ab082c9515a499d"],"blocks":2,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride128_dim1_start65535","sha256":["215929ab4a7e6620a786a79a96c2f3c9d1d0dd6a84eaeb5d777d053299c0cfdc"],"blocks":2,"stride":128,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride640_dim1_start65535","sha256":["cda80eafa0a9238d32552d4e5b556445addf180ba16239c0faa2e772ae859c61"],"blocks":2,"stride":640,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n2_stride1280_dim2_start65535","sha256":["0c494e1d232c37c044dc98ce94b1ed5e5765d2bddcfd2920c2c6808cf3de4712"],"blocks":2,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride128_dim1_start0","sha256":["7df0d05cfabb852f6c742cc7aabc128313fc08c0fe563703c6b1571e8db6661e"],"blocks":7,"stride":128,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride640_dim1_start0","sha256":["2abd326b0c54af6c72a422c9f0136baff2a5784074465b70e27b1ebc5f75791e"],"blocks":7,"stride":640,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride1280_dim2_start0","sha256":["7cc578e4f67b6a3a008e87cd595236e04cdc7cb3d2388d1225ad95cbfa1dd24a"],"blocks":7,"stride":1280,"dimstride":2,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride128_dim1_start8191","sha256":["6dab17bfa08abe148c8d7afb1ad3629cd2ad04abb86cc8dc5d77f456b31058c3"],"blocks":7,"stride":128,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride640_dim1_start8191","sha256":["b1b9b4bb12b06685685c413f20eec15184c4d744841916f0707067f406cc89c1"],"blocks":7,"stride":640,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride1280_dim2_start8191","sha256":["1d36e573f97328eaf6138a544675e8c897f337963b7efefbec803b2da97602d9"],"blocks":7,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride128_dim1_start65535","sha256":["a9fa8216cf0a402a063ec15bb78dde9a1b5c95f6803e7181f95ffc7dd5bfeff1"],"blocks":7,"stride":128,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride640_dim1_start65535","sha256":["b9c63b22d12b0291cf9f27e7418d4be24887eb1625c482f30ea3ff88d714eb0f"],"blocks":7,"stride":640,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n7_stride1280_dim2_start65535","sha256":["b0033c9d860ba531af2777108c7a74ad9db75f68fa3ffac55d57764bd6983746"],"blocks":7,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride128_dim1_start0","sha256":["9f877b58b0434bb16c32e7b09ab589c05680cdecfde2d11be78ffdca68883d1b"],"blocks":512,"stride":128,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride640_dim1_start0","sha256":["a3a11f0b28054db4498e76c94ca3147cafc36abfdb15e91926fde23328d8ed61"],"blocks":512,"stride":640,"dimstride":1,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride1280_dim2_start0","sha256":["e3d297685b64902fcd58add8b6ba385e09ce6dee4c4991af874c6fce463d6d8c"],"blocks":512,"stride":1280,"dimstride":2,"start":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride128_dim1_start8191","sha256":["8ac26b660c37c673e2a431fe5ec1c66324048e994db875432fed94a904ec6021"],"blocks":512,"stride":128,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride640_dim1_start8191","sha256":["bfde96c45eb4bd01348b7c3306864665098563fd4736314d4c1559b72ccd603c"],"blocks":512,"stride":640,"dimstride":1,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride1280_dim2_start8191","sha256":["a8034f6127bad8f8d1400f50a3235ad4fa675e915d63a9cc08734578c86425c9"],"blocks":512,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride128_dim1_start65535","sha256":["84069d99aeff2127e541ac8571f3683a22c14c8231b6be7e3cc59a8cde947219"],"blocks":512,"stride":128,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride640_dim1_start65535","sha256":["690b9accfdac82c29207b428981db8aac9cab84ffddd825ddb34fd4e1986fa4b"],"blocks":512,"stride":640,"dimstride":1,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_pool_n512_stride1280_dim2_start65535","sha256":["41d15c3a8e28fa3c1611cd54d978fdf750065dae5e18f2e7b14c567477e63de9"],"blocks":512,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b4_g64_pos0","sha256":["276b5114dfceed3c0bc60086b9da4b089d2e6ada5c163034c6aad2957954b18c","cbef6d5a371a464711e886e93396d6ae485e212b6af674d2c56a2f6fb5e0f324"],"rows":4,"bits":4,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b4_g64_pos262140","sha256":["0b1867dfb176040985f8ae133bd8aafcd4c747fb895915eb188d85f5c5144ab9","436a5b0c684c997ce82324ec1b0883f8e419e1a618274bfcc12d2a4d06af63b1"],"rows":4,"bits":4,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b4_g64_pos0","sha256":["b6493eba1913e00257b439c37d573f877cccc14191b35ebacefd6493f5478daf","8d2d6a46d07a9bd9772b406a2f9ec5421fe8c00e41f8e04f8386b5ac4fce7ec3"],"rows":8,"bits":4,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b4_g64_pos262140","sha256":["fa025aa3a6b699c5186dd2a97fd408162736408381f35e1ae2d36a39673220cb","aabed0ff0e47087cae5c349a5d60ed64ef444b7716614c4458593fa037f3b3da"],"rows":8,"bits":4,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b4_g64_pos0","sha256":["4e799dc99c38446f93e80a74cd901ff54950ac6b4f64d2e07d2f515b775dc770","f23dfcf044c80dddd2f912131c51d8207a5b51465ef08676668da92e04c73310"],"rows":32,"bits":4,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b4_g64_pos262140","sha256":["9bc2e9a47ba5090e9892ab05cf239327403d854550557cbf38814f177bf51bbd","8d355a17d032b9ab428650018a43b288254a191d760acfe415c1bbd4b618bd7d"],"rows":32,"bits":4,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b4_g64_pos0","sha256":["0f2473d853d2ceeadc48a04311f840ecdb6818d8972d8f77710ffb6c0022dd2d","cee9e2776dc9439afb395e1e5e33be9d0f445c807b3b86a1ab66b7846f8205fe"],"rows":2048,"bits":4,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b4_g64_pos262140","sha256":["49416ee267606dcd70d60236ad3516635415d3e64e0f49a957aeeb8dd4f90767","a1832ee57179401ac96209928adb4a0db4b77a67e5c68da5023b45772ca0270b"],"rows":2048,"bits":4,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b8_g64_pos0","sha256":["c0207fb328898c49b297191c310a8662020cd079daec424bc8e87e8299fae8c4","48001fd942dec5b09b2ba66e5aca434cac49b0784ae976cedf90b83c8a152813"],"rows":4,"bits":8,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b8_g64_pos262140","sha256":["78495093b498a25d871fdd2318c153003c16d71f6ccbf956f0e234184394bbf2","8a47d864688b1d876ab53ee7a6c18390cab11ae9d895f4d1ce28c5e24cca8a5a"],"rows":4,"bits":8,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b8_g64_pos0","sha256":["670b63f4007df35bd3d0581c1669dc91c23eb78e97f3bd3466f98f022bd38451","fdf44a18e52f2fd335321721e1999623e97c8a59fffc0b42f34eb5e49f975c4a"],"rows":8,"bits":8,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b8_g64_pos262140","sha256":["c045085ec14a85147988d36845766d9cd8f6c0d1a148e3941f92b0060e9a42c2","8281550f653eafd8f7ba3ce8087d27e3553866f88405417fcf04d7cd3f030cec"],"rows":8,"bits":8,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b8_g64_pos0","sha256":["cf56e60ad7530686efc662b5a035a50f17d8da176b6cb4201deaed224dea2643","faba6cac7de2293dd7824a619354b688d7514d6d0b2c1cadac9398a453ebab19"],"rows":32,"bits":8,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b8_g64_pos262140","sha256":["c3cae75f6d5d3307306dd08e7fd2f062597e61e1f004e972a9c2a9863056e156","522ea9d91eddb2843d3576e3527347c8517fb22fa5cb590903104fee7d3f0225"],"rows":32,"bits":8,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b8_g64_pos0","sha256":["a21b324598887f92b735c7bf328d51fc017c8118351ad594fced82f1b95d20bc","b9d4cfc0f920769ad1c3a7d55b43064233b4838e213fafe1ebd275adda9afda9"],"rows":2048,"bits":8,"group":64,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b8_g64_pos262140","sha256":["bd8e63cf9167d60110d840d4057f6d200327bb54870764d697a35782a14b675c","3c408c9c18c1276f7f3fae1d56d178cd13921207ba1aa194446ca39e57aa24a8"],"rows":2048,"bits":8,"group":64,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b8_g32_pos0","sha256":["53cd8f6517d22070c9d50a803a3c4b2c47bfde2b71e59d96b4e1d50df9fe61e4","61475437d7344a99a1a804d037628ef7cc25ebb6fbab8c9d2f81d0274610379a"],"rows":4,"bits":8,"group":32,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r4_b8_g32_pos262140","sha256":["4a43f7fee9c4c5149235504b43694a64fb7efd59e777e1751a79125d940b9420","91f02c32a0d068b27305ea2fc70a3782ed8d3a6f2f6713b348dc2498b2ed95d4"],"rows":4,"bits":8,"group":32,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b8_g32_pos0","sha256":["167c2271df093f7aaf49183945d27804756fde4a97f856004659dd1234b6a210","c57a6907c8d7c94958d1a7c3c02ee6565ae53bdd04448ddc56dd816c4a5932cc"],"rows":8,"bits":8,"group":32,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r8_b8_g32_pos262140","sha256":["d0550fc163fcc385cf0ad0c099ea2867a98c9a3909a3fc0a8edf0cf459fe4a25","e136097ae6ab60565131c9b42a78a6634d3f848a8dcb45af36b756cd5505cefb"],"rows":8,"bits":8,"group":32,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b8_g32_pos0","sha256":["7df60f14124b0834bd9bfab62f9bb34f3018c9ee66bdc1f76ea4d46dfbce2b7d","6d146ef5c9440c69a83919e66b80cb13900d3943047100e24200d0d13584b08f"],"rows":32,"bits":8,"group":32,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r32_b8_g32_pos262140","sha256":["70c16a743cda8fe66fd4cb38c553fd95005d07c0949497eb9fe03c6008e568e8","5c491766a01c28e1ef861a1336110345c2188b15422c2668aeda936272beceea"],"rows":32,"bits":8,"group":32,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b8_g32_pos0","sha256":["78ce4a3055a34fe3599d8f259478885f40c9c2e252102ac9f8836922c6d914dd","4c317dbf3e0c3a90cc0b33a4bc158786dc825e4e358f641b2f473631a15df482"],"rows":2048,"bits":8,"group":32,"pos":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_project_r2048_b8_g32_pos262140","sha256":["7e60036570c4f09b37a2f0b175e0eff9d989efd767537dca46e42100d825ff88","9eee4555c4de8e7d2c8ab763bc6b494a5a1b95ad28d4c254679e4123149e6c45"],"rows":2048,"bits":8,"group":32,"pos":262140,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op0","sha256":["988cf1897226a2e69bf71fade741c0e3a7a8544a53a03c1a9a9562e9ddf9fddd","b771a0fb71a52fa3ea8e9a1360a936b0ea019f1c9f519d17fe6043847bfa9a7f","e7887b15455cc682fce9f398b5cc23b54b74e6f43f09e84f1ffe5821f24bd101"],"scenario":0,"index":0,"op":"append","arg":1,"offset":1,"nbytes":589824,"raw_cap":256,"kv_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"present":[true,true,true,false,false],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op1","sha256":["9a2428f8eb3b104e5bd2f40863225b6949bd9cefae944ad755822a5519a7a32c","3035c6f1258a76932dc5c17266b4f2992baceb8a458626ea12b5a53057b8b965","bf260569de33332d2be0958f5ba577588799913ef6009f463abf4f8aa6a6a8fb","96395fbc90bcf4e80b26cb7675cb29c0706987a39179a141efd4c1710cbb54b8","75041bc85815e7686d6f19a30529d87bc5984a7fc4a6aaf945a262fde1533bb4"],"scenario":0,"index":1,"op":"append","arg":3,"offset":4,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op2","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983"],"scenario":0,"index":2,"op":"append","arg":252,"offset":256,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op3","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":0,"index":3,"op":"save","arg":0,"offset":256,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op4","sha256":["2a6b660ffa2f0e18832834a39b05aa332acb710c6a266cdb40504fe4bed4aea7","653508d2af35bbf6b7b48e474b2716395a996f61eb108c1108aae2a9038b3a7a","478a4b674366dac57160be33e38a0a4f6ce39bbe1cec7c1f6f38da8648955871","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":0,"index":4,"op":"append","arg":1,"offset":257,"nbytes":1245184,"raw_cap":512,"kv_cap":512,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op5","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":0,"index":5,"op":"append","arg":767,"offset":1024,"nbytes":2426880,"raw_cap":1024,"kv_cap":1025,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op6","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":6,"op":"save","arg":1,"offset":1024,"nbytes":2426880,"raw_cap":1024,"kv_cap":1025,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op7","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","6cfc1ce6274872cbb6dd499898da236a6c768c92788d349907a3150f40bd9847","5af2dd5c717c175be83c79b4cf4f1218e23829e6f62197fa86cbcf9a570d2c5d","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":7,"op":"append","arg":4,"offset":1028,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op8","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","6cfc1ce6274872cbb6dd499898da236a6c768c92788d349907a3150f40bd9847","5af2dd5c717c175be83c79b4cf4f1218e23829e6f62197fa86cbcf9a570d2c5d","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":8,"op":"trim","arg":3,"offset":1025,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":256,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op9","sha256":["0409c78ae1276f1ddd70619c8f63fa9c1645f35a31958e7336ae5d64873fa759","c139dfba56d9a3a352dbf4da762e33cdb1b2fd3e4cad05920ace89ab799f80c3","f5ff7d5bf8bce7c7ba1e7493a4efb58da6f4c9a1f576d92257493f913c6a8542","903c881860a7f1907aca04fa2eb195b9a05d6c5a64fd613c0e61878cd61972c1","35b050079cf7a1ef91d6856815c2a57646b0ecc3e1f772f815ba822441dbc1db","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":9,"op":"append","arg":7,"offset":1032,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":258,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op10","sha256":["0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":10,"op":"restore","arg":1,"offset":1024,"nbytes":2424832,"raw_cap":1024,"kv_cap":1024,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op11","sha256":["4930ac0b31915dbf892c8116e60ba05335e4254afe508bc2796468974d9e1255","5f2fe9763ab151b55af2a8c999b6afcf80b59b409bfe7d0a0f3ca747f544f1d0","1aa103e9a50d3e9651db045a2289776fd1e05e0ed29d0e3a5fd9d752e0673879","ad637c9f2ef8fc752f3246496b70e6ce5320f872e63126a014b187ae35a42df7","a5d97ff401f4e64f8076781dfd938d78b308ea4e95eb7dbbdcbf1ab627268076","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":11,"op":"append","arg":4,"offset":1028,"nbytes":3276800,"raw_cap":2048,"kv_cap":1280,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op12","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":12,"op":"restore","arg":0,"offset":256,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":64,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op13","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":13,"op":"trim","arg":5,"offset":251,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":62,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op14","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":14,"op":"append","arg":2,"offset":253,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op15","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","c64857fb550e7fceec6dd9151bbd643e190c9cd0b3f857c33f2cca802ed98518","10a5c9964b2aebdb10222435d29e35b4e9c2f45f83d0f4a1f19a5c11fb7d0612","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":15,"op":"reserve","arg":[1600,600],"offset":253,"nbytes":1087488,"raw_cap":1600,"kv_cap":256,"pooled_cap":600,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op16","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":0,"index":16,"op":"append","arg":1029,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op17","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":0,"index":17,"op":"save","arg":2,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op18","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":0,"index":18,"op":"trim","arg":100000,"offset":0,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op19","sha256":["fec15a93080909709d325fbe9aa0894d30f2b36d20451945c8e52b4ac33ec3ae","bc598d6ede66557f5a7d3ba5050064675449c86d2304d00838a80a9b63615d34","3b84cb6038b391b9b64218655e93a01adeab98c1a02c50c95c091013e78b5fff","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":0,"index":19,"op":"append","arg":2,"offset":2,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op20","sha256":["6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4","d5f9a315cd80a77a397f01f00d37fb68cdccc4c148737e4de429737f18a5acba","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":0,"index":20,"op":"restore","arg":2,"offset":1282,"nbytes":3035648,"raw_cap":1282,"kv_cap":1282,"pooled_cap":320,"pooled_len":320,"mirror_cap":320,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s0_op21","sha256":["0e81c6f00985035ba85170fd9fb9ef1054165fd4fab6e62fa7795f68767ca0a7","dc9d2522603a58b577108f0e5c165d797b296ba0ac26be720211d0b88cde927f","c6fb3bc4399756d30911d6853b0c0d00f2b6694dbba37bc865e771bfbc21289c","cb954ad1289cf47c2b54be232f8d1152a82e5846c2e356f0b370de41987069c3","248d24e62d1fe94aa59501bd3a68b6c7aa2a69ed1a22237e0e14c6e5e67dab00","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":0,"index":21,"op":"append","arg":3,"offset":1285,"nbytes":3970048,"raw_cap":2564,"kv_cap":1538,"pooled_cap":640,"pooled_len":321,"mirror_cap":640,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op0","sha256":["988cf1897226a2e69bf71fade741c0e3a7a8544a53a03c1a9a9562e9ddf9fddd","b771a0fb71a52fa3ea8e9a1360a936b0ea019f1c9f519d17fe6043847bfa9a7f","35c1f952466deef1e707b4173a2448f174f4c371d9c475bde52bf9cd7ebea167"],"scenario":1,"index":0,"op":"append","arg":1,"offset":1,"nbytes":601088,"raw_cap":300,"kv_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"present":[true,true,true,false,false],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op1","sha256":["9a2428f8eb3b104e5bd2f40863225b6949bd9cefae944ad755822a5519a7a32c","3035c6f1258a76932dc5c17266b4f2992baceb8a458626ea12b5a53057b8b965","c8e95a99b3eaf4ec11c0d5877fe6992e655f38512d30751e0492172a65f45866","ea91af07b7748fff97dc66d528847b27066a350f614c5122ac9ee5eba7b65d6b","f5b411eb0cdc2fe896faae42a0b5443d8118b02d67ab6797834010e922ddec20"],"scenario":1,"index":1,"op":"append","arg":3,"offset":4,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":1,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op2","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","73bd7bddfdc68763d741668d288154878f2dc3ab869ee16ee6aa26c6f7f66d1c","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097"],"scenario":1,"index":2,"op":"append","arg":252,"offset":256,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op3","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","73bd7bddfdc68763d741668d288154878f2dc3ab869ee16ee6aa26c6f7f66d1c","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":1,"index":3,"op":"save","arg":0,"offset":256,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op4","sha256":["2a6b660ffa2f0e18832834a39b05aa332acb710c6a266cdb40504fe4bed4aea7","653508d2af35bbf6b7b48e474b2716395a996f61eb108c1108aae2a9038b3a7a","7134b3a613d3dbd97aafde9e1c326c37e667eb90e1b4fcf2e6d7595bec521597","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":1,"index":4,"op":"append","arg":1,"offset":257,"nbytes":1202176,"raw_cap":300,"kv_cap":512,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op5","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","29e215bfa3c95b23a4f7ba48fe6d534c4bc5049cff8883c2b5a93b978dce29d2","d845f5d94b8f0cea39663b41eb4adba9c639456f0866c437ab9be04453409b69","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":1,"index":5,"op":"append","arg":767,"offset":1024,"nbytes":2438144,"raw_cap":1024,"kv_cap":1025,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op6","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","29e215bfa3c95b23a4f7ba48fe6d534c4bc5049cff8883c2b5a93b978dce29d2","d845f5d94b8f0cea39663b41eb4adba9c639456f0866c437ab9be04453409b69","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":6,"op":"save","arg":1,"offset":1024,"nbytes":2438144,"raw_cap":1024,"kv_cap":1025,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op7","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","989ddccf4849fb3d989c1f7114a22a28573b855fb51d3de6dcd83996b9e8e47c","42bf364f17bdb5017241a162ea5d338a1deadfb8e36eb962401717a6708fd460","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":7,"op":"append","arg":4,"offset":1028,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":257,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op8","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","989ddccf4849fb3d989c1f7114a22a28573b855fb51d3de6dcd83996b9e8e47c","42bf364f17bdb5017241a162ea5d338a1deadfb8e36eb962401717a6708fd460","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":8,"op":"trim","arg":3,"offset":1025,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op9","sha256":["0409c78ae1276f1ddd70619c8f63fa9c1645f35a31958e7336ae5d64873fa759","c139dfba56d9a3a352dbf4da762e33cdb1b2fd3e4cad05920ace89ab799f80c3","f5ff7d5bf8bce7c7ba1e7493a4efb58da6f4c9a1f576d92257493f913c6a8542","7c0e18c6ab23d7b72b1f8e41628ba6ba2b852d6589f0348180cdb9eef54fc7cd","f53bcbde78738f7408d340069d149836f2f0da598c9dac8db4e421decd8f1866","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":9,"op":"append","arg":7,"offset":1032,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":258,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op10","sha256":["0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":10,"op":"restore","arg":1,"offset":1024,"nbytes":2424832,"raw_cap":1024,"kv_cap":1024,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op11","sha256":["4930ac0b31915dbf892c8116e60ba05335e4254afe508bc2796468974d9e1255","5f2fe9763ab151b55af2a8c999b6afcf80b59b409bfe7d0a0f3ca747f544f1d0","1aa103e9a50d3e9651db045a2289776fd1e05e0ed29d0e3a5fd9d752e0673879","ad637c9f2ef8fc752f3246496b70e6ce5320f872e63126a014b187ae35a42df7","a5d97ff401f4e64f8076781dfd938d78b308ea4e95eb7dbbdcbf1ab627268076","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":11,"op":"append","arg":4,"offset":1028,"nbytes":3276800,"raw_cap":2048,"kv_cap":1280,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op12","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":12,"op":"restore","arg":0,"offset":256,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":64,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op13","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":13,"op":"trim","arg":5,"offset":251,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":62,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op14","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":14,"op":"append","arg":2,"offset":253,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op15","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","c64857fb550e7fceec6dd9151bbd643e190c9cd0b3f857c33f2cca802ed98518","10a5c9964b2aebdb10222435d29e35b4e9c2f45f83d0f4a1f19a5c11fb7d0612","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":15,"op":"reserve","arg":[1600,600],"offset":253,"nbytes":1087488,"raw_cap":1600,"kv_cap":256,"pooled_cap":600,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op16","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":1,"index":16,"op":"append","arg":1029,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op17","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":1,"index":17,"op":"save","arg":2,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op18","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":1,"index":18,"op":"trim","arg":100000,"offset":0,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op19","sha256":["fec15a93080909709d325fbe9aa0894d30f2b36d20451945c8e52b4ac33ec3ae","bc598d6ede66557f5a7d3ba5050064675449c86d2304d00838a80a9b63615d34","3b84cb6038b391b9b64218655e93a01adeab98c1a02c50c95c091013e78b5fff","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":1,"index":19,"op":"append","arg":2,"offset":2,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op20","sha256":["6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4","d5f9a315cd80a77a397f01f00d37fb68cdccc4c148737e4de429737f18a5acba","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":1,"index":20,"op":"restore","arg":2,"offset":1282,"nbytes":3035648,"raw_cap":1282,"kv_cap":1282,"pooled_cap":320,"pooled_len":320,"mirror_cap":320,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_cache_s1_op21","sha256":["0e81c6f00985035ba85170fd9fb9ef1054165fd4fab6e62fa7795f68767ca0a7","dc9d2522603a58b577108f0e5c165d797b296ba0ac26be720211d0b88cde927f","c6fb3bc4399756d30911d6853b0c0d00f2b6694dbba37bc865e771bfbc21289c","cb954ad1289cf47c2b54be232f8d1152a82e5846c2e356f0b370de41987069c3","248d24e62d1fe94aa59501bd3a68b6c7aa2a69ed1a22237e0e14c6e5e67dab00","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":1,"index":21,"op":"append","arg":3,"offset":1285,"nbytes":3970048,"raw_cap":2564,"kv_cap":1538,"pooled_cap":640,"pooled_len":321,"mirror_cap":640,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_select_c0_v0_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"ddd7d50b79db87f5729b9ce000792fb147f9dc8f860b2414dcbcd9aef14ce601","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c0_v0_dense_mask","sha256":["ccaf6f183579497e8bfcd71045c04286fd3c2e60f3641e3eea164b761a4494b7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"dense_mask","dense_width":4,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"a39512486ad0055398873051c9f605ba8b24c3e9dc6d98be956a7596d0f6ad62","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c0_v0_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"7ad45b4bff7fa9675777b9d415341f368a71e13066491c3d6e677f4391ef2066","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c0_v1_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"ddd7d50b79db87f5729b9ce000792fb147f9dc8f860b2414dcbcd9aef14ce601","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c0_v1_dense_mask","sha256":["ccaf6f183579497e8bfcd71045c04286fd3c2e60f3641e3eea164b761a4494b7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"dense_mask","dense_width":4,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"a39512486ad0055398873051c9f605ba8b24c3e9dc6d98be956a7596d0f6ad62","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c0_v1_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"7ad45b4bff7fa9675777b9d415341f368a71e13066491c3d6e677f4391ef2066","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c0_v2_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"efb0eae3e8ef2b4485fc6ad8244023020da34d902f8d1488e7b560b503944a62","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c0_v2_dense_mask","sha256":["ccaf6f183579497e8bfcd71045c04286fd3c2e60f3641e3eea164b761a4494b7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"dense_mask","dense_width":4,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"ad90606e3f8f9c02b1c92d85b5c81cd10801252982d3f83d9ba86ea2e0042260","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c0_v2_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"f98f5e7f2390d0362003981087cc78108ed33293d53ea8d5b818410106a74c60","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c0_v3_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"000aee5480843863e0b28ac0141525c08b6a091176805c8cec3f408325c8d2a3","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c0_v3_dense_mask","sha256":["ccaf6f183579497e8bfcd71045c04286fd3c2e60f3641e3eea164b761a4494b7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"dense_mask","dense_width":4,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"7fac6a39d046a6adcd3486bd6f72c610a9b66e1b8c4e34619d9697400c1ebeab","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c0_v3_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":0,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"312a81a568e42943bbf1a7dbbaf6f6b81403997f0d38dab8c01efb41eca6b496","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c1_v0_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","0684f7b883af51b39fb37f149554a4d26093112bb80d2bd099d090e0064266a5"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"b3e07e9b7f03cdc63279939434e11f96b00686bb308e68778206e830c9402c59","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c1_v0_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"7ddd4c8f7eb21a43dea3007c69cfc27d0123554721dc2ac7dd3da9ed6878b44a","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c1_v0_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"a7f0f49b9e9b79aed75d61fef19d8ed38197480b716206a698cbf6c72bf66769","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c1_v1_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","3521e526b7b26225acfec1b730ed8dcc8ca8b29ed7224477f69d6625f8d3350c"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"b3e07e9b7f03cdc63279939434e11f96b00686bb308e68778206e830c9402c59","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c1_v1_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"7ddd4c8f7eb21a43dea3007c69cfc27d0123554721dc2ac7dd3da9ed6878b44a","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c1_v1_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"a7f0f49b9e9b79aed75d61fef19d8ed38197480b716206a698cbf6c72bf66769","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c1_v2_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","96e1c1db084001b1ce92e24df3275adb00a7b36b2397254169470253006e9f95"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"07ae381026f5f8fa1a67cb2766bc1bb86343753d6a3257accd414f5c44802203","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c1_v2_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"c772f76ce7799382463e2835633dc33edda6377ba9f28110cf23dabc972907cf","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c1_v2_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"94b9b642e108098eecfec5c484c0c4447e0f800b4eee229ea1b5ab93ce9609c5","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c1_v3_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","75355165ef3bcb63121ada775d338fa2d5f4b4f2ebf9e4516ab867fa076ca579"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"b7bc7225521c7b8ddaf01f3b21dd1d4f3633ff48ca4a59b58716b5b904efe7ba","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c1_v3_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"68ec520dc7cfb5e35c62d661a9ad7954f4e4249dde5c0dc82ade68a2b88494a9","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c1_v3_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"1ec72981963356b12097820003e0a7ce78573f88638081843eae51c7330a9750","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c2_v0_blocks","sha256":["53107626a986c06efa878c397c0c8c566e68b04ab6c0fcb4158204da026d21cb","f88d3ee2190ca9827c38371c85b35d75e9e3c7090ce266cf1a3e929264c40229","c1841165a397894f8434db312ae2cd1633a36eb2833de71017f4bc0e8d39733f"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"2c038855acba00fbc2e4702e6e005519fa57ffdba3eb12e0914338ddd56d7722","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c2_v0_dense_mask","sha256":["e2f426092a944704b0f5b31ee2f4892cce3c134623acd135f0d345260a9d8dc6"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"c4b42da8664847a435b5362fad5ca3dfdaf74a13dfa007c4069f82d0d9f657bb","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c2_v0_row_tokens","sha256":["6c2c65e3a8c91b8e61a06d372950c03fd2ebcf1c2c832134a8d3234ea0816fae","1121108dce7d7397d5120a9f9a2a93a2a35f11a72ab1453b6d98114da27d053f"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"df4edaf0e608393e050f6d08f6b6a1d00e44f004f746ef42baeeef93b9e1f5bf","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c2_v1_blocks","sha256":["53107626a986c06efa878c397c0c8c566e68b04ab6c0fcb4158204da026d21cb","f88d3ee2190ca9827c38371c85b35d75e9e3c7090ce266cf1a3e929264c40229","c0572a060ddd991fcd2af099bc74bc56a85e8a563b4a4c965431b68b5a452118"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"2c038855acba00fbc2e4702e6e005519fa57ffdba3eb12e0914338ddd56d7722","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c2_v1_dense_mask","sha256":["e2f426092a944704b0f5b31ee2f4892cce3c134623acd135f0d345260a9d8dc6"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"c4b42da8664847a435b5362fad5ca3dfdaf74a13dfa007c4069f82d0d9f657bb","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c2_v1_row_tokens","sha256":["c5b1dcc2314f0b566a74661624eaba8e0b775956187818336972dab90764d902","1121108dce7d7397d5120a9f9a2a93a2a35f11a72ab1453b6d98114da27d053f"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"df4edaf0e608393e050f6d08f6b6a1d00e44f004f746ef42baeeef93b9e1f5bf","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c2_v2_blocks","sha256":["53107626a986c06efa878c397c0c8c566e68b04ab6c0fcb4158204da026d21cb","f88d3ee2190ca9827c38371c85b35d75e9e3c7090ce266cf1a3e929264c40229","9971410379ce0c75e588eae8d261a8fc9708671a69a9308b88ad4c7f2ccffd00"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"9549317b05e4eca4c33b60b02c7c08130d976ac458ba71b5739bc7b2cdd50ca7","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c2_v2_dense_mask","sha256":["e2f426092a944704b0f5b31ee2f4892cce3c134623acd135f0d345260a9d8dc6"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"991655e3eb75415cc28e6f85d6ce6606330e06abbc4d1d0988651b229cc658ce","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c2_v2_row_tokens","sha256":["dfa012505129bc046441020b93c2ca1fc7dc570bde6c16bd0917b88048982578","1121108dce7d7397d5120a9f9a2a93a2a35f11a72ab1453b6d98114da27d053f"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"2eb80207ebce920700d75b8966775ab8646c76d760d556509c0c3bf5c260999c","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c2_v3_blocks","sha256":["53107626a986c06efa878c397c0c8c566e68b04ab6c0fcb4158204da026d21cb","f88d3ee2190ca9827c38371c85b35d75e9e3c7090ce266cf1a3e929264c40229","ef43d1b44b048aad395c180a7c19a509433cb7de66beb6bee67489f9bca0e16b"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"2b80153452f5aa5c4abb19dc7cf0b8967b09c831e3a31e4df3e3da578793e976","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c2_v3_dense_mask","sha256":["e2f426092a944704b0f5b31ee2f4892cce3c134623acd135f0d345260a9d8dc6"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"17ca2abfe8c484d6ff4edb892f03fb17de718247bf4d623ae141304ec853dc78","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c2_v3_row_tokens","sha256":["08c00a3e91b04646ba5539aa9900b3a2c4ca9fb92717024d54ec984bce7ea6ef","1121108dce7d7397d5120a9f9a2a93a2a35f11a72ab1453b6d98114da27d053f"],"rows":4,"pos":2045,"total":2049,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"5de0ed13bfffd1e8354b9935d8ddd0afafa3a11f8bf4b84ed163023a15e98260","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c3_v0_blocks","sha256":["c1e3eddc97adf60dd599c6ea91988865f0f731ef8b2b52a42a9a69894cddd248","18df6df90284225e0d2850a3858d3bab3a8bffdd75f0804f440c053cd820ead1","15aa03e0b77f221c1548947d5b1b05efb43e1d5c3dbd23086aa6634b880a5006"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"9bd137d09ceb0b82048a942bc81936fd9afb5c9e6a89be25465c2ad5d1cc9021","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c3_v0_dense_mask","sha256":["7fa6d2414b4fa28b453a8368b271860e54f4134bb4b6772d8df824b3be3447e2"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"dense_mask","dense_width":2404,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"c5bbb087e46e1f7821e397f8752523f62a6d39a09f44f28ab657a1302f46d86e","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c3_v0_row_tokens","sha256":["5de20cca19ad93f0cd64e2586d3dcd8f44832b2ae42a7934ba6edc4d94a5dd77","24c1f70a45cb3617ff0f600a4ae4cff84b6086973763360aa4a2a76fca5d0d17"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"ee94406023cf2e5636cbe618d0eeb7825e5f96253fb32cc854d8cbf30be0b0be","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c3_v1_blocks","sha256":["066c665cf2ea1cc5ef10f92f0a7ee4a2b83527d6b9f9509ddf8956a0b16e6a8f","18df6df90284225e0d2850a3858d3bab3a8bffdd75f0804f440c053cd820ead1","06219250ac17a975029f9f3d12b4061b94c9611a19992decac53236eb3456a53"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"9bd137d09ceb0b82048a942bc81936fd9afb5c9e6a89be25465c2ad5d1cc9021","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c3_v1_dense_mask","sha256":["42699cf89669faa47c48bc6fd524f6c8e4ec8ecdde72c9c19cf7e25f988c7b7f"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"dense_mask","dense_width":2404,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"c5bbb087e46e1f7821e397f8752523f62a6d39a09f44f28ab657a1302f46d86e","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c3_v1_row_tokens","sha256":["63c7b7b17ded612ed249543f930bc1c16e8ed35cb36a34c3f0f7121fbb047d99","24c1f70a45cb3617ff0f600a4ae4cff84b6086973763360aa4a2a76fca5d0d17"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"ee94406023cf2e5636cbe618d0eeb7825e5f96253fb32cc854d8cbf30be0b0be","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c3_v2_blocks","sha256":["c1e3eddc97adf60dd599c6ea91988865f0f731ef8b2b52a42a9a69894cddd248","18df6df90284225e0d2850a3858d3bab3a8bffdd75f0804f440c053cd820ead1","7269928c527a6a8a8d3069c0451c620243ff477de1a38f98272025d5a817e83a"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"46a277fc7037c8bbda3238b586d5aff6ec88a10c38fc361ec8b8fcb8f7d64379","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c3_v2_dense_mask","sha256":["7fa6d2414b4fa28b453a8368b271860e54f4134bb4b6772d8df824b3be3447e2"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"dense_mask","dense_width":2404,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"54ab560a1bb0338182548c30cabaf0c267122c7016f35fddc8edaf0dc04239ca","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c3_v2_row_tokens","sha256":["5de20cca19ad93f0cd64e2586d3dcd8f44832b2ae42a7934ba6edc4d94a5dd77","24c1f70a45cb3617ff0f600a4ae4cff84b6086973763360aa4a2a76fca5d0d17"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"33cf3b55992566a8da986aebb3edb30acea791127a0ba44009e8b94ce0b99139","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c3_v3_blocks","sha256":["a2a25937aa13db4035f4641573d6cbc15288c3fb83bf7725c16d71b96f99b87e","18df6df90284225e0d2850a3858d3bab3a8bffdd75f0804f440c053cd820ead1","599cdce87c86f40c17487b4ce09248e577c2c3659d6014783313dbe24703b8bb"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"6092d1c3023c6008dd895dab93e8f65d9476ab19010b389472cb85d29f66f99a","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c3_v3_dense_mask","sha256":["70217c28b171e6b84a102b9a4f9a64c97d58933d8809c35e756053a884e2bdbc"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"dense_mask","dense_width":2404,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"8118a25979fc0d20cd8aea1aa72b408e8a2e33590e541e6fe3bef5d4ffb8c660","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c3_v3_row_tokens","sha256":["1d68a1ca07691fdee177c207a6778ac871276f750b85a062481aabba5124e7b6","24c1f70a45cb3617ff0f600a4ae4cff84b6086973763360aa4a2a76fca5d0d17"],"rows":7,"pos":2097,"total":2104,"blocks":600,"topk":16,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"c1f0add0b7a3dfb3d9af9ca50ef209fc963b25fcf5980ab9f33db89ce57fde28","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c4_v0_blocks","sha256":["8e9441164d4527564bc29831bc0c8dbe1d4c414f95242e8cb3b5e401a97e3135","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","56070700c5fe4e061f4b28ff2ae412a0a42dcda433c496f1c41ff934f5a6e3a7"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"3d0892fc79ea91cabaa0ca16500ff0b510b84614eee2c66ef9e749afff744fa7","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c4_v0_dense_mask","sha256":["fda914f622edb99c0956ab3a319392a4bb779486a1c9f67042bcd633a83d4838"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"dense_mask","dense_width":4804,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"e62db29905ee2e544326fb9308e01d335ea7f2621a4750d9e511ab5c0b4745c2","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c4_v0_row_tokens","sha256":["891f0399a2674c64246571ad014acc00be1a6085095c488c233663b642d6f966","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"a6297bfb36f43a6b9303ac8be0de70cf57ac59cd56dafe1e339c7d686197df01","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c4_v1_blocks","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","2182107059adec9b696db1138e66416c39a9136901e879448396494d239487b0"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"3d0892fc79ea91cabaa0ca16500ff0b510b84614eee2c66ef9e749afff744fa7","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c4_v1_dense_mask","sha256":["53c3720bc064605ccf85502c5e951845ec74a7d4312d27af7f111e66267a74dd"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"dense_mask","dense_width":4804,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"e62db29905ee2e544326fb9308e01d335ea7f2621a4750d9e511ab5c0b4745c2","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c4_v1_row_tokens","sha256":["98445cb03b97e893146a2684c086598bef51b8bd31f235cf0f4e3a74ec84bb24","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"a6297bfb36f43a6b9303ac8be0de70cf57ac59cd56dafe1e339c7d686197df01","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c4_v2_blocks","sha256":["8e9441164d4527564bc29831bc0c8dbe1d4c414f95242e8cb3b5e401a97e3135","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","27f0052d705f1f49303505008e900a2a34fb0de7375e831abde1a70ff90ace7a"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"1834a4aaba66cb2c20051c5b1ef0cc99271a151647d67e32acfe0a3cae6530d0","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c4_v2_dense_mask","sha256":["fda914f622edb99c0956ab3a319392a4bb779486a1c9f67042bcd633a83d4838"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"dense_mask","dense_width":4804,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"3a36c361e850c197d2955332af08f3c74c16ad31a6037d3c72f35888bf0a4345","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c4_v2_row_tokens","sha256":["18f3dde0e01f46376d9276184ebfef71e57b57b2e463e9ad7b52e94a598207b3","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"e8fcebda4d11deac445173014e79479af097d47335b1df94dfbbcc7e13651636","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c4_v3_blocks","sha256":["fa65e29b3c4f08211b742977beed919faca36a9e757b7278dbf8c69c4aa55d1c","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","8c62efa466569602ac5fb2764d807b951e969b8795da3766e5864c86d10a8f94"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"84db87b57fc6e6708ea8f71cf258ded3dbd6050f0442545b96604eab6c62b786","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c4_v3_dense_mask","sha256":["6c11f278dc2aabdb42f4331aee9b2522e627dcf14e084de8861fd01a5a2aaadb"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"dense_mask","dense_width":4804,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"a866e7caad4118d19a2f6d2d14e4c2b422e69a14120bde1f2d4725d1172186ae","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c4_v3_row_tokens","sha256":["9aa0ef11002d5cbddbf739a1df7c6311f1e2198b4bbdc9857ffcf95b54de2c8e","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"pos":4080,"total":4113,"blocks":1200,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"72da8d28931cf4b7404dd27cfb38ba2c40230952302325e83414ea453cbd530a","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c5_v0_blocks","sha256":["54361fd510f490274660adcfce4c0d88ccc48d037cf62c60139be97af0e9af0f","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","be4e9c79e00d353d89f2b8704646aa565483d8ace04caaa0516225bc3130d637"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"493d70e0af7ac765132d5043792a2319aebedf62fd686ad36e51c6fc7d9a5023","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c5_v0_dense_mask","sha256":["6ef4e507470ffc0c47b96e1724b114b923acf3ef2bb82cbe40f8faf15107cb07"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"02b9b06711033072bd2bed45e0e14ac228b1fe509bcd9204ddc53d35eaa85db8","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c5_v0_row_tokens","sha256":["f623b8bd39edca2272acc2abd5a4a171220ed47941f37bbfe1d71d0951f57007","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"4d1c02fa65dd6a536cb0a3eb496e4d178f3c04c20eed3c5403aeac2bda01281b","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c5_v1_blocks","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","7b58053806d5078c33e67e3b323d313ce9bb66ef4010a1895b6a3ad02f9b4a79"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"493d70e0af7ac765132d5043792a2319aebedf62fd686ad36e51c6fc7d9a5023","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c5_v1_dense_mask","sha256":["7da09fdbd465ead9d097e8031503a9b3b744874209d293ca4e0bd63854b97116"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"02b9b06711033072bd2bed45e0e14ac228b1fe509bcd9204ddc53d35eaa85db8","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c5_v1_row_tokens","sha256":["63fc55145bb894d4c88ad4f94fd318158e11cecce9955a0fc62fcee19a196b0e","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":2,"zero":true,"header_sha256":"4d1c02fa65dd6a536cb0a3eb496e4d178f3c04c20eed3c5403aeac2bda01281b","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c5_v2_blocks","sha256":["54361fd510f490274660adcfce4c0d88ccc48d037cf62c60139be97af0e9af0f","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","dd7f9f0dace79f5b18a7dd786b73fa25f0ec34983eccf499b209d63e0a7d12c0"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"d2dabbedbd33a208dff19a3fc1a076ffd351d6e29ff3e962cd0e2703519917cb","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c5_v2_dense_mask","sha256":["6ef4e507470ffc0c47b96e1724b114b923acf3ef2bb82cbe40f8faf15107cb07"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"25c3fdbfc8530ff5bb4857938ad7d9ced8a852a9caa9bbaf8663b7c16325d862","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c5_v2_row_tokens","sha256":["4e0fea1fb9b531c66e187568bd741c4b6a5277c47c1cd9d5c9eaea4e301d5abd","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[true,true],"tf32":true,"dim_stride":1,"zero":false,"header_sha256":"be79976814a3c6c6a3a89d4cf3fd4b5efa4bf710572022818705dba355ee7d76","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_select_c5_v3_blocks","sha256":["aaa8e8417040be9c179dae96003d59fb8414efa2bcd78d4b25f719ecb772722c","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","26106186600333124a9744f2898c7956d0e1e5b884560d89b54fb2536c116e5c"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"5b7957c6ef5f2c2c2e976b848ef425f1a9d565368cb3f961a44a92075a17c1a4","body_sha256":"bf2766956b208d6399915e5e9ff711cdb28272a0ac6e036bd4a755ad861c6c24"} +{"kernel":"qsa_select_c5_v3_dense_mask","sha256":["227a9621bbf419031f2d10dd6b2c2bd019bdfa4bd7e105d802051d8287a188e8"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"508d638308e9bdc054bf7a3c54c7eb30a07662eb86864a6c7d471960e8c78717","body_sha256":"36c6a1bc255f2fc0ce4ff960f7010bdea03a740c3b1ac058095a30d7a958e502"} +{"kernel":"qsa_select_c5_v3_row_tokens","sha256":["605da0119e133c14be1b1ddb94b7d37086e29005a1122e71552412f841c27d58","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,true],"tf32":false,"dim_stride":2,"zero":false,"header_sha256":"5cab0609683867749cdeecc4f847d0ee9c9cf693e8ee4bfd40fe5d92d1a11ee0","body_sha256":"37543469c3f711ef788b8501d0be5f03f13ca5c4c595f65701214f72193f0e22"} +{"kernel":"qsa_chunk_blocks","sha256":["3545759f80f83dd259b01a3ca24a7d02f39317dff147ae7a14ff724a103c9ffd","984f3a9f73cf8cdb85903733b74616dcf098dee4678487238160b867efed2df2","eef1ed3c36e849e3083ea4586cac5943b11a14ba736cd0badadacb71173aad74"],"rows":129,"pos":0,"total":129,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"chunked":true} +{"kernel":"qsa_chunk_dense_mask","sha256":["d03a6e36315f1b60ccf8e2397e429f4a634beef9efe02cb0bd49a6816bf234ee"],"rows":129,"pos":0,"total":129,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"chunked":true} +{"kernel":"qsa_chunk_row_tokens","sha256":["77b958d2e7ff35f3a65578d8f834b559fd9c4df8a41d29d11f11e04b797f7e7d","c3182121c1487da9eaf2954f83523c2d06dc912d7665c725697f2c73e924f61d"],"rows":129,"pos":0,"total":129,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"input_f32":[false,false],"tf32":true,"dim_stride":1,"zero":false,"chunked":true} +{"kernel":"qsa_connected_s0_blocks","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","f38fb8ba7fe2356c8fe53e8de9aa8b059e8e224c3da6235d99da4a0d9aada4d5"],"rows":1,"step":0,"mode":"blocks","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s0_dense_mask","sha256":["3e1f0173a21abd72286352525b09fd60180c11a20f0c5961cde1699ab54b09bb"],"rows":1,"step":0,"mode":"dense_mask","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s0_row_tokens","sha256":["e2867bef9c2c88838beaa59b078742f25a3ab9f61451d31a9515f028215d5467","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"step":0,"mode":"row_tokens","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s1_blocks","sha256":["39a1e093ae98f7a2614a0b821c862abe03d90099871cc228bab8a65a2c9ff726","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","a65ebf5bf63eae855465735c631e357e2565e7a8bdb49a3c0ae7a79f463861b2"],"rows":4,"step":1,"mode":"blocks","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s1_dense_mask","sha256":["2bf7f903ddd16d59130ff56054b147a7106e16ad029ad0d4300fa7efecb604e2"],"rows":4,"step":1,"mode":"dense_mask","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s1_row_tokens","sha256":["ebc9c64a6a9c1f726a9441f4b7e652b092f053bdc54b44adde04c02f112b3645","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"step":1,"mode":"row_tokens","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s2_blocks","sha256":["4449a25fc7cb5abf9d4bd24177137776e9133fd9d5287a78a1dcd307ccd6245d","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204","2ce3a8b0dbe61d1e5944cbb9e03b825e071925ca362488b0f77a1624d6f3f827"],"rows":7,"step":2,"mode":"blocks","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s2_dense_mask","sha256":["42076a0cce53456878c229553aa49624654638b9780ea9a7d718b29a9918d6d9"],"rows":7,"step":2,"mode":"dense_mask","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_connected_s2_row_tokens","sha256":["3afd327b888b23a1d065f0df2e980f57144ff2b165ba802b032efb145d56c0fc","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"step":2,"mode":"row_tokens","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_mpp_score_r1_n1_ds1","sha256":["149ceeb18a445fa9f4bbaf468dc2749682e92636af8d87f55af404d81c470b37"],"rows":1,"blocks":1,"dim_stride":1} +{"kernel":"qsa_mpp_score_r1_n1_ds2","sha256":["ef1328c11d13056ef48d0a1475ec9b22aa8504c481a24870b5252bbdac4a6f92"],"rows":1,"blocks":1,"dim_stride":2} +{"kernel":"qsa_mpp_score_r4_n7_ds1","sha256":["cf70967c27fc90f3cfb4bced0cf18fb59f79e6043f10524ea0a39f5678f8c09f"],"rows":4,"blocks":7,"dim_stride":1} +{"kernel":"qsa_mpp_score_r4_n7_ds2","sha256":["eb96feb4f97d71538ac8e5c5c4ccc82708393df2bb3536b361dedb10929fe4f7"],"rows":4,"blocks":7,"dim_stride":2} +{"kernel":"qsa_mpp_score_r15_n31_ds1","sha256":["3df0bf0968b8c99b9765bd46363afdf58fb8a34eefd0cca76c47cf7d465b2382"],"rows":15,"blocks":31,"dim_stride":1} +{"kernel":"qsa_mpp_score_r15_n31_ds2","sha256":["723f90aef2175f6dd064314dea0a7740b7f1228b99af8ee473dbd8293e68ad52"],"rows":15,"blocks":31,"dim_stride":2} +{"kernel":"qsa_mpp_score_r16_n32_ds1","sha256":["fcf4f5baf6d50858e3060caa4fb68c214d1fd4c973ec0592403e18c73980ee5c"],"rows":16,"blocks":32,"dim_stride":1} +{"kernel":"qsa_mpp_score_r16_n32_ds2","sha256":["909e8546e811ba9b10b850d02e1050a4d2d434f5615f631e0eb6d9efded03752"],"rows":16,"blocks":32,"dim_stride":2} +{"kernel":"qsa_mpp_score_r17_n33_ds1","sha256":["dd4c530d61cd372baf60a79ff26bfb9b896325a12da141601561288f44ff8075"],"rows":17,"blocks":33,"dim_stride":1} +{"kernel":"qsa_mpp_score_r17_n33_ds2","sha256":["50ef1cfc6b0c123b9ab35405002f062ff2e8899ef8050bbc2f30a3013fd6d1fc"],"rows":17,"blocks":33,"dim_stride":2} +{"kernel":"qsa_mpp_score_r33_n513_ds1","sha256":["3132f6b92d0aa9c5c257de3533f89e8d46d2e9652c4ebb83b0ce00e986accab2"],"rows":33,"blocks":513,"dim_stride":1} +{"kernel":"qsa_mpp_score_r33_n513_ds2","sha256":["48f7bcbb38b19aef836f91d1b874d15c48ad6339627efcd01e5a6fcb816a60c4"],"rows":33,"blocks":513,"dim_stride":2} +{"kernel":"qsa_mpp_score_r2048_n513_ds1","sha256":["ff0ce2034795e19272fe082aa4cd4232b8f42cf710096ed8956f0673352a5bcf"],"rows":2048,"blocks":513,"dim_stride":1} +{"kernel":"qsa_mpp_score_r2048_n513_ds2","sha256":["31eca7f5fedcecbc707d9099da21fc3caba41880f0a537c258d253d9efbb7915"],"rows":2048,"blocks":513,"dim_stride":2} +{"kernel":"qsa_prefill_topk_c0_v0_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":1,"dim_stride":1,"header_sha256":"095baf3e9f301c170ed376b859af23b4dd8f41902e8e1cb9662ad809298e118e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c0_v0_dense_mask","sha256":["66b7057e198043f4acfb86f84717e34610811559714e63c9484bde10fb7cbe06"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"dense_mask","dense_width":8,"variant":0,"row_stride":1,"dim_stride":1,"header_sha256":"7b1a7e9165d7576e1fdedc66733dace25152d707254cdb4abc8ea64f14a271c9","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c0_v0_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":1,"dim_stride":1,"header_sha256":"a15b7a2712c174fdec6c7c54e729e203aef594953f0bbaa898ead2d3b23c399a","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c0_v1_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":6,"dim_stride":2,"header_sha256":"095baf3e9f301c170ed376b859af23b4dd8f41902e8e1cb9662ad809298e118e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c0_v1_dense_mask","sha256":["66b7057e198043f4acfb86f84717e34610811559714e63c9484bde10fb7cbe06"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"dense_mask","dense_width":8,"variant":1,"row_stride":6,"dim_stride":2,"header_sha256":"7b1a7e9165d7576e1fdedc66733dace25152d707254cdb4abc8ea64f14a271c9","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c0_v1_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":6,"dim_stride":2,"header_sha256":"a15b7a2712c174fdec6c7c54e729e203aef594953f0bbaa898ead2d3b23c399a","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c0_v2_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":5,"dim_stride":1,"header_sha256":"095baf3e9f301c170ed376b859af23b4dd8f41902e8e1cb9662ad809298e118e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c0_v2_dense_mask","sha256":["66b7057e198043f4acfb86f84717e34610811559714e63c9484bde10fb7cbe06"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"dense_mask","dense_width":8,"variant":2,"row_stride":5,"dim_stride":1,"header_sha256":"7b1a7e9165d7576e1fdedc66733dace25152d707254cdb4abc8ea64f14a271c9","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c0_v2_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":5,"dim_stride":1,"header_sha256":"a15b7a2712c174fdec6c7c54e729e203aef594953f0bbaa898ead2d3b23c399a","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c1_v0_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","7246ade0fe93b75a652611cb20c315e992f68d04cd08c24c2d021d611042922a"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":8,"dim_stride":1,"header_sha256":"dcc34365080280a008b5398e2a53ee2330d9be06c07210200b0b1b1d11dac705","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c1_v0_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"variant":0,"row_stride":8,"dim_stride":1,"header_sha256":"1dfd926a3a2ac9d8282fc20de8ee0fea91acdbd970ccd5a8938f4878da37126c","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c1_v0_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":8,"dim_stride":1,"header_sha256":"c1f91aac4eaf9071a17907372af98d2fc0fedc7aa8da9cca5ef21dfe983574c4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c1_v1_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","3521e526b7b26225acfec1b730ed8dcc8ca8b29ed7224477f69d6625f8d3350c"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":20,"dim_stride":2,"header_sha256":"dcc34365080280a008b5398e2a53ee2330d9be06c07210200b0b1b1d11dac705","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c1_v1_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"variant":1,"row_stride":20,"dim_stride":2,"header_sha256":"1dfd926a3a2ac9d8282fc20de8ee0fea91acdbd970ccd5a8938f4878da37126c","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c1_v1_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":20,"dim_stride":2,"header_sha256":"c1f91aac4eaf9071a17907372af98d2fc0fedc7aa8da9cca5ef21dfe983574c4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c1_v2_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","e8a0eda9e605c57a91aa5ed4d6f793992384b04170d0dac82c90a999732d2781"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":12,"dim_stride":1,"header_sha256":"dcc34365080280a008b5398e2a53ee2330d9be06c07210200b0b1b1d11dac705","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c1_v2_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"variant":2,"row_stride":12,"dim_stride":1,"header_sha256":"1dfd926a3a2ac9d8282fc20de8ee0fea91acdbd970ccd5a8938f4878da37126c","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c1_v2_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":12,"dim_stride":1,"header_sha256":"c1f91aac4eaf9071a17907372af98d2fc0fedc7aa8da9cca5ef21dfe983574c4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c2_v0_blocks","sha256":["2d7f27869fc7f17906379ab326faa9a2fa70eec912890216a6a00a688b6f3c7f","9d33d28cb19bb010a81913025748b907c80f7b7f0678f44b891e71fc8c0c85fc","61f0874f5ef52400c6cea6be5920b74c7fd02cabdbc1b88f3b4c5a7365970ac5"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":600,"dim_stride":1,"header_sha256":"66f775184db7175f832ae1f1361431591660d61178e0e569b5ea43ef92378b10","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c2_v0_dense_mask","sha256":["9979f8a2da83c137a4851c34b7ee351f73648e8a59a5a0083bc1dcaa1664e93a"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"variant":0,"row_stride":600,"dim_stride":1,"header_sha256":"3e36f61bb8236ecc3cafdd5c91244836b25d1305107fdfaf867b8188520edb91","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c2_v0_row_tokens","sha256":["8a7438e0e5197cfc0d195c6b85237b2c93cd06e7eb365aede4f4e33d55d71917","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":600,"dim_stride":1,"header_sha256":"1ee67cf29d113d2c94a73d2e67bc0ff4956105b313772798b8c0986f95432dd5","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c2_v1_blocks","sha256":["e6e3b8944deba8e68e15b380eaea8ddfe58675e36446fd02aea9db2bf6689e75","9d33d28cb19bb010a81913025748b907c80f7b7f0678f44b891e71fc8c0c85fc","8a45150aa20ab7662b0a50afc9313bf068adaa97dbb8e49a37c5e308a5b8d565"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":1204,"dim_stride":2,"header_sha256":"66f775184db7175f832ae1f1361431591660d61178e0e569b5ea43ef92378b10","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c2_v1_dense_mask","sha256":["d4d62a22c5a06744bb0a879485c221e3eb5ef5c25b91d2a21100ffde888efd12"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"variant":1,"row_stride":1204,"dim_stride":2,"header_sha256":"3e36f61bb8236ecc3cafdd5c91244836b25d1305107fdfaf867b8188520edb91","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c2_v1_row_tokens","sha256":["f9b863bc4cd4afe56ac32f4927a1174121a166dba40a1bef5d31331943423e1e","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":1204,"dim_stride":2,"header_sha256":"1ee67cf29d113d2c94a73d2e67bc0ff4956105b313772798b8c0986f95432dd5","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c2_v2_blocks","sha256":["fa28fbf3dedc02f1f296f4470a656b222329e8cbf3834af7dc17bc44ffe2274f","9d33d28cb19bb010a81913025748b907c80f7b7f0678f44b891e71fc8c0c85fc","dd0a3112c591d9b90b56f6eae8f132514fa16fdf5183cd204c5aa451b68c5e5f"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":604,"dim_stride":1,"header_sha256":"66f775184db7175f832ae1f1361431591660d61178e0e569b5ea43ef92378b10","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c2_v2_dense_mask","sha256":["af31a9f0510860c63d4577bc6fce441933385eb91b38a168c6b0fe09230df550"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"variant":2,"row_stride":604,"dim_stride":1,"header_sha256":"3e36f61bb8236ecc3cafdd5c91244836b25d1305107fdfaf867b8188520edb91","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c2_v2_row_tokens","sha256":["0eac57f741fed26a70d742fe567e86850675bf205a15693041d2329e6324f3f4","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":604,"dim_stride":1,"header_sha256":"1ee67cf29d113d2c94a73d2e67bc0ff4956105b313772798b8c0986f95432dd5","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c3_v0_blocks","sha256":["f59935c00de21ec84694f80bd36d352e2ef20ba769562edd121b424ccedf4a73","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","a17738faedd5c936db17ce788e6dd7b61dce9beee1e13bd650d5042803985280"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":4096,"dim_stride":1,"header_sha256":"cbc5022af36c0fec321557d0f94dd80e91e906875cfe3a9a09c47c677318e99c","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c3_v0_dense_mask","sha256":["56cda2ef9c3946b3eed534dc51c1484cb558c56b632cdf7898dfaf3350e00d2b"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"variant":0,"row_stride":4096,"dim_stride":1,"header_sha256":"823996508382018d47484a55ae67001d6126f95ca8cee57ee8c4ce5251b2075f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c3_v0_row_tokens","sha256":["e0197c36566ffa77821f90c49123717f7981c64f4fb24cff140a499f227358f4","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":4096,"dim_stride":1,"header_sha256":"d154dd585052fa1f037c6a7de7890f561e0cf6efde0ffb59265d4e9d870838c0","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c3_v1_blocks","sha256":["8a2f5fbe65e6d54c4ba0d88de312c363945cab74baf4e25ed2148f16edc77e80","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","ef0e7015faab3f5c345ad62a9db0c9005bd38fe293caaf40e5d0c7aceef8f0ba"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":8196,"dim_stride":2,"header_sha256":"cbc5022af36c0fec321557d0f94dd80e91e906875cfe3a9a09c47c677318e99c","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c3_v1_dense_mask","sha256":["31ae21769e17cfdb48cf99021d05f7700fbcdb2d843c72ea2ac7b6ce9b45e565"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"variant":1,"row_stride":8196,"dim_stride":2,"header_sha256":"823996508382018d47484a55ae67001d6126f95ca8cee57ee8c4ce5251b2075f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c3_v1_row_tokens","sha256":["f8be5c7664192ded51c01c11b53900c33c77de6f4e513bcf900daf94ed908261","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":8196,"dim_stride":2,"header_sha256":"d154dd585052fa1f037c6a7de7890f561e0cf6efde0ffb59265d4e9d870838c0","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c3_v2_blocks","sha256":["805b4f16e425930a2f09d4438793909864ccc930d96929e60d2a0f4a99a840a9","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":4100,"dim_stride":1,"header_sha256":"cbc5022af36c0fec321557d0f94dd80e91e906875cfe3a9a09c47c677318e99c","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c3_v2_dense_mask","sha256":["edfd76186d1f1c245ab103b68338c4c7ac2437b0baeb2400e350354db7bb1cb1"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"variant":2,"row_stride":4100,"dim_stride":1,"header_sha256":"823996508382018d47484a55ae67001d6126f95ca8cee57ee8c4ce5251b2075f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c3_v2_row_tokens","sha256":["21abf686a0a5d282e0e3a8d40a60679eccf0a36adb1e2861775b6cfbe3036daa","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":4100,"dim_stride":1,"header_sha256":"d154dd585052fa1f037c6a7de7890f561e0cf6efde0ffb59265d4e9d870838c0","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c4_v0_blocks","sha256":["9fd8e9fa6b8cb80adb2835284c603d458d7cb96c2b6167e0b592083a137742a8","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","061714da9b37cb359451e475c29d2ce6821e123717a6dd8f2fd3f69bf6bfed59"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":65536,"dim_stride":1,"header_sha256":"1da8a6f167d96efc4eda65c7b1ce2a8e2569a78205e84f64d61128c33529abfd","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c4_v0_dense_mask","sha256":["41a2d02fe94d60235fe33b0372572f0f439b4ea76d09d028975c166c3d97d9f5"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262148,"variant":0,"row_stride":65536,"dim_stride":1,"header_sha256":"1ee941a5802373043b1389e4a198444601d97df08cda80d5ada28e41cb25fd3f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c4_v0_row_tokens","sha256":["359e3c81e597b04faea0d18c6837b4e33a4d9cb4b81f501b5166112b864682d6","c2db559f64e31218ded97654870f7b6873c465d7714931b8ccc5ce45b427f135"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":65536,"dim_stride":1,"header_sha256":"54d751797b25128f153b1a7cb0528831e82e1b1568860771de3356098db4095c","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c4_v1_blocks","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","7b58053806d5078c33e67e3b323d313ce9bb66ef4010a1895b6a3ad02f9b4a79"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":131076,"dim_stride":2,"header_sha256":"1da8a6f167d96efc4eda65c7b1ce2a8e2569a78205e84f64d61128c33529abfd","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c4_v1_dense_mask","sha256":["7853416512f4abf3666246d3f70119cf912dbf4a8a4446d37c73116a8f9629f8"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262148,"variant":1,"row_stride":131076,"dim_stride":2,"header_sha256":"1ee941a5802373043b1389e4a198444601d97df08cda80d5ada28e41cb25fd3f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c4_v1_row_tokens","sha256":["b0ad027889ba08a28d50acb10bc152c5d0e1b2944b4def372c879ded3ab52bb8","c2db559f64e31218ded97654870f7b6873c465d7714931b8ccc5ce45b427f135"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":131076,"dim_stride":2,"header_sha256":"54d751797b25128f153b1a7cb0528831e82e1b1568860771de3356098db4095c","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c4_v2_blocks","sha256":["5b82358b06dfd3dd951e30f69b33dff23afaef138de2e147953198f6b677b367","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":65540,"dim_stride":1,"header_sha256":"1da8a6f167d96efc4eda65c7b1ce2a8e2569a78205e84f64d61128c33529abfd","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c4_v2_dense_mask","sha256":["ee7f817d5c695e118a343411af2563217958c81b887ecf4f4bb3637c0304614d"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262148,"variant":2,"row_stride":65540,"dim_stride":1,"header_sha256":"1ee941a5802373043b1389e4a198444601d97df08cda80d5ada28e41cb25fd3f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c4_v2_row_tokens","sha256":["34bd0de44dfba330d4fb4d596ddb12274a31d1e3133f2e5130685bb7832b471b","c2db559f64e31218ded97654870f7b6873c465d7714931b8ccc5ce45b427f135"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":65540,"dim_stride":1,"header_sha256":"54d751797b25128f153b1a7cb0528831e82e1b1568860771de3356098db4095c","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c5_v0_blocks","sha256":["6ede03ebe95a8383f5ac0aa25271ec93b6018a17854755936f09fa7c9eef9cfb","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","d105a7008fd7710577bfa6d9b4d9e919403e27c94493f4897b08311e781e215a"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"blocks","dense_width":0,"variant":0,"row_stride":64,"dim_stride":1,"header_sha256":"91a887bf344c70596bd3520af55a022a5d7476d42728a43b029a2fc1015d4d89","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c5_v0_dense_mask","sha256":["ba87b232c0c2a7286fe2ccfa6084cd1776b3f52e4bb168ae922102b91cbb7f31"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"dense_mask","dense_width":260,"variant":0,"row_stride":64,"dim_stride":1,"header_sha256":"e28fc07d77e23c7e66c3991dc102a6cb4fb3e3868d1c703a7518d7013a4a7b69","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c5_v0_row_tokens","sha256":["2fc0f306bade0abd6b236ef8ddb1c4cd613e617ef3e88edfd584b4cd2462066a","0615185b24eb229d126f4c331fb42df44d1da34a209b9aef35a6cb333979dc8a"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":64,"dim_stride":1,"header_sha256":"c006fd746796d2d7fa6a393842f05dc6a1e82dca6c27bb7853c0c075eaa11097","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c5_v1_blocks","sha256":["5bfb2669851ce6eab7813391c2bb787a85a33085f6658bc5585333657336d07a","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","2715045b0c915286011d58e995389c3e8ac44b0d53b2304cdc60af4aa9ae80fd"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"blocks","dense_width":0,"variant":1,"row_stride":132,"dim_stride":2,"header_sha256":"91a887bf344c70596bd3520af55a022a5d7476d42728a43b029a2fc1015d4d89","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c5_v1_dense_mask","sha256":["8192dcf1eb6c3486642c74f14b84c874e60b7da06df9b68219d8ed95223d9203"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"dense_mask","dense_width":260,"variant":1,"row_stride":132,"dim_stride":2,"header_sha256":"e28fc07d77e23c7e66c3991dc102a6cb4fb3e3868d1c703a7518d7013a4a7b69","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c5_v1_row_tokens","sha256":["e31f4f08d7971ba9205ba080334dd977f14d9b0178e5f00fd6643a6281762557","0615185b24eb229d126f4c331fb42df44d1da34a209b9aef35a6cb333979dc8a"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":132,"dim_stride":2,"header_sha256":"c006fd746796d2d7fa6a393842f05dc6a1e82dca6c27bb7853c0c075eaa11097","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c5_v2_blocks","sha256":["367629a8ec0e78decdee241291efd69974a94e220bf1445a67f4e7856510e16f","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"blocks","dense_width":0,"variant":2,"row_stride":68,"dim_stride":1,"header_sha256":"91a887bf344c70596bd3520af55a022a5d7476d42728a43b029a2fc1015d4d89","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c5_v2_dense_mask","sha256":["1178d1113f8eeae0dd396702952e2dcaa9a2656d5240b3e0c0e0b8974322741d"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"dense_mask","dense_width":260,"variant":2,"row_stride":68,"dim_stride":1,"header_sha256":"e28fc07d77e23c7e66c3991dc102a6cb4fb3e3868d1c703a7518d7013a4a7b69","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c5_v2_row_tokens","sha256":["a08f4bd318f773404a80f0bd1f9fd24f85129e45fe1631cac055a0712e43d587","0615185b24eb229d126f4c331fb42df44d1da34a209b9aef35a6cb333979dc8a"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":68,"dim_stride":1,"header_sha256":"c006fd746796d2d7fa6a393842f05dc6a1e82dca6c27bb7853c0c075eaa11097","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c6_v0_blocks","sha256":["bd1ae3051d9e7cf70844b83e002b3a125dcf1d73db3595034c399f805b469a3a","9628e545ed3ac074e5a6cbf542a642b62482fbfca9b4cb3ea4743a1874256e37","6a75603f9ea94a3f5b4d640fd722497e4d725ebf081b267b05f3c5aabbbc4558"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"blocks","dense_width":0,"variant":0,"row_stride":65,"dim_stride":1,"header_sha256":"07f1123eb60309d8d6523b32786dabc69ee58467c827a1c7feeb24e229c1128f","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c6_v0_dense_mask","sha256":["e242f2935044f8ac3c5979dec7a216698f2c113430f65039c41e8687045d4c8c"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"dense_mask","dense_width":264,"variant":0,"row_stride":65,"dim_stride":1,"header_sha256":"e072551392f5b2df3e1d00fac939a7e3a2d50bca65b9143ee0c3d45ad7fcad86","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c6_v0_row_tokens","sha256":["db7ad28fef99351d23b283c6a8e389e441ec3d92d54d9a53fe72c49942239f46","3ce412ac993cb05fd243a3a5972aba578a271d8c3ec13cbdde70855631c2a1b6"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":65,"dim_stride":1,"header_sha256":"bafcd33678d4bae187fba6b19ee31e07f1fed36492b7ba59547e96ff955958ff","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c6_v1_blocks","sha256":["58dda328598e2f7fe472621bfc54935aaa354d1a6ebcaf9562cd743fd575eb19","9628e545ed3ac074e5a6cbf542a642b62482fbfca9b4cb3ea4743a1874256e37","78d1cb4e5996094d6135689693acac9876f45589bc52fe2a7b76a4fb0d38dd4f"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"blocks","dense_width":0,"variant":1,"row_stride":134,"dim_stride":2,"header_sha256":"07f1123eb60309d8d6523b32786dabc69ee58467c827a1c7feeb24e229c1128f","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c6_v1_dense_mask","sha256":["5aae3c82e54724b3a65832955dc11dc63c25c95a287f4e68665f40b426daa0c5"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"dense_mask","dense_width":264,"variant":1,"row_stride":134,"dim_stride":2,"header_sha256":"e072551392f5b2df3e1d00fac939a7e3a2d50bca65b9143ee0c3d45ad7fcad86","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c6_v1_row_tokens","sha256":["3faffa9b5887a4d824a6e5bebc3ad7a16b3a37fc04ef9bda2f2ad6ae1632183c","3ce412ac993cb05fd243a3a5972aba578a271d8c3ec13cbdde70855631c2a1b6"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":134,"dim_stride":2,"header_sha256":"bafcd33678d4bae187fba6b19ee31e07f1fed36492b7ba59547e96ff955958ff","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c6_v2_blocks","sha256":["df9e667b2f055509e5ebb3a9a08758277e82a12407d0db1e2d288c82c3c2a0b5","9628e545ed3ac074e5a6cbf542a642b62482fbfca9b4cb3ea4743a1874256e37","9628e545ed3ac074e5a6cbf542a642b62482fbfca9b4cb3ea4743a1874256e37"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"blocks","dense_width":0,"variant":2,"row_stride":69,"dim_stride":1,"header_sha256":"07f1123eb60309d8d6523b32786dabc69ee58467c827a1c7feeb24e229c1128f","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c6_v2_dense_mask","sha256":["bf33f6f35d16141df827aff4420dd1f5bf60aeee175d3a3c63811ca2512d7f77"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"dense_mask","dense_width":264,"variant":2,"row_stride":69,"dim_stride":1,"header_sha256":"e072551392f5b2df3e1d00fac939a7e3a2d50bca65b9143ee0c3d45ad7fcad86","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c6_v2_row_tokens","sha256":["8c56ba19e3a56f9e626ae690999da7b74e88fc0f126dd0042176a61fa8263f23","3ce412ac993cb05fd243a3a5972aba578a271d8c3ec13cbdde70855631c2a1b6"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":69,"dim_stride":1,"header_sha256":"bafcd33678d4bae187fba6b19ee31e07f1fed36492b7ba59547e96ff955958ff","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c7_v0_blocks","sha256":["8d04eb7b4d0358a4a157994583d24edd7ccda3b5535f4c30683db847719d558a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","06f2d577531e81a7dd69c616bb597ef672467ef452451f6d6728560aa0c37fb3"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":2048,"dim_stride":1,"header_sha256":"418e243dba2d42afcf0158fd8bae81ac5b66c7983c25036e4227485b9b6ec64e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c7_v0_dense_mask","sha256":["5968b779c71260be93bf172b2ac7d0f09cef3dd8c7d77c7be1c6768ca3f5a0bc"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"dense_mask","dense_width":8196,"variant":0,"row_stride":2048,"dim_stride":1,"header_sha256":"9117fc27e3b67567a77bef4676e6b66b3c0ed3d4a61f359b8ab14456b0408cfd","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c7_v0_row_tokens","sha256":["ae51f0513a3a60911797f7eef0223e9d2ae8e9a87dd94f50f1603f6f1bd791af","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":2048,"dim_stride":1,"header_sha256":"f6e6a043b5ab139e26cbacd42c9e644b2f316ffbe599b9394a537b91d4cc5293","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c7_v1_blocks","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","7b58053806d5078c33e67e3b323d313ce9bb66ef4010a1895b6a3ad02f9b4a79"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":4100,"dim_stride":2,"header_sha256":"418e243dba2d42afcf0158fd8bae81ac5b66c7983c25036e4227485b9b6ec64e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c7_v1_dense_mask","sha256":["98d530f0e3c11f23e7aac6cb0b1c343bf75162fb44ae480d80ea28155d6da48a"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"dense_mask","dense_width":8196,"variant":1,"row_stride":4100,"dim_stride":2,"header_sha256":"9117fc27e3b67567a77bef4676e6b66b3c0ed3d4a61f359b8ab14456b0408cfd","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c7_v1_row_tokens","sha256":["3a468d494809d82f6f819dc7a45e2185f9009fd00bea47622277af9e20611f04","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":4100,"dim_stride":2,"header_sha256":"f6e6a043b5ab139e26cbacd42c9e644b2f316ffbe599b9394a537b91d4cc5293","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c7_v2_blocks","sha256":["bdd6da88e5150433ea9e9a51ced1f71de42f352c66a6e5bfca144fc3ad9e5710","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":2052,"dim_stride":1,"header_sha256":"418e243dba2d42afcf0158fd8bae81ac5b66c7983c25036e4227485b9b6ec64e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c7_v2_dense_mask","sha256":["cbbf29a86641b443a06316296b15d59561cfd1974e8fdb32be38a1f89ee16cb3"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"dense_mask","dense_width":8196,"variant":2,"row_stride":2052,"dim_stride":1,"header_sha256":"9117fc27e3b67567a77bef4676e6b66b3c0ed3d4a61f359b8ab14456b0408cfd","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c7_v2_row_tokens","sha256":["a74468c2aa3755d620dcdf6f1127165af0e625728e8b01cac2582f21441169ae","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":2052,"dim_stride":1,"header_sha256":"f6e6a043b5ab139e26cbacd42c9e644b2f316ffbe599b9394a537b91d4cc5293","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c8_v0_blocks","sha256":["8d04eb7b4d0358a4a157994583d24edd7ccda3b5535f4c30683db847719d558a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","06f2d577531e81a7dd69c616bb597ef672467ef452451f6d6728560aa0c37fb3"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"blocks","dense_width":0,"variant":0,"row_stride":2049,"dim_stride":1,"header_sha256":"14f64b826f91d7f10d168e764f6e893f98923c04fec811c4bc338d57391ed9df","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c8_v0_dense_mask","sha256":["26a0fc016197672e43a8ce3223c3ae930e35190a43399775920627e01b554487"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"dense_mask","dense_width":8200,"variant":0,"row_stride":2049,"dim_stride":1,"header_sha256":"475f0b70758215021ff825e8d049648f463f4acb3830e2a3acb6e51ef6eb52a0","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c8_v0_row_tokens","sha256":["c5bd4cfdc4c561e17fbb336d81a2593144161b3bd5363764d0357d38eb83bbf5","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"row_tokens","dense_width":0,"variant":0,"row_stride":2049,"dim_stride":1,"header_sha256":"867f1c4c7116ee3b50261ea689285a378a25f1de6cb445b1c25a9d250b8730d4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c8_v1_blocks","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","7b58053806d5078c33e67e3b323d313ce9bb66ef4010a1895b6a3ad02f9b4a79"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"blocks","dense_width":0,"variant":1,"row_stride":4102,"dim_stride":2,"header_sha256":"14f64b826f91d7f10d168e764f6e893f98923c04fec811c4bc338d57391ed9df","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c8_v1_dense_mask","sha256":["7f9d3071b34bce1ca69ed0a59a849f33ce3d17326bb9a200fca0edc6f634de99"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"dense_mask","dense_width":8200,"variant":1,"row_stride":4102,"dim_stride":2,"header_sha256":"475f0b70758215021ff825e8d049648f463f4acb3830e2a3acb6e51ef6eb52a0","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c8_v1_row_tokens","sha256":["63fc55145bb894d4c88ad4f94fd318158e11cecce9955a0fc62fcee19a196b0e","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"row_tokens","dense_width":0,"variant":1,"row_stride":4102,"dim_stride":2,"header_sha256":"867f1c4c7116ee3b50261ea689285a378a25f1de6cb445b1c25a9d250b8730d4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c8_v2_blocks","sha256":["c3c9b4cbfad021b00a46d90935c1164cba401a3fc6fc7074e9ec31e91085ba90","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"blocks","dense_width":0,"variant":2,"row_stride":2053,"dim_stride":1,"header_sha256":"14f64b826f91d7f10d168e764f6e893f98923c04fec811c4bc338d57391ed9df","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c8_v2_dense_mask","sha256":["8de3055a9412ce848444c8d5da3428dc274c50fc1df696cb34c5b7966981f091"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"dense_mask","dense_width":8200,"variant":2,"row_stride":2053,"dim_stride":1,"header_sha256":"475f0b70758215021ff825e8d049648f463f4acb3830e2a3acb6e51ef6eb52a0","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c8_v2_row_tokens","sha256":["16eb310af2a94601b6ac86fb691f2809e1c7483f1cc98c15b1dfa7cd07fe3309","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"row_tokens","dense_width":0,"variant":2,"row_stride":2053,"dim_stride":1,"header_sha256":"867f1c4c7116ee3b50261ea689285a378a25f1de6cb445b1c25a9d250b8730d4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_plan_r7_n513_b6156_mpp0","sha256":[],"rows":7,"blocks":513,"budget":6156,"mpp":false,"chunk":1} +{"kernel":"qsa_prefill_plan_r7_n513_b6156_mpp1","sha256":[],"rows":7,"blocks":513,"budget":6156,"mpp":true,"chunk":3} +{"kernel":"qsa_prefill_plan_r65_n600_b115200_mpp0","sha256":[],"rows":65,"blocks":600,"budget":115200,"mpp":false,"chunk":9} +{"kernel":"qsa_prefill_plan_r65_n600_b115200_mpp1","sha256":[],"rows":65,"blocks":600,"budget":115200,"mpp":true,"chunk":32} +{"kernel":"qsa_prefill_plan_r2048_n513_b134217728_mpp0","sha256":[],"rows":2048,"blocks":513,"budget":134217728,"mpp":false,"chunk":2048} +{"kernel":"qsa_prefill_plan_r2048_n513_b134217728_mpp1","sha256":[],"rows":2048,"blocks":513,"budget":134217728,"mpp":true,"chunk":2048} +{"kernel":"qsa_prefill_plan_r3_n65536_b1_mpp0","sha256":[],"rows":3,"blocks":65536,"budget":1,"mpp":false,"chunk":1} +{"kernel":"qsa_prefill_plan_r3_n65536_b1_mpp1","sha256":[],"rows":3,"blocks":65536,"budget":1,"mpp":true,"chunk":1} +{"kernel":"qsa_prefill_plan_r519_n65536_b134217728_mpp0","sha256":[],"rows":519,"blocks":65536,"budget":134217728,"mpp":false,"chunk":96} +{"kernel":"qsa_prefill_plan_r519_n65536_b134217728_mpp1","sha256":[],"rows":519,"blocks":65536,"budget":134217728,"mpp":true,"chunk":512} +{"kernel":"qsa_prefill_chain_c0_ds1_blocks","sha256":["d0cfefba7279b17602239422716aba5384ed225a6ccb75a388d01b361d6c1eb4","6422d254ff211cd82081aefa289a5f6d19a6a68a08b7029551ab4ca6d51db685","24e3cd313df5527cc03bd3fad39eff86a0ae617dbf34d5f8524b127d9d0c35c0"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"blocks","dense_width":0,"budget":6156,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c0_ds1_dense_mask","sha256":["57542bf23913d7f9e15471b0096926da8e76673c0a68af5f701fb8ffec0900f2"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"dense_mask","dense_width":2055,"budget":6156,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c0_ds1_row_tokens","sha256":["a620f8f49037b68873921513345751e313b1a405457731f528f540d782f8bbe7","78ccbc4b50a82c4469e88bf733bdbdc266f48e93e71fa95c4312ab229e511233"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"row_tokens","dense_width":0,"budget":6156,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c0_ds2_blocks","sha256":["d0cfefba7279b17602239422716aba5384ed225a6ccb75a388d01b361d6c1eb4","6422d254ff211cd82081aefa289a5f6d19a6a68a08b7029551ab4ca6d51db685","564a39faff34f42b12f7dfec5671874805c3b4fde363f4853d89116215a7b07d"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"blocks","dense_width":0,"budget":6156,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c0_ds2_dense_mask","sha256":["57542bf23913d7f9e15471b0096926da8e76673c0a68af5f701fb8ffec0900f2"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"dense_mask","dense_width":2055,"budget":6156,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c0_ds2_row_tokens","sha256":["5d9c7862a140022477094ba720949bb6778ce1243ba9bc70dc8af73062726f3d","78ccbc4b50a82c4469e88bf733bdbdc266f48e93e71fa95c4312ab229e511233"],"rows":7,"pos":2044,"total":2051,"blocks":513,"topk":512,"mode":"row_tokens","dense_width":0,"budget":6156,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c1_ds1_blocks","sha256":["5033e8e437837ebec8555e6e074dd04503a6d6b6beeba6fef3a8a9abfe32832a","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","aaf78b4b85b4a7c3a656dc23d2a743da52e22b24d4bf70196443e122e48ce3b8"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"budget":115200,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c1_ds1_dense_mask","sha256":["32cb29053898d7672b0e52d13a462fd5224cd87ee7a827d18d0d4f8854602755"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2403,"budget":115200,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c1_ds1_row_tokens","sha256":["73b8cb242ad1085c8e1bc146f0038e65fd5889dcb5d00053e2ae416d899a583a","b64aa0b9f0798d762e6498b8652ef3dc5c51bde26b809e8a7d48403075cabf6b"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"budget":115200,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c1_ds2_blocks","sha256":["a34b4f5aaffa3835a98990a61c6b5866159811d63f4d8844c5d7b2473137bf45","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","039d72d49ebb9688db7265465115959a655eaf92421d6b008a5ee3b7025e7824"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"budget":115200,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c1_ds2_dense_mask","sha256":["9c1da7ca679d924b1d886310f5a5a8039210336e6574a71174c04566ae337a8c"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2403,"budget":115200,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c1_ds2_row_tokens","sha256":["865a90f002c1738266cf832d1200b37046ee3abf5ed606d3682b213507d60568","b64aa0b9f0798d762e6498b8652ef3dc5c51bde26b809e8a7d48403075cabf6b"],"rows":65,"pos":2334,"total":2399,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"budget":115200,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c2_ds1_blocks","sha256":["70412a55939d59344768f3fd978be24d19dbbc87f3390306e0bbf2d8b8c03875","ad72863f0132ba12005bbfafabb6e7fab8f4db1ae1a2448f8b947c7d0281c3ea","34f52dc5978c70acac424c57e61816a13b887b9014e0f4ebeaaf366f178e85e9"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"blocks","dense_width":0,"budget":134217728,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c2_ds1_dense_mask","sha256":["343596b5fed8d3d96ea60351a5a8ed0186ef6091510fd05a512e98695ecb9d27"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"dense_mask","dense_width":2055,"budget":134217728,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c2_ds1_row_tokens","sha256":["2e9241b8fa8c546e7f7d9e60e5ac8a4e69cbcdb81a66839ea79875fd5c663d9f","1f83dd443fd4b2570f9d1fca19dabeba3ab14d4107aa7b4cdb92df897ac8e313"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"row_tokens","dense_width":0,"budget":134217728,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c2_ds2_blocks","sha256":["70412a55939d59344768f3fd978be24d19dbbc87f3390306e0bbf2d8b8c03875","ad72863f0132ba12005bbfafabb6e7fab8f4db1ae1a2448f8b947c7d0281c3ea","d79e325713b30f7c2d01118b81843949426013ce34826da6962bcb64c3dae419"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"blocks","dense_width":0,"budget":134217728,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c2_ds2_dense_mask","sha256":["343596b5fed8d3d96ea60351a5a8ed0186ef6091510fd05a512e98695ecb9d27"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"dense_mask","dense_width":2055,"budget":134217728,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c2_ds2_row_tokens","sha256":["9142ad5b46c697094f435cf85feccf5df22567d17c5a8c9126cd9b9972f09cf9","1f83dd443fd4b2570f9d1fca19dabeba3ab14d4107aa7b4cdb92df897ac8e313"],"rows":2048,"pos":3,"total":2051,"blocks":513,"topk":512,"mode":"row_tokens","dense_width":0,"budget":134217728,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c3_ds1_blocks","sha256":["fd1ad22de4141c4c404baf81310ad1822c23c391b7a0d93f5d8a39e568b3f0fd","4fcbec4ade9b5fcfda8422bf0b5f41c5b79645bf5e47e7af4a947470a1822770","90cf937b9e494728127a27267f7aa89b9e3e776f2f731ce910e1dcab687ab866"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"budget":1,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c3_ds1_dense_mask","sha256":["795108f0cba4f31057015137ff94503b9dddc1db1e2dd0857116b4d6a4cd8c52"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262147,"budget":1,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c3_ds1_row_tokens","sha256":["8d85cd13f75bbb7b49af0357639a4995d0301bd23c94e4c1c45e5a95f77895c9","b00d77a391eccd552fc207717c8f5135f35b9af2d1505b78b1e6f2e4dd95971d"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"budget":1,"dim_stride":1} +{"kernel":"qsa_prefill_chain_c3_ds2_blocks","sha256":["e5541ee8f0b183149004c8ede70592f2a7e7ca238d8dcd59ccdb8f0bee4f317b","4fcbec4ade9b5fcfda8422bf0b5f41c5b79645bf5e47e7af4a947470a1822770","d14041e7cafeb26579abb2c10fbc837b4960d4c3a5a9179903a737d3f35a7661"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"budget":1,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c3_ds2_dense_mask","sha256":["0e10825b7d2ae4bdbe8ae929244112cd74688679ba0f68fafe94cdc929f14202"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262147,"budget":1,"dim_stride":2} +{"kernel":"qsa_prefill_chain_c3_ds2_row_tokens","sha256":["183de95a201f45baf04000244da68fe6d41a34a0667609cb67f3863b2a901c1f","b00d77a391eccd552fc207717c8f5135f35b9af2d1505b78b1e6f2e4dd95971d"],"rows":3,"pos":262140,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"budget":1,"dim_stride":2} +{"kernel":"qsa_connected_s3_blocks","sha256":["33ae5a09de36e3be2d32f8543508048eafdb504cde7ce0917cfd32243a48dce4","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","ddc6101d56ab5b6485076cfa4141369475576b5d1682705e55cfa08dffc3a64b"],"rows":2048,"step":3,"mode":"blocks","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"prefill":true} +{"kernel":"qsa_connected_s3_dense_mask","sha256":["0a50cb9c82aa420b50e49f454af83a884d5dfd831832f70bab8f368bd491faef"],"rows":2048,"step":3,"mode":"dense_mask","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"prefill":true} +{"kernel":"qsa_connected_s3_row_tokens","sha256":["c916eecc14a93b3cdcb00eba9bea4c302eebc54c35b7979550ce1398cf12db92","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"step":3,"mode":"row_tokens","frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"prefill":true} +{"kernel":"qsa_prefill_topk_c0_v3_blocks","sha256":["e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e5a00aa9991ac8a5ee3109844d84a55583bd20572ad3ffcd42792f3c36b183ad","e2f997564baf84defd53a8043e8b8b015bee0a4abe5fb931d75661fb25c5a325"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":6,"dim_stride":2,"header_sha256":"095baf3e9f301c170ed376b859af23b4dd8f41902e8e1cb9662ad809298e118e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c0_v3_dense_mask","sha256":["66b7057e198043f4acfb86f84717e34610811559714e63c9484bde10fb7cbe06"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"dense_mask","dense_width":8,"variant":3,"row_stride":6,"dim_stride":2,"header_sha256":"7b1a7e9165d7576e1fdedc66733dace25152d707254cdb4abc8ea64f14a271c9","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c0_v3_row_tokens","sha256":["f2a9630e7917f14f54264504d1f1cf7015deb917377451dc9eca1f0fc3757f05","25f42017b5dd14ef57d5d729131b56abb10852db4f082cc002a2578cb03aaac7"],"rows":1,"pos":0,"total":1,"blocks":1,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":6,"dim_stride":2,"header_sha256":"a15b7a2712c174fdec6c7c54e729e203aef594953f0bbaa898ead2d3b23c399a","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c1_v3_blocks","sha256":["9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","98b967fb1a17173c764648d463a010d9b352da5e27b736ce10ef25bc9a530ed5","9a566a56952adfdcb574419c14c8fa4f56398abcc4b01b7d0ea07c96b179cfbe"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":20,"dim_stride":2,"header_sha256":"dcc34365080280a008b5398e2a53ee2330d9be06c07210200b0b1b1d11dac705","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c1_v3_dense_mask","sha256":["ae3184a8c4d4c97920985c5a8fe103545c1294d63dddb3546ab3fe04b3d91732"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"dense_mask","dense_width":36,"variant":3,"row_stride":20,"dim_stride":2,"header_sha256":"1dfd926a3a2ac9d8282fc20de8ee0fea91acdbd970ccd5a8938f4878da37126c","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c1_v3_row_tokens","sha256":["5dfa3b0bd7139d1e9882feb2468023967e5d159dacc028d56eb886f98d1686eb","65d025bc39e21c635cac02397ee4a26632e31fa8a443f610449333bcd7048040"],"rows":4,"pos":0,"total":7,"blocks":8,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":20,"dim_stride":2,"header_sha256":"c1f91aac4eaf9071a17907372af98d2fc0fedc7aa8da9cca5ef21dfe983574c4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c2_v3_blocks","sha256":["6def535716d19b78c6ea920fec28a649a2068992d4fc2734a477b2ece6ae6222","9d33d28cb19bb010a81913025748b907c80f7b7f0678f44b891e71fc8c0c85fc","3d33ae8b06664de2eaf34461874f0dac3854883187ec881417e79670429ee911"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":1204,"dim_stride":2,"header_sha256":"66f775184db7175f832ae1f1361431591660d61178e0e569b5ea43ef92378b10","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c2_v3_dense_mask","sha256":["2535837bc64defba6f1a8ba3c1c70302ddcf128afbcd6fc58615264f622e8a7e"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"dense_mask","dense_width":2404,"variant":3,"row_stride":1204,"dim_stride":2,"header_sha256":"3e36f61bb8236ecc3cafdd5c91244836b25d1305107fdfaf867b8188520edb91","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c2_v3_row_tokens","sha256":["9c816affab5b71a602c8c84c5057a0f0df0231c59579a29f5e2876d26ac6854b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"pos":2045,"total":2052,"blocks":600,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":1204,"dim_stride":2,"header_sha256":"1ee67cf29d113d2c94a73d2e67bc0ff4956105b313772798b8c0986f95432dd5","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c3_v3_blocks","sha256":["2cb731a49b081b998dc0cf66147dbd458014e3cc73d36347ffa2c198b02f3d9b","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","16ef63b9b31532af027ac696789dd1a98cafa495d709c031d128a0ffb8ccf23f"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":8196,"dim_stride":2,"header_sha256":"cbc5022af36c0fec321557d0f94dd80e91e906875cfe3a9a09c47c677318e99c","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c3_v3_dense_mask","sha256":["151d3d056915b31f4d8dddbbae45f8d396d860931df1247b356302e768d895d9"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"dense_mask","dense_width":16388,"variant":3,"row_stride":8196,"dim_stride":2,"header_sha256":"823996508382018d47484a55ae67001d6126f95ca8cee57ee8c4ce5251b2075f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c3_v3_row_tokens","sha256":["7f41ddb9848a14f9463210852baa7b49e299df39cbb33580f274b80842bbc6d5","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"pos":8192,"total":8196,"blocks":4096,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":8196,"dim_stride":2,"header_sha256":"d154dd585052fa1f037c6a7de7890f561e0cf6efde0ffb59265d4e9d870838c0","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c4_v3_blocks","sha256":["e75d721dd4c0f840a214f2fb4fff0c0efaa26d823178850011d179abc54088a4","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","1cc59e245e7d54b7d6d3c908282c75ddbfdcd3c995277f64502635b9316d8a10"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":131076,"dim_stride":2,"header_sha256":"1da8a6f167d96efc4eda65c7b1ce2a8e2569a78205e84f64d61128c33529abfd","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c4_v3_dense_mask","sha256":["3ffe320ede569c6f6d8a6e83a9682104f984ad7a4dedc9d93b243470b28ec071"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"dense_mask","dense_width":262148,"variant":3,"row_stride":131076,"dim_stride":2,"header_sha256":"1ee941a5802373043b1389e4a198444601d97df08cda80d5ada28e41cb25fd3f","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c4_v3_row_tokens","sha256":["e1c7f12dc3404133641b80d884ad041e2e74211923ae382526cce3606510843b","c2db559f64e31218ded97654870f7b6873c465d7714931b8ccc5ce45b427f135"],"rows":1,"pos":262142,"total":262143,"blocks":65536,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":131076,"dim_stride":2,"header_sha256":"54d751797b25128f153b1a7cb0528831e82e1b1568860771de3356098db4095c","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c5_v3_blocks","sha256":["090acf2ab9a192d5b1b83f74d5287d49bbf66aed2fde7a1eebad115ed50ee2ef","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","61bd1e1da7a7cc77a0d1fbf29c1d6b9f05c5941c5e9e1afa13fe96a14f6d7949"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"blocks","dense_width":0,"variant":3,"row_stride":132,"dim_stride":2,"header_sha256":"91a887bf344c70596bd3520af55a022a5d7476d42728a43b029a2fc1015d4d89","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c5_v3_dense_mask","sha256":["4f33feb4c0a85ce11d9ee4144639892cb5b9fdeadd54d84cda9afcd2935f4c11"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"dense_mask","dense_width":260,"variant":3,"row_stride":132,"dim_stride":2,"header_sha256":"e28fc07d77e23c7e66c3991dc102a6cb4fb3e3868d1c703a7518d7013a4a7b69","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c5_v3_row_tokens","sha256":["484f69bc3d4f3250384be9eb91d7c7006e36b4f2fe5a05714bc0da2bec94242a","0615185b24eb229d126f4c331fb42df44d1da34a209b9aef35a6cb333979dc8a"],"rows":4,"pos":252,"total":256,"blocks":64,"topk":16,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":132,"dim_stride":2,"header_sha256":"c006fd746796d2d7fa6a393842f05dc6a1e82dca6c27bb7853c0c075eaa11097","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c6_v3_blocks","sha256":["1c6d473d3147167a3919593ac05406c554bfac25742eb2cbc322c3f497edc4e4","9628e545ed3ac074e5a6cbf542a642b62482fbfca9b4cb3ea4743a1874256e37","412176bafa4cbad2ed79374974dbff3be1de9e72ec63342e221b6b753ffa537e"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"blocks","dense_width":0,"variant":3,"row_stride":134,"dim_stride":2,"header_sha256":"07f1123eb60309d8d6523b32786dabc69ee58467c827a1c7feeb24e229c1128f","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c6_v3_dense_mask","sha256":["00ecc8e5a55bc889c95178bddd44f629433349fd181c8e09eea015a56e01e3bf"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"dense_mask","dense_width":264,"variant":3,"row_stride":134,"dim_stride":2,"header_sha256":"e072551392f5b2df3e1d00fac939a7e3a2d50bca65b9143ee0c3d45ad7fcad86","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c6_v3_row_tokens","sha256":["ca2ef9b0e1c94033445f301d986d5f712cf2b8c6318b7ab0d4fe0667e996fefc","3ce412ac993cb05fd243a3a5972aba578a271d8c3ec13cbdde70855631c2a1b6"],"rows":1,"pos":256,"total":257,"blocks":65,"topk":16,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":134,"dim_stride":2,"header_sha256":"bafcd33678d4bae187fba6b19ee31e07f1fed36492b7ba59547e96ff955958ff","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c7_v3_blocks","sha256":["d94b2a425e9f6669b0665056fe92784c693306b4c5db6923f54d6b6ccad63d42","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","826f81dbf832b0049e2d8cd9f2d8c6bc6dd63b167551ce02a33d00a1b6013908"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":4100,"dim_stride":2,"header_sha256":"418e243dba2d42afcf0158fd8bae81ac5b66c7983c25036e4227485b9b6ec64e","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c7_v3_dense_mask","sha256":["31684177acddc435ac486020016bc96ebf6a638385eef11f10b83e9ded0a7b03"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"dense_mask","dense_width":8196,"variant":3,"row_stride":4100,"dim_stride":2,"header_sha256":"9117fc27e3b67567a77bef4676e6b66b3c0ed3d4a61f359b8ab14456b0408cfd","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c7_v3_row_tokens","sha256":["7c113ed15b12f63c0a2300af7eb1eae308cc435aff0f9f8c0faa1a8b2d62594d","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8188,"total":8189,"blocks":2048,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":4100,"dim_stride":2,"header_sha256":"f6e6a043b5ab139e26cbacd42c9e644b2f316ffbe599b9394a537b91d4cc5293","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_prefill_topk_c8_v3_blocks","sha256":["d94b2a425e9f6669b0665056fe92784c693306b4c5db6923f54d6b6ccad63d42","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","826f81dbf832b0049e2d8cd9f2d8c6bc6dd63b167551ce02a33d00a1b6013908"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"blocks","dense_width":0,"variant":3,"row_stride":4102,"dim_stride":2,"header_sha256":"14f64b826f91d7f10d168e764f6e893f98923c04fec811c4bc338d57391ed9df","body_sha256":"f41bd21fd8078563176ef78b221f24cd43c9365bb630e1689cc7bbba1a3b319e"} +{"kernel":"qsa_prefill_topk_c8_v3_dense_mask","sha256":["959e6abf36c94a29caeee6052e7d963b30cf0ac2ff49bca5341c69464ec39cca"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"dense_mask","dense_width":8200,"variant":3,"row_stride":4102,"dim_stride":2,"header_sha256":"475f0b70758215021ff825e8d049648f463f4acb3830e2a3acb6e51ef6eb52a0","body_sha256":"fafae21aed4718030c555a5afd8ac204f52e8b9fa371f54437d54cef68f480eb"} +{"kernel":"qsa_prefill_topk_c8_v3_row_tokens","sha256":["69c6f7951828d1d47b5d6f314a1776f2a875923d433e72f604d844d3923aee71","f58f5a843ec825e133210a2905eefd9ce5aa19b3397ff36aaae102c787da2c4d"],"rows":1,"pos":8192,"total":8193,"blocks":2049,"topk":512,"mode":"row_tokens","dense_width":0,"variant":3,"row_stride":4102,"dim_stride":2,"header_sha256":"867f1c4c7116ee3b50261ea689285a378a25f1de6cb445b1c25a9d250b8730d4","body_sha256":"ab64fc2e2c9fca2451aabd4c2601d83b1cbbc8318f70dbad8c5fd3eef1fab8e3"} +{"kernel":"qsa_f32_score_r1_n1_l0_bf1_tf1","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l0_bf0_tf1","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l1_bf1_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l1_bf0_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l2_bf1_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":1023,"pooled_count":509,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l2_bf0_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":1023,"pooled_count":509,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l3_bf1_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":255,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l3_bf0_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":255,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l4_bf1_tf1","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[128,128,1],"pooled_strides":[1,1],"q_count":512,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l4_bf0_tf1","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[128,128,1],"pooled_strides":[1,1],"q_count":512,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l5_bf1_tf1","sha256":["4b3af76a5680c10c2ee9d72e540555ed4c41a301ac7439d47df07eecf0aa06d2"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":512,"pooled_count":509,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l5_bf0_tf1","sha256":["0a0bb4e8d2989338a056d1f018af31f5e1e7667f71c577aa3baa074bb94aed9e"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":512,"pooled_count":509,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l6_bf1_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":512,"pooled_count":255,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l6_bf0_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":512,"pooled_count":255,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l7_bf1_tf1","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l7_bf0_tf1","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l0_bf1_tf1","sha256":["0941c905368da9ef8153121d72ccd38098f23e68000f4a65275139f6c7a9f2c3"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l0_bf0_tf1","sha256":["f8ce78e4b371c208da8f5c38524cfeeeb1d215a0086cac316c0063efa3970889"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l1_bf1_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l1_bf0_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l2_bf1_tf1","sha256":["4fcde07fb51b72837999eb95117eddff95a09dac8e4890ca99828f59e7185493"],"rows":2,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":2047,"pooled_count":509,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l2_bf0_tf1","sha256":["b8f1375f4cd8db38f7c2d89f0f90dfe46b1450020971f6327fb49e0910bdcef6"],"rows":2,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":2047,"pooled_count":509,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l3_bf1_tf1","sha256":["c91b2f4d2ccfed72681c5a3bde51f517f6d734083123abb1bf72e151f0806690"],"rows":2,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1031,"pooled_count":255,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l3_bf0_tf1","sha256":["03c17433cc63893965d5857bba6e672ff9b53fc95c71620cce349cd0bdcf3ad5"],"rows":2,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1031,"pooled_count":255,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l4_bf1_tf1","sha256":["c6a5f002155899927a2c0d98d679e18daeb44b3cd43336d02c428eb2d3d7361d"],"rows":2,"blocks":1,"q_strides":[128,256,1],"pooled_strides":[1,1],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l4_bf0_tf1","sha256":["e7cff825863bcd333258b7d094c1fc7a1bf415401b58181c50f1f4896af9cb45"],"rows":2,"blocks":1,"q_strides":[128,256,1],"pooled_strides":[1,1],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l5_bf1_tf1","sha256":["10fd79e56921a1949a4277c8028677506651bc7c40e5e6a5943c10ca497a67a8"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":1024,"pooled_count":509,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l5_bf0_tf1","sha256":["d0c311b8c7b18ff78f3c8865f3fc22e1370a5540fbc98bec7eda56e9922220d2"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":1024,"pooled_count":509,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l6_bf1_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":1024,"pooled_count":255,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l6_bf0_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":1024,"pooled_count":255,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l7_bf1_tf1","sha256":["14960242e7be6ec0c818c7a06fdb31b010b4e733c48dfe3b7c741d36e24f735f"],"rows":2,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2_n1_l7_bf0_tf1","sha256":["71687f1948fd86e5b8fc122c9f235baa56b6b4afbdd0bd828adb895b855b68cd"],"rows":2,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l0_bf1_tf1","sha256":["2c7865bc98aeebd41915133af4b1f0633d3c1fb3084568fe0cf1e19c00e7d6ff"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l0_bf0_tf1","sha256":["6c373eb4a40ba911961e9e90d0dfae8380514c8ed53f6325c71fc4c77a3175b9"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l1_bf1_tf1","sha256":["f69f200bfc20cbd4af5a63426ddf6c10636989e9f8c0cb9e862f4b4f684d5c85"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l1_bf0_tf1","sha256":["6cabd84809bb41cffb9c9069049bed606cc9dea8384dea5f7320ad2f43b4912a"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l2_bf1_tf1","sha256":["8ee3b3662f5299a73ab2a1c735b3ea3b2f360054f1e7129a53bc329c41f27371"],"rows":4,"blocks":7,"q_strides":[1024,256,2],"pooled_strides":[10,1],"q_count":4095,"pooled_count":1277,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l2_bf0_tf1","sha256":["e511d2e8982dfeb2cf542188636b1f28a94ecce347239d583e07bf42d868ff0d"],"rows":4,"blocks":7,"q_strides":[1024,256,2],"pooled_strides":[10,1],"q_count":4095,"pooled_count":1277,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l3_bf1_tf1","sha256":["43613a266041b5285fe077d6ea8162c348592dbe13d50b1c71e34d7bd206ab04"],"rows":4,"blocks":7,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":1791,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l3_bf0_tf1","sha256":["e82d8d9f0a3b96574e1e6c98e7c71d6cd83dbb530e42837e5de25bd734cfca4d"],"rows":4,"blocks":7,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":1791,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l4_bf1_tf1","sha256":["27d2daf1c4455f3db62fdc86a1e94d9b9c9f269123ba878b8a3c2d2cd389af71"],"rows":4,"blocks":7,"q_strides":[128,512,1],"pooled_strides":[7,1],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l4_bf0_tf1","sha256":["032d57f9c1ff263f90c9037e0bc90025169a1de1d8899890a10fec383fe64a71"],"rows":4,"blocks":7,"q_strides":[128,512,1],"pooled_strides":[7,1],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l5_bf1_tf1","sha256":["bd1e00087ca5556b47e33405be8af14c5208a6caa11e7fa045ea953b1c32745d"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[10,1],"q_count":2048,"pooled_count":1277,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l5_bf0_tf1","sha256":["2c639df7b6423f116c76a703ae93a2d9dbbee676749fe53eb92b21ae6f2c6268"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[10,1],"q_count":2048,"pooled_count":1277,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l6_bf1_tf1","sha256":["04596404425ffa1d139025f62aa70324b653e8ae24276c73a13906134e7da3c9"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[14,2],"q_count":2048,"pooled_count":1791,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l6_bf0_tf1","sha256":["d282c45ccbd908bdd5e1ded33179208d55fb60fbad1fa3fff59665af2e8b37ea"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[14,2],"q_count":2048,"pooled_count":1791,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l7_bf1_tf1","sha256":["a83822d0f7053a88fac619c05dad39b5f5c63999c4b7248576c9d1246725bead"],"rows":4,"blocks":7,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":896,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n7_l7_bf0_tf1","sha256":["6a9ffff525ea2fba5a0efae183cf9fb9e29851d44e5be84eca3412f526cb77e5"],"rows":4,"blocks":7,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":896,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l0_bf1_tf1","sha256":["4b455cf076d301079f915c5606eb6210ba6a43726deb6d46afe66752fc2dbc42"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l0_bf0_tf1","sha256":["1e85763cc7b59bbdfbf4026a44249ee997237a3800a3a593ed6e56d75dd9c2d8"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l1_bf1_tf1","sha256":["ec00cc53e6d4e7621826bf9603f3309e7df12a7ce2bd6856ed48686d0e124805"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l1_bf0_tf1","sha256":["e84bff48a39326e19fdbdd85b15b216720ac22263070be1d11965b081e3a11f5"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l2_bf1_tf1","sha256":["da8cee68c1d1f4aab1982e0c35b9325f3b257c4eefc76d90473c8faaa466b530"],"rows":1,"blocks":16,"q_strides":[1024,256,2],"pooled_strides":[19,1],"q_count":1023,"pooled_count":2429,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l2_bf0_tf1","sha256":["d68ea472b5b7ad6fd715e64161e61a20e8dfbffd997860040a6dc0060243f8d5"],"rows":1,"blocks":16,"q_strides":[1024,256,2],"pooled_strides":[19,1],"q_count":1023,"pooled_count":2429,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l3_bf1_tf1","sha256":["94bef7c4141bb63140cbfe7110933ac186239f86592a4b41473e1f28d37d45e2"],"rows":1,"blocks":16,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":4095,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l3_bf0_tf1","sha256":["e4039d6de7566284bd5b9bcd7a52a60bbbfb514b0c328598c7af4817647ec442"],"rows":1,"blocks":16,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":4095,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l4_bf1_tf1","sha256":["b9cb87f109c50acc9cd95faa6ca19328c358592a16be01509036f3c28e3f65c9"],"rows":1,"blocks":16,"q_strides":[128,128,1],"pooled_strides":[16,1],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l4_bf0_tf1","sha256":["23f03402d6eeb76424ce3754a0bba188b4d882636f98684dd14db4bc0ff463e7"],"rows":1,"blocks":16,"q_strides":[128,128,1],"pooled_strides":[16,1],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l5_bf1_tf1","sha256":["8e215558631d48c350dfeb2966d1cf2e293dceaa62894d1f9ccf9a1626393d9c"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[19,1],"q_count":512,"pooled_count":2429,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l5_bf0_tf1","sha256":["5d95d8c7bab780fee3082c4b9859a1b143829e9428394cda61f14a47d87ba574"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[19,1],"q_count":512,"pooled_count":2429,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l6_bf1_tf1","sha256":["89377342cb07a5e35f8c8515e422b6593c56d42ecd1c976343bce93398d33b89"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[32,2],"q_count":512,"pooled_count":4095,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l6_bf0_tf1","sha256":["c549204ce90b34a5f60aa26fb01f8b81062f4018c56ad735f8538c05c38436f6"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[32,2],"q_count":512,"pooled_count":4095,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l7_bf1_tf1","sha256":["4b455cf076d301079f915c5606eb6210ba6a43726deb6d46afe66752fc2dbc42"],"rows":1,"blocks":16,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r1_n16_l7_bf0_tf1","sha256":["1e85763cc7b59bbdfbf4026a44249ee997237a3800a3a593ed6e56d75dd9c2d8"],"rows":1,"blocks":16,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l0_bf1_tf1","sha256":["e9d0da16f6514ac72d163103a706265c58a72a7818ba038422dfa4b7f57637c9"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l0_bf0_tf1","sha256":["1325f4574c0c93d5d85d6007ac756e6fd9622d86e7b4384f040858225ed2f653"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l1_bf1_tf1","sha256":["20b833acf789cc2e1a7696e03c53f9a3f85bb315daf46d7af0e528030b588272"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l1_bf0_tf1","sha256":["ac4ec31fa4753835934b4b3058e3f7e6c55e5d5ffe60b3b7803c92d21149cb7c"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l2_bf1_tf1","sha256":["126c8e36e7587f900542fe802430365549e140cf897a8770e1e53c27300e33d0"],"rows":4,"blocks":32,"q_strides":[1024,256,2],"pooled_strides":[35,1],"q_count":4095,"pooled_count":4477,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l2_bf0_tf1","sha256":["25c0ae3bf170dfe7cd6cdeaf28070bb83e610456ad52c9a323bce96a79df4638"],"rows":4,"blocks":32,"q_strides":[1024,256,2],"pooled_strides":[35,1],"q_count":4095,"pooled_count":4477,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l3_bf1_tf1","sha256":["3ca91cd5dd5b46ea0c54d2213a9da538e59a95633bc60578979b661756b61078"],"rows":4,"blocks":32,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":8191,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l3_bf0_tf1","sha256":["097d558734cc724fc8662839027d065daf89bb5dd233355ab493c13e8e5d2aa4"],"rows":4,"blocks":32,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":8191,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l4_bf1_tf1","sha256":["f8ce8d8e238de32270f29fed137eb0b3e723a247a72cb6389183091f38aeefeb"],"rows":4,"blocks":32,"q_strides":[128,512,1],"pooled_strides":[32,1],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l4_bf0_tf1","sha256":["96ea2defd775719e1c7421c769c8bfcb8da010431ff164427ae4756319b25d54"],"rows":4,"blocks":32,"q_strides":[128,512,1],"pooled_strides":[32,1],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l5_bf1_tf1","sha256":["e19bd8b1335f75e9b2b2d01dff6c2566dd93553fd7abf46913a26c5747b41ad7"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[35,1],"q_count":2048,"pooled_count":4477,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l5_bf0_tf1","sha256":["7d3a7fc31a14f1937b74c27fb0cee30874a7b3d9d85b02bebccc551ee55355b2"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[35,1],"q_count":2048,"pooled_count":4477,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l6_bf1_tf1","sha256":["6e1144ede0dd2a89b8bd56702213d7e34f45225db1571b4f022b68df029b91bf"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[64,2],"q_count":2048,"pooled_count":8191,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l6_bf0_tf1","sha256":["99f4ffc3704185b47d5788c33effc877b611efa9e5f00610a5aa64c4e1f3d0a9"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[64,2],"q_count":2048,"pooled_count":8191,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l7_bf1_tf1","sha256":["00967479516f30fa74b24631301bb8a6de361ff1192ce53970ad41cc7dc53fa1"],"rows":4,"blocks":32,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":4096,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r4_n32_l7_bf0_tf1","sha256":["30c841fdac4940c5307f6503a58eac22cb79a1c8ee6e46ab1c9d9c8a357e76c2"],"rows":4,"blocks":32,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":4096,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l0_bf1_tf1","sha256":["2f058ca862206ae3c7b7427639f1e1eefa5470c959ff89bfe67500a3ce24c507"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l0_bf0_tf1","sha256":["ecbc530140fce8e7839f0ce0021e137a5436b95a5c5fc73088a917cc02a68e26"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l1_bf1_tf1","sha256":["945ab417b94837d9d34defc77ba8ead83814cded7c4749de682a928b6520dec6"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l1_bf0_tf1","sha256":["225e3dc374c4bd7d3f3323c6b2bd0944477a4286a19929a550877de31fed7601"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l2_bf1_tf1","sha256":["4e9cee2b7293dd7f11e2479bbb6b646ab72e4ffe545ceaa6ad180c07db4797d2"],"rows":10,"blocks":40,"q_strides":[1024,256,2],"pooled_strides":[43,1],"q_count":10239,"pooled_count":5501,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l2_bf0_tf1","sha256":["8d94c5117b965b0c811eb9c972c11b98d536848f5b2344a1c57bc5bcc1f9c064"],"rows":10,"blocks":40,"q_strides":[1024,256,2],"pooled_strides":[43,1],"q_count":10239,"pooled_count":5501,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l3_bf1_tf1","sha256":["76cf3db70d2858cd1fa2bfc602ffd3368745bb79c7db8e7a6850ad54ac324a7b"],"rows":10,"blocks":40,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":5183,"pooled_count":10239,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l3_bf0_tf1","sha256":["09021378d7c772cbfd556c55ed39927b76650fb1185d8de348820787e16eeb29"],"rows":10,"blocks":40,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":5183,"pooled_count":10239,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l4_bf1_tf1","sha256":["c42bb24f7f30f42849b4fbd4cd2f8eb86f7d611ca1d47dd3621f91511bc1f0f2"],"rows":10,"blocks":40,"q_strides":[128,1280,1],"pooled_strides":[40,1],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l4_bf0_tf1","sha256":["4b4c20eaac48cd29543c0e52a1d0f29d0dbdb93119fae67f78a60de3451a94e1"],"rows":10,"blocks":40,"q_strides":[128,1280,1],"pooled_strides":[40,1],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l5_bf1_tf1","sha256":["d1d58529d693caa0b8ce0bf8bee3019608ca85623d6e4fab2906a200a3342dea"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[43,1],"q_count":5120,"pooled_count":5501,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l5_bf0_tf1","sha256":["897005c1365217b8848004fd9c17cdd582135ebf9d80a681ff41a08ab3597920"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[43,1],"q_count":5120,"pooled_count":5501,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l6_bf1_tf1","sha256":["f01343c363f5caa3b5a02a60f1a6c0ff7398f8d1446dfe21fa57fd83b05317c1"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[80,2],"q_count":5120,"pooled_count":10239,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l6_bf0_tf1","sha256":["e9f3e974e0d1927ffe871117aca9b9625d9f94cf87e9756de8adf321c6c2666e"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[80,2],"q_count":5120,"pooled_count":10239,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l7_bf1_tf1","sha256":["e3fae5baa4688a66b4162712b4378639fa96a76ab87d3b67662cac355f5de390"],"rows":10,"blocks":40,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":5120,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r10_n40_l7_bf0_tf1","sha256":["0a42a0860284a58b6cd71f0248ba9a7d27ccdaf5623b002bfbb715e7e7a7988d"],"rows":10,"blocks":40,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":5120,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l0_bf1_tf1","sha256":["7e44aab7bed35fdf4504f60b1039a5607596c4c5fc33b71364e5f93653e248d1"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l0_bf0_tf1","sha256":["52f82a5c3d569265e979985bcf1327041462b0c8cec63f1cc1f55cd0bb9ba6cb"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l1_bf1_tf1","sha256":["b5f1a38a67cd0440e72ae58caaeef32d44165a38408d3c86b88b337aec9838b7"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l1_bf0_tf1","sha256":["e7ab4b8fa984af16c4f82009ab00a231130be70fc6b9d5fa816023954d3c32d8"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l2_bf1_tf1","sha256":["b38363dca394f0694936ef027c76044fc307d0c9dc72a82698b9d0d4ddc386c3"],"rows":16,"blocks":63,"q_strides":[1024,256,2],"pooled_strides":[66,1],"q_count":16383,"pooled_count":8445,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l2_bf0_tf1","sha256":["4fdf519f0920553a186296b1fd79998fcd8f173323659b48ec504cd541d4ba0a"],"rows":16,"blocks":63,"q_strides":[1024,256,2],"pooled_strides":[66,1],"q_count":16383,"pooled_count":8445,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l3_bf1_tf1","sha256":["f5d380d3b8e4aa9893d2289802d42a92a6f1d6746b2f55ec9a27548a702d3fa7"],"rows":16,"blocks":63,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16127,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l3_bf0_tf1","sha256":["148d5a14aa53c12ef90eea634f33b2622ec7f4fc806ab9a2a5dbb1cdf1c1ffcb"],"rows":16,"blocks":63,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16127,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l4_bf1_tf1","sha256":["a83013da705cb3a2bad591adfa30110572b5b2b67034cfaeff06c38be48c154c"],"rows":16,"blocks":63,"q_strides":[128,2048,1],"pooled_strides":[63,1],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l4_bf0_tf1","sha256":["cc7aa0b41951a77d7a673ff09ed0c3192888180bf89738da20b54f7883ad9893"],"rows":16,"blocks":63,"q_strides":[128,2048,1],"pooled_strides":[63,1],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l5_bf1_tf1","sha256":["aac9b2c240233d904ca0c4495c05e990a210ff87e47f9f8045dc8e9cbabc14c3"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[66,1],"q_count":8192,"pooled_count":8445,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l5_bf0_tf1","sha256":["91c0e624a6f359845b122d1fe2eb5bbfea3e12eda0042516c29e36cb6e36fe16"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[66,1],"q_count":8192,"pooled_count":8445,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l6_bf1_tf1","sha256":["67b3eca9fcc33c3765ca934ca7a30c93d7b3738c36a3c011b8addb29dd00b24a"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[126,2],"q_count":8192,"pooled_count":16127,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l6_bf0_tf1","sha256":["6d113048f929bbcc5c3fea7d2ecb73d1e357ee784e0c60cc8c8c54ed8ccd6334"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[126,2],"q_count":8192,"pooled_count":16127,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l7_bf1_tf1","sha256":["c1c50776a5adea44f1ec3f8a71595d2b2ab70b78dac70ffb4fb4393ede999fd1"],"rows":16,"blocks":63,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8064,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n63_l7_bf0_tf1","sha256":["13162598c5e63ce11fdd2607c60e1058d2cb01d51703a7153fa1fc92a4fdad1e"],"rows":16,"blocks":63,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8064,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l0_bf1_tf1","sha256":["4d129fc4dcc63a84ae5e83f54b03a68c71699fa9e0417719d73fa11967e0f32b"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l0_bf0_tf1","sha256":["64a7e349f3839d5f5aa6567c2a67b711dcc7d9c91e1ffee715c45233f87cf1db"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l1_bf1_tf1","sha256":["0a6aa97ea295e4a3bcfd48ba3cc419f89d1383fbfb97397806e36ec0cd9d9d9f"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l1_bf0_tf1","sha256":["7256c76e40d8f6c21e0f0ba787286b6f64abe15014909dc3438f1664f2d1d31b"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l2_bf1_tf1","sha256":["9c6619427c5696a38f3f218ab7bfafebe670e36d6cae55b083e1f8d9e8bf3b7d"],"rows":16,"blocks":64,"q_strides":[1024,256,2],"pooled_strides":[67,1],"q_count":16383,"pooled_count":8573,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l2_bf0_tf1","sha256":["e2b0d8e86f52384112d840a87e913c2139e4812706e2094c81714eb7f5d748d4"],"rows":16,"blocks":64,"q_strides":[1024,256,2],"pooled_strides":[67,1],"q_count":16383,"pooled_count":8573,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l3_bf1_tf1","sha256":["2bf7e8537276ca7688ce3d06df1b89b4aadc54b91452a4c72e871a20e81d45a5"],"rows":16,"blocks":64,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16383,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l3_bf0_tf1","sha256":["20577886821a4896f3a20dd7fc4ac9b2447f542b4f7ed37aee799d36b859da9b"],"rows":16,"blocks":64,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16383,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l4_bf1_tf1","sha256":["efa4db42f23a41ff05e4a3186cf3683a57b8416904f0232071baab98d7c323d6"],"rows":16,"blocks":64,"q_strides":[128,2048,1],"pooled_strides":[64,1],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l4_bf0_tf1","sha256":["bfeb08ebba0e90422758c8fc7803fbed489a9105c1258eb46521d0d454afbe19"],"rows":16,"blocks":64,"q_strides":[128,2048,1],"pooled_strides":[64,1],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l5_bf1_tf1","sha256":["6abe3ffc0ee6fb00c0b1912f8ff45de0392fa88580e180ed33cc60bbd83b9bd0"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[67,1],"q_count":8192,"pooled_count":8573,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l5_bf0_tf1","sha256":["20a26bd41d12acd0875d8bd150fb01a2b9ead0892260702e3da16ea3fd5ad444"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[67,1],"q_count":8192,"pooled_count":8573,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l6_bf1_tf1","sha256":["0b8eddc838c4616706b66e402578c586fc953928c3e458a4802db817d10e8af6"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[128,2],"q_count":8192,"pooled_count":16383,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l6_bf0_tf1","sha256":["9a16e2bcd20f5cb39fe8f5393117965b0cc55bf7564cb924d753bedc9a5b9efd"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[128,2],"q_count":8192,"pooled_count":16383,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l7_bf1_tf1","sha256":["e392c6b9ff31598cfd1017e5e4dc5935ac4c864cb2d951c987b591eda29292c5"],"rows":16,"blocks":64,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8192,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r16_n64_l7_bf0_tf1","sha256":["0fef46b6538a217f176e39a0e198bd3919988c5471dabc9cd79f6ef0cdd66c7e"],"rows":16,"blocks":64,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8192,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l0_bf1_tf1","sha256":["93d09fc708341fff791e31f57b1cc1b988d32734c738edc6c0c6bcc1e14b6fcb"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l0_bf0_tf1","sha256":["3aed699dc39606262a30199c4e9456b5c4671d45f640a82aec621d4424d52ff7"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l1_bf1_tf1","sha256":["a68832577235a849d097262a2512d8f68e1876d9a1f2e8a96dae565f3bc6ff3a"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l1_bf0_tf1","sha256":["812f481cc53bdf3dc434506429ef561f8f0671227bb22c4b62016777c543147e"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l2_bf1_tf1","sha256":["7dac4d7ec5d96d6731240931c2789b46581fea12c70d4ca98fa42bc973c3a5e6"],"rows":32,"blocks":128,"q_strides":[1024,256,2],"pooled_strides":[131,1],"q_count":32767,"pooled_count":16765,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l2_bf0_tf1","sha256":["d5cbe2609e3a6e23d38a34f39c038790d8735927c45feadc88c7166aa82a9872"],"rows":32,"blocks":128,"q_strides":[1024,256,2],"pooled_strides":[131,1],"q_count":32767,"pooled_count":16765,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l3_bf1_tf1","sha256":["38d52a175bcb4f3ebc8365a53ad5aa64a8d409374706122cbf52dd19b8558e90"],"rows":32,"blocks":128,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":16601,"pooled_count":32767,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l3_bf0_tf1","sha256":["4cbebf508090b411cfba063e8a9c4fb996931f69538339cc2f5bb3a053f8b92e"],"rows":32,"blocks":128,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":16601,"pooled_count":32767,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l4_bf1_tf1","sha256":["a84ceafd0246f11711cc4c0e7c7fd60ee220a1dfb52fa8fb943f58b4fd87f836"],"rows":32,"blocks":128,"q_strides":[128,4096,1],"pooled_strides":[128,1],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l4_bf0_tf1","sha256":["cb6922d00d582ff82b338732bed478d4eb99e20290fafaee006624456a99daa7"],"rows":32,"blocks":128,"q_strides":[128,4096,1],"pooled_strides":[128,1],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l5_bf1_tf1","sha256":["da4d8eb315b214dc24eb876eb5b2cbe54e6491b1c83f0ef38885b2e58cb81e76"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[131,1],"q_count":16384,"pooled_count":16765,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l5_bf0_tf1","sha256":["d160902394ee54d95654965d53f5d1ceae3bb5a6568df6d63b9cdea8dbe68f4f"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[131,1],"q_count":16384,"pooled_count":16765,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l6_bf1_tf1","sha256":["e08493cc875a3f9cbbb932bdd3af0b0a5f020752a009436e9d836e091e031790"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[256,2],"q_count":16384,"pooled_count":32767,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l6_bf0_tf1","sha256":["149356ae48ec0608df746f62003193b14431bb9e30ad3de2a70feaec8440bcd4"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[256,2],"q_count":16384,"pooled_count":32767,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l7_bf1_tf1","sha256":["ddbd86f96c15a3c12fdca5bb6504c825adfeec7fa28e08cb47e67dcafff9e1a2"],"rows":32,"blocks":128,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16384,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r32_n128_l7_bf0_tf1","sha256":["b8a32febda186997e89b4be1a1812db964470bca9f0207d2c315cf1b47a1d6bf"],"rows":32,"blocks":128,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16384,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l0_bf1_tf1","sha256":["0c8b98512f1cb26f538a253b255cc16f85c47094e68f65b30a4f8352b239ed29"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l0_bf0_tf1","sha256":["15a27029ceac364ef6f8df55213d6943768f6ac0b867ee6286d673f717450065"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l1_bf1_tf1","sha256":["18ad1514458644977fb097c1b01a5779724c31c024a9ea973c684be173b9675f"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l1_bf0_tf1","sha256":["1db0a2266490f03f22feda08541f2d32ffacaf603233e67fb0868cd67f97a30e"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l2_bf1_tf1","sha256":["9f12dbb0c61e0989472a3bc80379edde859e28d8c7a3d5e3b1e01eab63a0846e"],"rows":33,"blocks":129,"q_strides":[1024,256,2],"pooled_strides":[132,1],"q_count":33791,"pooled_count":16893,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l2_bf0_tf1","sha256":["04bf1ec9cecf2558973f4fe86ec242eb864ba96f020129f86eacae0f8d521281"],"rows":33,"blocks":129,"q_strides":[1024,256,2],"pooled_strides":[132,1],"q_count":33791,"pooled_count":16893,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l3_bf1_tf1","sha256":["7716d4011e408bb3c22edeec39d661e2e288f7bd6cc42733b4fe71516bbf5488"],"rows":33,"blocks":129,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":17120,"pooled_count":33023,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l3_bf0_tf1","sha256":["dec580072609a1107bd49283bbf268ce7365866d0b37a563dfc1d1dc86d0c951"],"rows":33,"blocks":129,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":17120,"pooled_count":33023,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l4_bf1_tf1","sha256":["fafe5ad7138f9d16b77c50982ae58700ac8c57db0789ee5b037781b7ac058819"],"rows":33,"blocks":129,"q_strides":[128,4224,1],"pooled_strides":[129,1],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l4_bf0_tf1","sha256":["28032385050dc134c48d0268957bca1911f9da12ac428ac9c7cb5247df37cb9e"],"rows":33,"blocks":129,"q_strides":[128,4224,1],"pooled_strides":[129,1],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l5_bf1_tf1","sha256":["6cc2e9f2f429a2b415f4a27982717e4da3e0c35eba9baebee0e8ca9d11d9e30f"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[132,1],"q_count":16896,"pooled_count":16893,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l5_bf0_tf1","sha256":["01f0a2c5b8fb630c90c5900ad616fc603e12b89b0fdcdf8968e0774a14903cff"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[132,1],"q_count":16896,"pooled_count":16893,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l6_bf1_tf1","sha256":["e37ab987b90438ebd99e96649b3825153229b0f27f7cf41970606f6d59f23ede"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[258,2],"q_count":16896,"pooled_count":33023,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l6_bf0_tf1","sha256":["1307dcddce5ffc98806a000c9f0cbe112cc42bf8ca6e705f10b1bb46ec2505cd"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[258,2],"q_count":16896,"pooled_count":33023,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l7_bf1_tf1","sha256":["6297fc1b7acd578f076024cdcb9f3bb6dbd32f7382c74ff2ecf157e1bc550fe6"],"rows":33,"blocks":129,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16512,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r33_n129_l7_bf0_tf1","sha256":["0925de834a425d1fc240c21bf46af7a3407f9de863a276cd8024a87b2b14bf35"],"rows":33,"blocks":129,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16512,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l0_bf1_tf1","sha256":["7721c86ed2aa1b4a94ea5a0a954563f89ac1d4e6ede8693987437b1d2c43293c"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l0_bf0_tf1","sha256":["b49e08f5b3d39405ad2a90b609580b57519b8f7ac121dfd8aacce11b2c822e42"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l1_bf1_tf1","sha256":["d7c33d12baf1621d6d78d081e479718f388b05c8caa62bd3548034e7ac6f06d1"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l1_bf0_tf1","sha256":["406450d3c7d1d9caa1af7b2f31602ae5e9b71e3b166cd429d677623b9d32494e"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l2_bf1_tf1","sha256":["dd0ffb5094a83ca0575aff78b7198c606965c7580325e20b4ffec098fd2d075f"],"rows":65,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":66559,"pooled_count":66045,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l2_bf0_tf1","sha256":["911289c47666e728bd65b9a42ef4e7b33eb6895b46a9630d6d4989beddfdf23c"],"rows":65,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":66559,"pooled_count":66045,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l3_bf1_tf1","sha256":["b4679140779623f451fc1c82177e960b7e4e1d5a0fca3c276dd98fc175459885"],"rows":65,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":33728,"pooled_count":131327,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l3_bf0_tf1","sha256":["3658ba72d71c54bbded8b9c020eae0e1ce2395b61fed870fd964eb1053b28e25"],"rows":65,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":33728,"pooled_count":131327,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l4_bf1_tf1","sha256":["acfc075c873ece01372b21a865c16b340c20539c65360c89a3635d1d96d5921c"],"rows":65,"blocks":513,"q_strides":[128,8320,1],"pooled_strides":[513,1],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l4_bf0_tf1","sha256":["c3d660605e06e37730947f202e88c6985c102dab71bcfc10783be3a41df8c49d"],"rows":65,"blocks":513,"q_strides":[128,8320,1],"pooled_strides":[513,1],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l5_bf1_tf1","sha256":["0d8ec9ab018c67f198d9c36d27708bfc6ff46ebf41caa691c200582b0930ee9c"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":33280,"pooled_count":66045,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l5_bf0_tf1","sha256":["1981c8136cdd004b1c6ac6cc03c32e375f7b73a6607a4514986a9f8f78e7e22e"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":33280,"pooled_count":66045,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l6_bf1_tf1","sha256":["fb9ef51d16ca27cb5852aa100fd7c20998a9de27ae4afed45bc7013dcf59c7c4"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":33280,"pooled_count":131327,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l6_bf0_tf1","sha256":["351b43af6a6d251c5ed3c14a97ea53d081b66e934d1e5cd14adcbcc1f62fd778"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":33280,"pooled_count":131327,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l7_bf1_tf1","sha256":["f2f6febdc1fe4779076f7a44be2d94ae0eccd1b93592ff8d53beaa659b3ce518"],"rows":65,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r65_n513_l7_bf0_tf1","sha256":["e50760243c279e41569c90c30154feb1a6f6ab4f77d945cd40eabd559af728cf"],"rows":65,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l0_bf1_tf1","sha256":["5cc127a0cc952407fb69166a5dcc9345d57237f0bf7beb52f51a84b422ed2e4b"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l0_bf0_tf1","sha256":["5d1eb10c10e50b8c52a929f264ef738126d785ee0e42217c6c2ad98ca0858dca"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l1_bf1_tf1","sha256":["96aaafe1afd398758f720626f8163e59728a636518289fe3c870478584f813e3"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l1_bf0_tf1","sha256":["fdb19e1a5d642e25859f91d0c8fc32f3a7da19c49810b5139449a181ffe89957"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l2_bf1_tf1","sha256":["bb3d7c4d0f02037afd6293e95b8b8b3ca35ff6145f9911c35b85af49c8f0501f"],"rows":2048,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":2097151,"pooled_count":66045,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l2_bf0_tf1","sha256":["d2ec8c66c11e767a6cbd63b3bf23071f0020f91c545db23c7c9d2575320eec09"],"rows":2048,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":2097151,"pooled_count":66045,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l3_bf1_tf1","sha256":["5d20e78de3ab94c1f95b695c6ae4ddbeaca2ee79c004d5db890206210513ecbb"],"rows":2048,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1062905,"pooled_count":131327,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l3_bf0_tf1","sha256":["e381cad065127369ee6781ccf422d5bfc45cec7655f40c1053badb24617e5c3b"],"rows":2048,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1062905,"pooled_count":131327,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l4_bf1_tf1","sha256":["5b19be0d605ca82db0ff157d3e3e278d19a9b703a120789867dd8a1b19611ed6"],"rows":2048,"blocks":513,"q_strides":[128,262144,1],"pooled_strides":[513,1],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l4_bf0_tf1","sha256":["5588eba0c7eb7d09a2a7c5d5baf4c18f77e784b982c0d9e14cee01ce4dacfa32"],"rows":2048,"blocks":513,"q_strides":[128,262144,1],"pooled_strides":[513,1],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l5_bf1_tf1","sha256":["adc18f0a6012bb52c6c2dfa069f5fdc46fdf43b5332a9e3106c1b2d0ca6c64a7"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":1048576,"pooled_count":66045,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l5_bf0_tf1","sha256":["2cd89b02fe04863a2d8183e5264a7800d2701b3d5f68e097ac5ec785a784c57b"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":1048576,"pooled_count":66045,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l6_bf1_tf1","sha256":["a1e840f302772844e8200317dc90cca66fc7cda2211f46fea5d034fbb62d4cf0"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":1048576,"pooled_count":131327,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l6_bf0_tf1","sha256":["171783d07ae47766e7536aea17a65e1003a03ce5790634d7de58dc1f0bce6d8c"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":1048576,"pooled_count":131327,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l7_bf1_tf1","sha256":["f8e46119b12e3e33bce8ca33be704d68caf49384f985f9aaddcbef0784d8d60a"],"rows":2048,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":true,"tf32":true} +{"kernel":"qsa_f32_score_r2048_n513_l7_bf0_tf1","sha256":["656b8c52c808659b755cf7c841b2983dab4de77b43ca0e573e5eddbb81fb032b"],"rows":2048,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":false,"tf32":true} +{"kernel":"qsa_f32_score_r1_n1_l0_bf1_tf0","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l0_bf0_tf0","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l1_bf1_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l1_bf0_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l2_bf1_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":1023,"pooled_count":509,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l2_bf0_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":1023,"pooled_count":509,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l3_bf1_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":255,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l3_bf0_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":255,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l4_bf1_tf0","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[128,128,1],"pooled_strides":[1,1],"q_count":512,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l4_bf0_tf0","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[128,128,1],"pooled_strides":[1,1],"q_count":512,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l5_bf1_tf0","sha256":["4b3af76a5680c10c2ee9d72e540555ed4c41a301ac7439d47df07eecf0aa06d2"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":512,"pooled_count":509,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l5_bf0_tf0","sha256":["0a0bb4e8d2989338a056d1f018af31f5e1e7667f71c577aa3baa074bb94aed9e"],"rows":1,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":512,"pooled_count":509,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l6_bf1_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":512,"pooled_count":255,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l6_bf0_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":512,"pooled_count":255,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l7_bf1_tf0","sha256":["0e92977315c036061083bff6e4f2e439210a5a92936a92985e0888612a56da0e"],"rows":1,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n1_l7_bf0_tf0","sha256":["a844b473bcce42e2528312748ed6f44e8166832a7366e0b5ba3e7cd4ee72e24c"],"rows":1,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l0_bf1_tf0","sha256":["0941c905368da9ef8153121d72ccd38098f23e68000f4a65275139f6c7a9f2c3"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l0_bf0_tf0","sha256":["f8ce78e4b371c208da8f5c38524cfeeeb1d215a0086cac316c0063efa3970889"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l1_bf1_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l1_bf0_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l2_bf1_tf0","sha256":["4fcde07fb51b72837999eb95117eddff95a09dac8e4890ca99828f59e7185493"],"rows":2,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":2047,"pooled_count":509,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l2_bf0_tf0","sha256":["b8f1375f4cd8db38f7c2d89f0f90dfe46b1450020971f6327fb49e0910bdcef6"],"rows":2,"blocks":1,"q_strides":[1024,256,2],"pooled_strides":[4,1],"q_count":2047,"pooled_count":509,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l3_bf1_tf0","sha256":["c91b2f4d2ccfed72681c5a3bde51f517f6d734083123abb1bf72e151f0806690"],"rows":2,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1031,"pooled_count":255,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l3_bf0_tf0","sha256":["03c17433cc63893965d5857bba6e672ff9b53fc95c71620cce349cd0bdcf3ad5"],"rows":2,"blocks":1,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1031,"pooled_count":255,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l4_bf1_tf0","sha256":["c6a5f002155899927a2c0d98d679e18daeb44b3cd43336d02c428eb2d3d7361d"],"rows":2,"blocks":1,"q_strides":[128,256,1],"pooled_strides":[1,1],"q_count":1024,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l4_bf0_tf0","sha256":["e7cff825863bcd333258b7d094c1fc7a1bf415401b58181c50f1f4896af9cb45"],"rows":2,"blocks":1,"q_strides":[128,256,1],"pooled_strides":[1,1],"q_count":1024,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l5_bf1_tf0","sha256":["10fd79e56921a1949a4277c8028677506651bc7c40e5e6a5943c10ca497a67a8"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":1024,"pooled_count":509,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l5_bf0_tf0","sha256":["d0c311b8c7b18ff78f3c8865f3fc22e1370a5540fbc98bec7eda56e9922220d2"],"rows":2,"blocks":1,"q_strides":[512,1,4],"pooled_strides":[4,1],"q_count":1024,"pooled_count":509,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l6_bf1_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":1024,"pooled_count":255,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l6_bf0_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"rows":2,"blocks":1,"q_strides":[512,128,1],"pooled_strides":[2,2],"q_count":1024,"pooled_count":255,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l7_bf1_tf0","sha256":["14960242e7be6ec0c818c7a06fdb31b010b4e733c48dfe3b7c741d36e24f735f"],"rows":2,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2_n1_l7_bf0_tf0","sha256":["71687f1948fd86e5b8fc122c9f235baa56b6b4afbdd0bd828adb895b855b68cd"],"rows":2,"blocks":1,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":128,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l0_bf1_tf0","sha256":["462ac28c1a63e8d61fad54346b251986a1b96d5eeeb8fbad8829f2603962b978"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l0_bf0_tf0","sha256":["c2d1565035b5d9c6947220724c0baac462a0612847ae4d1683de9dfd698e4f47"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l1_bf1_tf0","sha256":["9c76db67ef546ad38f56d9c18f0c1bdf886ed10c15c09a627b1d30c59828fce8"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l1_bf0_tf0","sha256":["aec2006f2f93674732a674f38a6057b390723a6cb6b2f09cc9086e4fadc09b4a"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l2_bf1_tf0","sha256":["882764ba5ad23e89d000f187be5678771f7a9b8ebfd5f05cffc19fdb4832d65d"],"rows":4,"blocks":7,"q_strides":[1024,256,2],"pooled_strides":[10,1],"q_count":4095,"pooled_count":1277,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l2_bf0_tf0","sha256":["b4b279983c70f32b8b7de9e62276609717ca907c0ebddf5e4ce4ceeda66a2254"],"rows":4,"blocks":7,"q_strides":[1024,256,2],"pooled_strides":[10,1],"q_count":4095,"pooled_count":1277,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l3_bf1_tf0","sha256":["7bc15b3572152925c37e2b65660737de8e2aa46ffe7cafbbd2addbdcb0d6bcec"],"rows":4,"blocks":7,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":1791,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l3_bf0_tf0","sha256":["3cd9cb2d61f6bbccca9273f966d5f7bcb64f50876f41fdffb31a5fdf5cfa500a"],"rows":4,"blocks":7,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":1791,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l4_bf1_tf0","sha256":["91105e1365e4ee0d9985a38b9464842ecc725e49e36cced78352cae467a30e32"],"rows":4,"blocks":7,"q_strides":[128,512,1],"pooled_strides":[7,1],"q_count":2048,"pooled_count":896,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l4_bf0_tf0","sha256":["3a81de338759aa6ee436cb290ebb3c1102987efb2668681a7a04a50691632e42"],"rows":4,"blocks":7,"q_strides":[128,512,1],"pooled_strides":[7,1],"q_count":2048,"pooled_count":896,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l5_bf1_tf0","sha256":["8d09d2b41e9b350cdaff873966abf058108646934c245417ce6d2122979943e4"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[10,1],"q_count":2048,"pooled_count":1277,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l5_bf0_tf0","sha256":["a1231b5095fe4bdf4b9d504f955ac4a4b92f36964afd2e88ad755b44632e1ec0"],"rows":4,"blocks":7,"q_strides":[512,1,4],"pooled_strides":[10,1],"q_count":2048,"pooled_count":1277,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l6_bf1_tf0","sha256":["3d2343b30a1c0fbea7af09340b4e61b5a4125c709ca9a0b0c57fa77d900ec445"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[14,2],"q_count":2048,"pooled_count":1791,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l6_bf0_tf0","sha256":["a614f67cc76dd22427d8ef9ea8a542c3ad0665f05133a3eb36120692d80f2cc1"],"rows":4,"blocks":7,"q_strides":[512,128,1],"pooled_strides":[14,2],"q_count":2048,"pooled_count":1791,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l7_bf1_tf0","sha256":["73c63b5c9d67e7df3201a55b47123565d280705762adc23f66c9a1461f35a320"],"rows":4,"blocks":7,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":896,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n7_l7_bf0_tf0","sha256":["5c7147440e68349181a0c19022d43745c2c9dfd5940a4358bb95d1bf4c37269a"],"rows":4,"blocks":7,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":896,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l0_bf1_tf0","sha256":["e00e3475e659755afd751b7252c8d71810c1f2e51f4323f2bf6482a2b814e786"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l0_bf0_tf0","sha256":["2de59e2e6bfc91310a02b2a78ec0d7bfa67ca066768bc81e5d6bd15d3d634a9b"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l1_bf1_tf0","sha256":["4a1d6e6de25ef621b7e442db0fd965c85ebbb60130086d82c5135bad5b360c24"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l1_bf0_tf0","sha256":["566f0911c14abd055b390ab088c8965ca7245c5167aa604b9d1917a0950c5d01"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l2_bf1_tf0","sha256":["a4d8d286efc68fcbfccebda631e99738ae6aecba7217435b5e2b1b7d2590a69f"],"rows":1,"blocks":16,"q_strides":[1024,256,2],"pooled_strides":[19,1],"q_count":1023,"pooled_count":2429,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l2_bf0_tf0","sha256":["5325109b704de100579ce6bee1548dff3f7abeeeec6e9f0ee74e41b8f8cf475a"],"rows":1,"blocks":16,"q_strides":[1024,256,2],"pooled_strides":[19,1],"q_count":1023,"pooled_count":2429,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l3_bf1_tf0","sha256":["a50a9adec72cb935229b1d60c0637c19d0a951efe14afd4b6326fb99e6618e40"],"rows":1,"blocks":16,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":4095,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l3_bf0_tf0","sha256":["560d487ea73083a37888ff19c3764e81b0eca4d02e644f32a2e7918cfc547353"],"rows":1,"blocks":16,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":512,"pooled_count":4095,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l4_bf1_tf0","sha256":["cfaa7b28e37f168f095975b69cb216526080a3dfe90c002d5dbeb433a1ab4bbb"],"rows":1,"blocks":16,"q_strides":[128,128,1],"pooled_strides":[16,1],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l4_bf0_tf0","sha256":["87c56307082347be86d8a59521343fcd612d9e59a27042ddc0a4fa913cd423a0"],"rows":1,"blocks":16,"q_strides":[128,128,1],"pooled_strides":[16,1],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l5_bf1_tf0","sha256":["88192d0e9de891a7a40df273b08d54c36bf0b2c8f77e13b7929195e058f33707"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[19,1],"q_count":512,"pooled_count":2429,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l5_bf0_tf0","sha256":["f61af2cc6cd6c3f28e15fd4ed4c1f293efe86a966b2628e731aa08f0e4dc95cc"],"rows":1,"blocks":16,"q_strides":[512,1,4],"pooled_strides":[19,1],"q_count":512,"pooled_count":2429,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l6_bf1_tf0","sha256":["ca817683616fc962ac47f677469361608873d9304803ae6105656a1d2732e527"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[32,2],"q_count":512,"pooled_count":4095,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l6_bf0_tf0","sha256":["563dcd21a3a62ef407e135de4f01ab6ba1f8d62105958d5c8e8e2da384a537c0"],"rows":1,"blocks":16,"q_strides":[512,128,1],"pooled_strides":[32,2],"q_count":512,"pooled_count":4095,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l7_bf1_tf0","sha256":["e00e3475e659755afd751b7252c8d71810c1f2e51f4323f2bf6482a2b814e786"],"rows":1,"blocks":16,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r1_n16_l7_bf0_tf0","sha256":["2de59e2e6bfc91310a02b2a78ec0d7bfa67ca066768bc81e5d6bd15d3d634a9b"],"rows":1,"blocks":16,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":2048,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l0_bf1_tf0","sha256":["530dfea398971c0c0333f4685ebece9a932f80821b5bb9316098d26fc5ad5def"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l0_bf0_tf0","sha256":["f0d4d8435e454b280e3defb89f0a3e18ea1cb59945303c2c75d30d18c966f28f"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l1_bf1_tf0","sha256":["b61d97a6116178ebec61148e46d53a006bd3560ebfbda4dd8c52f552629d0405"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l1_bf0_tf0","sha256":["0355820132f066976a1cb33a66d5fb808c49ab34b41da5d82de07f3871876f0e"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l2_bf1_tf0","sha256":["daee9d11b4947584b08583d2e8bd310340a400b2ce9d0c38bd59b2cc97a0b1c0"],"rows":4,"blocks":32,"q_strides":[1024,256,2],"pooled_strides":[35,1],"q_count":4095,"pooled_count":4477,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l2_bf0_tf0","sha256":["97492f3d5114a9553cc78df912edce8cbb06a838a16b2a7435102f9c9088d4b5"],"rows":4,"blocks":32,"q_strides":[1024,256,2],"pooled_strides":[35,1],"q_count":4095,"pooled_count":4477,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l3_bf1_tf0","sha256":["edd2793b56f945df1e0bc3447b1c52f0c7e87955fca16303b922e0f2d5d086eb"],"rows":4,"blocks":32,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":8191,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l3_bf0_tf0","sha256":["363df9384055d0297a9601b7812ea0248be944fb1834142af69836ebcd3c3fc1"],"rows":4,"blocks":32,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":2069,"pooled_count":8191,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l4_bf1_tf0","sha256":["f93153228ace7479c3759b2d8c57b867e4b9a1345eaf7041041023c3d424c522"],"rows":4,"blocks":32,"q_strides":[128,512,1],"pooled_strides":[32,1],"q_count":2048,"pooled_count":4096,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l4_bf0_tf0","sha256":["e2743c02586b3af01c4b8c60900d1efe4f926603ddb0cd8ad914086321f5bd25"],"rows":4,"blocks":32,"q_strides":[128,512,1],"pooled_strides":[32,1],"q_count":2048,"pooled_count":4096,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l5_bf1_tf0","sha256":["06cc1a241c3deb2fe0f1ca7dfb518b76f9be78bb731412e5fe75c975f4a9fa51"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[35,1],"q_count":2048,"pooled_count":4477,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l5_bf0_tf0","sha256":["06c03fe56a6c89401f772508b3d6ad468542e299dc318ba38037ae109c7fc468"],"rows":4,"blocks":32,"q_strides":[512,1,4],"pooled_strides":[35,1],"q_count":2048,"pooled_count":4477,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l6_bf1_tf0","sha256":["6e780c396a05af25cda03c689fbae84daab1e61bc366aa7dcddbc59eae0f3c9c"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[64,2],"q_count":2048,"pooled_count":8191,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l6_bf0_tf0","sha256":["7c1db7446f2c73d5718c763f2499be1fc2ddd57e6f82ef384f90703a4fefbe54"],"rows":4,"blocks":32,"q_strides":[512,128,1],"pooled_strides":[64,2],"q_count":2048,"pooled_count":8191,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l7_bf1_tf0","sha256":["1f888f371708f7fabd7b15db89b2cc557741b9c4ae3707f3919970d96d257a3e"],"rows":4,"blocks":32,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":4096,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r4_n32_l7_bf0_tf0","sha256":["7d5124d4db0e7db177cfb22d7ff56ceadbe3653f5c62a5ad7fe20af8bb71150c"],"rows":4,"blocks":32,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":4096,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l0_bf1_tf0","sha256":["8f044ec0d659c38d25bef501af2a5befea78c8b4a0d3b7a636a30f2f1caefed9"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l0_bf0_tf0","sha256":["fe0cacbe5c273cfe70213666c584b154a81e977d823bb5b23120f81d0445b2b8"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l1_bf1_tf0","sha256":["df02bdd11e222c6c222e3d813005c98b2d3e58602b8c23e958ee9f286360eaef"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l1_bf0_tf0","sha256":["354121b775ea467653ca69f5d60c5ff4ba1b22883313febfa21c56352c9576be"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l2_bf1_tf0","sha256":["46ecb4f5368945f2027c5d9c9ccfc2385584c023c6dec36faf5fbb962412b908"],"rows":10,"blocks":40,"q_strides":[1024,256,2],"pooled_strides":[43,1],"q_count":10239,"pooled_count":5501,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l2_bf0_tf0","sha256":["3faec3463bfd3e5498ac1b3814532a5ca9fa6cb4abfcc51c2e15631df92fb45e"],"rows":10,"blocks":40,"q_strides":[1024,256,2],"pooled_strides":[43,1],"q_count":10239,"pooled_count":5501,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l3_bf1_tf0","sha256":["8a79bb43ef037f16ceff43bcae83e04c0d4f1134e8e03e7a4f3c9ce157e7138b"],"rows":10,"blocks":40,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":5183,"pooled_count":10239,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l3_bf0_tf0","sha256":["16ad6d3a3fbfa6ba39270e57ba51803bc73d9f7609bc10e1aaa165a5250278e6"],"rows":10,"blocks":40,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":5183,"pooled_count":10239,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l4_bf1_tf0","sha256":["d004a7e5f760712f1c5b8ac531332273854221fab673d9fb786936c010dcfc6c"],"rows":10,"blocks":40,"q_strides":[128,1280,1],"pooled_strides":[40,1],"q_count":5120,"pooled_count":5120,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l4_bf0_tf0","sha256":["b338becd6106a9472652e4eb9c7aff68ef7e766e45cc9c867947e05b3c372f61"],"rows":10,"blocks":40,"q_strides":[128,1280,1],"pooled_strides":[40,1],"q_count":5120,"pooled_count":5120,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l5_bf1_tf0","sha256":["0878619a6b55c2350492890ad15fc809da559221d45fd122d787b6e6a04731d0"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[43,1],"q_count":5120,"pooled_count":5501,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l5_bf0_tf0","sha256":["f47b0cb2888eed4bf7a5d1825b3d57e1179d413f0c7e3e7f8c94e29f924f16be"],"rows":10,"blocks":40,"q_strides":[512,1,4],"pooled_strides":[43,1],"q_count":5120,"pooled_count":5501,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l6_bf1_tf0","sha256":["00ec7f98050db95e3971f5f6f7c99ae649fbc3d0001c46b8ccd07fcf6ec921bb"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[80,2],"q_count":5120,"pooled_count":10239,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l6_bf0_tf0","sha256":["1efe81354c4be632afd1504c956cb0faaf40bee77985f05d397fd7d384339844"],"rows":10,"blocks":40,"q_strides":[512,128,1],"pooled_strides":[80,2],"q_count":5120,"pooled_count":10239,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l7_bf1_tf0","sha256":["5b8230465ca9075b81a82a51a4796231261701aafe1fab0c01e8c5921f8dc422"],"rows":10,"blocks":40,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":5120,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r10_n40_l7_bf0_tf0","sha256":["295b7d3b44a737e833d86da72d7d796d12c509ffbcb0e75e5c1b3186d6a8724f"],"rows":10,"blocks":40,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":5120,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l0_bf1_tf0","sha256":["171383f38d06379d5b84b87331df9990b9d9eefaa34f0bc3c3f01ff27fca7fa2"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l0_bf0_tf0","sha256":["c50efbc86efd238530875efcad8cde18325995a75b2bd63ed50f9b0d10c687a1"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l1_bf1_tf0","sha256":["c6182aee281aeafb824e908cc73d7994d82c07ca3422ba129350ba9ae45b6ee3"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l1_bf0_tf0","sha256":["f8a2b8ef0ee4589243eaa12e38cf1b89971e9ea586eef8e1cddf07b8dbd9ba16"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l2_bf1_tf0","sha256":["cbde0b6a22dd83fabd7fcae56efa5d5019d4779c9a869ec51ad997381703a123"],"rows":16,"blocks":63,"q_strides":[1024,256,2],"pooled_strides":[66,1],"q_count":16383,"pooled_count":8445,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l2_bf0_tf0","sha256":["d6874bf2caf5f8684d2b5a199fb79440088f5fa7be52130dbe7db758244bfbb2"],"rows":16,"blocks":63,"q_strides":[1024,256,2],"pooled_strides":[66,1],"q_count":16383,"pooled_count":8445,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l3_bf1_tf0","sha256":["4893a507c1a6f24fae8700f1940736258eb77870c142e1e16138a9e2aa00bb5d"],"rows":16,"blocks":63,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16127,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l3_bf0_tf0","sha256":["d4433f6e33704bd2624dcf99d7bcc5285ebfab911c209cdf5d50760c7bfce191"],"rows":16,"blocks":63,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16127,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l4_bf1_tf0","sha256":["6c3cb818d39addcd8c36e93ebe1b9c70f74cfe36ab4518ff84cee09a030f67b2"],"rows":16,"blocks":63,"q_strides":[128,2048,1],"pooled_strides":[63,1],"q_count":8192,"pooled_count":8064,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l4_bf0_tf0","sha256":["325d910b379051c30d060013674a43d1ff890bd693818d1943fe66494b5b838a"],"rows":16,"blocks":63,"q_strides":[128,2048,1],"pooled_strides":[63,1],"q_count":8192,"pooled_count":8064,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l5_bf1_tf0","sha256":["f777fa25677ebee0ab9afdcfadc5a75259b4fdc1558925461efee9fbfbc3ae9b"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[66,1],"q_count":8192,"pooled_count":8445,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l5_bf0_tf0","sha256":["8654414c9134c34c61c3f634b2dde30284f48d96165cd54ff86989df698380bc"],"rows":16,"blocks":63,"q_strides":[512,1,4],"pooled_strides":[66,1],"q_count":8192,"pooled_count":8445,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l6_bf1_tf0","sha256":["329c2e182f8ba30be87ed97ab81755a6efdcc9a5f3591f7c1c31ba76e330b7dd"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[126,2],"q_count":8192,"pooled_count":16127,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l6_bf0_tf0","sha256":["71fb1991648e141ee265e3a3764b8fbd34120c9a12882e90d191afb2042d56de"],"rows":16,"blocks":63,"q_strides":[512,128,1],"pooled_strides":[126,2],"q_count":8192,"pooled_count":16127,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l7_bf1_tf0","sha256":["d369b2bebe58af884448c877136248dd9338ededc39839477217315af507719d"],"rows":16,"blocks":63,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8064,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n63_l7_bf0_tf0","sha256":["3782b14e3023f1d2fa78ca16842af93ed9ec08e25b7fef9b351e123d94a20d3c"],"rows":16,"blocks":63,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8064,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l0_bf1_tf0","sha256":["01167a89e00912164c3a882ae8d2430ab31b179df6fab4da30cb9a613f04b386"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l0_bf0_tf0","sha256":["e27803f7675aa347c69a7ae6486f8376a68c8c2da54980741b6ebe4bfb7a814d"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l1_bf1_tf0","sha256":["03857f9fc16203d23cc86c6e94c4482aae8fa5558a0b4f9c56bd2ab410791df3"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l1_bf0_tf0","sha256":["7a2927fbe9dce2b90b9cd127bca695eadcb40580cabb9ff24b263eb47c3e6f68"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l2_bf1_tf0","sha256":["15b51ccfdad8a57411016cf7819b6685d5be2250603fc98e761e5143dae73b61"],"rows":16,"blocks":64,"q_strides":[1024,256,2],"pooled_strides":[67,1],"q_count":16383,"pooled_count":8573,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l2_bf0_tf0","sha256":["01d6a58da730c15128fd57b5722688d095530c38617b72891616718ba5381993"],"rows":16,"blocks":64,"q_strides":[1024,256,2],"pooled_strides":[67,1],"q_count":16383,"pooled_count":8573,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l3_bf1_tf0","sha256":["1cc618697cd72430f2bc5e1d7a0e4e9a04dc3dcccbd441836af34b17337606f9"],"rows":16,"blocks":64,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16383,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l3_bf0_tf0","sha256":["e043a330e902ff03f8ae43c21e869e912a9ba17b46fce3a787db2a54bcfaa4f8"],"rows":16,"blocks":64,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":8297,"pooled_count":16383,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l4_bf1_tf0","sha256":["9f82d4d88d948780a3bd3f606929019488366d5d53320026899f46c7ac8d4918"],"rows":16,"blocks":64,"q_strides":[128,2048,1],"pooled_strides":[64,1],"q_count":8192,"pooled_count":8192,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l4_bf0_tf0","sha256":["7a6c52793331d84fb00452e2f6779f6ea5fd403a0b23d9cecc90bc5f061203dd"],"rows":16,"blocks":64,"q_strides":[128,2048,1],"pooled_strides":[64,1],"q_count":8192,"pooled_count":8192,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l5_bf1_tf0","sha256":["63adbadaf6024aab80aa5037d30181b0803efd42a98df4436ab3a2ea1d8c525e"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[67,1],"q_count":8192,"pooled_count":8573,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l5_bf0_tf0","sha256":["4b30239b9317b1a6fff9153d5c20bfdc53e53c0362199f7408e5e353cd9e1667"],"rows":16,"blocks":64,"q_strides":[512,1,4],"pooled_strides":[67,1],"q_count":8192,"pooled_count":8573,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l6_bf1_tf0","sha256":["7bf6db250718e71d858822a32c0d653ae2f36a41bb0e2b2587add5b53bbde3e6"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[128,2],"q_count":8192,"pooled_count":16383,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l6_bf0_tf0","sha256":["e42de5333ce005ab4ff45b9860553bce6ee40e8490dbc2f0cd0a6651af188fa2"],"rows":16,"blocks":64,"q_strides":[512,128,1],"pooled_strides":[128,2],"q_count":8192,"pooled_count":16383,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l7_bf1_tf0","sha256":["2f88097f144935719cd1be4d9fd64c9dab119c0bf190485d3cad756dc591fff2"],"rows":16,"blocks":64,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8192,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r16_n64_l7_bf0_tf0","sha256":["49a06f97a00450ecdeac9959d8406cc546b82de68eef1072840eb6e5901ef718"],"rows":16,"blocks":64,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":8192,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l0_bf1_tf0","sha256":["d128fc83f2ef1fcca8cec2498823d38ab3bec17c96c37047de17548816fd01f2"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l0_bf0_tf0","sha256":["3658ec1cce63e9135a0b85dc889ba3c731b222c078c3bc5d4606c4d050148789"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l1_bf1_tf0","sha256":["2b8d56b7bd71ebc28668cb844fab8c03c853945d9698a7dbc104b127fe33b4eb"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l1_bf0_tf0","sha256":["2f2da097a981862ff5bae53c99b33734dea9def60440997de7b130f20733f239"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l2_bf1_tf0","sha256":["9e22b90adf9c603db2ad40f5aabf9c209de9856768d882d2860aee05087fa952"],"rows":32,"blocks":128,"q_strides":[1024,256,2],"pooled_strides":[131,1],"q_count":32767,"pooled_count":16765,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l2_bf0_tf0","sha256":["d9309ea5df1e50668641988249e89091169ee170795001fcd5e58a236f9b984e"],"rows":32,"blocks":128,"q_strides":[1024,256,2],"pooled_strides":[131,1],"q_count":32767,"pooled_count":16765,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l3_bf1_tf0","sha256":["4ab1dfc967b4d1ae70f93183b4a606499df6c2c2db8a7e68d84423e2cdea765f"],"rows":32,"blocks":128,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":16601,"pooled_count":32767,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l3_bf0_tf0","sha256":["43305ddcb86c6221731ae98f0be13b292396b903c72f9dc2496c0b6a1686f9e0"],"rows":32,"blocks":128,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":16601,"pooled_count":32767,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l4_bf1_tf0","sha256":["bc211ffdf1f4bb64c5b31a871362cc7462308484fa63651ce52b7f45e729450f"],"rows":32,"blocks":128,"q_strides":[128,4096,1],"pooled_strides":[128,1],"q_count":16384,"pooled_count":16384,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l4_bf0_tf0","sha256":["afd14532da6a41f106e59bb31f17fe7bf13320d50ee75b16a023a7bc9ea14a51"],"rows":32,"blocks":128,"q_strides":[128,4096,1],"pooled_strides":[128,1],"q_count":16384,"pooled_count":16384,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l5_bf1_tf0","sha256":["b2ed03ed777a503587d716d935d479a883155eca728d6aaa379a3bf2463af03b"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[131,1],"q_count":16384,"pooled_count":16765,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l5_bf0_tf0","sha256":["cc4d4d6024a6dad0cf1a07d9c8f824bcc89619e2d6743fc822050cf5864cf91d"],"rows":32,"blocks":128,"q_strides":[512,1,4],"pooled_strides":[131,1],"q_count":16384,"pooled_count":16765,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l6_bf1_tf0","sha256":["f9cdfb5171eb7bfa5dee0add61f5bc7a56af28c32b7534775cd9dab604c13e8e"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[256,2],"q_count":16384,"pooled_count":32767,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l6_bf0_tf0","sha256":["f4f34d714e7403c0bb82f80b6f511f146f9909a3af08ab3aa21a71ca6e118cc5"],"rows":32,"blocks":128,"q_strides":[512,128,1],"pooled_strides":[256,2],"q_count":16384,"pooled_count":32767,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l7_bf1_tf0","sha256":["125af3dd45f6c43db45d1a672d9c20225f204695bed4b4689565e0f6d1e8861f"],"rows":32,"blocks":128,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16384,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r32_n128_l7_bf0_tf0","sha256":["15e755cfd0f15f598ca4d78e43794fd4380112d55122ea004fac2ea9edfefbb4"],"rows":32,"blocks":128,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16384,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l0_bf1_tf0","sha256":["0bf9f55735621fbf0157950fc10111763a02aceeb3434f913f57c202ddf4784c"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l0_bf0_tf0","sha256":["55fffc95678dd1bb93b4730b8cbb3a69f0aa6e928c93102347d08945580c9458"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l1_bf1_tf0","sha256":["576c536dd7690ed3e030dd3c9815e139660339497465ed2851b5a08a79ea2cf7"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l1_bf0_tf0","sha256":["8e4d57b8eb38704d8983a3d73e766f8af0644403c072fe76cefcbfa2e4e87b4b"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l2_bf1_tf0","sha256":["2e64bd8f3da3b44a9b2eb24d953fdff76b3db69a7a680d0c12a3e1af926da716"],"rows":33,"blocks":129,"q_strides":[1024,256,2],"pooled_strides":[132,1],"q_count":33791,"pooled_count":16893,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l2_bf0_tf0","sha256":["cf446c07a98b29fad4ecc4c68ea8f34c6493bb7ffd5baa6fac3b4ab4c4585261"],"rows":33,"blocks":129,"q_strides":[1024,256,2],"pooled_strides":[132,1],"q_count":33791,"pooled_count":16893,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l3_bf1_tf0","sha256":["cbaaf252f2463c7d08e9c098605ad55663f597ebdd9eb2cdcf5eefd22114291a"],"rows":33,"blocks":129,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":17120,"pooled_count":33023,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l3_bf0_tf0","sha256":["0a9a6a3931fcd245eca90a1e15285e83ab891b2d99938599b5420ff6a88bd22e"],"rows":33,"blocks":129,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":17120,"pooled_count":33023,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l4_bf1_tf0","sha256":["ab18d70a8297a96fd727115bfca0200f290f9db2591deb8782770a6ad09a10fd"],"rows":33,"blocks":129,"q_strides":[128,4224,1],"pooled_strides":[129,1],"q_count":16896,"pooled_count":16512,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l4_bf0_tf0","sha256":["dfb572e2efbd1cfe729013c109b50daa8631defe8e900253a551e2099987d7fb"],"rows":33,"blocks":129,"q_strides":[128,4224,1],"pooled_strides":[129,1],"q_count":16896,"pooled_count":16512,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l5_bf1_tf0","sha256":["f84b8723b3601461c8de13c368162fb849559f748a9e2e2aa57d0561dc66102d"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[132,1],"q_count":16896,"pooled_count":16893,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l5_bf0_tf0","sha256":["389a0e827c0679046f3d6d1a50b89ca8a7f9da0e2f345f75acd66345c76b2990"],"rows":33,"blocks":129,"q_strides":[512,1,4],"pooled_strides":[132,1],"q_count":16896,"pooled_count":16893,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l6_bf1_tf0","sha256":["c70ff01ea0fb819bf9fd40a49892330d6f718f07ba6ec69553bd460ab27cd00f"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[258,2],"q_count":16896,"pooled_count":33023,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l6_bf0_tf0","sha256":["493f0958a7a26717e3525ea186685a162ecd21fd16d4b25f1ff276521ea2cfe6"],"rows":33,"blocks":129,"q_strides":[512,128,1],"pooled_strides":[258,2],"q_count":16896,"pooled_count":33023,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l7_bf1_tf0","sha256":["b51b08ae223d92aaf5e84d158fc55ba511cffe863ffede5f60e7abab4f044dba"],"rows":33,"blocks":129,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16512,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r33_n129_l7_bf0_tf0","sha256":["5aaf95be61de2115cdef833cf0c2198a134438f559c58c5bcbd147f09617cff7"],"rows":33,"blocks":129,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":16512,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l0_bf1_tf0","sha256":["2c38b370a496ada591f52e5785bde6f2d8511dc0634712e7c08d5165eb5f6047"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l0_bf0_tf0","sha256":["83a0959f9b6ba325d548671c248ba201d6c85d37be293216efed341680812b2f"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l1_bf1_tf0","sha256":["a5dab8edfd061f2cd093418cea59e380844e46fb6932561f063d7baeaebb3ed7"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l1_bf0_tf0","sha256":["223b80e3f292eac1955a2b15e0774ebfca779eeb4924e3a39c22348c3617b0c2"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l2_bf1_tf0","sha256":["295e9ac46d169211dc87f59a37c09124435a278bcb8a9c9543821ed8e5570e6c"],"rows":65,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":66559,"pooled_count":66045,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l2_bf0_tf0","sha256":["088747ca8a635a85781bccd36a1d0c291cfa28222a63131611e248dc8fae2a23"],"rows":65,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":66559,"pooled_count":66045,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l3_bf1_tf0","sha256":["0aef8a47c268cbe8d0b9ac2ddd027c46bf220f01d4a154d31c25731f045ebe4b"],"rows":65,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":33728,"pooled_count":131327,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l3_bf0_tf0","sha256":["8a3b1848216e3179d08ba48c11455b7a135c38beac85e314ef83ce7f299383d6"],"rows":65,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":33728,"pooled_count":131327,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l4_bf1_tf0","sha256":["abe551827cfa48bf5d98b1dd6f13910d727b6cfc600635090570700d66151817"],"rows":65,"blocks":513,"q_strides":[128,8320,1],"pooled_strides":[513,1],"q_count":33280,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l4_bf0_tf0","sha256":["61b08b994cc8a04a8e8476687dac63833e25d8a00cb42e2073284577a463e481"],"rows":65,"blocks":513,"q_strides":[128,8320,1],"pooled_strides":[513,1],"q_count":33280,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l5_bf1_tf0","sha256":["a0f179dead9ba34997822c4fa55494ae76bf0985053a99514c8e9fe6f6f3e99d"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":33280,"pooled_count":66045,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l5_bf0_tf0","sha256":["3d785d388f0b1d6ecba97bfe27a7e2e0662c676adff7a1829bc47116236994f4"],"rows":65,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":33280,"pooled_count":66045,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l6_bf1_tf0","sha256":["76fb5fc114ae6b435ac241d28dc375b0afeac392dd447f8a44bcde31e8675c7c"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":33280,"pooled_count":131327,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l6_bf0_tf0","sha256":["374cf838c38ecab16e9194d74a8d80f184cfff81313bada84556dd7dd28f6658"],"rows":65,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":33280,"pooled_count":131327,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l7_bf1_tf0","sha256":["419622455d3725123066e8aa364fa77c0ecca707b7a324e6a8fb35353810b7aa"],"rows":65,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r65_n513_l7_bf0_tf0","sha256":["c5ea4a543118363ec44c160d22ac3021c3b3df0418e3b84392f2e6f5c62f053c"],"rows":65,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l0_bf1_tf0","sha256":["7a77e4521fc024c7d0cc3e92f9c380fdb35395d2cecb94fab3ef994ee04757e3"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l0_bf0_tf0","sha256":["acdfdab94e6481ae5ff3a1d954c9c280b5d76e8ec94147c261f07eef648714f1"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l1_bf1_tf0","sha256":["ee09322f06d75e547edb8579eb80cfc80be133f002ad2fa1171453b162bb3c8f"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l1_bf0_tf0","sha256":["87213b3ef304b9190dac71c79450c7f4e93785c9899d1074be42d2fa9aff7f6f"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[1,128],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l2_bf1_tf0","sha256":["5702dcdc1b171b18e58031b77328dc00ecbe1f2e98f0d82900e9cf780f5d0039"],"rows":2048,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":2097151,"pooled_count":66045,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l2_bf0_tf0","sha256":["b542eb39496e9f791d2013f7b0f1e981bf90cadc3e689410aaa0749b4004d384"],"rows":2048,"blocks":513,"q_strides":[1024,256,2],"pooled_strides":[516,1],"q_count":2097151,"pooled_count":66045,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l3_bf1_tf0","sha256":["5b83c367f96451bec917612597eca19194a62663b647010097ba518425810cfa"],"rows":2048,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1062905,"pooled_count":131327,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l3_bf0_tf0","sha256":["ccdf7559338b07da791f9acc08e48977a5bf11e7de94adbd6eb923d73c956963"],"rows":2048,"blocks":513,"q_strides":[519,128,1],"pooled_strides":[2,256],"q_count":1062905,"pooled_count":131327,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l4_bf1_tf0","sha256":["1b4ef81c5cb01129ad9fbda741f42535ca9414f50f110312019cfb929be45fd9"],"rows":2048,"blocks":513,"q_strides":[128,262144,1],"pooled_strides":[513,1],"q_count":1048576,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l4_bf0_tf0","sha256":["5399dd551fb9ecb88fcc7d111aeb99612f5303eef5715e407a693415963aa511"],"rows":2048,"blocks":513,"q_strides":[128,262144,1],"pooled_strides":[513,1],"q_count":1048576,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l5_bf1_tf0","sha256":["8915a6edc7933650948437871c42da1086ae117d1a47087fced25491ee556ef7"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":1048576,"pooled_count":66045,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l5_bf0_tf0","sha256":["004410bd96ed9ad798fdc685d5e980eae4ae28c9c7d18e139695301e01434f60"],"rows":2048,"blocks":513,"q_strides":[512,1,4],"pooled_strides":[516,1],"q_count":1048576,"pooled_count":66045,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l6_bf1_tf0","sha256":["6f3d683ea62fc7354225ea03e86f7e5e892888211e576c6a74211501dcb00d47"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":1048576,"pooled_count":131327,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l6_bf0_tf0","sha256":["0e5e4338009ac9334d2fe83da5df451f5bc5bd1125d89b78509746385d4eb79c"],"rows":2048,"blocks":513,"q_strides":[512,128,1],"pooled_strides":[1026,2],"q_count":1048576,"pooled_count":131327,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l7_bf1_tf0","sha256":["6547755c1aa4f422a32b1e2d56aa41a9fbc6f7903b3bff0c42630893fac5aae0"],"rows":2048,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":true,"tf32":false} +{"kernel":"qsa_f32_score_r2048_n513_l7_bf0_tf0","sha256":["0427160a987277837a2b84c8b79eca8298f90a49fa029769ab725e17eaf0a0b4"],"rows":2048,"blocks":513,"q_strides":[0,128,1],"pooled_strides":[1,128],"q_count":512,"pooled_count":65664,"bf16":false,"tf32":false} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf1_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf1_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf1_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf1_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf1_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf1_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf1_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf1_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf1_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf1_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf1_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf1_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf1_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf1_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf1_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf1_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf1_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf1_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf1_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf1_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf1_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf1_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf1_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf1_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":true,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf1_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf1_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf1_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf1_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf1_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf1_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf1_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf1_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf1_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf1_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf1_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf1_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf1_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf1_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf1_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf1_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf1_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf1_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf1_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf1_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf1_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf1_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf1_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf1_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":true,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf0_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf0_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f00_tf0_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf0_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf0_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f01_tf0_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf0_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf0_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f10_tf0_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf0_blocks","sha256":["163e178f44d7a9eb06d7dd9e81b3951cabb2d9fc0575d131a4be72f3ea066ff6","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","624cd84edd8f165e4e303af715adc6b1b33db6ce769bef3be6f9d5120093c9fa"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf0_dense_mask","sha256":["ed3da631dc2c951a002dac6f17bc2242317184c11266e7790219fcf6be7428bf"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds1_f11_tf0_row_tokens","sha256":["57452cc166378a6abe5acb7a8d658c157278fdc0709e30358f44e46eb4d99847","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":1,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf0_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf0_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f00_tf0_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,false],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf0_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf0_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f01_tf0_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[false,true],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf0_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf0_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f10_tf0_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,false],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf0_blocks","sha256":["c20372c7aa1baad44039d965d44dd6449d9585e9da89bbbf99dc9db1aaee5783","7768ed8ef879b259416266a51a7ab6671664d9dc88b5bddd5516867710943c84","c5b3461e484535456f68108aea6f1a4adc1ffaabf340cd57d83937598d5ebcf1"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf0_dense_mask","sha256":["bb9155e67f36d23de81d6ea87c10721da1742f696ce405f66298a4e2138d16b8"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r7_ds2_f11_tf0_row_tokens","sha256":["95e80da11ba7dbce3c18430cf725d136b8c4b9f3ccafb759c1ee9d103037b780","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"ds":2,"input_f32":[true,true],"tf32":false,"total":2053,"budget":30780,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf0_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf0_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f00_tf0_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf0_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf0_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f01_tf0_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf0_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf0_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f10_tf0_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf0_blocks","sha256":["239f20d5ac6ad14c0ff2fdadb13ba453e2109794e13473a6d1d03046ea3d3462","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","75a93af5bae792917b23f3a1ce4b64fd9e32c694183ec8ca3d68e0c2fdfa52ca"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf0_dense_mask","sha256":["b75b2eae6186e15e3290e87d96e09bf96d363156cec91418c431300f91a4e13c"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds1_f11_tf0_row_tokens","sha256":["7dec53527eab043ad2ae0c4f67f8717d6a211bb2dada52cf99c10e5ce2afd0fe","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":1,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf0_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf0_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f00_tf0_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,false],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf0_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf0_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f01_tf0_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[false,true],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf0_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf0_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f10_tf0_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,false],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf0_blocks","sha256":["2dddb83262da5a3cbebe6e73e48aa5007fa4e1db965fc467f602a58e26b4866b","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","636745c4fa9c21f4bce9818aefc6640d6aa33cb4ec5eb315d502d7fbf828f77c"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"blocks"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf0_dense_mask","sha256":["ed067e870641114954b6a88d8a4fde5f094d03fd4bfb1bcad41d1cbdc7b8df95"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"dense_mask"} +{"kernel":"qsa_f32_chain_r65_ds2_f11_tf0_row_tokens","sha256":["f17f171e04e6150243264e88f350a9b4137dc3b7dd3bf32544eb7f9f2782077c","be1ac19c24d2c03f52b7ca78ab337024e22b393aac69aa1ed0cbf318ce240597"],"rows":65,"blocks":600,"ds":2,"input_f32":[true,true],"tf32":false,"total":2401,"budget":576000,"mode":"row_tokens"} +{"kernel":"qsa_eager_topk_r1_n1_v0_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","e8c68648b8a59803a9f057d4dd28efc3ef04cb53ec2d5be103764fc251732fea"],"rows":1,"blocks":1,"variant":0,"total":7,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n1_v1_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"variant":1,"total":7,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n1_v2_tf1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","e8c68648b8a59803a9f057d4dd28efc3ef04cb53ec2d5be103764fc251732fea"],"rows":1,"blocks":1,"variant":2,"total":7,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n7_v0_tf1","sha256":["20c5b52026324e2cfc836ea519e34eb3ee6a4e6aae6c4bb6421e8e9715cd9911","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","8209b6ce4f59de56b089bbc0ad2c20f373f1b254661fadfdc4845ea5413952c9"],"rows":4,"blocks":7,"variant":0,"total":31,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n7_v1_tf1","sha256":["229e2ab21aba3f24a4cd60da746f1f213b6bdd712daa6e209c693c48f669ae53","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","95230db374df677805154531b2ef29b886d9560a8cdccd8358468c08bc078885"],"rows":4,"blocks":7,"variant":1,"total":31,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n7_v2_tf1","sha256":["20c5b52026324e2cfc836ea519e34eb3ee6a4e6aae6c4bb6421e8e9715cd9911","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","8209b6ce4f59de56b089bbc0ad2c20f373f1b254661fadfdc4845ea5413952c9"],"rows":4,"blocks":7,"variant":2,"total":31,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n513_v0_tf1","sha256":["62f58eb1f4d3f89bad29c0e5f22737549c4a2b7f332e2b13e0c6f3464916cf6f","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","eb67ea48092e6726b50066dc97f16225239ece77c1134f1283904f8a02d35e71"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n513_v1_tf1","sha256":["3696a0a68ec24270294e37ba32cfe0b1e5f6929608a71588fb0f1662ae387064","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","e04f389d809d7ea91baf776d85afea3d685d62ed033fad17651d8e4061179629"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n513_v2_tf1","sha256":["62f58eb1f4d3f89bad29c0e5f22737549c4a2b7f332e2b13e0c6f3464916cf6f","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","eb67ea48092e6726b50066dc97f16225239ece77c1134f1283904f8a02d35e71"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n513_v0_tf1","sha256":["1e3b5a50fcfe3d3492158dd9e7fd5bd6ca14a81389bd8e5c6053ce11dd57c904","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","27f3f525fdaf7a5690085b1b20f41ee17a97133a77c3dc44b5beaf5c23b1c64c"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n513_v1_tf1","sha256":["f6e3a90c8626bbefd21998f37483f2813f0a46a320e5201a32a1c719c04425b2","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","4e12121f380143e6fa6ae4f376b755eb8de504ada2eb4337995c68cc5664ca8d"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r4_n513_v2_tf1","sha256":["1e3b5a50fcfe3d3492158dd9e7fd5bd6ca14a81389bd8e5c6053ce11dd57c904","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","27f3f525fdaf7a5690085b1b20f41ee17a97133a77c3dc44b5beaf5c23b1c64c"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r7_n600_v0_tf1","sha256":["6aff5de21bba1436c1a80d898d2c7ec048987b7d4ed23764ed038001489d08a1","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","047a47d5c3d90cd07d090f22e71c4fd11212db5b47fccab682f78fc39e32dc05"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":true} +{"kernel":"qsa_eager_topk_r7_n600_v1_tf1","sha256":["6a285a9077d93de075659ee2779213f3625bdcbee0de191947ca68b3a1dc21de","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","644a9465ec60ce65f6968203e2d5b329c9e7d2977dc98e89ba477c65a3835290"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":true} +{"kernel":"qsa_eager_topk_r7_n600_v2_tf1","sha256":["6aff5de21bba1436c1a80d898d2c7ec048987b7d4ed23764ed038001489d08a1","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","047a47d5c3d90cd07d090f22e71c4fd11212db5b47fccab682f78fc39e32dc05"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":true} +{"kernel":"qsa_eager_topk_r33_n2049_v0_tf1","sha256":["994e52ff2ab167db5f89e5a5e7e7a187caf52ba6ed884b28d85e9ea39f94d7f5","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","45f3b4cdb2a3cb421a392e799077f7709b3849d2e156e457f9d55c4fc3443af2"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":true} +{"kernel":"qsa_eager_topk_r33_n2049_v1_tf1","sha256":["a139fe2b511a6a3cde808d9b7fcca153889c27d1fe263fdc022e5c3c5c26aa3c","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","edbc9659aea2777c12f2d09ab77af03a15c3a4706e014d47d3b23c56b4686afb"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":true} +{"kernel":"qsa_eager_topk_r33_n2049_v2_tf1","sha256":["994e52ff2ab167db5f89e5a5e7e7a187caf52ba6ed884b28d85e9ea39f94d7f5","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","45f3b4cdb2a3cb421a392e799077f7709b3849d2e156e457f9d55c4fc3443af2"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":true} +{"kernel":"qsa_eager_topk_r65_n513_v0_tf1","sha256":["43860374508becb08c4e75d78569e6a8d38fd45a835ea11ff6e0a29ce644ac50","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","50db203fe2c4e09cd28bfa45632801f277ddba5a5be470805eedd4849bb20031"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r65_n513_v1_tf1","sha256":["4121b49ce1b7681f1ca7ac98294e0b10a126915c81abd5788d9a2b34ab8c8639","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","6cc1dea5ea61402805e881581b626b4e40ed1ee07bb7d96ea9f310535857d75d"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r65_n513_v2_tf1","sha256":["43860374508becb08c4e75d78569e6a8d38fd45a835ea11ff6e0a29ce644ac50","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","50db203fe2c4e09cd28bfa45632801f277ddba5a5be470805eedd4849bb20031"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n513_v0_tf1","sha256":["0f0aad7a7ae009a28c7f6c57f58fe1f93a212a76581e974bef2f976757c434d8","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","40dd05051a1f93c0fc652d288f45f8cd4fa53850c7d91f324de9e87076cc86ea"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n513_v1_tf1","sha256":["13390cee93a1036127f1ea3d810051a9a3cc920055953f7e1f31e9440be427a6","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","2ea9833ce154a5a46c9e27992a7727d3ddbfb5e27885bae199a19ab9d299bbaf"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n513_v2_tf1","sha256":["0f0aad7a7ae009a28c7f6c57f58fe1f93a212a76581e974bef2f976757c434d8","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","40dd05051a1f93c0fc652d288f45f8cd4fa53850c7d91f324de9e87076cc86ea"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n65536_v0_tf1","sha256":["916cffd9e341e6c2940870f0104e4e1347d74077a09c9062799874a0a88a757a","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","1518e94c6b375a4234064bb781bbae72cc3355adc3154bb415302711e3ff3b19"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n65536_v1_tf1","sha256":["3696a0a68ec24270294e37ba32cfe0b1e5f6929608a71588fb0f1662ae387064","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","4b9faa630782f1e4e0ac766d129af3cce75ca52514a130687e4a47e597c4f99c"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n65536_v2_tf1","sha256":["916cffd9e341e6c2940870f0104e4e1347d74077a09c9062799874a0a88a757a","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","1518e94c6b375a4234064bb781bbae72cc3355adc3154bb415302711e3ff3b19"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":true} +{"kernel":"qsa_eager_topk_r1_n1_v0_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","e8c68648b8a59803a9f057d4dd28efc3ef04cb53ec2d5be103764fc251732fea"],"rows":1,"blocks":1,"variant":0,"total":7,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n1_v1_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"rows":1,"blocks":1,"variant":1,"total":7,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n1_v2_tf0","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","e8c68648b8a59803a9f057d4dd28efc3ef04cb53ec2d5be103764fc251732fea"],"rows":1,"blocks":1,"variant":2,"total":7,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n7_v0_tf0","sha256":["20c5b52026324e2cfc836ea519e34eb3ee6a4e6aae6c4bb6421e8e9715cd9911","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","8209b6ce4f59de56b089bbc0ad2c20f373f1b254661fadfdc4845ea5413952c9"],"rows":4,"blocks":7,"variant":0,"total":31,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n7_v1_tf0","sha256":["229e2ab21aba3f24a4cd60da746f1f213b6bdd712daa6e209c693c48f669ae53","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","95230db374df677805154531b2ef29b886d9560a8cdccd8358468c08bc078885"],"rows":4,"blocks":7,"variant":1,"total":31,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n7_v2_tf0","sha256":["20c5b52026324e2cfc836ea519e34eb3ee6a4e6aae6c4bb6421e8e9715cd9911","43469ce897d6b6e412109b858a9f4f6b8d0d91d6fd5292950ec2ddbdba6a8902","8209b6ce4f59de56b089bbc0ad2c20f373f1b254661fadfdc4845ea5413952c9"],"rows":4,"blocks":7,"variant":2,"total":31,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n513_v0_tf0","sha256":["62f58eb1f4d3f89bad29c0e5f22737549c4a2b7f332e2b13e0c6f3464916cf6f","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","eb67ea48092e6726b50066dc97f16225239ece77c1134f1283904f8a02d35e71"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n513_v1_tf0","sha256":["3696a0a68ec24270294e37ba32cfe0b1e5f6929608a71588fb0f1662ae387064","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","e04f389d809d7ea91baf776d85afea3d685d62ed033fad17651d8e4061179629"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n513_v2_tf0","sha256":["62f58eb1f4d3f89bad29c0e5f22737549c4a2b7f332e2b13e0c6f3464916cf6f","8f796cf4fd464415e8fcdeb49d6bbb2b58d533dd56f063fc290a40c0d3a17715","eb67ea48092e6726b50066dc97f16225239ece77c1134f1283904f8a02d35e71"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n513_v0_tf0","sha256":["1e3b5a50fcfe3d3492158dd9e7fd5bd6ca14a81389bd8e5c6053ce11dd57c904","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","27f3f525fdaf7a5690085b1b20f41ee17a97133a77c3dc44b5beaf5c23b1c64c"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n513_v1_tf0","sha256":["f6e3a90c8626bbefd21998f37483f2813f0a46a320e5201a32a1c719c04425b2","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","4e12121f380143e6fa6ae4f376b755eb8de504ada2eb4337995c68cc5664ca8d"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r4_n513_v2_tf0","sha256":["1e3b5a50fcfe3d3492158dd9e7fd5bd6ca14a81389bd8e5c6053ce11dd57c904","c89ee75a37bcc3b91db76ecb15508e5e9bd96a987b8d1516ed1decd4c4cf5b3f","27f3f525fdaf7a5690085b1b20f41ee17a97133a77c3dc44b5beaf5c23b1c64c"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r7_n600_v0_tf0","sha256":["6aff5de21bba1436c1a80d898d2c7ec048987b7d4ed23764ed038001489d08a1","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","047a47d5c3d90cd07d090f22e71c4fd11212db5b47fccab682f78fc39e32dc05"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":false} +{"kernel":"qsa_eager_topk_r7_n600_v1_tf0","sha256":["6a285a9077d93de075659ee2779213f3625bdcbee0de191947ca68b3a1dc21de","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","644a9465ec60ce65f6968203e2d5b329c9e7d2977dc98e89ba477c65a3835290"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":false} +{"kernel":"qsa_eager_topk_r7_n600_v2_tf0","sha256":["6aff5de21bba1436c1a80d898d2c7ec048987b7d4ed23764ed038001489d08a1","53f3d129bce90492699645c7e1ffd6a5a05127ecbf8e8657fda4b6cf0e2cb0dd","047a47d5c3d90cd07d090f22e71c4fd11212db5b47fccab682f78fc39e32dc05"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":false} +{"kernel":"qsa_eager_topk_r33_n2049_v0_tf0","sha256":["994e52ff2ab167db5f89e5a5e7e7a187caf52ba6ed884b28d85e9ea39f94d7f5","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","45f3b4cdb2a3cb421a392e799077f7709b3849d2e156e457f9d55c4fc3443af2"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":false} +{"kernel":"qsa_eager_topk_r33_n2049_v1_tf0","sha256":["a139fe2b511a6a3cde808d9b7fcca153889c27d1fe263fdc022e5c3c5c26aa3c","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","edbc9659aea2777c12f2d09ab77af03a15c3a4706e014d47d3b23c56b4686afb"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":false} +{"kernel":"qsa_eager_topk_r33_n2049_v2_tf0","sha256":["994e52ff2ab167db5f89e5a5e7e7a187caf52ba6ed884b28d85e9ea39f94d7f5","6b6bc69014101e3eadc9285efe5be840fa0db845a045a9c6941a04decf57a904","45f3b4cdb2a3cb421a392e799077f7709b3849d2e156e457f9d55c4fc3443af2"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":false} +{"kernel":"qsa_eager_topk_r65_n513_v0_tf0","sha256":["43860374508becb08c4e75d78569e6a8d38fd45a835ea11ff6e0a29ce644ac50","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","50db203fe2c4e09cd28bfa45632801f277ddba5a5be470805eedd4849bb20031"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r65_n513_v1_tf0","sha256":["4121b49ce1b7681f1ca7ac98294e0b10a126915c81abd5788d9a2b34ab8c8639","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","6cc1dea5ea61402805e881581b626b4e40ed1ee07bb7d96ea9f310535857d75d"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r65_n513_v2_tf0","sha256":["43860374508becb08c4e75d78569e6a8d38fd45a835ea11ff6e0a29ce644ac50","5abee74e62bc3f8fef8ca973aa1c5724e43007e5411982a2bc03e68937de7cad","50db203fe2c4e09cd28bfa45632801f277ddba5a5be470805eedd4849bb20031"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n513_v0_tf0","sha256":["0f0aad7a7ae009a28c7f6c57f58fe1f93a212a76581e974bef2f976757c434d8","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","40dd05051a1f93c0fc652d288f45f8cd4fa53850c7d91f324de9e87076cc86ea"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n513_v1_tf0","sha256":["13390cee93a1036127f1ea3d810051a9a3cc920055953f7e1f31e9440be427a6","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","2ea9833ce154a5a46c9e27992a7727d3ddbfb5e27885bae199a19ab9d299bbaf"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n513_v2_tf0","sha256":["0f0aad7a7ae009a28c7f6c57f58fe1f93a212a76581e974bef2f976757c434d8","abd65b8890f560e4159c43ca94e4667ef03f663dd7c811d01112fc43ffef3b1f","40dd05051a1f93c0fc652d288f45f8cd4fa53850c7d91f324de9e87076cc86ea"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n65536_v0_tf0","sha256":["916cffd9e341e6c2940870f0104e4e1347d74077a09c9062799874a0a88a757a","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","1518e94c6b375a4234064bb781bbae72cc3355adc3154bb415302711e3ff3b19"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n65536_v1_tf0","sha256":["3696a0a68ec24270294e37ba32cfe0b1e5f6929608a71588fb0f1662ae387064","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","4b9faa630782f1e4e0ac766d129af3cce75ca52514a130687e4a47e597c4f99c"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":false} +{"kernel":"qsa_eager_topk_r1_n65536_v2_tf0","sha256":["916cffd9e341e6c2940870f0104e4e1347d74077a09c9062799874a0a88a757a","17faa485f5409354c6aed458c8cc8dfad1922c98532b3e0349c26f9349388261","1518e94c6b375a4234064bb781bbae72cc3355adc3154bb415302711e3ff3b19"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":false} +{"kernel":"qsa_eager_blocks_r4_n513_v0_tf1","sha256":["5b8ee52ff170d0a5a3ce413823120e280dfd9085c7049f0e2f778313aa273d38","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_blocks_r4_n513_v1_tf1","sha256":["8a2f5fbe65e6d54c4ba0d88de312c363945cab74baf4e25ed2148f16edc77e80","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_blocks_r4_n513_v2_tf1","sha256":["5b8ee52ff170d0a5a3ce413823120e280dfd9085c7049f0e2f778313aa273d38","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_blocks_r7_n600_v0_tf1","sha256":["e0aef54eba95d3c21b856edac32fa58e4658b0e4f6a9bfbf1311cca06bf9f1e3","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":true} +{"kernel":"qsa_eager_blocks_r7_n600_v1_tf1","sha256":["4d3350dfac67fbb75e8c24242dfb9b2e6fd99084aa1c3bf6ea67d48f4288d92c","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":true} +{"kernel":"qsa_eager_blocks_r7_n600_v2_tf1","sha256":["e0aef54eba95d3c21b856edac32fa58e4658b0e4f6a9bfbf1311cca06bf9f1e3","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":true} +{"kernel":"qsa_eager_blocks_r33_n2049_v0_tf1","sha256":["bebb79a4c64262c4186781fe030ada41c66141801104fafa6511e3e34c783ddf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":true} +{"kernel":"qsa_eager_blocks_r33_n2049_v1_tf1","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":true} +{"kernel":"qsa_eager_blocks_r33_n2049_v2_tf1","sha256":["bebb79a4c64262c4186781fe030ada41c66141801104fafa6511e3e34c783ddf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n1025_v0_tf1","sha256":["34df025beec5cc9da8477a2be4239dcf493bab8b41b766eb4b8fa14ab2ae676c","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","26609a53ace95476daa48930d59a371f1ed25b1482d4551672862bc5cd7adbb1"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":true} +{"kernel":"qsa_eager_blocks_r2048_n1025_v0_tf1","sha256":["c028b8af7dc8144fb603610a3929910e03fe8d98ab22d7c77551c8c1aad71a20","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n1025_v1_tf1","sha256":["13f2bbc69d66d9972eda106c3aa93ee3b797a0b01feb2163131c6baa5ecf3088","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","ca55095493d9952f106807776580dd278c6a00ee2b294459ce540671842c2fe2"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":true} +{"kernel":"qsa_eager_blocks_r2048_n1025_v1_tf1","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":true} +{"kernel":"qsa_eager_topk_r2048_n1025_v2_tf1","sha256":["34df025beec5cc9da8477a2be4239dcf493bab8b41b766eb4b8fa14ab2ae676c","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","26609a53ace95476daa48930d59a371f1ed25b1482d4551672862bc5cd7adbb1"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":true} +{"kernel":"qsa_eager_blocks_r2048_n1025_v2_tf1","sha256":["c028b8af7dc8144fb603610a3929910e03fe8d98ab22d7c77551c8c1aad71a20","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":true} +{"kernel":"qsa_eager_blocks_r4_n513_v0_tf0","sha256":["5b8ee52ff170d0a5a3ce413823120e280dfd9085c7049f0e2f778313aa273d38","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_blocks_r4_n513_v1_tf0","sha256":["8a2f5fbe65e6d54c4ba0d88de312c363945cab74baf4e25ed2148f16edc77e80","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_blocks_r4_n513_v2_tf0","sha256":["5b8ee52ff170d0a5a3ce413823120e280dfd9085c7049f0e2f778313aa273d38","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_blocks_r7_n600_v0_tf0","sha256":["e0aef54eba95d3c21b856edac32fa58e4658b0e4f6a9bfbf1311cca06bf9f1e3","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":false} +{"kernel":"qsa_eager_blocks_r7_n600_v1_tf0","sha256":["4d3350dfac67fbb75e8c24242dfb9b2e6fd99084aa1c3bf6ea67d48f4288d92c","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":false} +{"kernel":"qsa_eager_blocks_r7_n600_v2_tf0","sha256":["e0aef54eba95d3c21b856edac32fa58e4658b0e4f6a9bfbf1311cca06bf9f1e3","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":false} +{"kernel":"qsa_eager_blocks_r33_n2049_v0_tf0","sha256":["bebb79a4c64262c4186781fe030ada41c66141801104fafa6511e3e34c783ddf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":false} +{"kernel":"qsa_eager_blocks_r33_n2049_v1_tf0","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":false} +{"kernel":"qsa_eager_blocks_r33_n2049_v2_tf0","sha256":["bebb79a4c64262c4186781fe030ada41c66141801104fafa6511e3e34c783ddf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n1025_v0_tf0","sha256":["34df025beec5cc9da8477a2be4239dcf493bab8b41b766eb4b8fa14ab2ae676c","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","26609a53ace95476daa48930d59a371f1ed25b1482d4551672862bc5cd7adbb1"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":false} +{"kernel":"qsa_eager_blocks_r2048_n1025_v0_tf0","sha256":["c028b8af7dc8144fb603610a3929910e03fe8d98ab22d7c77551c8c1aad71a20","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n1025_v1_tf0","sha256":["13f2bbc69d66d9972eda106c3aa93ee3b797a0b01feb2163131c6baa5ecf3088","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","ca55095493d9952f106807776580dd278c6a00ee2b294459ce540671842c2fe2"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":false} +{"kernel":"qsa_eager_blocks_r2048_n1025_v1_tf0","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":false} +{"kernel":"qsa_eager_topk_r2048_n1025_v2_tf0","sha256":["34df025beec5cc9da8477a2be4239dcf493bab8b41b766eb4b8fa14ab2ae676c","f8dc6ecfef0571bbcd988dc6c4002d330098a9d8d0d8e05ccfbc8aec665580a1","26609a53ace95476daa48930d59a371f1ed25b1482d4551672862bc5cd7adbb1"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":false} +{"kernel":"qsa_eager_blocks_r2048_n1025_v2_tf0","sha256":["c028b8af7dc8144fb603610a3929910e03fe8d98ab22d7c77551c8c1aad71a20","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail0_tf1","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail1_tf1","sha256":["425ce0f2aac30056e4cc88368419bf4e21505fcb81629a62458b92fa9d59b2fe"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail3_tf1","sha256":["3a0333dbe3f5c8e0ff213fadc26e4b7fbb567951306a2bea0780dc35aeb76501"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail0_tf1","sha256":["5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail1_tf1","sha256":["c7fe5b9055e824b4847d2f328e00fa82027bff0efa661ac80091a8f6e5eca4eb"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail3_tf1","sha256":["c01f33e1b1bc0693f0c610b9b0d07352ad643a2900ea75fbc730bc25309ad479"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail0_tf1","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail1_tf1","sha256":["425ce0f2aac30056e4cc88368419bf4e21505fcb81629a62458b92fa9d59b2fe"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail3_tf1","sha256":["3a0333dbe3f5c8e0ff213fadc26e4b7fbb567951306a2bea0780dc35aeb76501"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail0_tf1","sha256":["cc2cb107ff71dbf974fc7f1540433316935edc493e8798b01b53b8d538650d56"],"rows":4,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail1_tf1","sha256":["2247eebb06debd6ff6cdd18cf979810b9ccd910186dd58aa53b4d59f672b0fb2"],"rows":4,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail3_tf1","sha256":["6791f029ed3e0274dd4a3bbc4d5bdbdd2d33fa1eee97da5669c7d04a4350ee38"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail0_tf1","sha256":["ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail1_tf1","sha256":["f5d3a7a6b5b7bbeb5293a2e936489f9e77774c915590d93132b689167987ba22"],"rows":4,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail3_tf1","sha256":["11d666e129c638d322d3666dac7cb05f187988991a493d71856b22d059e57c45"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail0_tf1","sha256":["cc2cb107ff71dbf974fc7f1540433316935edc493e8798b01b53b8d538650d56"],"rows":4,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail1_tf1","sha256":["2247eebb06debd6ff6cdd18cf979810b9ccd910186dd58aa53b4d59f672b0fb2"],"rows":4,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail3_tf1","sha256":["6791f029ed3e0274dd4a3bbc4d5bdbdd2d33fa1eee97da5669c7d04a4350ee38"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail0_tf1","sha256":["ad864d7b371c86d94160070c9d6bbebe7b508b558445a532158c4a7a45ba0023"],"rows":7,"blocks":600,"variant":0,"total":2400,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail1_tf1","sha256":["9232abc4c936be89ad86fae4aa61f0c7b29294d788cf2f8e75caf61ac566a17e"],"rows":7,"blocks":600,"variant":0,"total":2401,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail3_tf1","sha256":["66665d4a5fa33e5ac4e88b8934d29a559f4bd80533907050679475ac99c5d073"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail0_tf1","sha256":["08ee2e85231ecdbe531d229c1d64ce5ef2c7ee40036a62ca50adfd6f8105ddaa"],"rows":7,"blocks":600,"variant":1,"total":2400,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail1_tf1","sha256":["3da27554dc3dc296af232813c9f8b6b89c2d892881cbaf3c794a1451841cd380"],"rows":7,"blocks":600,"variant":1,"total":2401,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail3_tf1","sha256":["65eb68dd2a60cb97d834fd4066de569d6c6de64401fdb81ca2fbace9587edead"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail0_tf1","sha256":["ad864d7b371c86d94160070c9d6bbebe7b508b558445a532158c4a7a45ba0023"],"rows":7,"blocks":600,"variant":2,"total":2400,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail1_tf1","sha256":["9232abc4c936be89ad86fae4aa61f0c7b29294d788cf2f8e75caf61ac566a17e"],"rows":7,"blocks":600,"variant":2,"total":2401,"tf32":true} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail3_tf1","sha256":["66665d4a5fa33e5ac4e88b8934d29a559f4bd80533907050679475ac99c5d073"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail0_tf1","sha256":["a2089cb91d8b38b0ee0ae1ff005c8938c5c3b0da5b19ac685e0b1169e4dc1045"],"rows":33,"blocks":2049,"variant":0,"total":8196,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail1_tf1","sha256":["9e9dfc2ec4bbb01ade69dc35c18438d0d9186fec744062d9859f5289b44142dd"],"rows":33,"blocks":2049,"variant":0,"total":8197,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail3_tf1","sha256":["634c97641297d74477d3509f6b1230a13e6592fbb3e1c9db2a45b39ee2f2d66b"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail0_tf1","sha256":["6a6c8fd3c6cb9ddd5f8d90d5b9c13d0b8690f9142a9dc15db1bf630728514fdb"],"rows":33,"blocks":2049,"variant":1,"total":8196,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail1_tf1","sha256":["ede333c9384c32bd3b97dd30afc7ccba12e6a2d16247c81628dd6f2a11a018d0"],"rows":33,"blocks":2049,"variant":1,"total":8197,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail3_tf1","sha256":["8feb362b72b312179fcf066595e1bd2ead2da2889c353e3a614676273239b0fc"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail0_tf1","sha256":["a2089cb91d8b38b0ee0ae1ff005c8938c5c3b0da5b19ac685e0b1169e4dc1045"],"rows":33,"blocks":2049,"variant":2,"total":8196,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail1_tf1","sha256":["9e9dfc2ec4bbb01ade69dc35c18438d0d9186fec744062d9859f5289b44142dd"],"rows":33,"blocks":2049,"variant":2,"total":8197,"tf32":true} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail3_tf1","sha256":["634c97641297d74477d3509f6b1230a13e6592fbb3e1c9db2a45b39ee2f2d66b"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail0_tf1","sha256":["aadd6e667c569e94df83bff75a63ff14c51f45035c550b89925ad04e7d0ef5d0"],"rows":65,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail1_tf1","sha256":["77385c82f1f4d2278cb40f2915fe154861d5ed992d1b4004c46aa5b654e8b3a2"],"rows":65,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail3_tf1","sha256":["0ceb3140bb37f3e656bf8702ad2eebdd8834708041238d7c99b8f285bcef6dc6"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail0_tf1","sha256":["779e52f82e67d33502f67cc9d17f7d34d54919f483564f08ac0187c0b29e28bc"],"rows":65,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail1_tf1","sha256":["406e77ef7171cf31b7363368c9e5d84fc8ad004157195249fb8c44ac9bb3787f"],"rows":65,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail3_tf1","sha256":["b24e022edc92fe46850e8313c175871732281a4e3c8cbb7f3256dc6c726bc166"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail0_tf1","sha256":["aadd6e667c569e94df83bff75a63ff14c51f45035c550b89925ad04e7d0ef5d0"],"rows":65,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail1_tf1","sha256":["77385c82f1f4d2278cb40f2915fe154861d5ed992d1b4004c46aa5b654e8b3a2"],"rows":65,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail3_tf1","sha256":["0ceb3140bb37f3e656bf8702ad2eebdd8834708041238d7c99b8f285bcef6dc6"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail0_tf1","sha256":["bdb4e82133e31efcdd87103f3228393007fb2161582113b18cebf7d750683909"],"rows":2048,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail1_tf1","sha256":["ae4c75a0aa94fc6111434bc7868830fee5e8331c59e9c4d2fd7275fbc2c9cfaa"],"rows":2048,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail3_tf1","sha256":["9deeba88ef50164f5cc132c07366d288383ba6fec7e4ef613e3db91c6cb8bd4c"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail0_tf1","sha256":["6b5ef4614b1dc5774c1689f5a4a21c6dbc11ae1d4f6a0090b8bf435de1977c7a"],"rows":2048,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail1_tf1","sha256":["274d6056aeabe59dd8b8a2105b8433bd64f9093bc0ec01264db3d3409dffe632"],"rows":2048,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail3_tf1","sha256":["0b66c0b9e531cd06e9ae2b214a968a1d230663f49cb3d961736fea807fcb32be"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail0_tf1","sha256":["bdb4e82133e31efcdd87103f3228393007fb2161582113b18cebf7d750683909"],"rows":2048,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail1_tf1","sha256":["ae4c75a0aa94fc6111434bc7868830fee5e8331c59e9c4d2fd7275fbc2c9cfaa"],"rows":2048,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail3_tf1","sha256":["9deeba88ef50164f5cc132c07366d288383ba6fec7e4ef613e3db91c6cb8bd4c"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail0_tf1","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail1_tf1","sha256":["7bc7d94a04c25d345f76c03c2093e235d19a9489d1992368c16547d8645a33eb"],"rows":2048,"blocks":1025,"variant":0,"total":4101,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail3_tf1","sha256":["1555c34f9829c2ce4b9c21c11731d3bfed572666ce26ca32708b6e58dd56d3c3"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail0_tf1","sha256":["e3e61d6ff360fddca34de61b94d81014f70512e8d0569484bf45c38357fd2f4c"],"rows":2048,"blocks":1025,"variant":1,"total":4100,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail1_tf1","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail3_tf1","sha256":["b0b07e80e12545eb86788ca94bdd85ac69d3ac82bbfea12a635bee2991c2993b"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail0_tf1","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail1_tf1","sha256":["7bc7d94a04c25d345f76c03c2093e235d19a9489d1992368c16547d8645a33eb"],"rows":2048,"blocks":1025,"variant":2,"total":4101,"tf32":true} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail3_tf1","sha256":["1555c34f9829c2ce4b9c21c11731d3bfed572666ce26ca32708b6e58dd56d3c3"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail0_tf1","sha256":["ed7ee2a0fe74a80916e35ec4bc3b5cbedeefeef672b1ad5ce746b2ae9a84aa08"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail1_tf1","sha256":["1b4031d14a00ecc288293c025aa9278f83d30bdd1db017a01fb26a7ba243de8d"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail3_tf1","sha256":["844e25fe7487fbeb854e7d33647b54ea23fbeba3bf918dbb439974cc454dc0c9"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail0_tf1","sha256":["96041f3678ab58e7a18196cf0cfa79f8badae5d1d85ac402ff4b28ba23a4de89"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail1_tf1","sha256":["861dc7e5c8507b6c79d26628129e6221949f048acd09e5afa741adbb50bbdfcc"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail3_tf1","sha256":["1f1c7e3071027c8678effd63f678bab86ac0c324e28caa784c26cc267eae4533"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail0_tf1","sha256":["ed7ee2a0fe74a80916e35ec4bc3b5cbedeefeef672b1ad5ce746b2ae9a84aa08"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail1_tf1","sha256":["1b4031d14a00ecc288293c025aa9278f83d30bdd1db017a01fb26a7ba243de8d"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail3_tf1","sha256":["844e25fe7487fbeb854e7d33647b54ea23fbeba3bf918dbb439974cc454dc0c9"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":true} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail0_tf0","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail1_tf0","sha256":["425ce0f2aac30056e4cc88368419bf4e21505fcb81629a62458b92fa9d59b2fe"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v0_tail3_tf0","sha256":["3a0333dbe3f5c8e0ff213fadc26e4b7fbb567951306a2bea0780dc35aeb76501"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail0_tf0","sha256":["5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail1_tf0","sha256":["c7fe5b9055e824b4847d2f328e00fa82027bff0efa661ac80091a8f6e5eca4eb"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v1_tail3_tf0","sha256":["c01f33e1b1bc0693f0c610b9b0d07352ad643a2900ea75fbc730bc25309ad479"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail0_tf0","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail1_tf0","sha256":["425ce0f2aac30056e4cc88368419bf4e21505fcb81629a62458b92fa9d59b2fe"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n513_v2_tail3_tf0","sha256":["3a0333dbe3f5c8e0ff213fadc26e4b7fbb567951306a2bea0780dc35aeb76501"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail0_tf0","sha256":["cc2cb107ff71dbf974fc7f1540433316935edc493e8798b01b53b8d538650d56"],"rows":4,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail1_tf0","sha256":["2247eebb06debd6ff6cdd18cf979810b9ccd910186dd58aa53b4d59f672b0fb2"],"rows":4,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v0_tail3_tf0","sha256":["6791f029ed3e0274dd4a3bbc4d5bdbdd2d33fa1eee97da5669c7d04a4350ee38"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail0_tf0","sha256":["ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail1_tf0","sha256":["f5d3a7a6b5b7bbeb5293a2e936489f9e77774c915590d93132b689167987ba22"],"rows":4,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v1_tail3_tf0","sha256":["11d666e129c638d322d3666dac7cb05f187988991a493d71856b22d059e57c45"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail0_tf0","sha256":["cc2cb107ff71dbf974fc7f1540433316935edc493e8798b01b53b8d538650d56"],"rows":4,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail1_tf0","sha256":["2247eebb06debd6ff6cdd18cf979810b9ccd910186dd58aa53b4d59f672b0fb2"],"rows":4,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r4_n513_v2_tail3_tf0","sha256":["6791f029ed3e0274dd4a3bbc4d5bdbdd2d33fa1eee97da5669c7d04a4350ee38"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail0_tf0","sha256":["ad864d7b371c86d94160070c9d6bbebe7b508b558445a532158c4a7a45ba0023"],"rows":7,"blocks":600,"variant":0,"total":2400,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail1_tf0","sha256":["9232abc4c936be89ad86fae4aa61f0c7b29294d788cf2f8e75caf61ac566a17e"],"rows":7,"blocks":600,"variant":0,"total":2401,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v0_tail3_tf0","sha256":["66665d4a5fa33e5ac4e88b8934d29a559f4bd80533907050679475ac99c5d073"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail0_tf0","sha256":["08ee2e85231ecdbe531d229c1d64ce5ef2c7ee40036a62ca50adfd6f8105ddaa"],"rows":7,"blocks":600,"variant":1,"total":2400,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail1_tf0","sha256":["3da27554dc3dc296af232813c9f8b6b89c2d892881cbaf3c794a1451841cd380"],"rows":7,"blocks":600,"variant":1,"total":2401,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v1_tail3_tf0","sha256":["65eb68dd2a60cb97d834fd4066de569d6c6de64401fdb81ca2fbace9587edead"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail0_tf0","sha256":["ad864d7b371c86d94160070c9d6bbebe7b508b558445a532158c4a7a45ba0023"],"rows":7,"blocks":600,"variant":2,"total":2400,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail1_tf0","sha256":["9232abc4c936be89ad86fae4aa61f0c7b29294d788cf2f8e75caf61ac566a17e"],"rows":7,"blocks":600,"variant":2,"total":2401,"tf32":false} +{"kernel":"qsa_eager_dense_r7_n600_v2_tail3_tf0","sha256":["66665d4a5fa33e5ac4e88b8934d29a559f4bd80533907050679475ac99c5d073"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail0_tf0","sha256":["a2089cb91d8b38b0ee0ae1ff005c8938c5c3b0da5b19ac685e0b1169e4dc1045"],"rows":33,"blocks":2049,"variant":0,"total":8196,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail1_tf0","sha256":["9e9dfc2ec4bbb01ade69dc35c18438d0d9186fec744062d9859f5289b44142dd"],"rows":33,"blocks":2049,"variant":0,"total":8197,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v0_tail3_tf0","sha256":["634c97641297d74477d3509f6b1230a13e6592fbb3e1c9db2a45b39ee2f2d66b"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail0_tf0","sha256":["6a6c8fd3c6cb9ddd5f8d90d5b9c13d0b8690f9142a9dc15db1bf630728514fdb"],"rows":33,"blocks":2049,"variant":1,"total":8196,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail1_tf0","sha256":["ede333c9384c32bd3b97dd30afc7ccba12e6a2d16247c81628dd6f2a11a018d0"],"rows":33,"blocks":2049,"variant":1,"total":8197,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v1_tail3_tf0","sha256":["8feb362b72b312179fcf066595e1bd2ead2da2889c353e3a614676273239b0fc"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail0_tf0","sha256":["a2089cb91d8b38b0ee0ae1ff005c8938c5c3b0da5b19ac685e0b1169e4dc1045"],"rows":33,"blocks":2049,"variant":2,"total":8196,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail1_tf0","sha256":["9e9dfc2ec4bbb01ade69dc35c18438d0d9186fec744062d9859f5289b44142dd"],"rows":33,"blocks":2049,"variant":2,"total":8197,"tf32":false} +{"kernel":"qsa_eager_dense_r33_n2049_v2_tail3_tf0","sha256":["634c97641297d74477d3509f6b1230a13e6592fbb3e1c9db2a45b39ee2f2d66b"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail0_tf0","sha256":["aadd6e667c569e94df83bff75a63ff14c51f45035c550b89925ad04e7d0ef5d0"],"rows":65,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail1_tf0","sha256":["77385c82f1f4d2278cb40f2915fe154861d5ed992d1b4004c46aa5b654e8b3a2"],"rows":65,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v0_tail3_tf0","sha256":["0ceb3140bb37f3e656bf8702ad2eebdd8834708041238d7c99b8f285bcef6dc6"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail0_tf0","sha256":["779e52f82e67d33502f67cc9d17f7d34d54919f483564f08ac0187c0b29e28bc"],"rows":65,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail1_tf0","sha256":["406e77ef7171cf31b7363368c9e5d84fc8ad004157195249fb8c44ac9bb3787f"],"rows":65,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v1_tail3_tf0","sha256":["b24e022edc92fe46850e8313c175871732281a4e3c8cbb7f3256dc6c726bc166"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail0_tf0","sha256":["aadd6e667c569e94df83bff75a63ff14c51f45035c550b89925ad04e7d0ef5d0"],"rows":65,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail1_tf0","sha256":["77385c82f1f4d2278cb40f2915fe154861d5ed992d1b4004c46aa5b654e8b3a2"],"rows":65,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r65_n513_v2_tail3_tf0","sha256":["0ceb3140bb37f3e656bf8702ad2eebdd8834708041238d7c99b8f285bcef6dc6"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail0_tf0","sha256":["bdb4e82133e31efcdd87103f3228393007fb2161582113b18cebf7d750683909"],"rows":2048,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail1_tf0","sha256":["ae4c75a0aa94fc6111434bc7868830fee5e8331c59e9c4d2fd7275fbc2c9cfaa"],"rows":2048,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v0_tail3_tf0","sha256":["9deeba88ef50164f5cc132c07366d288383ba6fec7e4ef613e3db91c6cb8bd4c"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail0_tf0","sha256":["6b5ef4614b1dc5774c1689f5a4a21c6dbc11ae1d4f6a0090b8bf435de1977c7a"],"rows":2048,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail1_tf0","sha256":["274d6056aeabe59dd8b8a2105b8433bd64f9093bc0ec01264db3d3409dffe632"],"rows":2048,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v1_tail3_tf0","sha256":["0b66c0b9e531cd06e9ae2b214a968a1d230663f49cb3d961736fea807fcb32be"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail0_tf0","sha256":["bdb4e82133e31efcdd87103f3228393007fb2161582113b18cebf7d750683909"],"rows":2048,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail1_tf0","sha256":["ae4c75a0aa94fc6111434bc7868830fee5e8331c59e9c4d2fd7275fbc2c9cfaa"],"rows":2048,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n513_v2_tail3_tf0","sha256":["9deeba88ef50164f5cc132c07366d288383ba6fec7e4ef613e3db91c6cb8bd4c"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail0_tf0","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail1_tf0","sha256":["7bc7d94a04c25d345f76c03c2093e235d19a9489d1992368c16547d8645a33eb"],"rows":2048,"blocks":1025,"variant":0,"total":4101,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v0_tail3_tf0","sha256":["1555c34f9829c2ce4b9c21c11731d3bfed572666ce26ca32708b6e58dd56d3c3"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail0_tf0","sha256":["e3e61d6ff360fddca34de61b94d81014f70512e8d0569484bf45c38357fd2f4c"],"rows":2048,"blocks":1025,"variant":1,"total":4100,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail1_tf0","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v1_tail3_tf0","sha256":["b0b07e80e12545eb86788ca94bdd85ac69d3ac82bbfea12a635bee2991c2993b"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail0_tf0","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail1_tf0","sha256":["7bc7d94a04c25d345f76c03c2093e235d19a9489d1992368c16547d8645a33eb"],"rows":2048,"blocks":1025,"variant":2,"total":4101,"tf32":false} +{"kernel":"qsa_eager_dense_r2048_n1025_v2_tail3_tf0","sha256":["1555c34f9829c2ce4b9c21c11731d3bfed572666ce26ca32708b6e58dd56d3c3"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail0_tf0","sha256":["ed7ee2a0fe74a80916e35ec4bc3b5cbedeefeef672b1ad5ce746b2ae9a84aa08"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail1_tf0","sha256":["1b4031d14a00ecc288293c025aa9278f83d30bdd1db017a01fb26a7ba243de8d"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v0_tail3_tf0","sha256":["844e25fe7487fbeb854e7d33647b54ea23fbeba3bf918dbb439974cc454dc0c9"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail0_tf0","sha256":["96041f3678ab58e7a18196cf0cfa79f8badae5d1d85ac402ff4b28ba23a4de89"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail1_tf0","sha256":["861dc7e5c8507b6c79d26628129e6221949f048acd09e5afa741adbb50bbdfcc"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v1_tail3_tf0","sha256":["1f1c7e3071027c8678effd63f678bab86ac0c324e28caa784c26cc267eae4533"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail0_tf0","sha256":["ed7ee2a0fe74a80916e35ec4bc3b5cbedeefeef672b1ad5ce746b2ae9a84aa08"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail1_tf0","sha256":["1b4031d14a00ecc288293c025aa9278f83d30bdd1db017a01fb26a7ba243de8d"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":false} +{"kernel":"qsa_eager_dense_r1_n65536_v2_tail3_tf0","sha256":["844e25fe7487fbeb854e7d33647b54ea23fbeba3bf918dbb439974cc454dc0c9"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail0_tf1","sha256":["fe2c6ccc6163d01fa51bea68182f8cd49ddf14913e5ccf62edd6f5aac48c2921","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail1_tf1","sha256":["b53ccfcf83280f5e8b9ea2c70b6412ddc3c0625f0e8610af01a825efe53fa1b6","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail3_tf1","sha256":["dbe44edda5ea4b4a78a8b2fcd55546f9a7c3dfbece5d510286732314d82099e9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail0_tf1","sha256":["3f6ffff0a673feedaf721e11bc4e28de92b5db0222e04ad729a4af7d2b88f72d","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail1_tf1","sha256":["19620997a6a9f91d84a6165643f949b5644e549c89807ef8de1d76c0a1c5d2ef","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail3_tf1","sha256":["c58873d068b491058afeff2c8331791f4261ec37d38244fe7979b3465cb7c0ac","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail0_tf1","sha256":["fe2c6ccc6163d01fa51bea68182f8cd49ddf14913e5ccf62edd6f5aac48c2921","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail1_tf1","sha256":["b53ccfcf83280f5e8b9ea2c70b6412ddc3c0625f0e8610af01a825efe53fa1b6","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail3_tf1","sha256":["dbe44edda5ea4b4a78a8b2fcd55546f9a7c3dfbece5d510286732314d82099e9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail0_tf1","sha256":["54c4adf6b1cf4d16704b136bac459c2cdcbd93a4827b95b9f7b0214dfb361dba","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":0,"total":2400,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail1_tf1","sha256":["5415c47cbe4613551eea9c403cc54ed762e9e62f22b9ea03ca4af814d2ebf685","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":0,"total":2401,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail3_tf1","sha256":["d4e7817ff32bc3158ab8d6a77aa6a6b33ecf3ef9dfd933d7add2ce7489c5ca00","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail0_tf1","sha256":["0f51c18f502696b096252457ec02948b3f51e4c331021f907f1779a8526ef6df","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":1,"total":2400,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail1_tf1","sha256":["91e87cb8e8544db5b0fb03654d2a4d7033afaec3bf61ca7874e22f1dc8246c38","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":1,"total":2401,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail3_tf1","sha256":["41c8e0446a007c6b3a115f4084bb469dac4691bf054fdec33e7ac304b54621c5","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail0_tf1","sha256":["54c4adf6b1cf4d16704b136bac459c2cdcbd93a4827b95b9f7b0214dfb361dba","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":2,"total":2400,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail1_tf1","sha256":["5415c47cbe4613551eea9c403cc54ed762e9e62f22b9ea03ca4af814d2ebf685","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":2,"total":2401,"tf32":true} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail3_tf1","sha256":["d4e7817ff32bc3158ab8d6a77aa6a6b33ecf3ef9dfd933d7add2ce7489c5ca00","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail0_tf1","sha256":["c019f1487dee6258fd91b80dc9d437fe3f56facf5ba055dcf734f94f1a126d2a","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":0,"total":8196,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail1_tf1","sha256":["dd927dbed954496c088d146315d0616c88919f63c0a2e697185cb13aeb52514c","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":0,"total":8197,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail3_tf1","sha256":["4227a5848b655ff17cd0c259bda99086033567c70707f561dd5f807e53c2c560","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail0_tf1","sha256":["c24358a90ba3978d73ed321e73a6db4e407619e2a49cdc1223cd83d0bf0c1f7f","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":1,"total":8196,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail1_tf1","sha256":["7dcae1f4898bab05849f9a33dabd853364d521ea2b3e27d5b1972397b4648963","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":1,"total":8197,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail3_tf1","sha256":["fc71a9e8598af4d1bbfab3b327164424171c519dec19c685e09f727b3a345652","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail0_tf1","sha256":["c019f1487dee6258fd91b80dc9d437fe3f56facf5ba055dcf734f94f1a126d2a","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":2,"total":8196,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail1_tf1","sha256":["dd927dbed954496c088d146315d0616c88919f63c0a2e697185cb13aeb52514c","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":2,"total":8197,"tf32":true} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail3_tf1","sha256":["4227a5848b655ff17cd0c259bda99086033567c70707f561dd5f807e53c2c560","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail0_tf1","sha256":["306b791298098f452489819fb6395bcabb1ae00577804f341a4481e6dc31d7ac","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail1_tf1","sha256":["8ba8575e9c4d09629278a2754aa903768585720fbcfa4923db93217ae2dcd929","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail3_tf1","sha256":["9a85036054873956f73aab5ec8385afd3f032a6cd3030fc75ffb4b7c50018eed","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail0_tf1","sha256":["9ae4f3f4398614d992aecac2e24ee7d5759c8bca8e3d1b8c106fc21339c1a386","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail1_tf1","sha256":["ebeade5d1e4ab145090448a0b84ac503d7506eb2874328b3e1b002e735c3a842","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail3_tf1","sha256":["6c83ff1eb75a2e58383282ba3b3c2b6732a130f98d3a0972dcb01c49367d62c2","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail0_tf1","sha256":["306b791298098f452489819fb6395bcabb1ae00577804f341a4481e6dc31d7ac","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail1_tf1","sha256":["8ba8575e9c4d09629278a2754aa903768585720fbcfa4923db93217ae2dcd929","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail3_tf1","sha256":["9a85036054873956f73aab5ec8385afd3f032a6cd3030fc75ffb4b7c50018eed","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail0_tf1","sha256":["00c54cc7b69c765e5e3c66a1f7f8a6383bb3fc5cfce31b53da055673b6035f90","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":0,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail1_tf1","sha256":["723fd2aabe077cd0501a410de3a2f79050fe8c7ba1ddeae1b6b8cf22eb964231","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":0,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail3_tf1","sha256":["b6942cb83fb516a061fe7872660c4d0eacff5bca5687d97e72560b68192eed50","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail0_tf1","sha256":["292eaa5a53ff52fea52b52ad6acf214e593dd8d6acf28de70940304e0e122143","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":1,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail1_tf1","sha256":["ee78ea05bc67e44f0c3198a532611288d6e4c665a63dfa057b86b07736835c2e","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":1,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail3_tf1","sha256":["b60bbff26548b11bdf40224a0943fac3e405c9ded5c69c063fc95cf0e66c8688","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail0_tf1","sha256":["00c54cc7b69c765e5e3c66a1f7f8a6383bb3fc5cfce31b53da055673b6035f90","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":2,"total":2052,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail1_tf1","sha256":["723fd2aabe077cd0501a410de3a2f79050fe8c7ba1ddeae1b6b8cf22eb964231","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":2,"total":2053,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail3_tf1","sha256":["b6942cb83fb516a061fe7872660c4d0eacff5bca5687d97e72560b68192eed50","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail0_tf1","sha256":["63671413733087883397f368ba429773a1c365b67bf369f8416f218abf79aa6e","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail1_tf1","sha256":["b5c50c1b8cebabaa813501d115006d8d7a2defa6f7f803e5b644a1c2de52903a","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":0,"total":4101,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail3_tf1","sha256":["1cbe17ec6360e6ac79980f094f17747fc828b1a45938af0b7f4942cf34d3865f","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail0_tf1","sha256":["2601ffe215f9a41224681c4e53c4d1fa9985d0a0c830d6a57c0a6d16f9f3e2fa","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":1,"total":4100,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail1_tf1","sha256":["b0e9f166e5ecdbdaa78730a344b0b14e3b0c0c278127dfa36321685612a9604c","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail3_tf1","sha256":["41034c94ffb1e08ac111f67c7c4dc5ba27e03ec5452c98fc9f05f051d553814d","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail0_tf1","sha256":["63671413733087883397f368ba429773a1c365b67bf369f8416f218abf79aa6e","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail1_tf1","sha256":["b5c50c1b8cebabaa813501d115006d8d7a2defa6f7f803e5b644a1c2de52903a","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":2,"total":4101,"tf32":true} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail3_tf1","sha256":["1cbe17ec6360e6ac79980f094f17747fc828b1a45938af0b7f4942cf34d3865f","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":true} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail0_tf0","sha256":["fe2c6ccc6163d01fa51bea68182f8cd49ddf14913e5ccf62edd6f5aac48c2921","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail1_tf0","sha256":["b53ccfcf83280f5e8b9ea2c70b6412ddc3c0625f0e8610af01a825efe53fa1b6","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v0_tail3_tf0","sha256":["dbe44edda5ea4b4a78a8b2fcd55546f9a7c3dfbece5d510286732314d82099e9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail0_tf0","sha256":["3f6ffff0a673feedaf721e11bc4e28de92b5db0222e04ad729a4af7d2b88f72d","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail1_tf0","sha256":["19620997a6a9f91d84a6165643f949b5644e549c89807ef8de1d76c0a1c5d2ef","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v1_tail3_tf0","sha256":["c58873d068b491058afeff2c8331791f4261ec37d38244fe7979b3465cb7c0ac","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail0_tf0","sha256":["fe2c6ccc6163d01fa51bea68182f8cd49ddf14913e5ccf62edd6f5aac48c2921","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"rows":4,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail1_tf0","sha256":["b53ccfcf83280f5e8b9ea2c70b6412ddc3c0625f0e8610af01a825efe53fa1b6","f088094eca05fab877e60d746eaf761be7f45f3bcf60a8ba775b1ecc118e62b5"],"rows":4,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r4_n513_v2_tail3_tf0","sha256":["dbe44edda5ea4b4a78a8b2fcd55546f9a7c3dfbece5d510286732314d82099e9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail0_tf0","sha256":["54c4adf6b1cf4d16704b136bac459c2cdcbd93a4827b95b9f7b0214dfb361dba","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":0,"total":2400,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail1_tf0","sha256":["5415c47cbe4613551eea9c403cc54ed762e9e62f22b9ea03ca4af814d2ebf685","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":0,"total":2401,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v0_tail3_tf0","sha256":["d4e7817ff32bc3158ab8d6a77aa6a6b33ecf3ef9dfd933d7add2ce7489c5ca00","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":0,"total":2403,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail0_tf0","sha256":["0f51c18f502696b096252457ec02948b3f51e4c331021f907f1779a8526ef6df","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":1,"total":2400,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail1_tf0","sha256":["91e87cb8e8544db5b0fb03654d2a4d7033afaec3bf61ca7874e22f1dc8246c38","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":1,"total":2401,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v1_tail3_tf0","sha256":["41c8e0446a007c6b3a115f4084bb469dac4691bf054fdec33e7ac304b54621c5","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":1,"total":2403,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail0_tf0","sha256":["54c4adf6b1cf4d16704b136bac459c2cdcbd93a4827b95b9f7b0214dfb361dba","9a78e0275fd992c3dd651476e387361060ce18b4cc866f32fd11ffceaf04e0c4"],"rows":7,"blocks":600,"variant":2,"total":2400,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail1_tf0","sha256":["5415c47cbe4613551eea9c403cc54ed762e9e62f22b9ea03ca4af814d2ebf685","23cb2cdb52dbad8ebf1163877b0f542d99c81eb89975049bd25dce4eb2d35e86"],"rows":7,"blocks":600,"variant":2,"total":2401,"tf32":false} +{"kernel":"qsa_eager_gather_r7_n600_v2_tail3_tf0","sha256":["d4e7817ff32bc3158ab8d6a77aa6a6b33ecf3ef9dfd933d7add2ce7489c5ca00","91db58185550a8fe3b77cfaeda8417e053c22bb899f52cc7362ca7d02c2fc700"],"rows":7,"blocks":600,"variant":2,"total":2403,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail0_tf0","sha256":["c019f1487dee6258fd91b80dc9d437fe3f56facf5ba055dcf734f94f1a126d2a","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":0,"total":8196,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail1_tf0","sha256":["dd927dbed954496c088d146315d0616c88919f63c0a2e697185cb13aeb52514c","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":0,"total":8197,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v0_tail3_tf0","sha256":["4227a5848b655ff17cd0c259bda99086033567c70707f561dd5f807e53c2c560","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":0,"total":8199,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail0_tf0","sha256":["c24358a90ba3978d73ed321e73a6db4e407619e2a49cdc1223cd83d0bf0c1f7f","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":1,"total":8196,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail1_tf0","sha256":["7dcae1f4898bab05849f9a33dabd853364d521ea2b3e27d5b1972397b4648963","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":1,"total":8197,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v1_tail3_tf0","sha256":["fc71a9e8598af4d1bbfab3b327164424171c519dec19c685e09f727b3a345652","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":1,"total":8199,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail0_tf0","sha256":["c019f1487dee6258fd91b80dc9d437fe3f56facf5ba055dcf734f94f1a126d2a","f6cba31e66c14d9a9e179d3b0c7c0de0ea0b2ff3f958d42ad22d7fd5ce1f2aa4"],"rows":33,"blocks":2049,"variant":2,"total":8196,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail1_tf0","sha256":["dd927dbed954496c088d146315d0616c88919f63c0a2e697185cb13aeb52514c","86623933e2a7508faff86f9a266862b38612389b153c6f6c190c99f41c268976"],"rows":33,"blocks":2049,"variant":2,"total":8197,"tf32":false} +{"kernel":"qsa_eager_gather_r33_n2049_v2_tail3_tf0","sha256":["4227a5848b655ff17cd0c259bda99086033567c70707f561dd5f807e53c2c560","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"blocks":2049,"variant":2,"total":8199,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail0_tf0","sha256":["306b791298098f452489819fb6395bcabb1ae00577804f341a4481e6dc31d7ac","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail1_tf0","sha256":["8ba8575e9c4d09629278a2754aa903768585720fbcfa4923db93217ae2dcd929","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v0_tail3_tf0","sha256":["9a85036054873956f73aab5ec8385afd3f032a6cd3030fc75ffb4b7c50018eed","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail0_tf0","sha256":["9ae4f3f4398614d992aecac2e24ee7d5759c8bca8e3d1b8c106fc21339c1a386","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail1_tf0","sha256":["ebeade5d1e4ab145090448a0b84ac503d7506eb2874328b3e1b002e735c3a842","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v1_tail3_tf0","sha256":["6c83ff1eb75a2e58383282ba3b3c2b6732a130f98d3a0972dcb01c49367d62c2","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail0_tf0","sha256":["306b791298098f452489819fb6395bcabb1ae00577804f341a4481e6dc31d7ac","d0cf4889318b1d85351f58ed8dd361a0cc1ec1db3ba6e0627e9a1f99f652e3df"],"rows":65,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail1_tf0","sha256":["8ba8575e9c4d09629278a2754aa903768585720fbcfa4923db93217ae2dcd929","60a73895162776ed52e41884550839aac9e5b412214ffeb51580b23b3e6042aa"],"rows":65,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r65_n513_v2_tail3_tf0","sha256":["9a85036054873956f73aab5ec8385afd3f032a6cd3030fc75ffb4b7c50018eed","9e11cba6fc214f43d0ed8ec1fea92479000ad3c907e5ecb78ea2d8e1b3d69688"],"rows":65,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail0_tf0","sha256":["00c54cc7b69c765e5e3c66a1f7f8a6383bb3fc5cfce31b53da055673b6035f90","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":0,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail1_tf0","sha256":["723fd2aabe077cd0501a410de3a2f79050fe8c7ba1ddeae1b6b8cf22eb964231","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":0,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v0_tail3_tf0","sha256":["b6942cb83fb516a061fe7872660c4d0eacff5bca5687d97e72560b68192eed50","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":0,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail0_tf0","sha256":["292eaa5a53ff52fea52b52ad6acf214e593dd8d6acf28de70940304e0e122143","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":1,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail1_tf0","sha256":["ee78ea05bc67e44f0c3198a532611288d6e4c665a63dfa057b86b07736835c2e","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":1,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v1_tail3_tf0","sha256":["b60bbff26548b11bdf40224a0943fac3e405c9ded5c69c063fc95cf0e66c8688","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":1,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail0_tf0","sha256":["00c54cc7b69c765e5e3c66a1f7f8a6383bb3fc5cfce31b53da055673b6035f90","f282002ec752171777a2365bac81e1a3533a8e55f8f2d53f99646c512c8f81df"],"rows":2048,"blocks":513,"variant":2,"total":2052,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail1_tf0","sha256":["723fd2aabe077cd0501a410de3a2f79050fe8c7ba1ddeae1b6b8cf22eb964231","76c1d38084eedab0de22391b0efca5008e3f08bd97c8cd3491db4c4a5263ae49"],"rows":2048,"blocks":513,"variant":2,"total":2053,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n513_v2_tail3_tf0","sha256":["b6942cb83fb516a061fe7872660c4d0eacff5bca5687d97e72560b68192eed50","75bd2738f985cea1569d01cdbb3632959a2541b25e02d46905bbbd86bf2a2b64"],"rows":2048,"blocks":513,"variant":2,"total":2055,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail0_tf0","sha256":["63671413733087883397f368ba429773a1c365b67bf369f8416f218abf79aa6e","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail1_tf0","sha256":["b5c50c1b8cebabaa813501d115006d8d7a2defa6f7f803e5b644a1c2de52903a","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":0,"total":4101,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v0_tail3_tf0","sha256":["1cbe17ec6360e6ac79980f094f17747fc828b1a45938af0b7f4942cf34d3865f","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":0,"total":4103,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail0_tf0","sha256":["2601ffe215f9a41224681c4e53c4d1fa9985d0a0c830d6a57c0a6d16f9f3e2fa","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":1,"total":4100,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail1_tf0","sha256":["b0e9f166e5ecdbdaa78730a344b0b14e3b0c0c278127dfa36321685612a9604c","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v1_tail3_tf0","sha256":["41034c94ffb1e08ac111f67c7c4dc5ba27e03ec5452c98fc9f05f051d553814d","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":1,"total":4103,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail0_tf0","sha256":["63671413733087883397f368ba429773a1c365b67bf369f8416f218abf79aa6e","7b52d5cabf918cd4d4af929ba0dcbbf64af54f600d045396029ec51e4186694c"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail1_tf0","sha256":["b5c50c1b8cebabaa813501d115006d8d7a2defa6f7f803e5b644a1c2de52903a","df410372600ef62eac2a852266a90c9d42f2fb0da205d987e50b6d90c0ecef5e"],"rows":2048,"blocks":1025,"variant":2,"total":4101,"tf32":false} +{"kernel":"qsa_eager_gather_r2048_n1025_v2_tail3_tf0","sha256":["1cbe17ec6360e6ac79980f094f17747fc828b1a45938af0b7f4942cf34d3865f","66a7f5716af09a8975ab0ac5145e93170343ab61126ec641de6b9993d7745adb"],"rows":2048,"blocks":1025,"variant":2,"total":4103,"tf32":false} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail0_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail0_g1_tf1","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail1_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail1_g1_tf1","sha256":["896fe58a5b7d36c554bac7c6b78515a3519b3a4aed7fc52af369edabfa540e84"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail3_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail3_g1_tf1","sha256":["b98198e5074d93b622eca01df56857a90ce138340ae24040995d8abe0a856f83"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail0_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail0_g1_tf1","sha256":["4b5d38108a9fe57896cb94b2895a194533356f24e9d5e33a5bbac5d0636c2b49"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail1_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail1_g1_tf1","sha256":["f82baa25352ea7efa3a8bfa6f50aacb553e18022fab657264b7aa33f95ddc7f8"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail3_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail3_g1_tf1","sha256":["c4447c154cdd87aa2d5876c6907885676001bcf7fde0760288a1fb05619d31be"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail0_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail0_g1_tf1","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail1_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail1_g1_tf1","sha256":["896fe58a5b7d36c554bac7c6b78515a3519b3a4aed7fc52af369edabfa540e84"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail3_g0_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":true,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail3_g1_tf1","sha256":["b98198e5074d93b622eca01df56857a90ce138340ae24040995d8abe0a856f83"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":true,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail0_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail0_g1_tf1","sha256":["b11b4b2089f457ee7be7b4ce2723fd821eb412f2672282fd17dfbad5235d9f11"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail1_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail1_g1_tf1","sha256":["6ce5833e2aac021c04e067ba70e4e7b4ae9c9eaad920019d79b487f1db875ce5"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail3_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail3_g1_tf1","sha256":["c3ce8ff9bc8491f09ef6185e4af7c17d40ac9b046061ddc57644f41082ba0ff0"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail0_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail0_g1_tf1","sha256":["4b5d38108a9fe57896cb94b2895a194533356f24e9d5e33a5bbac5d0636c2b49"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail1_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail1_g1_tf1","sha256":["4d9a34cefa589beda83c553cf90fd3e08fc01ea696e6cb656fa514a1520d804b"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail3_g0_tf1","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail3_g1_tf1","sha256":["40255d59047c12ca66c52efc93ee86005cdd8507310bff5052d3301c2daef5a1"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail0_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail0_g1_tf1","sha256":["b11b4b2089f457ee7be7b4ce2723fd821eb412f2672282fd17dfbad5235d9f11"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail1_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail1_g1_tf1","sha256":["6ce5833e2aac021c04e067ba70e4e7b4ae9c9eaad920019d79b487f1db875ce5"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail3_g0_tf1","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":true,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail3_g1_tf1","sha256":["c3ce8ff9bc8491f09ef6185e4af7c17d40ac9b046061ddc57644f41082ba0ff0"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":true,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail0_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail0_g1_tf0","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"rows":1,"blocks":513,"variant":0,"total":2052,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail1_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail1_g1_tf0","sha256":["896fe58a5b7d36c554bac7c6b78515a3519b3a4aed7fc52af369edabfa540e84"],"rows":1,"blocks":513,"variant":0,"total":2053,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail3_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v0_tail3_g1_tf0","sha256":["b98198e5074d93b622eca01df56857a90ce138340ae24040995d8abe0a856f83"],"rows":1,"blocks":513,"variant":0,"total":2055,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail0_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail0_g1_tf0","sha256":["4b5d38108a9fe57896cb94b2895a194533356f24e9d5e33a5bbac5d0636c2b49"],"rows":1,"blocks":513,"variant":1,"total":2052,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail1_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail1_g1_tf0","sha256":["f82baa25352ea7efa3a8bfa6f50aacb553e18022fab657264b7aa33f95ddc7f8"],"rows":1,"blocks":513,"variant":1,"total":2053,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail3_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v1_tail3_g1_tf0","sha256":["c4447c154cdd87aa2d5876c6907885676001bcf7fde0760288a1fb05619d31be"],"rows":1,"blocks":513,"variant":1,"total":2055,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail0_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail0_g1_tf0","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"rows":1,"blocks":513,"variant":2,"total":2052,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail1_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail1_g1_tf0","sha256":["896fe58a5b7d36c554bac7c6b78515a3519b3a4aed7fc52af369edabfa540e84"],"rows":1,"blocks":513,"variant":2,"total":2053,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail3_g0_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":false,"gather":false,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n513_v2_tail3_g1_tf0","sha256":["b98198e5074d93b622eca01df56857a90ce138340ae24040995d8abe0a856f83"],"rows":1,"blocks":513,"variant":2,"total":2055,"tf32":false,"gather":true,"tail_start":2052} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail0_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail0_g1_tf0","sha256":["b11b4b2089f457ee7be7b4ce2723fd821eb412f2672282fd17dfbad5235d9f11"],"rows":1,"blocks":65536,"variant":0,"total":262144,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail1_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail1_g1_tf0","sha256":["6ce5833e2aac021c04e067ba70e4e7b4ae9c9eaad920019d79b487f1db875ce5"],"rows":1,"blocks":65536,"variant":0,"total":262145,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail3_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v0_tail3_g1_tf0","sha256":["c3ce8ff9bc8491f09ef6185e4af7c17d40ac9b046061ddc57644f41082ba0ff0"],"rows":1,"blocks":65536,"variant":0,"total":262147,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail0_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail0_g1_tf0","sha256":["4b5d38108a9fe57896cb94b2895a194533356f24e9d5e33a5bbac5d0636c2b49"],"rows":1,"blocks":65536,"variant":1,"total":262144,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail1_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail1_g1_tf0","sha256":["4d9a34cefa589beda83c553cf90fd3e08fc01ea696e6cb656fa514a1520d804b"],"rows":1,"blocks":65536,"variant":1,"total":262145,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail3_g0_tf0","sha256":["1ba107b4e848a9dfa507028c40f2ee00d1ce41dc11e27ba2d47843a9c6c53426"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v1_tail3_g1_tf0","sha256":["40255d59047c12ca66c52efc93ee86005cdd8507310bff5052d3301c2daef5a1"],"rows":1,"blocks":65536,"variant":1,"total":262147,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail0_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail0_g1_tf0","sha256":["b11b4b2089f457ee7be7b4ce2723fd821eb412f2672282fd17dfbad5235d9f11"],"rows":1,"blocks":65536,"variant":2,"total":262144,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail1_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail1_g1_tf0","sha256":["6ce5833e2aac021c04e067ba70e4e7b4ae9c9eaad920019d79b487f1db875ce5"],"rows":1,"blocks":65536,"variant":2,"total":262145,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail3_g0_tf0","sha256":["93fc37c43bc2fff10efe1ae4ddd9fa9762df1cc7930ecf6859ca8cddfc7c9014"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":false,"gather":false,"tail_start":262144} +{"kernel":"qsa_eager_decode_r1_n65536_v2_tail3_g1_tf0","sha256":["c3ce8ff9bc8491f09ef6185e4af7c17d40ac9b046061ddc57644f41082ba0ff0"],"rows":1,"blocks":65536,"variant":2,"total":262147,"tf32":false,"gather":true,"tail_start":262144} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t1_p0_tf1","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t1_p1_tf1","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t3_p0_tf1","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t3_p1_tf1","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t7_p0_tf1","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":7,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t7_p1_tf1","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":7,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t8_p0_tf1","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":8,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t8_p1_tf1","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":true,"tile":8,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t1_p0_tf1","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t1_p1_tf1","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t3_p0_tf1","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t3_p1_tf1","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t7_p0_tf1","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":7,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t7_p1_tf1","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":7,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t8_p0_tf1","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":8,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t8_p1_tf1","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":true,"tile":8,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t1_p0_tf1","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":1,"ds":2,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t1_p1_tf1","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":1,"ds":2,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t3_p0_tf1","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t3_p1_tf1","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t7_p0_tf1","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":7,"ds":2,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t7_p1_tf1","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":7,"ds":2,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t8_p0_tf1","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":8,"ds":2,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t8_p1_tf1","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":true,"tile":8,"ds":2,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v0_t3_p0_tf1","sha256":["8c93837a219905618e7abde81b85ae9ea2e1327173f92485e1d0c76985763527"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v0_t3_p1_tf1","sha256":["5a917617fea1b7d077e4d64e7d58d32f9da20596447e237f5065f03cd3b517bf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v0_t32_p0_tf1","sha256":["8c93837a219905618e7abde81b85ae9ea2e1327173f92485e1d0c76985763527"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v0_t32_p1_tf1","sha256":["5a917617fea1b7d077e4d64e7d58d32f9da20596447e237f5065f03cd3b517bf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v1_t3_p0_tf1","sha256":["a0c1c87f984496717a359d0bae9d15a62b68b3e673bb1a0a4c74d688fb924f81"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v1_t3_p1_tf1","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v1_t32_p0_tf1","sha256":["a0c1c87f984496717a359d0bae9d15a62b68b3e673bb1a0a4c74d688fb924f81"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v1_t32_p1_tf1","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v2_t3_p0_tf1","sha256":["2f49e02c52569926d82ddd9ba35f042f1134c66bac17a366836495f7446ffe94"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":true,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v2_t3_p1_tf1","sha256":["4e9c86c6f849642e29f4c868615a2c14242da45551096134ca1795caf30dd8b5","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":true,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v2_t32_p0_tf1","sha256":["2f49e02c52569926d82ddd9ba35f042f1134c66bac17a366836495f7446ffe94"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":true,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v2_t32_p1_tf1","sha256":["4e9c86c6f849642e29f4c868615a2c14242da45551096134ca1795caf30dd8b5","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":true,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v0_t1_p0_tf1","sha256":["94dae023ba763bee2f6d7da43bda9343ee6c3f07a9f3024694fd129200cc0fb1"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":true,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v0_t1_p1_tf1","sha256":["4660ea9184bab4376668df78192ad295fbd82c23d644b4e684f9a6fc8762dc8f","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":true,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v0_t32_p0_tf1","sha256":["94dae023ba763bee2f6d7da43bda9343ee6c3f07a9f3024694fd129200cc0fb1"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v0_t32_p1_tf1","sha256":["4660ea9184bab4376668df78192ad295fbd82c23d644b4e684f9a6fc8762dc8f","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v1_t1_p0_tf1","sha256":["e65d11f99eef983d906b65dc38aca5ba25f22310798cf94e4cedd9f317f0bbb8"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":true,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v1_t1_p1_tf1","sha256":["6546e28bb86d0a2d8ccc2c84bfee0c4947ee0d287f4f567cf04f51556c4818f3","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":true,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v1_t32_p0_tf1","sha256":["e65d11f99eef983d906b65dc38aca5ba25f22310798cf94e4cedd9f317f0bbb8"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v1_t32_p1_tf1","sha256":["6546e28bb86d0a2d8ccc2c84bfee0c4947ee0d287f4f567cf04f51556c4818f3","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v2_t1_p0_tf1","sha256":["8e48d33bf4f5f71c0c709112aa1c7a6fd93674f043b17a7c448f06579ee4b247"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":true,"tile":1,"ds":2,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v2_t1_p1_tf1","sha256":["ae99f23f319006da3fcad2195d55bd256cdf6ed781caa05824f2b5e7553e3599","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":true,"tile":1,"ds":2,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v2_t32_p0_tf1","sha256":["8e48d33bf4f5f71c0c709112aa1c7a6fd93674f043b17a7c448f06579ee4b247"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":true,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v2_t32_p1_tf1","sha256":["ae99f23f319006da3fcad2195d55bd256cdf6ed781caa05824f2b5e7553e3599","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":true,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v0_t32_p0_tf1","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v0_t32_p1_tf1","sha256":["a86e6b485a00f50f47105e72c5f77c9d8e11190a06de11f6642267586a6a5fd8","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v0_t2047_p0_tf1","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true,"tile":2047,"ds":1,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v0_t2047_p1_tf1","sha256":["a86e6b485a00f50f47105e72c5f77c9d8e11190a06de11f6642267586a6a5fd8","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":true,"tile":2047,"ds":1,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v1_t32_p0_tf1","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v1_t32_p1_tf1","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v1_t2047_p0_tf1","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true,"tile":2047,"ds":1,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v1_t2047_p1_tf1","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":true,"tile":2047,"ds":1,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v2_t32_p0_tf1","sha256":["3fe9fd435d8afffdd53927470c2b47c1892060fb3904e4336d6f7cf747368cbd"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v2_t32_p1_tf1","sha256":["3753d0ca0a77e864ed27aa80a0a0a4b33baafed9663a354599d870bb4330f37d","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v2_t2047_p0_tf1","sha256":["3fe9fd435d8afffdd53927470c2b47c1892060fb3904e4336d6f7cf747368cbd"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true,"tile":2047,"ds":2,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v2_t2047_p1_tf1","sha256":["3753d0ca0a77e864ed27aa80a0a0a4b33baafed9663a354599d870bb4330f37d","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":true,"tile":2047,"ds":2,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v0_t3_p0_tf1","sha256":["726b763488219de97926acf4770fa668b2f401de7b3c38931368e675e673f9e3"],"rows":7,"blocks":65536,"variant":0,"total":262144,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v0_t3_p1_tf1","sha256":["6ac301a7260643c7ee9b0b37e0e8f68cf75a4b6148f77ac5d9d63174d19f8ec9","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":0,"total":262144,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v1_t3_p0_tf1","sha256":["4d425e037bde662949b779120f6ad286a43c9d8c97839c17543d11d75f2a0fdf"],"rows":7,"blocks":65536,"variant":1,"total":262145,"tf32":true,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v1_t3_p1_tf1","sha256":["4d3350dfac67fbb75e8c24242dfb9b2e6fd99084aa1c3bf6ea67d48f4288d92c","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":1,"total":262145,"tf32":true,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v2_t3_p0_tf1","sha256":["49e5a21f197f6682305c13ade420ad95a1b35b11f077fd067da91375adcbe580"],"rows":7,"blocks":65536,"variant":2,"total":262144,"tf32":true,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v2_t3_p1_tf1","sha256":["4b1df854d7d3e665d3093ba23a5307ea3852b09b5018da2b3ab0aae1f32ce4b5","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":2,"total":262144,"tf32":true,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t1_p0_tf0","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t1_p1_tf0","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t3_p0_tf0","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v0_t3_p1_tf0","sha256":["5a69fc097445d35332471cea860077be01f2ec12c21eacc3ab5603731bdf1f22"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t7_p0_tf0","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":7,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t7_p1_tf0","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":7,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t8_p0_tf0","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":8,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v0_t8_p1_tf0","sha256":["cd513ff1f33d7981b8a4a4fee1038417db8114ed5ea85b40a98c788ce3e2885b","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":0,"total":2052,"tf32":false,"tile":8,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t1_p0_tf0","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t1_p1_tf0","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t3_p0_tf0","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v1_t3_p1_tf0","sha256":["1ed76cb0a351ba70ae53e37d875e8a570b3a17a9f19fb0202dc74039c2ba9fea"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t7_p0_tf0","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":7,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t7_p1_tf0","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":7,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t8_p0_tf0","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":8,"ds":1,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v1_t8_p1_tf0","sha256":["c235ad890c50a197cf8afd71c03f3f49652a0b77b561ae3f40bcd53e726761c6","cf5765de598544a389496ecd55cdf79d60c160afc362a53d3ba163ca7c294243"],"rows":7,"blocks":513,"variant":1,"total":2053,"tf32":false,"tile":8,"ds":1,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t1_p0_tf0","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":1,"ds":2,"prefill":false,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t1_p1_tf0","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":1,"ds":2,"prefill":true,"eval_rows":[1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t3_p0_tf0","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n513_v2_t3_p1_tf0","sha256":["6c83e5b0c6a54a976999de65ceb5fb04cd0b1542a8048517561d88541d0d326c"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t7_p0_tf0","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":7,"ds":2,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t7_p1_tf0","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":7,"ds":2,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t8_p0_tf0","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":8,"ds":2,"prefill":false,"eval_rows":[]} +{"kernel":"qsa_eager_gather_tiled_r7_n513_v2_t8_p1_tf0","sha256":["41c62e94358a2d36212a1599a4c91bc6d02fc38120a429cc62d339a660159815","d40e407c54d2bce6b5aaa6a3dcb116127058b2bce3a8e01307c3364fa4f38568"],"rows":7,"blocks":513,"variant":2,"total":2052,"tf32":false,"tile":8,"ds":2,"prefill":true,"eval_rows":[]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v0_t3_p0_tf0","sha256":["8c93837a219905618e7abde81b85ae9ea2e1327173f92485e1d0c76985763527"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v0_t3_p1_tf0","sha256":["5a917617fea1b7d077e4d64e7d58d32f9da20596447e237f5065f03cd3b517bf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v0_t32_p0_tf0","sha256":["8c93837a219905618e7abde81b85ae9ea2e1327173f92485e1d0c76985763527"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v0_t32_p1_tf0","sha256":["5a917617fea1b7d077e4d64e7d58d32f9da20596447e237f5065f03cd3b517bf","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":0,"total":2400,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v1_t3_p0_tf0","sha256":["a0c1c87f984496717a359d0bae9d15a62b68b3e673bb1a0a4c74d688fb924f81"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v1_t3_p1_tf0","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v1_t32_p0_tf0","sha256":["a0c1c87f984496717a359d0bae9d15a62b68b3e673bb1a0a4c74d688fb924f81"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v1_t32_p1_tf0","sha256":["876b150f527f61b9c0566cb324aedcea24b90b15517bbb19e14d3ccfbab8d658","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":1,"total":2401,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v2_t3_p0_tf0","sha256":["2f49e02c52569926d82ddd9ba35f042f1134c66bac17a366836495f7446ffe94"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":false,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v2_t3_p1_tf0","sha256":["4e9c86c6f849642e29f4c868615a2c14242da45551096134ca1795caf30dd8b5","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":false,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,3,3,3,3,3,3,3,3,3]} +{"kernel":"qsa_eager_dense_tiled_r33_n600_v2_t32_p0_tf0","sha256":["2f49e02c52569926d82ddd9ba35f042f1134c66bac17a366836495f7446ffe94"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":false,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,1]} +{"kernel":"qsa_eager_blocks_tiled_r33_n600_v2_t32_p1_tf0","sha256":["4e9c86c6f849642e29f4c868615a2c14242da45551096134ca1795caf30dd8b5","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"rows":33,"blocks":600,"variant":2,"total":2400,"tf32":false,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v0_t1_p0_tf0","sha256":["94dae023ba763bee2f6d7da43bda9343ee6c3f07a9f3024694fd129200cc0fb1"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":false,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v0_t1_p1_tf0","sha256":["4660ea9184bab4376668df78192ad295fbd82c23d644b4e684f9a6fc8762dc8f","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":false,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v0_t32_p0_tf0","sha256":["94dae023ba763bee2f6d7da43bda9343ee6c3f07a9f3024694fd129200cc0fb1"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v0_t32_p1_tf0","sha256":["4660ea9184bab4376668df78192ad295fbd82c23d644b4e684f9a6fc8762dc8f","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":0,"total":8196,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v1_t1_p0_tf0","sha256":["e65d11f99eef983d906b65dc38aca5ba25f22310798cf94e4cedd9f317f0bbb8"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":false,"tile":1,"ds":1,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v1_t1_p1_tf0","sha256":["6546e28bb86d0a2d8ccc2c84bfee0c4947ee0d287f4f567cf04f51556c4818f3","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":false,"tile":1,"ds":1,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v1_t32_p0_tf0","sha256":["e65d11f99eef983d906b65dc38aca5ba25f22310798cf94e4cedd9f317f0bbb8"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v1_t32_p1_tf0","sha256":["6546e28bb86d0a2d8ccc2c84bfee0c4947ee0d287f4f567cf04f51556c4818f3","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":1,"total":8197,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v2_t1_p0_tf0","sha256":["8e48d33bf4f5f71c0c709112aa1c7a6fd93674f043b17a7c448f06579ee4b247"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":false,"tile":1,"ds":2,"prefill":false,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v2_t1_p1_tf0","sha256":["ae99f23f319006da3fcad2195d55bd256cdf6ed781caa05824f2b5e7553e3599","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":false,"tile":1,"ds":2,"prefill":true,"eval_rows":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]} +{"kernel":"qsa_eager_dense_tiled_r65_n2049_v2_t32_p0_tf0","sha256":["8e48d33bf4f5f71c0c709112aa1c7a6fd93674f043b17a7c448f06579ee4b247"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":false,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_blocks_tiled_r65_n2049_v2_t32_p1_tf0","sha256":["ae99f23f319006da3fcad2195d55bd256cdf6ed781caa05824f2b5e7553e3599","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5"],"rows":65,"blocks":2049,"variant":2,"total":8196,"tf32":false,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,32,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v0_t32_p0_tf0","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v0_t32_p1_tf0","sha256":["a86e6b485a00f50f47105e72c5f77c9d8e11190a06de11f6642267586a6a5fd8","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v0_t2047_p0_tf0","sha256":["add42df0d73f5f83c1640d1afdd023c656866112a24f523a1de89e6a84a67733"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false,"tile":2047,"ds":1,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v0_t2047_p1_tf0","sha256":["a86e6b485a00f50f47105e72c5f77c9d8e11190a06de11f6642267586a6a5fd8","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":0,"total":4100,"tf32":false,"tile":2047,"ds":1,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v1_t32_p0_tf0","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false,"tile":32,"ds":1,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v1_t32_p1_tf0","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false,"tile":32,"ds":1,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v1_t2047_p0_tf0","sha256":["8dd7c1db109c38ded572506c6a2ef8b26655d9c32abf5003d00ac2b9efb8ceb9"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false,"tile":2047,"ds":1,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v1_t2047_p1_tf0","sha256":["d3cc25334a22b9afbe735187a548fd49150c14b4d9bae400c9376713d38a579e","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":1,"total":4101,"tf32":false,"tile":2047,"ds":1,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v2_t32_p0_tf0","sha256":["3fe9fd435d8afffdd53927470c2b47c1892060fb3904e4336d6f7cf747368cbd"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false,"tile":32,"ds":2,"prefill":false,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v2_t32_p1_tf0","sha256":["3753d0ca0a77e864ed27aa80a0a0a4b33baafed9663a354599d870bb4330f37d","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false,"tile":32,"ds":2,"prefill":true,"eval_rows":[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32]} +{"kernel":"qsa_eager_dense_tiled_r2048_n1025_v2_t2047_p0_tf0","sha256":["3fe9fd435d8afffdd53927470c2b47c1892060fb3904e4336d6f7cf747368cbd"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false,"tile":2047,"ds":2,"prefill":false,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_blocks_tiled_r2048_n1025_v2_t2047_p1_tf0","sha256":["3753d0ca0a77e864ed27aa80a0a0a4b33baafed9663a354599d870bb4330f37d","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"rows":2048,"blocks":1025,"variant":2,"total":4100,"tf32":false,"tile":2047,"ds":2,"prefill":true,"eval_rows":[2047,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v0_t3_p0_tf0","sha256":["726b763488219de97926acf4770fa668b2f401de7b3c38931368e675e673f9e3"],"rows":7,"blocks":65536,"variant":0,"total":262144,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v0_t3_p1_tf0","sha256":["6ac301a7260643c7ee9b0b37e0e8f68cf75a4b6148f77ac5d9d63174d19f8ec9","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":0,"total":262144,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v1_t3_p0_tf0","sha256":["4d425e037bde662949b779120f6ad286a43c9d8c97839c17543d11d75f2a0fdf"],"rows":7,"blocks":65536,"variant":1,"total":262145,"tf32":false,"tile":3,"ds":1,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v1_t3_p1_tf0","sha256":["4d3350dfac67fbb75e8c24242dfb9b2e6fd99084aa1c3bf6ea67d48f4288d92c","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":1,"total":262145,"tf32":false,"tile":3,"ds":1,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_dense_tiled_r7_n65536_v2_t3_p0_tf0","sha256":["49e5a21f197f6682305c13ade420ad95a1b35b11f077fd067da91375adcbe580"],"rows":7,"blocks":65536,"variant":2,"total":262144,"tf32":false,"tile":3,"ds":2,"prefill":false,"eval_rows":[3,3,1]} +{"kernel":"qsa_eager_blocks_tiled_r7_n65536_v2_t3_p1_tf0","sha256":["4b1df854d7d3e665d3093ba23a5307ea3852b09b5018da2b3ab0aae1f32ce4b5","ec9b864aa12d0e84dfacec92a4c2072b541feaf6306b5c01a3cec10700f46204"],"rows":7,"blocks":65536,"variant":2,"total":262144,"tf32":false,"tile":3,"ds":2,"prefill":true,"eval_rows":[3,3,1]} +{"kernel":"qsa_prepare_eager_r1_stride512_dim1_pos0","sha256":["9f3a4db4749f56c048a57459ddb8a00f1450d5b1a8e5d515c3726c6ccc962bfa"],"rows":1,"stride":512,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride640_dim1_pos0","sha256":["9f3a4db4749f56c048a57459ddb8a00f1450d5b1a8e5d515c3726c6ccc962bfa"],"rows":1,"stride":640,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride1280_dim2_pos0","sha256":["b7f1952b788300179fc2f43c3fce9475b5e15e8179e408e894b78cae36d658df"],"rows":1,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride512_dim1_pos32767","sha256":["66f3593626d70285977d84dae84617e0c38b1fd7bdfa3d03fa11b0b94ca49568"],"rows":1,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride640_dim1_pos32767","sha256":["66f3593626d70285977d84dae84617e0c38b1fd7bdfa3d03fa11b0b94ca49568"],"rows":1,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride1280_dim2_pos32767","sha256":["a417366c2cb69cf4e04ffdd3a704392b76b098709876cb1839343b14a9ad5ce4"],"rows":1,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride512_dim1_pos262141","sha256":["a009da0c9d7b27d2721824422bd3f11e3cd192431d4364ed5f95c8b89ac0d8ab"],"rows":1,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride640_dim1_pos262141","sha256":["a009da0c9d7b27d2721824422bd3f11e3cd192431d4364ed5f95c8b89ac0d8ab"],"rows":1,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r1_stride1280_dim2_pos262141","sha256":["7f45e09f2ae0a5d7e83e86f22e93fd8fffd6ea3768bb030facccc584c84f321e"],"rows":1,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride512_dim1_pos0","sha256":["b3e6650bd68124eedea583952ebd62021fc1385365c085f1f23ed4a669bd6189"],"rows":4,"stride":512,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride640_dim1_pos0","sha256":["e30e58c3bbaf9efb888afe8694f4dee1a434797f6a73e178324cd8f673eacaed"],"rows":4,"stride":640,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride1280_dim2_pos0","sha256":["893ee0d9f51e8d537ef16dcc8798babb7c03ba78e54652e059d9a2b24f55a061"],"rows":4,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride512_dim1_pos32767","sha256":["2feb725221d52a420318e299486502ebc3a824df60a6481324437133b56f13a4"],"rows":4,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride640_dim1_pos32767","sha256":["d2d8b2b12308b7dc659a307d38c5f609014c88f0c677a034fdef8ba7c87fe746"],"rows":4,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride1280_dim2_pos32767","sha256":["ee592c0254c9bfbaa7d73343e9156187d6f115f606b7357003780065ca1bc5d5"],"rows":4,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride512_dim1_pos262141","sha256":["c73ef9ee21dca4b94fe33fbab846e9effb213c9b8a9122e2da254d090a674a53"],"rows":4,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride640_dim1_pos262141","sha256":["07ae73152c8d15ef524a3f24d261d423c6a58ecd27595d88c50187a2e20e6ef7"],"rows":4,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r4_stride1280_dim2_pos262141","sha256":["811916fbc88233e6e8590cf9d1203fe15fb8f2326234322b4a2a6dc172712d73"],"rows":4,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride512_dim1_pos0","sha256":["e8e194f24551d7d697667e3d6f34a7bf1c5ab47b810845e170f8a428175ee54d"],"rows":7,"stride":512,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride640_dim1_pos0","sha256":["0098df9f218c8c03aaf79eecfcb033d81577e9532f4d80e2370f2a10a43a8c3b"],"rows":7,"stride":640,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride1280_dim2_pos0","sha256":["08cd86d32d576eb45a134556749f3b4dd1c43c1332b67bfcf2089bfa8f203e38"],"rows":7,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride512_dim1_pos32767","sha256":["2befaaa45e11291a1404d5e744884f22e3fedd7ef3474a2d3dc89672a8c181a7"],"rows":7,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride640_dim1_pos32767","sha256":["a322137ac37b788b838925e2f33fe5fb25db4a5a4f90445f67258d610de850b9"],"rows":7,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride1280_dim2_pos32767","sha256":["ad473862d154f4691931bbad8a6e4246d893cc5d32fac0cf11d3d986e9f8115a"],"rows":7,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride512_dim1_pos262141","sha256":["8b4d6e87c9b48c15eb28d7e344434f5333d68d71f7eedb234e455bcc98e696c7"],"rows":7,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride640_dim1_pos262141","sha256":["dc04fd5e4ea8a1b09879340ac4d78a501ffa4e478541e4ce84943abcb1009fbd"],"rows":7,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r7_stride1280_dim2_pos262141","sha256":["0aee3a66f7db0a2754bc9a0e94d03c501f110f23ed87f1eb6d2183449a107d8f"],"rows":7,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride512_dim1_pos0","sha256":["0fa30e38bd6a0ab6e364e539142448fe689b3c33776da754d2f8406a56691c95"],"rows":32,"stride":512,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride640_dim1_pos0","sha256":["909dc598c0f14aa2eab8fd8c061b34f833d06486fe8504773379367b6543c471"],"rows":32,"stride":640,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride1280_dim2_pos0","sha256":["fb9ccdb072305673dc756789a6487beb05ec929d7dce1a7d66e08f9b3e398e11"],"rows":32,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride512_dim1_pos32767","sha256":["81a5da712de40ed8a10d9d34966601d273d48b86701e7784d833b7e47e6bde60"],"rows":32,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride640_dim1_pos32767","sha256":["9a6dab666e7af6664ef58f42f69ef5c9d6dbc26127be781a7da03f3c005eb69c"],"rows":32,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride1280_dim2_pos32767","sha256":["33a9b1c6c1546130769bd60b46139e95e54154cee6600193ab2c29aa5fdfce14"],"rows":32,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride512_dim1_pos262141","sha256":["cc2695dd72c758b035a27ccb17e581863fe96065bf5474a8fa7b1631d00d74a6"],"rows":32,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride640_dim1_pos262141","sha256":["609948c52675d2a54bb5432e8278e8dc34c7edf882816c52fbcaa727dc23e743"],"rows":32,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r32_stride1280_dim2_pos262141","sha256":["02ce8f9b5f693cd3b5c3f7fd280a5bf28a8e77aab15a01c24a05369d76af640f"],"rows":32,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride512_dim1_pos0","sha256":["2a3734a784006356774a82d557f8c4b487828c8efbe6a512fce0ffc4e205b569"],"rows":2048,"stride":512,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride640_dim1_pos0","sha256":["84b0a532845eb3f93f6113f4c1942ab17f8d8adb5255b9a40f41e34ebe0f205c"],"rows":2048,"stride":640,"dimstride":1,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride1280_dim2_pos0","sha256":["b9865497d0ce41f6bf27e08228fd9904c60c77901a3ac73419a3552b9d826817"],"rows":2048,"stride":1280,"dimstride":2,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride512_dim1_pos32767","sha256":["348f31b5dc73f2ad63e5287926bfded553da97d7ceed4aa4548bdff971a8b12a"],"rows":2048,"stride":512,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride640_dim1_pos32767","sha256":["0d32e1cacbeb53d09ede5da269c36fdacf932e7eef54f639403eb67c0172f0e2"],"rows":2048,"stride":640,"dimstride":1,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride1280_dim2_pos32767","sha256":["5f4603157f8d797f77749588440919c9c146a9db3c307b3ba0b9163ab6bfc263"],"rows":2048,"stride":1280,"dimstride":2,"pos":32767,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride512_dim1_pos262141","sha256":["0bf421afc6dfaaec15b929eee3558ab4d8710b313c398cd178435f32534c15d0"],"rows":2048,"stride":512,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride640_dim1_pos262141","sha256":["0cfd9a3dec02e2dc18150b3002c3bdeef4e78ae64c78d7a2b741ff70dfa0394e"],"rows":2048,"stride":640,"dimstride":1,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_prepare_eager_r2048_stride1280_dim2_pos262141","sha256":["312ddea930cec971d91b6c362058129dae8998c5db4ec94bd8841be6a0952555"],"rows":2048,"stride":1280,"dimstride":2,"pos":262141,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride128_dim1_start0","sha256":["74da49bc415708cc57e211be51dc11261b758fdf65ca23051eb3d710266449a3"],"blocks":1,"stride":128,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride640_dim1_start0","sha256":["aa65179ef015a51d9f3a6d9c95df888662ca8d8234e4bebe20b848e44d01e40c"],"blocks":1,"stride":640,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride1280_dim2_start0","sha256":["c42f057bd56632ab9bcc65cf34f1e585c1b488aae4fa0a124b8a5a7f85b3f547"],"blocks":1,"stride":1280,"dimstride":2,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride128_dim1_start8191","sha256":["1321a0b6b230c56d3061788aa320d1c419e8c731e95588511afc0bfab19e3a01"],"blocks":1,"stride":128,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride640_dim1_start8191","sha256":["a00d1d9534cd8ba1a09f713cb28b69996623285e7ad72035983e12bd830d65b0"],"blocks":1,"stride":640,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride1280_dim2_start8191","sha256":["c6d2a408828310a79d26b8ea761f226d88a0e43d11c4d22dc8229f2567e1078b"],"blocks":1,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride128_dim1_start65535","sha256":["ba2c50948701a09f89cdc3620a7f7961f83f6378d309810026f4000cdead8f34"],"blocks":1,"stride":128,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride640_dim1_start65535","sha256":["3ba2f60a38be10af5c10449462e1427d85521a8792abe079b9f8cdbfd895bd15"],"blocks":1,"stride":640,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n1_stride1280_dim2_start65535","sha256":["a8dc074df37e213039e7e4cf71592e8fe56a51b6dcb4a21b7fe7f3a655c96d32"],"blocks":1,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride128_dim1_start0","sha256":["9dea9804a0a99a7f5c91b2615a168d50f980d22078b741fc0d627c7a67777b05"],"blocks":2,"stride":128,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride640_dim1_start0","sha256":["975cd2e0d39492907eba397757623daf5c5d9b38f5408743f4cf5c0f27c5e479"],"blocks":2,"stride":640,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride1280_dim2_start0","sha256":["2e6245d5c65d7bc51d66a5a742c3764bc40d8c849dff3ecebf696a72da62c962"],"blocks":2,"stride":1280,"dimstride":2,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride128_dim1_start8191","sha256":["da8bca7ed6c44be25b2b14c0965c4fb65d91552545262cfa29cb8b8a965ba53c"],"blocks":2,"stride":128,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride640_dim1_start8191","sha256":["caa46be7b4446442d4476bc0c868d9e73183546ee16b98cd2080781aede57a68"],"blocks":2,"stride":640,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride1280_dim2_start8191","sha256":["0381660b6de7d0673f63f2bdf2f1dad4284e22efba354d7b6ab082c9515a499d"],"blocks":2,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride128_dim1_start65535","sha256":["215929ab4a7e6620a786a79a96c2f3c9d1d0dd6a84eaeb5d777d053299c0cfdc"],"blocks":2,"stride":128,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride640_dim1_start65535","sha256":["cda80eafa0a9238d32552d4e5b556445addf180ba16239c0faa2e772ae859c61"],"blocks":2,"stride":640,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n2_stride1280_dim2_start65535","sha256":["0c494e1d232c37c044dc98ce94b1ed5e5765d2bddcfd2920c2c6808cf3de4712"],"blocks":2,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride128_dim1_start0","sha256":["7df0d05cfabb852f6c742cc7aabc128313fc08c0fe563703c6b1571e8db6661e"],"blocks":7,"stride":128,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride640_dim1_start0","sha256":["2abd326b0c54af6c72a422c9f0136baff2a5784074465b70e27b1ebc5f75791e"],"blocks":7,"stride":640,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride1280_dim2_start0","sha256":["7cc578e4f67b6a3a008e87cd595236e04cdc7cb3d2388d1225ad95cbfa1dd24a"],"blocks":7,"stride":1280,"dimstride":2,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride128_dim1_start8191","sha256":["6dab17bfa08abe148c8d7afb1ad3629cd2ad04abb86cc8dc5d77f456b31058c3"],"blocks":7,"stride":128,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride640_dim1_start8191","sha256":["b1b9b4bb12b06685685c413f20eec15184c4d744841916f0707067f406cc89c1"],"blocks":7,"stride":640,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride1280_dim2_start8191","sha256":["1d36e573f97328eaf6138a544675e8c897f337963b7efefbec803b2da97602d9"],"blocks":7,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride128_dim1_start65535","sha256":["a9fa8216cf0a402a063ec15bb78dde9a1b5c95f6803e7181f95ffc7dd5bfeff1"],"blocks":7,"stride":128,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride640_dim1_start65535","sha256":["b9c63b22d12b0291cf9f27e7418d4be24887eb1625c482f30ea3ff88d714eb0f"],"blocks":7,"stride":640,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n7_stride1280_dim2_start65535","sha256":["b0033c9d860ba531af2777108c7a74ad9db75f68fa3ffac55d57764bd6983746"],"blocks":7,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride128_dim1_start0","sha256":["9f877b58b0434bb16c32e7b09ab589c05680cdecfde2d11be78ffdca68883d1b"],"blocks":512,"stride":128,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride640_dim1_start0","sha256":["a3a11f0b28054db4498e76c94ca3147cafc36abfdb15e91926fde23328d8ed61"],"blocks":512,"stride":640,"dimstride":1,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride1280_dim2_start0","sha256":["e3d297685b64902fcd58add8b6ba385e09ce6dee4c4991af874c6fce463d6d8c"],"blocks":512,"stride":1280,"dimstride":2,"start":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride128_dim1_start8191","sha256":["8ac26b660c37c673e2a431fe5ec1c66324048e994db875432fed94a904ec6021"],"blocks":512,"stride":128,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride640_dim1_start8191","sha256":["bfde96c45eb4bd01348b7c3306864665098563fd4736314d4c1559b72ccd603c"],"blocks":512,"stride":640,"dimstride":1,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride1280_dim2_start8191","sha256":["a8034f6127bad8f8d1400f50a3235ad4fa675e915d63a9cc08734578c86425c9"],"blocks":512,"stride":1280,"dimstride":2,"start":8191,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride128_dim1_start65535","sha256":["84069d99aeff2127e541ac8571f3683a22c14c8231b6be7e3cc59a8cde947219"],"blocks":512,"stride":128,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride640_dim1_start65535","sha256":["690b9accfdac82c29207b428981db8aac9cab84ffddd825ddb34fd4e1986fa4b"],"blocks":512,"stride":640,"dimstride":1,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_pool_eager_n512_stride1280_dim2_start65535","sha256":["41d15c3a8e28fa3c1611cd54d978fdf750065dae5e18f2e7b14c567477e63de9"],"blocks":512,"stride":1280,"dimstride":2,"start":65535,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b4_g64_pos0","sha256":["276b5114dfceed3c0bc60086b9da4b089d2e6ada5c163034c6aad2957954b18c","cbef6d5a371a464711e886e93396d6ae485e212b6af674d2c56a2f6fb5e0f324"],"rows":4,"bits":4,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b4_g64_pos262140","sha256":["0b1867dfb176040985f8ae133bd8aafcd4c747fb895915eb188d85f5c5144ab9","436a5b0c684c997ce82324ec1b0883f8e419e1a618274bfcc12d2a4d06af63b1"],"rows":4,"bits":4,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b4_g64_pos0","sha256":["b6493eba1913e00257b439c37d573f877cccc14191b35ebacefd6493f5478daf","8d2d6a46d07a9bd9772b406a2f9ec5421fe8c00e41f8e04f8386b5ac4fce7ec3"],"rows":8,"bits":4,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b4_g64_pos262140","sha256":["fa025aa3a6b699c5186dd2a97fd408162736408381f35e1ae2d36a39673220cb","aabed0ff0e47087cae5c349a5d60ed64ef444b7716614c4458593fa037f3b3da"],"rows":8,"bits":4,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b4_g64_pos0","sha256":["4e799dc99c38446f93e80a74cd901ff54950ac6b4f64d2e07d2f515b775dc770","f23dfcf044c80dddd2f912131c51d8207a5b51465ef08676668da92e04c73310"],"rows":32,"bits":4,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b4_g64_pos262140","sha256":["9bc2e9a47ba5090e9892ab05cf239327403d854550557cbf38814f177bf51bbd","8d355a17d032b9ab428650018a43b288254a191d760acfe415c1bbd4b618bd7d"],"rows":32,"bits":4,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b4_g64_pos0","sha256":["0f2473d853d2ceeadc48a04311f840ecdb6818d8972d8f77710ffb6c0022dd2d","cee9e2776dc9439afb395e1e5e33be9d0f445c807b3b86a1ab66b7846f8205fe"],"rows":2048,"bits":4,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b4_g64_pos262140","sha256":["49416ee267606dcd70d60236ad3516635415d3e64e0f49a957aeeb8dd4f90767","a1832ee57179401ac96209928adb4a0db4b77a67e5c68da5023b45772ca0270b"],"rows":2048,"bits":4,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b8_g64_pos0","sha256":["c0207fb328898c49b297191c310a8662020cd079daec424bc8e87e8299fae8c4","48001fd942dec5b09b2ba66e5aca434cac49b0784ae976cedf90b83c8a152813"],"rows":4,"bits":8,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b8_g64_pos262140","sha256":["78495093b498a25d871fdd2318c153003c16d71f6ccbf956f0e234184394bbf2","8a47d864688b1d876ab53ee7a6c18390cab11ae9d895f4d1ce28c5e24cca8a5a"],"rows":4,"bits":8,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b8_g64_pos0","sha256":["670b63f4007df35bd3d0581c1669dc91c23eb78e97f3bd3466f98f022bd38451","fdf44a18e52f2fd335321721e1999623e97c8a59fffc0b42f34eb5e49f975c4a"],"rows":8,"bits":8,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b8_g64_pos262140","sha256":["c045085ec14a85147988d36845766d9cd8f6c0d1a148e3941f92b0060e9a42c2","8281550f653eafd8f7ba3ce8087d27e3553866f88405417fcf04d7cd3f030cec"],"rows":8,"bits":8,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b8_g64_pos0","sha256":["cf56e60ad7530686efc662b5a035a50f17d8da176b6cb4201deaed224dea2643","faba6cac7de2293dd7824a619354b688d7514d6d0b2c1cadac9398a453ebab19"],"rows":32,"bits":8,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b8_g64_pos262140","sha256":["c3cae75f6d5d3307306dd08e7fd2f062597e61e1f004e972a9c2a9863056e156","522ea9d91eddb2843d3576e3527347c8517fb22fa5cb590903104fee7d3f0225"],"rows":32,"bits":8,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b8_g64_pos0","sha256":["a21b324598887f92b735c7bf328d51fc017c8118351ad594fced82f1b95d20bc","b9d4cfc0f920769ad1c3a7d55b43064233b4838e213fafe1ebd275adda9afda9"],"rows":2048,"bits":8,"group":64,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b8_g64_pos262140","sha256":["bd8e63cf9167d60110d840d4057f6d200327bb54870764d697a35782a14b675c","3c408c9c18c1276f7f3fae1d56d178cd13921207ba1aa194446ca39e57aa24a8"],"rows":2048,"bits":8,"group":64,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b8_g32_pos0","sha256":["53cd8f6517d22070c9d50a803a3c4b2c47bfde2b71e59d96b4e1d50df9fe61e4","61475437d7344a99a1a804d037628ef7cc25ebb6fbab8c9d2f81d0274610379a"],"rows":4,"bits":8,"group":32,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r4_b8_g32_pos262140","sha256":["4a43f7fee9c4c5149235504b43694a64fb7efd59e777e1751a79125d940b9420","91f02c32a0d068b27305ea2fc70a3782ed8d3a6f2f6713b348dc2498b2ed95d4"],"rows":4,"bits":8,"group":32,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b8_g32_pos0","sha256":["167c2271df093f7aaf49183945d27804756fde4a97f856004659dd1234b6a210","c57a6907c8d7c94958d1a7c3c02ee6565ae53bdd04448ddc56dd816c4a5932cc"],"rows":8,"bits":8,"group":32,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r8_b8_g32_pos262140","sha256":["d0550fc163fcc385cf0ad0c099ea2867a98c9a3909a3fc0a8edf0cf459fe4a25","e136097ae6ab60565131c9b42a78a6634d3f848a8dcb45af36b756cd5505cefb"],"rows":8,"bits":8,"group":32,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b8_g32_pos0","sha256":["7df60f14124b0834bd9bfab62f9bb34f3018c9ee66bdc1f76ea4d46dfbce2b7d","6d146ef5c9440c69a83919e66b80cb13900d3943047100e24200d0d13584b08f"],"rows":32,"bits":8,"group":32,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r32_b8_g32_pos262140","sha256":["70c16a743cda8fe66fd4cb38c553fd95005d07c0949497eb9fe03c6008e568e8","5c491766a01c28e1ef861a1336110345c2188b15422c2668aeda936272beceea"],"rows":32,"bits":8,"group":32,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b8_g32_pos0","sha256":["78ce4a3055a34fe3599d8f259478885f40c9c2e252102ac9f8836922c6d914dd","4c317dbf3e0c3a90cc0b33a4bc158786dc825e4e358f641b2f473631a15df482"],"rows":2048,"bits":8,"group":32,"pos":0,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_project_eager_r2048_b8_g32_pos262140","sha256":["7e60036570c4f09b37a2f0b175e0eff9d989efd767537dca46e42100d825ff88","9eee4555c4de8e7d2c8ab763bc6b494a5a1b95ad28d4c254679e4123149e6c45"],"rows":2048,"bits":8,"group":32,"pos":262140,"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"eager":true} +{"kernel":"qsa_cache_s2_op0","sha256":["988cf1897226a2e69bf71fade741c0e3a7a8544a53a03c1a9a9562e9ddf9fddd","b771a0fb71a52fa3ea8e9a1360a936b0ea019f1c9f519d17fe6043847bfa9a7f","e7887b15455cc682fce9f398b5cc23b54b74e6f43f09e84f1ffe5821f24bd101"],"scenario":2,"index":0,"op":"append","arg":1,"offset":1,"nbytes":589824,"raw_cap":256,"kv_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"present":[true,true,true,false,false],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op1","sha256":["9a2428f8eb3b104e5bd2f40863225b6949bd9cefae944ad755822a5519a7a32c","3035c6f1258a76932dc5c17266b4f2992baceb8a458626ea12b5a53057b8b965","bf260569de33332d2be0958f5ba577588799913ef6009f463abf4f8aa6a6a8fb","96395fbc90bcf4e80b26cb7675cb29c0706987a39179a141efd4c1710cbb54b8","75041bc85815e7686d6f19a30529d87bc5984a7fc4a6aaf945a262fde1533bb4"],"scenario":2,"index":1,"op":"append","arg":3,"offset":4,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op2","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983"],"scenario":2,"index":2,"op":"append","arg":252,"offset":256,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op3","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":2,"index":3,"op":"save","arg":0,"offset":256,"nbytes":655360,"raw_cap":256,"kv_cap":256,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op4","sha256":["2a6b660ffa2f0e18832834a39b05aa332acb710c6a266cdb40504fe4bed4aea7","653508d2af35bbf6b7b48e474b2716395a996f61eb108c1108aae2a9038b3a7a","478a4b674366dac57160be33e38a0a4f6ce39bbe1cec7c1f6f38da8648955871","f0d8b1e7852fde65a4193f24b2eaa0a1751cc033e72bcdaf37f6d0726c77c19d","c4284842c7a905b2b5b4b10b7e699c815c6b8af3cf323642c923f81171738983","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":2,"index":4,"op":"append","arg":1,"offset":257,"nbytes":1245184,"raw_cap":512,"kv_cap":512,"pooled_cap":256,"pooled_len":64,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op5","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":2,"index":5,"op":"append","arg":767,"offset":1024,"nbytes":2426880,"raw_cap":1024,"kv_cap":1025,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op6","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":6,"op":"save","arg":1,"offset":1024,"nbytes":2426880,"raw_cap":1024,"kv_cap":1025,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op7","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","6cfc1ce6274872cbb6dd499898da236a6c768c92788d349907a3150f40bd9847","5af2dd5c717c175be83c79b4cf4f1218e23829e6f62197fa86cbcf9a570d2c5d","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":7,"op":"append","arg":4,"offset":1028,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op8","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","6cfc1ce6274872cbb6dd499898da236a6c768c92788d349907a3150f40bd9847","5af2dd5c717c175be83c79b4cf4f1218e23829e6f62197fa86cbcf9a570d2c5d","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":8,"op":"trim","arg":3,"offset":1025,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":256,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op9","sha256":["0409c78ae1276f1ddd70619c8f63fa9c1645f35a31958e7336ae5d64873fa759","c139dfba56d9a3a352dbf4da762e33cdb1b2fd3e4cad05920ace89ab799f80c3","f5ff7d5bf8bce7c7ba1e7493a4efb58da6f4c9a1f576d92257493f913c6a8542","903c881860a7f1907aca04fa2eb195b9a05d6c5a64fd613c0e61878cd61972c1","35b050079cf7a1ef91d6856815c2a57646b0ecc3e1f772f815ba822441dbc1db","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":9,"op":"append","arg":7,"offset":1032,"nbytes":3278848,"raw_cap":2048,"kv_cap":1281,"pooled_cap":512,"pooled_len":258,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op10","sha256":["0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":10,"op":"restore","arg":1,"offset":1024,"nbytes":2424832,"raw_cap":1024,"kv_cap":1024,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op11","sha256":["4930ac0b31915dbf892c8116e60ba05335e4254afe508bc2796468974d9e1255","5f2fe9763ab151b55af2a8c999b6afcf80b59b409bfe7d0a0f3ca747f544f1d0","1aa103e9a50d3e9651db045a2289776fd1e05e0ed29d0e3a5fd9d752e0673879","ad637c9f2ef8fc752f3246496b70e6ce5320f872e63126a014b187ae35a42df7","a5d97ff401f4e64f8076781dfd938d78b308ea4e95eb7dbbdcbf1ab627268076","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":11,"op":"append","arg":4,"offset":1028,"nbytes":3276800,"raw_cap":2048,"kv_cap":1280,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op12","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":12,"op":"restore","arg":0,"offset":256,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":64,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op13","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":13,"op":"trim","arg":5,"offset":251,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":62,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op14","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":14,"op":"append","arg":2,"offset":253,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op15","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","c64857fb550e7fceec6dd9151bbd643e190c9cd0b3f857c33f2cca802ed98518","10a5c9964b2aebdb10222435d29e35b4e9c2f45f83d0f4a1f19a5c11fb7d0612","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":15,"op":"reserve","arg":[1600,600],"offset":253,"nbytes":1087488,"raw_cap":1600,"kv_cap":256,"pooled_cap":600,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op16","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":2,"index":16,"op":"append","arg":1029,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op17","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":2,"index":17,"op":"save","arg":2,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op18","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":2,"index":18,"op":"trim","arg":100000,"offset":0,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op19","sha256":["fec15a93080909709d325fbe9aa0894d30f2b36d20451945c8e52b4ac33ec3ae","bc598d6ede66557f5a7d3ba5050064675449c86d2304d00838a80a9b63615d34","3b84cb6038b391b9b64218655e93a01adeab98c1a02c50c95c091013e78b5fff","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":2,"index":19,"op":"append","arg":2,"offset":2,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op20","sha256":["6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4","d5f9a315cd80a77a397f01f00d37fb68cdccc4c148737e4de429737f18a5acba","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":2,"index":20,"op":"restore","arg":2,"offset":1282,"nbytes":3035648,"raw_cap":1282,"kv_cap":1282,"pooled_cap":320,"pooled_len":320,"mirror_cap":320,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s2_op21","sha256":["0e81c6f00985035ba85170fd9fb9ef1054165fd4fab6e62fa7795f68767ca0a7","dc9d2522603a58b577108f0e5c165d797b296ba0ac26be720211d0b88cde927f","c6fb3bc4399756d30911d6853b0c0d00f2b6694dbba37bc865e771bfbc21289c","cb954ad1289cf47c2b54be232f8d1152a82e5846c2e356f0b370de41987069c3","248d24e62d1fe94aa59501bd3a68b6c7aa2a69ed1a22237e0e14c6e5e67dab00","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":2,"index":21,"op":"append","arg":3,"offset":1285,"nbytes":3970048,"raw_cap":2564,"kv_cap":1538,"pooled_cap":640,"pooled_len":321,"mirror_cap":640,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op0","sha256":["988cf1897226a2e69bf71fade741c0e3a7a8544a53a03c1a9a9562e9ddf9fddd","b771a0fb71a52fa3ea8e9a1360a936b0ea019f1c9f519d17fe6043847bfa9a7f","35c1f952466deef1e707b4173a2448f174f4c371d9c475bde52bf9cd7ebea167"],"scenario":3,"index":0,"op":"append","arg":1,"offset":1,"nbytes":601088,"raw_cap":300,"kv_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"present":[true,true,true,false,false],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op1","sha256":["9a2428f8eb3b104e5bd2f40863225b6949bd9cefae944ad755822a5519a7a32c","3035c6f1258a76932dc5c17266b4f2992baceb8a458626ea12b5a53057b8b965","c8e95a99b3eaf4ec11c0d5877fe6992e655f38512d30751e0492172a65f45866","ea91af07b7748fff97dc66d528847b27066a350f614c5122ac9ee5eba7b65d6b","f5b411eb0cdc2fe896faae42a0b5443d8118b02d67ab6797834010e922ddec20"],"scenario":3,"index":1,"op":"append","arg":3,"offset":4,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":1,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op2","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","73bd7bddfdc68763d741668d288154878f2dc3ab869ee16ee6aa26c6f7f66d1c","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097"],"scenario":3,"index":2,"op":"append","arg":252,"offset":256,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op3","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","73bd7bddfdc68763d741668d288154878f2dc3ab869ee16ee6aa26c6f7f66d1c","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":3,"index":3,"op":"save","arg":0,"offset":256,"nbytes":677888,"raw_cap":300,"kv_cap":256,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op4","sha256":["2a6b660ffa2f0e18832834a39b05aa332acb710c6a266cdb40504fe4bed4aea7","653508d2af35bbf6b7b48e474b2716395a996f61eb108c1108aae2a9038b3a7a","7134b3a613d3dbd97aafde9e1c326c37e667eb90e1b4fcf2e6d7595bec521597","0b8da21ffe5077c39d15a5aca48e1997d416adee75314e8ed9656a3cad229a29","ec6b9da17e6183331e7824597fb212e8e2e2f4dbd16ce30d0608cbc79908f097","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":3,"index":4,"op":"append","arg":1,"offset":257,"nbytes":1202176,"raw_cap":300,"kv_cap":512,"pooled_cap":300,"pooled_len":64,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op5","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","29e215bfa3c95b23a4f7ba48fe6d534c4bc5049cff8883c2b5a93b978dce29d2","d845f5d94b8f0cea39663b41eb4adba9c639456f0866c437ab9be04453409b69","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1"],"scenario":3,"index":5,"op":"append","arg":767,"offset":1024,"nbytes":2438144,"raw_cap":1024,"kv_cap":1025,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op6","sha256":["f3655ec5c22950a021f20f85e0b80f0e17d67ad301213520c12c27533ea57c0a","f281c0191b3f3c4f4705c92cd039cbd2049cb8bd65f202d1105eb15d25611624","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","29e215bfa3c95b23a4f7ba48fe6d534c4bc5049cff8883c2b5a93b978dce29d2","d845f5d94b8f0cea39663b41eb4adba9c639456f0866c437ab9be04453409b69","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":6,"op":"save","arg":1,"offset":1024,"nbytes":2438144,"raw_cap":1024,"kv_cap":1025,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op7","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","989ddccf4849fb3d989c1f7114a22a28573b855fb51d3de6dcd83996b9e8e47c","42bf364f17bdb5017241a162ea5d338a1deadfb8e36eb962401717a6708fd460","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":7,"op":"append","arg":4,"offset":1028,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":257,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op8","sha256":["618123d668e38e97c1b3f2b368e265ef8c7e00a28040d404a22f97f804549f6b","7bc976576b0bc674c6f63fb0b6d83a364d716f7b50d2fcf59b0fda071f301941","975e784306731ba4489fae133917a3aa44c4dadf49e4a8f2ec0363c8ada98cc5","989ddccf4849fb3d989c1f7114a22a28573b855fb51d3de6dcd83996b9e8e47c","42bf364f17bdb5017241a162ea5d338a1deadfb8e36eb962401717a6708fd460","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":8,"op":"trim","arg":3,"offset":1025,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":256,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op9","sha256":["0409c78ae1276f1ddd70619c8f63fa9c1645f35a31958e7336ae5d64873fa759","c139dfba56d9a3a352dbf4da762e33cdb1b2fd3e4cad05920ace89ab799f80c3","f5ff7d5bf8bce7c7ba1e7493a4efb58da6f4c9a1f576d92257493f913c6a8542","7c0e18c6ab23d7b72b1f8e41628ba6ba2b852d6589f0348180cdb9eef54fc7cd","f53bcbde78738f7408d340069d149836f2f0da598c9dac8db4e421decd8f1866","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":9,"op":"append","arg":7,"offset":1032,"nbytes":3224576,"raw_cap":2048,"kv_cap":1281,"pooled_cap":300,"pooled_len":258,"mirror_cap":300,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op10","sha256":["0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","fa05590c7c5c988077902ccfba88e3d5805b9f24091d04db668b46bb70ab517b","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":10,"op":"restore","arg":1,"offset":1024,"nbytes":2424832,"raw_cap":1024,"kv_cap":1024,"pooled_cap":256,"pooled_len":256,"mirror_cap":256,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op11","sha256":["4930ac0b31915dbf892c8116e60ba05335e4254afe508bc2796468974d9e1255","5f2fe9763ab151b55af2a8c999b6afcf80b59b409bfe7d0a0f3ca747f544f1d0","1aa103e9a50d3e9651db045a2289776fd1e05e0ed29d0e3a5fd9d752e0673879","ad637c9f2ef8fc752f3246496b70e6ce5320f872e63126a014b187ae35a42df7","a5d97ff401f4e64f8076781dfd938d78b308ea4e95eb7dbbdcbf1ab627268076","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":11,"op":"append","arg":4,"offset":1028,"nbytes":3276800,"raw_cap":2048,"kv_cap":1280,"pooled_cap":512,"pooled_len":257,"mirror_cap":512,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op12","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":12,"op":"restore","arg":0,"offset":256,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":64,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op13","sha256":["f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","592a3d00ca10864de83d3a90ec18721d015cb2c156b6aaa8de41102ce1719af0","f1b60a4494889ec46efd7bb75861f809d03d24fd487be2b75dc16d7b57d544fb","d05d516fa72ddf14ec0ecf30e9f36a817104a7135609beb3d4baadd7647870b5","354982d3de143fc215b961e3e38fe93f9e9f00dd72ebb514bd939b468412ddba","0b413f8044d95377d87722912d53395256554e50de8647db1cff2d0855202bd1","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":13,"op":"trim","arg":5,"offset":251,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":62,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op14","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":14,"op":"append","arg":2,"offset":253,"nbytes":606208,"raw_cap":256,"kv_cap":256,"pooled_cap":64,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op15","sha256":["fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","c64857fb550e7fceec6dd9151bbd643e190c9cd0b3f857c33f2cca802ed98518","10a5c9964b2aebdb10222435d29e35b4e9c2f45f83d0f4a1f19a5c11fb7d0612","f509767facdc6f74ce5f7247d179079e7f8a7548f9f3453d98b0aaa5daa098d1","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":15,"op":"reserve","arg":[1600,600],"offset":253,"nbytes":1087488,"raw_cap":1600,"kv_cap":256,"pooled_cap":600,"pooled_len":63,"mirror_cap":64,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op16","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7"],"scenario":3,"index":16,"op":"append","arg":1029,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op17","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":3,"index":17,"op":"save","arg":2,"offset":1282,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":320,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op18","sha256":["c9963cc5862d0304bf59d8342a9765470bcea5d2e42a2261633d5b1a3eb8d3ab","847e5547e15b17cf45d86e83a1a3d239ed2cd3106850f317647dcdf72f89b417","a2f0ad09582628433657998b3b750fcb88996c26f235f533d4216160ac2e4af9","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":3,"index":18,"op":"trim","arg":100000,"offset":0,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op19","sha256":["fec15a93080909709d325fbe9aa0894d30f2b36d20451945c8e52b4ac33ec3ae","bc598d6ede66557f5a7d3ba5050064675449c86d2304d00838a80a9b63615d34","3b84cb6038b391b9b64218655e93a01adeab98c1a02c50c95c091013e78b5fff","0d5518fd6d710203f13a82325ce5f7ea7346428105fbc2f510f09aa149359ffc","8763cf69972b2be12bbbbc63ae0cef95d8a59569ddff4fe9a2010160808fd3db","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":3,"index":19,"op":"append","arg":2,"offset":2,"nbytes":3702784,"raw_cap":1600,"kv_cap":1533,"pooled_cap":600,"pooled_len":0,"mirror_cap":600,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op20","sha256":["6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4","d5f9a315cd80a77a397f01f00d37fb68cdccc4c148737e4de429737f18a5acba","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":3,"index":20,"op":"restore","arg":2,"offset":1282,"nbytes":3035648,"raw_cap":1282,"kv_cap":1282,"pooled_cap":320,"pooled_len":320,"mirror_cap":320,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_cache_s3_op21","sha256":["0e81c6f00985035ba85170fd9fb9ef1054165fd4fab6e62fa7795f68767ca0a7","dc9d2522603a58b577108f0e5c165d797b296ba0ac26be720211d0b88cde927f","c6fb3bc4399756d30911d6853b0c0d00f2b6694dbba37bc865e771bfbc21289c","cb954ad1289cf47c2b54be232f8d1152a82e5846c2e356f0b370de41987069c3","248d24e62d1fe94aa59501bd3a68b6c7aa2a69ed1a22237e0e14c6e5e67dab00","fdcd4a92602230024704a7952cd2d113dee08c91071bf717317c59bd125b41cb","f666806271d969bc6b8a74095df9c7afb65711dfe51d2a820a4f0a42ce1676e4","a498a84203cbaa918c5952afa850d477e0a34aa7a2b521f8151c6d4b1fb75cf1","38bc6ff09c0ca620a5a94c7fc211f421e84e33311bb3c7e2315c95bfe0b32763","0d79512201da7b31aa233a0ff24b19a0787d743105560237e0b8ab13c19b1955","2458825babfcff87f907b721f9124bf23a7fb3279d8cb4a1f7db7cb1a35fcd35","fc75f7ac425cb7a5526a5a6abeedc559c569a754419f5107047a6bb8e8daaa36","1b42709cd9144b41d540dd9a318eb33dd4b2c142171c32cdc5ba4fc0afd745c7","6b60cdb87c306a5d6cb5438a737647c981a9be6ec01905d4300fb122c958581f","87865c03e3138b6c70676b22e52c9dfa7e2f4fa3029e4e73080d64195147deed","b9bea71b41fea87ad95ff0ae0a94afcf498e18f46583e46d04bab3995b74f528","299847fb57724cc6b365dc45d485fe51bee3b9138516b3108779360722a9f4b4"],"scenario":3,"index":21,"op":"append","arg":3,"offset":1285,"nbytes":3970048,"raw_cap":2564,"kv_cap":1538,"pooled_cap":640,"pooled_len":321,"mirror_cap":640,"present":[true,true,true,true,true],"bank":[0,1,2],"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk0_step0","sha256":[],"scenario":0,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"ff301985fe4112cb858ebae08827ef7041883c302ab9bd910887bf5c1dec7488","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk0_step1","sha256":[],"scenario":0,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"f10a627725ff0f96c6c279917c3a4bb3355dbd297f089b10d37d8f909a97ea4f","pooled":"d2d333f78733a05d467ed3b40b85cfdc4f56f3269eb8515a354bb04802c7f727","mirror":"24f6967093afef20eb0f8d710519ff51ab5f3333d13c70c50b8df279bd247e3d"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk0_step2","sha256":[],"scenario":0,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"2d5fabd209a767d8b11458d6bea4e3271ae4c09f159a9333a3036c48d5689f4d","pooled":"04266e882b8724f19cf057760f1b14a54adf5a3acae3acd63e496c963ef2284c","mirror":"4aa8988ac4a7e4195f64fd79584713350dfac6ff52f7b0a20b2b040847fcb13b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk0_step3","sha256":[],"scenario":0,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"f464771e330acb577bf9b3740baebb1ca401c553cb6132c1a0267998618769fd","pooled":"24b734bd83a956bb01722259e25dbf34b03f6ac502d86bd589ab0faa0b015eed","mirror":"733fe6e5aa822b541b3b121e2260bde86e2b23e4c9f1e972b15f56ab4bdf465f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk0_step4","sha256":["beea1bf2d506b1740a7efa9b8b0ca228db63526dd0409aa013d09768bc89c44a"],"scenario":0,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"0c6e5a8ec0707afd2c44694d3b3a52468b7a78dcbda3680f60276367d8f2ec46","pooled":"45762700fc8ffacda0f0cb1b2c50b3f693add231e46714ff886f238347c92087","mirror":"af7f7b3de58c098c4138c1b56eb476bda8b3f0946985c49139b9d34e355e48bd"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk1_step0","sha256":[],"scenario":0,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"61e23f83a21ea312042e66647c7541c8acf28d125bc95cbd751f871cb0b82984","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk1_step1","sha256":[],"scenario":0,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"b107dd88b213385db181275588b12b86c38f641541c52317dc9986b93e1761d8","pooled":"ebc08d67636fe6de366a254e307d5eeae71937c427338fdea9b8b36c4a37a17c","mirror":"9f2a5266f7b4d3cfa2fbbfdd2f978fa1ec1c6aa8bab14b31448cc7bd66355c7c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk1_step2","sha256":[],"scenario":0,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"8973c0772d4d2e142377b9a239875f1e8d8ccfb482f5dd0fb35e0f3ed53d0e56","pooled":"6e75a9e030818179937d822de3563bc7df567b5ee469d90bee8f28d6b64c2fce","mirror":"b3550671ee214b92a21f451e28c71a78e7b0fabe14db4391b4db50c7f1ba4592"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk1_step3","sha256":[],"scenario":0,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"709adaa4b5860fd83fe5f833eafa8bcc5a33f5eab54b06f659ecf3d6662dc7c6","pooled":"55c1b7cdc29a81f4b3a484810440c6b0a8c0a3d430e8102f62d5d8fce8797cc1","mirror":"e35eaaae73859101e6150c84a890c3264b12755e8f626025cb2b73021c7ef2a5"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s0_qk1_step4","sha256":["7ef6d183746435bdf48a5cb46138afb5847d43d40f10bb25574233317375dfb4"],"scenario":0,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"e20465d841846b790ebfd4d09b704c8b88475845f2735685459744ca7e7965fc","pooled":"c8569d883013ed76b4ddb12350233a67139224b0068bd8891d31586c2a634b9d","mirror":"617420c268da5c17097292c8097e01e62594b2f9170663fb690a8880ac907e1e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk0_step0","sha256":[],"scenario":1,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"ff301985fe4112cb858ebae08827ef7041883c302ab9bd910887bf5c1dec7488","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk0_step1","sha256":[],"scenario":1,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"f10a627725ff0f96c6c279917c3a4bb3355dbd297f089b10d37d8f909a97ea4f","pooled":"d2d333f78733a05d467ed3b40b85cfdc4f56f3269eb8515a354bb04802c7f727","mirror":"24f6967093afef20eb0f8d710519ff51ab5f3333d13c70c50b8df279bd247e3d"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk0_step2","sha256":[],"scenario":1,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"2d5fabd209a767d8b11458d6bea4e3271ae4c09f159a9333a3036c48d5689f4d","pooled":"04266e882b8724f19cf057760f1b14a54adf5a3acae3acd63e496c963ef2284c","mirror":"4aa8988ac4a7e4195f64fd79584713350dfac6ff52f7b0a20b2b040847fcb13b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk0_step3","sha256":[],"scenario":1,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"f464771e330acb577bf9b3740baebb1ca401c553cb6132c1a0267998618769fd","pooled":"24b734bd83a956bb01722259e25dbf34b03f6ac502d86bd589ab0faa0b015eed","mirror":"733fe6e5aa822b541b3b121e2260bde86e2b23e4c9f1e972b15f56ab4bdf465f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk0_step4","sha256":["beea1bf2d506b1740a7efa9b8b0ca228db63526dd0409aa013d09768bc89c44a"],"scenario":1,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"0c6e5a8ec0707afd2c44694d3b3a52468b7a78dcbda3680f60276367d8f2ec46","pooled":"45762700fc8ffacda0f0cb1b2c50b3f693add231e46714ff886f238347c92087","mirror":"af7f7b3de58c098c4138c1b56eb476bda8b3f0946985c49139b9d34e355e48bd"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk1_step0","sha256":[],"scenario":1,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"61e23f83a21ea312042e66647c7541c8acf28d125bc95cbd751f871cb0b82984","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk1_step1","sha256":[],"scenario":1,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"b107dd88b213385db181275588b12b86c38f641541c52317dc9986b93e1761d8","pooled":"ebc08d67636fe6de366a254e307d5eeae71937c427338fdea9b8b36c4a37a17c","mirror":"9f2a5266f7b4d3cfa2fbbfdd2f978fa1ec1c6aa8bab14b31448cc7bd66355c7c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk1_step2","sha256":[],"scenario":1,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"8973c0772d4d2e142377b9a239875f1e8d8ccfb482f5dd0fb35e0f3ed53d0e56","pooled":"6e75a9e030818179937d822de3563bc7df567b5ee469d90bee8f28d6b64c2fce","mirror":"b3550671ee214b92a21f451e28c71a78e7b0fabe14db4391b4db50c7f1ba4592"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk1_step3","sha256":[],"scenario":1,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"709adaa4b5860fd83fe5f833eafa8bcc5a33f5eab54b06f659ecf3d6662dc7c6","pooled":"55c1b7cdc29a81f4b3a484810440c6b0a8c0a3d430e8102f62d5d8fce8797cc1","mirror":"e35eaaae73859101e6150c84a890c3264b12755e8f626025cb2b73021c7ef2a5"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s1_qk1_step4","sha256":["7ef6d183746435bdf48a5cb46138afb5847d43d40f10bb25574233317375dfb4"],"scenario":1,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"e20465d841846b790ebfd4d09b704c8b88475845f2735685459744ca7e7965fc","pooled":"c8569d883013ed76b4ddb12350233a67139224b0068bd8891d31586c2a634b9d","mirror":"617420c268da5c17097292c8097e01e62594b2f9170663fb690a8880ac907e1e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step0","sha256":[],"scenario":2,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"6f326161c8a5968200f91dd69cd9d7f7c52c6039dacc56d57464cf9bea19e02d","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step1","sha256":[],"scenario":2,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"5d31ec1dcc3ab91d7406ca47432f98f990b540241116a7d41e995c12bed92c3f","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step2","sha256":[],"scenario":2,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"469c2f35a36bd2ce8a3c1fb4dd4b655b1ab7fc751ea7d7284c56c4a9488dbc66","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step3","sha256":["0639a96654a014ca82556057c43bcf7b67ab5b1526cb652ef0933d83deba476a"],"scenario":2,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"flash","lane":"eager","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"8c3b30f4a674062f989259c9d3c24d3e0bda509a49760b1e43c9356416eb6b72","pooled":"7296ca48cf9ac0671a3be4420ec09438dd9d882ad5536dd5cec0f118247a2de8","mirror":"67aa80c0740408d92a2c48625ee6bacbd1e4e5ca43f642cc19ddd119cdbae3e1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step4","sha256":["23180a69ac0e0a4e6d142736fd2b11503475a17c68847b178e509b10c147bb22","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":2,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"8d86d917fe5afd4762704aff6492188238ca1f7616c26f70c45ef57a27ef3903","pooled":"5260a93789a9ae15b3770837abd6fd578b83f1580f047352e1f1504fb648eb03","mirror":"9e117c6b375c46602cfef8fefa847e25deb932dfd88dbb0b1841af57655bd173"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk0_step5","sha256":["bd06283445a687232cf0e324f17795d158a94e7f8aa4046eb7e122610c38213b"],"scenario":2,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"1f45f50c636f0104e2de5f06243fbf78e345146998ef9ebb364dec98df268998","pooled":"f45700c256a46548e7a8c9b7db2624912ed92161d48623cc3ed547d22e319723","mirror":"76c7c133045f0697b4026eaf09e06b30afccc50d63474260c85e30264fb9bfbb"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step0","sha256":[],"scenario":2,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"029e717e6ac8439dfde32103ee453b11053260e1668be3512a1da04adfa3d1e4","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step1","sha256":[],"scenario":2,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a304e4af78dded173262aac27bdcf49313ec6ded11d31f056cbeb640ebc34365","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step2","sha256":[],"scenario":2,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a856dab9ad88e3bbfd380f041184181379928a48f5741a1c93d7708e5a0f07f9","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step3","sha256":["30fe490cce4776c39d51b95f0ce012e5f73f5556795d2f4ab2b66086e0dad240"],"scenario":2,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"flash","lane":"eager","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ad9e29955f9ebaa7ddb120233a85ed921bf22a32460c8e4f4e5516e44f37603d","pooled":"1a516f03946eec0843f918f396421ec48c4b093d5db6a2793ccad70dfd4199df","mirror":"a4a00ce864b930b280f05b54d038dd870e83673e11628882265fb662fa5f423e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step4","sha256":["0144b2dfc6a7e7e8142afb86a7cd2b88e2d91aa4884e4c05a55b192d8642b520","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":2,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"a2214c1b4b9ee5bbbd6d372b038c2be7015e62fec38a7731954fda2f38b9873c","pooled":"be56e3c7cc45f7037d9fbaf57e8fc18671a96612f877c66d706d7601b76eb85f","mirror":"fafdd19c2bb12bb95ee3a9d801d9e4f44b7f5355fda0cf1c26a2e8665fa65805"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s2_qk1_step5","sha256":["0d572bce5378a1ee496896767320d4d6823dffe399e4fe0c3f741956dd672b54"],"scenario":2,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"faf0f6dd24bd0061285642b1b0985b594b65507735d8526db5ec69d6a94502d5","pooled":"730feaa349db7a60dea03b1ec35bc2870b37acd48db718c626ef3af27b52e633","mirror":"7928bd111a9bf290ae85d205a17a1cb59179a8ddbf71fee96e59a7927e02edec"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step0","sha256":[],"scenario":3,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"6f326161c8a5968200f91dd69cd9d7f7c52c6039dacc56d57464cf9bea19e02d","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step1","sha256":[],"scenario":3,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"5d31ec1dcc3ab91d7406ca47432f98f990b540241116a7d41e995c12bed92c3f","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step2","sha256":[],"scenario":3,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"469c2f35a36bd2ce8a3c1fb4dd4b655b1ab7fc751ea7d7284c56c4a9488dbc66","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step3","sha256":["0639a96654a014ca82556057c43bcf7b67ab5b1526cb652ef0933d83deba476a"],"scenario":3,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"flash","lane":"legacy_fused","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"8c3b30f4a674062f989259c9d3c24d3e0bda509a49760b1e43c9356416eb6b72","pooled":"7296ca48cf9ac0671a3be4420ec09438dd9d882ad5536dd5cec0f118247a2de8","mirror":"67aa80c0740408d92a2c48625ee6bacbd1e4e5ca43f642cc19ddd119cdbae3e1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step4","sha256":["23180a69ac0e0a4e6d142736fd2b11503475a17c68847b178e509b10c147bb22","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":3,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"gather_rows","lane":"legacy_fused","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"8d86d917fe5afd4762704aff6492188238ca1f7616c26f70c45ef57a27ef3903","pooled":"5260a93789a9ae15b3770837abd6fd578b83f1580f047352e1f1504fb648eb03","mirror":"9e117c6b375c46602cfef8fefa847e25deb932dfd88dbb0b1841af57655bd173"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk0_step5","sha256":["bd06283445a687232cf0e324f17795d158a94e7f8aa4046eb7e122610c38213b"],"scenario":3,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"1f45f50c636f0104e2de5f06243fbf78e345146998ef9ebb364dec98df268998","pooled":"f45700c256a46548e7a8c9b7db2624912ed92161d48623cc3ed547d22e319723","mirror":"76c7c133045f0697b4026eaf09e06b30afccc50d63474260c85e30264fb9bfbb"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step0","sha256":[],"scenario":3,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"029e717e6ac8439dfde32103ee453b11053260e1668be3512a1da04adfa3d1e4","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step1","sha256":[],"scenario":3,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a304e4af78dded173262aac27bdcf49313ec6ded11d31f056cbeb640ebc34365","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step2","sha256":[],"scenario":3,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a856dab9ad88e3bbfd380f041184181379928a48f5741a1c93d7708e5a0f07f9","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step3","sha256":["30fe490cce4776c39d51b95f0ce012e5f73f5556795d2f4ab2b66086e0dad240"],"scenario":3,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"flash","lane":"legacy_fused","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ad9e29955f9ebaa7ddb120233a85ed921bf22a32460c8e4f4e5516e44f37603d","pooled":"1a516f03946eec0843f918f396421ec48c4b093d5db6a2793ccad70dfd4199df","mirror":"a4a00ce864b930b280f05b54d038dd870e83673e11628882265fb662fa5f423e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step4","sha256":["0144b2dfc6a7e7e8142afb86a7cd2b88e2d91aa4884e4c05a55b192d8642b520","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":3,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"gather_rows","lane":"legacy_fused","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"a2214c1b4b9ee5bbbd6d372b038c2be7015e62fec38a7731954fda2f38b9873c","pooled":"be56e3c7cc45f7037d9fbaf57e8fc18671a96612f877c66d706d7601b76eb85f","mirror":"fafdd19c2bb12bb95ee3a9d801d9e4f44b7f5355fda0cf1c26a2e8665fa65805"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s3_qk1_step5","sha256":["0d572bce5378a1ee496896767320d4d6823dffe399e4fe0c3f741956dd672b54"],"scenario":3,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"faf0f6dd24bd0061285642b1b0985b594b65507735d8526db5ec69d6a94502d5","pooled":"730feaa349db7a60dea03b1ec35bc2870b37acd48db718c626ef3af27b52e633","mirror":"7928bd111a9bf290ae85d205a17a1cb59179a8ddbf71fee96e59a7927e02edec"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk0_step0","sha256":["16401cddf0fd873daf56c0767953ab146104eb28df6615da265d0a1c9920dc44"],"scenario":4,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash","lane":"eager","tail":2052,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk0_step1","sha256":["f74fe032f590f81ed1bbbeb126db2e68cc7a175690d75464dc568a5ca2f8e9ba","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":4,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"gather_rows","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"cbdf6c6432fa318765aed40f9d4a06daeaef888b9de0c120f7c89784869d15ed","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":"e3ef3c7009bb7da474518ce14e2762d81cef9362d22ad5b593ca71e4503deb8e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":4,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"98c4a07efd9d43cca62d30e8e45fdcaf65be3db5f60fe853aafc44d62a40e3e0","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk1_step0","sha256":["16401cddf0fd873daf56c0767953ab146104eb28df6615da265d0a1c9920dc44"],"scenario":4,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash","lane":"eager","tail":2052,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk1_step1","sha256":["7fe73a01528bfa9a4af4a4c7a8e73af97a1204baf3fb50f24d90b992554d270d","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":4,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"gather_rows","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"61f13ffeb583d2fccc87db807373e04a9878e9b8f342aa8b05a624fd28b2e3ee","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":"47aede42ba259e18d9178ad67021518759c413343daf120968b8740a5c59e52e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s4_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":4,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"0a314be0b97d39a64f22288519d906e98c9ff745955967101150092424c6201b","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk0_step0","sha256":["2a0bd3d32e9af6e30a495d58ae2026970039991997f54f0bf95f0376e3879979"],"scenario":5,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"decode_tokens","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":5,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"cbdf6c6432fa318765aed40f9d4a06daeaef888b9de0c120f7c89784869d15ed","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":"e3ef3c7009bb7da474518ce14e2762d81cef9362d22ad5b593ca71e4503deb8e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":5,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"98c4a07efd9d43cca62d30e8e45fdcaf65be3db5f60fe853aafc44d62a40e3e0","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk1_step0","sha256":["2a0bd3d32e9af6e30a495d58ae2026970039991997f54f0bf95f0376e3879979"],"scenario":5,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"decode_tokens","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":5,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"61f13ffeb583d2fccc87db807373e04a9878e9b8f342aa8b05a624fd28b2e3ee","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":"47aede42ba259e18d9178ad67021518759c413343daf120968b8740a5c59e52e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s5_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":5,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"0a314be0b97d39a64f22288519d906e98c9ff745955967101150092424c6201b","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk0_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":6,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":6,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"cbdf6c6432fa318765aed40f9d4a06daeaef888b9de0c120f7c89784869d15ed","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":"e3ef3c7009bb7da474518ce14e2762d81cef9362d22ad5b593ca71e4503deb8e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":6,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"98c4a07efd9d43cca62d30e8e45fdcaf65be3db5f60fe853aafc44d62a40e3e0","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk1_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":6,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":6,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"legacy_fused","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"61f13ffeb583d2fccc87db807373e04a9878e9b8f342aa8b05a624fd28b2e3ee","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":"47aede42ba259e18d9178ad67021518759c413343daf120968b8740a5c59e52e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s6_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":6,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"0a314be0b97d39a64f22288519d906e98c9ff745955967101150092424c6201b","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s7_qk0_step0","sha256":["d9ecf3be4527e0b68e335a3c8f6b28b6b353e94e697763f4b74af3375c1e8c6b"],"scenario":7,"step":0,"prefix":2051,"rows":4,"pos":2051,"total":2055,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f7c5d8d70d8d82c62eb2f9e2270ecc2059ad59e48e37fb73fa4249afa7593540","pooled":"08a20cdcdf38ed81904816ed9982deaa453e1137f7ac1d0b212142e7aec94b9e","mirror":"8b578001ec50f5fa2a995258ee53e72b0d1db74401344ba6d91c03b53e3e1b53"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s7_qk0_step1","sha256":["23fba525826d1843a52bd4dc163081b1a2bd76ee25167fea1d960330d26ba442"],"scenario":7,"step":1,"prefix":2051,"rows":33,"pos":2055,"total":2088,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"acf2c48ae4782b63ae4297cb00dddf949f08096642aae3f4ea03bcaf00f7305f","pooled":"4cf9b4b1f300b69b0b4d198598243109a4cbdd16bbba722538317330321e59ac","mirror":"15acee73d009b343d6f1341824ba969519d1c0d0a5fcd56887fe84a8f5163736"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s7_qk1_step0","sha256":["a8aac2e321fee399c8596fea525c9429e390c9b76c3dcf9620118a0a9549eb85"],"scenario":7,"step":0,"prefix":2051,"rows":4,"pos":2051,"total":2055,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"63961e4c151a7f3504f5c176e68172561897458b861b2719d6244fa6882ac033","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s7_qk1_step1","sha256":["1e0d5826084860d08c35c29d605f4c7d83bd0ea4677415f8c2325154d893ddef"],"scenario":7,"step":1,"prefix":2051,"rows":33,"pos":2055,"total":2088,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"d7b85217267b5487c0e20f6d542da24107d39ba8e009246af416ca3f9bad3d3e","pooled":"d1952959000b0b9090034baf6b66964216d8220de79f0794e8a6941cbfb1746e","mirror":"30d07d39f4ce102ddec5716a3ea1a50997a15675d2e1bcc7a2aca70a47628357"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk0_step0","sha256":["f025c4551e90c86823f821e9f4162188e0038e380f0779b841d2218aec29f851"],"scenario":8,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"dc955e1cf1d38ab17d205a222693514b3fc9642a803d9937e6afaa00d9c3bacb","pooled":"3d27b9f5171507a5f60c824a901fc60b5991b53e15e14d4b73b8c166c2c8e6f3","mirror":"a499458acbb8bd879d35a2afdbfe01e38500569d0648ed1044f06cb964ba06b8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk0_step1","sha256":["297665eee1a6fc9d1fdee35e3bf992aaf3a135a98f96af15b446fe9b8192566e","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":8,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"e991201c55971e4090e8971b240bd3c68450c2f8f04cb8fa8e7c37d0eb5e5e42","pooled":"3f26487f4a54c7b5df6c8249ccca22252331cb3f4cb0d63a028780927bf9d17a","mirror":"6fe11da64f53b004c45f242eab74414633a47d657b50206291dd681c03706509"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk0_step2","sha256":["6ad74c92df2788e9dd4bef59ce9adf02a043f88de001bc7c4dc62d2b4a972b49","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":8,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"0ee387f8dced4c65dd204b02206e75cbf682b56485c714dc971a023eb00b075d","pooled":"b015c32276025698b98bc755329db5d0eaad6cd9e7cb3afaca2105b29e7bd51f","mirror":"945ef420b617ee60e8f6dd2877e77123a1bd294abb9721330f3e4be2cf72fdf6"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk1_step0","sha256":["366a66bacb85ed92a0a074a9be494ec2aa0481599fe99c077265f645e12dc422"],"scenario":8,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"80d1fd62a688cb23eec870488a32444a4401e2b427ed14cc6a207699ba92574c","pooled":"9bb86fcd11ca33efedd27a547451e8ebb70f58ebf3d45e67a56a75c74d45e9bb","mirror":"8461fd8de94be0f4a4581f0d611df3891ec1a3197217c13c395ac9167ad8353f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk1_step1","sha256":["e8450635a8d71458c220af4c21d6cb4c8604a3da4e244fdd31754f0a9f8ce304","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":8,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"14ce631483fe42af6ba95d59de0702b7f3afc734996273fce429a283f284391a","pooled":"b8c9748c16bd9c192b761f346c4f2d7bacc0c21bddfdfe7509eaed455aec6495","mirror":"dc0af23d1a0b7142c155c4a84f8a3cf3de1dcf9debab19000f90bcfbdff8288b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s8_qk1_step2","sha256":["bafd1ec66dc01576c1e0c5f3b8d14ace8cda633ad1a8336928e3e2d67c3dcd87","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":8,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"51e0fdb950fb3d9a6cccc9eb93bfa7e722987d4d891f349ab78773806686ead1","pooled":"eff9d4afbc4728e1a662aabfe8be9e5a26a2404fd51a5f4843b44f67b247980e","mirror":"5a73a056c0602165a5714064a38b67a6fbe28254fe3dae2108434744a14022f8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk0_step0","sha256":["f025c4551e90c86823f821e9f4162188e0038e380f0779b841d2218aec29f851"],"scenario":9,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"dc955e1cf1d38ab17d205a222693514b3fc9642a803d9937e6afaa00d9c3bacb","pooled":"3d27b9f5171507a5f60c824a901fc60b5991b53e15e14d4b73b8c166c2c8e6f3","mirror":"a499458acbb8bd879d35a2afdbfe01e38500569d0648ed1044f06cb964ba06b8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk0_step1","sha256":["269ed3ac081400caff2b0b65a6b8027f5ed06cec3d906b4527a8fd5f1fb7a66c"],"scenario":9,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"e991201c55971e4090e8971b240bd3c68450c2f8f04cb8fa8e7c37d0eb5e5e42","pooled":"3f26487f4a54c7b5df6c8249ccca22252331cb3f4cb0d63a028780927bf9d17a","mirror":"6fe11da64f53b004c45f242eab74414633a47d657b50206291dd681c03706509"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk0_step2","sha256":["147d3bc041a15a1809ea6f1c5653ee0998cfca4f4db19f0cf0645447b75a8053"],"scenario":9,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"0ee387f8dced4c65dd204b02206e75cbf682b56485c714dc971a023eb00b075d","pooled":"b015c32276025698b98bc755329db5d0eaad6cd9e7cb3afaca2105b29e7bd51f","mirror":"945ef420b617ee60e8f6dd2877e77123a1bd294abb9721330f3e4be2cf72fdf6"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk1_step0","sha256":["366a66bacb85ed92a0a074a9be494ec2aa0481599fe99c077265f645e12dc422"],"scenario":9,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"80d1fd62a688cb23eec870488a32444a4401e2b427ed14cc6a207699ba92574c","pooled":"9bb86fcd11ca33efedd27a547451e8ebb70f58ebf3d45e67a56a75c74d45e9bb","mirror":"8461fd8de94be0f4a4581f0d611df3891ec1a3197217c13c395ac9167ad8353f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk1_step1","sha256":["953926e4283dc7a0b2eafe0c97ac6178cf13a87f58e3eb71e087cf940471a8bf"],"scenario":9,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"14ce631483fe42af6ba95d59de0702b7f3afc734996273fce429a283f284391a","pooled":"b8c9748c16bd9c192b761f346c4f2d7bacc0c21bddfdfe7509eaed455aec6495","mirror":"dc0af23d1a0b7142c155c4a84f8a3cf3de1dcf9debab19000f90bcfbdff8288b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s9_qk1_step2","sha256":["4ff0a77c761c016c1a062f8ae1c610ab1cb7f76218bf60464bfec8caad650c9f"],"scenario":9,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"51e0fdb950fb3d9a6cccc9eb93bfa7e722987d4d891f349ab78773806686ead1","pooled":"eff9d4afbc4728e1a662aabfe8be9e5a26a2404fd51a5f4843b44f67b247980e","mirror":"5a73a056c0602165a5714064a38b67a6fbe28254fe3dae2108434744a14022f8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk0_step0","sha256":["9078421a9972f21b31bea55753e1555225b69bd76e5b32b82df5e5f45f80295b","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":10,"step":0,"prefix":32768,"rows":4,"pos":32768,"total":32772,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8193,"mirror_cap":16384,"state_sha256":{"raw":"461b752b59a368b90645971736fcd03f008de517d36e51375103f574fcf23350","pooled":"3b4bf8d8b656db744ba5d99dde26f1b0d8770de2813737ad09b5587b779275fa","mirror":"7ee88bccbcf66d0cea82970c82a237e48af96c2e34733a2373b7f49f4b1758bf"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk0_step1","sha256":["c5887b8b5eee1f116f796b99540576dcf5d6423e9b7db4c9fc1ee0a204eec612","3513f7981d1ead42bde088485afbba413d675b83c061c6362634bcb044bf8613"],"scenario":10,"step":1,"prefix":32768,"rows":32,"pos":32772,"total":32804,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8201,"mirror_cap":16384,"state_sha256":{"raw":"e707e6b3cad911ba9773a13a4970be1688602a993cf1053aad7b46029354c3e0","pooled":"e99fdaa5c029f2a59816a3796e0f73e0c4fb00a558314edc03fac5bc20a157b8","mirror":"55d499e7730391c1b8130662a3287bfbcf1a9c117fb59496a51f1742f6cfe207"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk0_step2","sha256":["a65978ba1afd404995827158b83507be27f74af4ae1a5b70cfc07649052727fd","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":10,"step":2,"prefix":32768,"rows":33,"pos":32804,"total":32837,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8209,"mirror_cap":16384,"state_sha256":{"raw":"fed8f31a1dc1b815949b04b29d0a834bbb45f144d2f0cc449d438fd3c1289e5f","pooled":"2aca8b8a0b12770aae7db15287ad9b925e4b599c9adc75555e098f85ed57fb53","mirror":"ca35dccc995433025b7ce30a4b202fe413d3785d4d531d0dc232e336af8bba2c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk0_step3","sha256":["f91d3b1864e1e3c3b650695e27a312df6676d22a52eac505147405c57c39dbdf","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":10,"step":3,"prefix":32768,"rows":2048,"pos":32837,"total":34885,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8721,"mirror_cap":16384,"state_sha256":{"raw":"191c19324e7006a53a9440f4ecbb6ba8eb139315f59ac06b02dcb038a9ed4a47","pooled":"7db36afae6159e84efa3cc03b713e9471fcc7497dd7018541c5cc363bbe93665","mirror":"1c160fc21de4f18cb7b8439c114a0793aedfbb8efc9efde6e41c79d0cbc02cad"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk1_step0","sha256":["99b7b7196c510b2510c876244a85f98837f6d21b88b469864b1c6b265faa2749","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":10,"step":0,"prefix":32768,"rows":4,"pos":32768,"total":32772,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8193,"mirror_cap":16384,"state_sha256":{"raw":"c5331572dd083baedb21c3d0e37b486e0f761a23b3d5c4b9212fa323e4d7b8d6","pooled":"0a8f56beafcb3879ccdcf56c63146334b71341f2464a9d3da3c92c8836649a3f","mirror":"f8429f54a6d3160b5d414bf948d452974eee7d49de2de32f9636c08d2775ea66"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk1_step1","sha256":["524b668a4c66320b5154ec2d2ecf0e0cec24e4b06d3d052ff892f06e9ab37fd4","3513f7981d1ead42bde088485afbba413d675b83c061c6362634bcb044bf8613"],"scenario":10,"step":1,"prefix":32768,"rows":32,"pos":32772,"total":32804,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8201,"mirror_cap":16384,"state_sha256":{"raw":"4877026332711a2480767ed3d2960d549d1c4cbb940446805fc8285aeb225908","pooled":"369c2a8d044527676792821873df2e07783f260330171f7489720ef68d0fef2f","mirror":"5a0139e939e535d9daac47db0f40e6d8f0453d49b3ad07debedb51d5910db366"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk1_step2","sha256":["e9fe32fc54604b47a5138d573a23a037ebf6dd2c13b737d203d354e7ab9fc81e","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":10,"step":2,"prefix":32768,"rows":33,"pos":32804,"total":32837,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8209,"mirror_cap":16384,"state_sha256":{"raw":"7a43fb804a1e929d55fa93a177e237992e9b4dd26c0dc71e96e5d5b44302459d","pooled":"89c4ec6677a1e2089ceacc23aeb89b849928f5cdccc481d5436fb34301882fbc","mirror":"b91647e59b6e885a1c6b0103a73435f11f26d89559633182cb9179b7061d751e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s10_qk1_step3","sha256":["64759e5faff976a93644853ecb9878fed2d4f99303f5ad57b9961d82fd06931a","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":10,"step":3,"prefix":32768,"rows":2048,"pos":32837,"total":34885,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8721,"mirror_cap":16384,"state_sha256":{"raw":"60922885ae92f3fca6eeb90206baeebf9407b578cd777b49a24bb053f0112edc","pooled":"cdb7b45929bc427c63cfab385f62681645211d2a044d794c4972891f1dd3b547","mirror":"6de74b8da76900b726f5b1fa0e8f1d539cba361c4270b1a47a02832db2ea74a8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk0_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":11,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":11,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"cbdf6c6432fa318765aed40f9d4a06daeaef888b9de0c120f7c89784869d15ed","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":"e3ef3c7009bb7da474518ce14e2762d81cef9362d22ad5b593ca71e4503deb8e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":11,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"98c4a07efd9d43cca62d30e8e45fdcaf65be3db5f60fe853aafc44d62a40e3e0","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk1_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":11,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":11,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"61f13ffeb583d2fccc87db807373e04a9878e9b8f342aa8b05a624fd28b2e3ee","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":"47aede42ba259e18d9178ad67021518759c413343daf120968b8740a5c59e52e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} +{"kernel":"qsa_indexer_s11_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":11,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"0a314be0b97d39a64f22288519d906e98c9ff745955967101150092424c6201b","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7]} diff --git a/tests/fixtures/mtplx-dense-batch.jsonl b/tests/fixtures/mtplx-dense-batch.jsonl new file mode 100644 index 0000000..7892dfa --- /dev/null +++ b/tests/fixtures/mtplx-dense-batch.jsonl @@ -0,0 +1,34 @@ +{"kernel":"dense_batch_qk_B1_r1_t17","sha256":["d462c78f3de9799d144bd97dc1e2537eba85d414805aaef80016c557c50c8f77"],"kind":"qk","batch":1,"rows":1,"total":17} +{"kernel":"dense_batch_qk_B1_r3_t17","sha256":["be2e2d7e180eeb146a3d8cff3b987170c9b5bd3db78a91e786715e02ed6f1b59"],"kind":"qk","batch":1,"rows":3,"total":17} +{"kernel":"dense_batch_qk_B1_r8_t17","sha256":["2ec2d2788b83e53ef9d832480be68a516a92fb439c756e524a69d53f34587ef9"],"kind":"qk","batch":1,"rows":8,"total":17} +{"kernel":"dense_batch_qk_B1_r16_t17","sha256":["c8a64872ea0e059386cc9e60dba7a8c40ad699d6186b438184e83cd07b009ee5"],"kind":"qk","batch":1,"rows":16,"total":17} +{"kernel":"dense_batch_qk_B1_r64_t1025","sha256":["50032b67e9cb2c5e3d9d04f5451004e94387f1b8aa4cd0edea296baae203dde0"],"kind":"qk","batch":1,"rows":64,"total":1025} +{"kernel":"dense_batch_qk_B1_r2048_t2048","sha256":["beab4d8f736144c5d29f47eca47c5519d8fd35b475e1ee36775c692dc8ee0ad6"],"kind":"qk","batch":1,"rows":2048,"total":2048} +{"kernel":"dense_batch_qk_B2_r3_t17","sha256":["72d94a6cf07b31b2ae4874617eb6981f125dc1ba384f6ae302565d54355590c2"],"kind":"qk","batch":2,"rows":3,"total":17} +{"kernel":"dense_batch_qk_B2_r16_t33","sha256":["4dfb4bc1293a3ff7e158f532ccff987437d53f37a9e518cab83905c158e07716"],"kind":"qk","batch":2,"rows":16,"total":33} +{"kernel":"dense_batch_pv_B1_r1_t17","sha256":["a171daefd11c0f0d758eea273dc93eb5cd21bbf3f948ef5ce1c00126472e8532"],"kind":"pv","batch":1,"rows":1,"total":17} +{"kernel":"dense_batch_pv_B1_r3_t17","sha256":["da3853caec47c9c486d31e3620fcc2f1e8fe738829ac76a9a144083bc939f21c"],"kind":"pv","batch":1,"rows":3,"total":17} +{"kernel":"dense_batch_pv_B1_r8_t17","sha256":["7ab39757d326b69bd078b1ad49de494aea29df780dbe8d4b95019f15a7ff1080"],"kind":"pv","batch":1,"rows":8,"total":17} +{"kernel":"dense_batch_pv_B1_r16_t17","sha256":["3436f9a0cd40240023418150826caa6c4543f43eaac34a6cd02e6c59a5bbaf73"],"kind":"pv","batch":1,"rows":16,"total":17} +{"kernel":"dense_batch_pv_B1_r64_t1025","sha256":["65fbe2abd109e21f6d32b26dd7aa05990fe3cb3a8bd088fe1b186a4429e66cdc"],"kind":"pv","batch":1,"rows":64,"total":1025} +{"kernel":"dense_batch_pv_B1_r2048_t2048","sha256":["e845f4074e7d906d691fd683657983240799b9f53c1a7eadc1447cd299951351"],"kind":"pv","batch":1,"rows":2048,"total":2048} +{"kernel":"dense_batch_pv_B2_r3_t17","sha256":["79aef7a4571caa7bfd18411129cce92e32b397d5152d6fc4b1a21f900d28fb31"],"kind":"pv","batch":2,"rows":3,"total":17} +{"kernel":"dense_batch_pv_B2_r16_t33","sha256":["4c54559687b2d498594d54347fd0b6b3938dbf924abb8c222e0076e029f899e7"],"kind":"pv","batch":2,"rows":16,"total":33} +{"kernel":"dense_batch_cross_r1","sha256":["e0462dc2bbe3fc1b2c6d4e07de433cb3c8e2ad6c487db4139a968c6eacb9aa5e"],"kind":"cross","rows":1} +{"kernel":"dense_batch_cross_r3","sha256":["9a69d5e51528d59d67a54989b65c90ffc37185403be99390d0871dce255a1b5e"],"kind":"cross","rows":3} +{"kernel":"dense_batch_cross_r16","sha256":["7eab0f2a31dd7a95b28f7b09f5d81029513b78fcdbd84eb5331b6af434beeec0"],"kind":"cross","rows":16} +{"kernel":"dense_batch_transpose_r1","sha256":["2d176fd8d45911f7f614797796008dae0d24b936d82c2fd544439f7df82235dc"],"kind":"transpose","rows":1} +{"kernel":"dense_batch_transpose_r3","sha256":["c621e4a6f3787de8b2a83207eccead41ad150f1e27bbe98cc35a75bf6c2b7df2"],"kind":"transpose","rows":3} +{"kernel":"dense_batch_transpose_r16","sha256":["7bd233e9c2e7850f5f4c580dd466aa67ff46431de47fd534a8b7fc18a24ff764"],"kind":"transpose","rows":16} +{"kernel":"dense_batch_copy_r1","sha256":["102ba0b2f68c2a15525f24c8d2ec6e3dab46cb3663f9a93991971e8715ad621a"],"kind":"copy","rows":1} +{"kernel":"dense_batch_copy_r3","sha256":["ae82baa45e7b716daa90b5643484871d59b645c6467d8d8d89351218d4c5a5e9"],"kind":"copy","rows":3} +{"kernel":"dense_batch_copy_r16","sha256":["34b462a3c6b832f25952baa78a3bdbda39f85ea3e3e6452da4423696667e1eaa"],"kind":"copy","rows":16} +{"kernel":"dense_batch_collapse_r1","sha256":["0ea9868644f806e89e226cbbbd3494e526adf242e86c4765181003c6bbe0191b"],"kind":"collapse","rows":1} +{"kernel":"dense_batch_collapse_r3","sha256":["53b58d678e8569cddfcf7f6e2b44fb2522176fbdc2fd5bdddada9e38d516a742"],"kind":"collapse","rows":3} +{"kernel":"dense_batch_collapse_r16","sha256":["ffefe7c7624e55e4dd5893a7f88866a59b75be0387c583127bb875f7f6525328"],"kind":"collapse","rows":16} +{"kernel":"dense_batch_flatten_r1","sha256":["0ea9868644f806e89e226cbbbd3494e526adf242e86c4765181003c6bbe0191b"],"kind":"flatten","rows":1} +{"kernel":"dense_batch_flatten_r3","sha256":["53b58d678e8569cddfcf7f6e2b44fb2522176fbdc2fd5bdddada9e38d516a742"],"kind":"flatten","rows":3} +{"kernel":"dense_batch_flatten_r16","sha256":["ffefe7c7624e55e4dd5893a7f88866a59b75be0387c583127bb875f7f6525328"],"kind":"flatten","rows":16} +{"kernel":"dense_batch_offset_r1","sha256":["3f082194ec6ebab2fd8f505351e816baaf1d206306f4df736edfbf8f68ee34e3"],"kind":"offset","rows":1} +{"kernel":"dense_batch_offset_r3","sha256":["8c2f7ae938a169b88b02cbb9604f4ed0be59ebd71085965944690df4e7ba73af"],"kind":"offset","rows":3} +{"kernel":"dense_batch_offset_r16","sha256":["6ed3a379d8891489b2832768b5fcb87f5db7997c5dc56f773d03a4bcb084ba6c"],"kind":"offset","rows":16} diff --git a/tests/fixtures/mtplx-dense-float.jsonl b/tests/fixtures/mtplx-dense-float.jsonl new file mode 100644 index 0000000..c38affa --- /dev/null +++ b/tests/fixtures/mtplx-dense-float.jsonl @@ -0,0 +1,228 @@ +{"kernel":"dense_float_bfloat16_0_tf1","sha256":["b6f9e14201ad48b7e77ad4d9d19c3efa3befa35ce9c6b533efbe30ac4042110a"],"dtype":"bfloat16","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_1_tf1","sha256":["4f552f79fcab6d0f08725eeb478e73881329b7c0ef2353e787d30b6915f24e4f"],"dtype":"bfloat16","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_2_tf1","sha256":["b863bddeabd4cad4458e95d767c7f99b47df574db27b91fe4b12ef22a14d8675"],"dtype":"bfloat16","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_3_tf1","sha256":["38be3f98869966303ddca7c72ba3507f4a0e805692c80714021797c73104c52e"],"dtype":"bfloat16","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_4_tf1","sha256":["fac696708efb46100400f2fabbf3003228b8ae414bfeaaaa3b777cfffdf590f5"],"dtype":"bfloat16","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_5_tf1","sha256":["69597da3aa3e47ca3e30ecdf9231b0504df1f4eb0fdc836ee53a89a2d2ba97d7"],"dtype":"bfloat16","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_6_tf1","sha256":["8db7ca3e337b09d7836b66484685b62c6fddb79662ad8cefe8d1948dd73a78f0"],"dtype":"bfloat16","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_7_tf1","sha256":["4195accb6542b0c285193c546c11f952028cc29e6a1625efa71ef66cf67564dc"],"dtype":"bfloat16","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_8_tf1","sha256":["f4d3c5ef019734d57824a2c5a846caded3cc8468d7871193d58779ebe565af7c"],"dtype":"bfloat16","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_9_tf1","sha256":["030b92de4a17cdbaad7d850dfaff9c380a1c53d2bb9b209f422a2bd0365acb73"],"dtype":"bfloat16","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_10_tf1","sha256":["295b13018b34b5159528a66e0751a99ebc4298ecd58129d654d83858c2bee2d0"],"dtype":"bfloat16","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_11_tf1","sha256":["631b7783534fb0661dfbd9c37fb1b6d97a8d4aeb1842f9bfd706f0ea4b0d9700"],"dtype":"bfloat16","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_12_tf1","sha256":["e1de38f82e06dad003c93485592f7679b1e249a08e1de0f03293d45fad862098"],"dtype":"bfloat16","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_13_tf1","sha256":["4ae9e3196e6f1f8c5093e8f2d077c43b87ce6c6540c68457dc87fc04eeeff058"],"dtype":"bfloat16","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_14_tf1","sha256":["e7a2d012ed0f3c47aaf21709f2a05ae65e48c538634ba56e8dc7534e4034484f"],"dtype":"bfloat16","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_15_tf1","sha256":["ac6502b0bc66abf3f693195ba6fe7db7b0acc755dc7e849147ef789505246939"],"dtype":"bfloat16","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_16_tf1","sha256":["47f9974f08da8ab47dc3c6dc0a1fe8a178cefbf54dfcb3a238842b30b7eedd2e"],"dtype":"bfloat16","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[]} +{"kernel":"dense_float_bfloat16_17_tf1","sha256":["716eadd68325ceb93d6c066c21d735363bcebe4215f3753e4420963918219ca9"],"dtype":"bfloat16","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[]} +{"kernel":"dense_float_bfloat16_18_tf1","sha256":["c50d1c3b67184131b01e0c93bf6c12643c26e425766dc2581d6481dca0fd6f61"],"dtype":"bfloat16","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[17]} +{"kernel":"dense_float_bfloat16_19_tf1","sha256":["58583d5fe26e638318da6bf346cf643746c206400e6a0c31fcc978313759187e"],"dtype":"bfloat16","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[17]} +{"kernel":"dense_float_bfloat16_20_tf1","sha256":["c4667ded0cf5c90e28c4a4ed0f2389163acd80ba91e84c5d01d6c5d6cc69361c"],"dtype":"bfloat16","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[7]} +{"kernel":"dense_float_bfloat16_21_tf1","sha256":["9c8170fbd83f3b15881ad646a98ea16b28188eb4612631beb28d29fac3562114"],"dtype":"bfloat16","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[7]} +{"kernel":"dense_float_bfloat16_22_tf1","sha256":["053fcc076f9eda133035bf15fff1ee66edff516ccf3e5d7d412d80fe1b796804"],"dtype":"bfloat16","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,1,1]} +{"kernel":"dense_float_bfloat16_23_tf1","sha256":["e0eaa9ed7fb1f16bfd97ce216324cbe7e66b78f635f31abc3be4a4e31fa4a558"],"dtype":"bfloat16","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,7,1]} +{"kernel":"dense_float_bfloat16_24_tf1","sha256":["3a8bc45f53dcb586420612cb0f6651ba756ccae755b84f4fed177a52d65e2129"],"dtype":"bfloat16","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,5,7]} +{"kernel":"dense_float_bfloat16_25_tf1","sha256":["47328e17189a3451ff9470f086461a7fa6002b805384d37840b0cc187305e270"],"dtype":"bfloat16","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_26_tf1","sha256":["01ec64711fff69fa91b381a5be5b083e351d1e2bbf4c53166da5ddf6828c5e9d"],"dtype":"bfloat16","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_27_tf1","sha256":["79336b70216a415037e5830b96920ae4338d126dbb7eb00461a740c1bfafa316"],"dtype":"bfloat16","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_28_tf1","sha256":["79336b70216a415037e5830b96920ae4338d126dbb7eb00461a740c1bfafa316"],"dtype":"bfloat16","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_29_tf1","sha256":["da35c82c3810bdb5370dfc2c4bcc82fd34a2209a30c47554472826ada71888f3"],"dtype":"bfloat16","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[65,513]} +{"kernel":"dense_float_bfloat16_30_tf1","sha256":["97f7002caba7ba165cf5f0e7f56a7ea11a1c6b60ccd9663be1b158ee5b35baaf"],"dtype":"bfloat16","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,2]} +{"kernel":"dense_float_bfloat16_31_tf1","sha256":["fb4a9ab788db34ae01625890c126c8658966effe7eed31ca1c751a1e4862633b"],"dtype":"bfloat16","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[193,17]} +{"kernel":"dense_float_bfloat16_32_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[0,5]} +{"kernel":"dense_float_bfloat16_33_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[5,0]} +{"kernel":"dense_float_bfloat16_34_tf1","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"bfloat16","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[5,7]} +{"kernel":"dense_float_bfloat16_35_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":true,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,0,5]} +{"kernel":"dense_float_bfloat16_36_tf1","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"bfloat16","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_bfloat16_37_tf1","sha256":["61dd3c932882096681fafa1683ca8cb0f5333aa288693760d4b6b54c8ac0390c"],"dtype":"bfloat16","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} +{"kernel":"dense_float_float16_0_tf1","sha256":["8a653b3f5c7c6747a4be744ff9b951fe34b04f0db3b1ff7227e9def6b23f186c"],"dtype":"float16","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_1_tf1","sha256":["742ef1fa9a7405121c42fda6056e7419f2ffc9b9f9c7026cdbde820c44015460"],"dtype":"float16","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_2_tf1","sha256":["c18dd7a9fef19ff88afbd8dd348836ed6523b83a12894cef7d8f27a7e01c5468"],"dtype":"float16","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_3_tf1","sha256":["a4e8c393c42a001c296bb0f2d1967c8a8e4078e0b073a6bcd82850197c67a584"],"dtype":"float16","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_4_tf1","sha256":["cd7f5f5d4ed8adc2e8c7ddde83a16dd4dd98dfc0ffcb9238fe94d28e5b21acda"],"dtype":"float16","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_5_tf1","sha256":["810c906967da4c53a8bd2ffb30db244ee2b0aa337855ef61b2dfade79aa989b9"],"dtype":"float16","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_6_tf1","sha256":["1dc671533a3a6fb5ad3acd8d50a7257671b1085a154d2c245c36077e75b6def5"],"dtype":"float16","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_7_tf1","sha256":["227e7cc09f28039f74ba161abd664cae9811119fee9d5a786f23b867e2a1cb23"],"dtype":"float16","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_8_tf1","sha256":["8438a5ebc007402ca92c6e8482ed849e587ec72f537b21e5f9ca6284a30c3f3b"],"dtype":"float16","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_9_tf1","sha256":["bc30a914627bf8fd339e9bb74fd07ddb15f60bc79d44158973d3f5bf28b1f398"],"dtype":"float16","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_10_tf1","sha256":["f17173199b1952c672350c7addfd4f92058de212e71d94305415ed408c06cbe2"],"dtype":"float16","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_11_tf1","sha256":["dc70f82ef85a15f8ca4137e42896f22db5c5bfc804bd8e72496a420171a1186f"],"dtype":"float16","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_12_tf1","sha256":["9626ced2a3ef9cb8fd11374448ea8778dd4753c8b60bfa15e9b23e3d3ea57bf7"],"dtype":"float16","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_13_tf1","sha256":["e5ee9287dace9f1c473beb27b8632414a96075eb25b9391f7267ac24a735c900"],"dtype":"float16","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_14_tf1","sha256":["62f6c7c3373d8f3055cc1567b53f69bc6a9b182cf18651ae26619c878898799d"],"dtype":"float16","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_15_tf1","sha256":["416e056c91668712eddeed34f423dcea2f0f04cf1c563773699103b58fe09d04"],"dtype":"float16","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_16_tf1","sha256":["e553b881ec10b5dfeebb7fce7a04d42f4410278f6cf4c362e580d2b77c010861"],"dtype":"float16","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[]} +{"kernel":"dense_float_float16_17_tf1","sha256":["59011c209427ea5a9d7052128b92000f02d078cea1e8733ba14e27f6da143011"],"dtype":"float16","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[]} +{"kernel":"dense_float_float16_18_tf1","sha256":["13e2267ffddbda17c5bfd6e11bcae581d693c1ce20d2b9d3a790cd0fb1c1f677"],"dtype":"float16","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[17]} +{"kernel":"dense_float_float16_19_tf1","sha256":["b1602ac20cd98e4f2eced8b0b1f8dadab2e192e233fc4c3650b0ce469f9b776b"],"dtype":"float16","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[17]} +{"kernel":"dense_float_float16_20_tf1","sha256":["eab588f5100ca2b79e6ac3bb818c80b6ec3b685284d4aef4a2182c9f684f2115"],"dtype":"float16","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[7]} +{"kernel":"dense_float_float16_21_tf1","sha256":["9fe68f1b35ff27d41ba0efe2faa83688eaab3318607c98134f99a881f9208e33"],"dtype":"float16","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[7]} +{"kernel":"dense_float_float16_22_tf1","sha256":["118657cd5a48ea5f264f8d2819842f9a3dbdf835754e0cfa4008506aa1b312ba"],"dtype":"float16","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,1,1]} +{"kernel":"dense_float_float16_23_tf1","sha256":["8c981951b3b6e37fb30c6d4940d3555f3a16d1a922c7db2d42e007ad61dafebf"],"dtype":"float16","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,7,1]} +{"kernel":"dense_float_float16_24_tf1","sha256":["f3c60aaa42d3fe0a14c45b54001381286baed914487fbdbff2d8821ec1409cc4"],"dtype":"float16","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,5,7]} +{"kernel":"dense_float_float16_25_tf1","sha256":["2fb67c3c1ab8d6ae9bef1983a6d5c3aee8b0d99d6c88bb866e6660b89131b7ad"],"dtype":"float16","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_26_tf1","sha256":["2ba62475a80f7d5dcafb9fb0a3bb184e8cbf994a8bf8a14de6e1f08d0b04df6f"],"dtype":"float16","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_27_tf1","sha256":["84a4c8519914eecccdddcaf8bd7aac448ed8593561db3dc2bdf1c23d283c48e0"],"dtype":"float16","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_28_tf1","sha256":["84a4c8519914eecccdddcaf8bd7aac448ed8593561db3dc2bdf1c23d283c48e0"],"dtype":"float16","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_29_tf1","sha256":["b31967cdb282966dad560a98c339b49d72171bdce4e0e7875e9f30ed927e9c95"],"dtype":"float16","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[65,513]} +{"kernel":"dense_float_float16_30_tf1","sha256":["811dca1045b7dbb187531048797d8e3b6d55da5fbacf1e3721c18fbb520fb8f7"],"dtype":"float16","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,2]} +{"kernel":"dense_float_float16_31_tf1","sha256":["7d9878fa49ff3e1f7ee3fa8ff22f3804d0b0c9a6ae8416b06d5618844713fa51"],"dtype":"float16","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[193,17]} +{"kernel":"dense_float_float16_32_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[0,5]} +{"kernel":"dense_float_float16_33_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[5,0]} +{"kernel":"dense_float_float16_34_tf1","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"float16","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[5,7]} +{"kernel":"dense_float_float16_35_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":true,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,0,5]} +{"kernel":"dense_float_float16_36_tf1","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"float16","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_float16_37_tf1","sha256":["61dd3c932882096681fafa1683ca8cb0f5333aa288693760d4b6b54c8ac0390c"],"dtype":"float16","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} +{"kernel":"dense_float_float32_0_tf1","sha256":["43886991c4af8c1b11be72b41319a7d810c7923de5bc83220683b826b1a7bc09"],"dtype":"float32","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_1_tf1","sha256":["3f2dfe76da69218c34ebc91ee1d08697f41571ad515994bae97c275d338e574b"],"dtype":"float32","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_2_tf1","sha256":["7c8414549b90748138d84b8f9a37c8448b555bc45554a1bf6609d924412de418"],"dtype":"float32","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_3_tf1","sha256":["1b434c93f0a934cf1bed596372648c15af0313b001a77ae728a6fbc42681df82"],"dtype":"float32","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_4_tf1","sha256":["af9f8b469e0a4cf7007326c3df61aa41effbb6427d9348c375d92e2bdbfd8f3c"],"dtype":"float32","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_5_tf1","sha256":["a5fb00763494be5255f7d1ae4815c6c3c9905bbf2e3976deafbf7c00fb6a339a"],"dtype":"float32","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_6_tf1","sha256":["9b6483f7d27b90fe02aa026669f40cbb44a36d86cc64dded5ea2140754aa2213"],"dtype":"float32","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_7_tf1","sha256":["8074f33b06a94eea7bce54f58a05916e81518daa297f3f1792ba061f785787d6"],"dtype":"float32","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_8_tf1","sha256":["7c81fdae268fb83c7dcc72a38e875bfcfd798ca1887413a87682d5206f14bf45"],"dtype":"float32","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_9_tf1","sha256":["512d46ba95fdd6a8265e3dc793edb1f3fee6c84dd45ee9cdfef44a47783c7cee"],"dtype":"float32","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_10_tf1","sha256":["eb22e3d8fe3077462cd0a63cc819a29d36c3293a963f09b69767f9bd680b31c8"],"dtype":"float32","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_11_tf1","sha256":["f5129561a3cd3d11b37cf4e98903d80cc716d5edbdfbb5c5887b492516b992c1"],"dtype":"float32","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_12_tf1","sha256":["64019fbbc2887fe3b6a78773ced8e293474611c520ce123c00c2aeb9f7570e97"],"dtype":"float32","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_13_tf1","sha256":["1cbce1285bce8eef7cb819d5aa8ea9be8ac2db8ece0558253689d0c735e3e75c"],"dtype":"float32","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_14_tf1","sha256":["bb2f5e7d63c6cd13d2db51d5c408778f5c01b55eb0cfa74aaded72c5d1185a71"],"dtype":"float32","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_15_tf1","sha256":["17de6e62e1350fcbdf197b98f2af1910146c059908db3e28f76c67e7b560715e"],"dtype":"float32","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_16_tf1","sha256":["2929a4f3ae1c7397ff694fc8f51b82d53811eeeb0f43ad99eb58e913a6399f53"],"dtype":"float32","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[]} +{"kernel":"dense_float_float32_17_tf1","sha256":["4171de595ac53c2080b81be6da8b46a6ea99d79d5dadfb14e08f358a1fe5450b"],"dtype":"float32","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[]} +{"kernel":"dense_float_float32_18_tf1","sha256":["1b930d9add11a75e74a5a399cb4e5aae09093e93bf97bc66614606ab94168d96"],"dtype":"float32","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[17]} +{"kernel":"dense_float_float32_19_tf1","sha256":["67039a00868a48691be7709cd52d8b8fda0df1bee9cd20971d08fcf8c26ae237"],"dtype":"float32","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[17]} +{"kernel":"dense_float_float32_20_tf1","sha256":["774ccdf36880349dac2b131a7a680ebbd2ca1add6101009f20b746b631642cfb"],"dtype":"float32","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[7]} +{"kernel":"dense_float_float32_21_tf1","sha256":["97afbd15f1527f45909a67cec724876dd615adaaad39e0f7545cfba5f605a1fd"],"dtype":"float32","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[7]} +{"kernel":"dense_float_float32_22_tf1","sha256":["4991a488919c0db6c8a8efc72ff729da230609bb8950064d925659c744f0c297"],"dtype":"float32","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,1,1]} +{"kernel":"dense_float_float32_23_tf1","sha256":["4eeb1e642ba5d5defca89eedc60436ca43e6d41090f17655fdc892b1ec1ca863"],"dtype":"float32","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,7,1]} +{"kernel":"dense_float_float32_24_tf1","sha256":["3ea9489d2a12940aa797cfb8687b7b6f3e17c8d3fd04360868435fec30e2aaaa"],"dtype":"float32","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,5,7]} +{"kernel":"dense_float_float32_25_tf1","sha256":["ebf097d303cc73dc97d44a478d24981fb5d4bb85e323ce0ff897e7e16f48b815"],"dtype":"float32","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_26_tf1","sha256":["7e017bb39c73f7b243972ad9798015a433847e9b0d8e849dc159e1f5940004fb"],"dtype":"float32","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_27_tf1","sha256":["34199ddd6e70e595699bb1878402e135b7c842ca6b83f4c2ceaea9542709e9e4"],"dtype":"float32","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_28_tf1","sha256":["34199ddd6e70e595699bb1878402e135b7c842ca6b83f4c2ceaea9542709e9e4"],"dtype":"float32","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_29_tf1","sha256":["3afa93bd9f24b4af63f93cc15dfbf1e0c2f5bf9102a87345f7c84387afc476bc"],"dtype":"float32","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[65,513]} +{"kernel":"dense_float_float32_30_tf1","sha256":["c9b2f9efc43d2194e5b4b1842b0bd74abb47074102e81aa795eadb7e0b403e6d"],"dtype":"float32","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,2]} +{"kernel":"dense_float_float32_31_tf1","sha256":["325a312edb697458e4cc04a1655f6427975599c946a7148811ff41c0e36d9164"],"dtype":"float32","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[193,17]} +{"kernel":"dense_float_float32_32_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[0,5]} +{"kernel":"dense_float_float32_33_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[5,0]} +{"kernel":"dense_float_float32_34_tf1","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"float32","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[5,7]} +{"kernel":"dense_float_float32_35_tf1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":true,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,0,5]} +{"kernel":"dense_float_float32_36_tf1","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"float32","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_float32_37_tf1","sha256":["61dd3c932882096681fafa1683ca8cb0f5333aa288693760d4b6b54c8ac0390c"],"dtype":"float32","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":true,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} +{"kernel":"dense_float_bfloat16_0_tf0","sha256":["b6f9e14201ad48b7e77ad4d9d19c3efa3befa35ce9c6b533efbe30ac4042110a"],"dtype":"bfloat16","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_1_tf0","sha256":["4f552f79fcab6d0f08725eeb478e73881329b7c0ef2353e787d30b6915f24e4f"],"dtype":"bfloat16","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_2_tf0","sha256":["b863bddeabd4cad4458e95d767c7f99b47df574db27b91fe4b12ef22a14d8675"],"dtype":"bfloat16","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_3_tf0","sha256":["38be3f98869966303ddca7c72ba3507f4a0e805692c80714021797c73104c52e"],"dtype":"bfloat16","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5]} +{"kernel":"dense_float_bfloat16_4_tf0","sha256":["fac696708efb46100400f2fabbf3003228b8ae414bfeaaaa3b777cfffdf590f5"],"dtype":"bfloat16","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_5_tf0","sha256":["69597da3aa3e47ca3e30ecdf9231b0504df1f4eb0fdc836ee53a89a2d2ba97d7"],"dtype":"bfloat16","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_6_tf0","sha256":["8db7ca3e337b09d7836b66484685b62c6fddb79662ad8cefe8d1948dd73a78f0"],"dtype":"bfloat16","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_7_tf0","sha256":["4195accb6542b0c285193c546c11f952028cc29e6a1625efa71ef66cf67564dc"],"dtype":"bfloat16","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[16,17]} +{"kernel":"dense_float_bfloat16_8_tf0","sha256":["f4d3c5ef019734d57824a2c5a846caded3cc8468d7871193d58779ebe565af7c"],"dtype":"bfloat16","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_9_tf0","sha256":["030b92de4a17cdbaad7d850dfaff9c380a1c53d2bb9b209f422a2bd0365acb73"],"dtype":"bfloat16","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_10_tf0","sha256":["295b13018b34b5159528a66e0751a99ebc4298ecd58129d654d83858c2bee2d0"],"dtype":"bfloat16","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_11_tf0","sha256":["631b7783534fb0661dfbd9c37fb1b6d97a8d4aeb1842f9bfd706f0ea4b0d9700"],"dtype":"bfloat16","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_12_tf0","sha256":["e1de38f82e06dad003c93485592f7679b1e249a08e1de0f03293d45fad862098"],"dtype":"bfloat16","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_13_tf0","sha256":["4ae9e3196e6f1f8c5093e8f2d077c43b87ce6c6540c68457dc87fc04eeeff058"],"dtype":"bfloat16","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_14_tf0","sha256":["e7a2d012ed0f3c47aaf21709f2a05ae65e48c538634ba56e8dc7534e4034484f"],"dtype":"bfloat16","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_15_tf0","sha256":["ac6502b0bc66abf3f693195ba6fe7db7b0acc755dc7e849147ef789505246939"],"dtype":"bfloat16","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[40,40]} +{"kernel":"dense_float_bfloat16_16_tf0","sha256":["47f9974f08da8ab47dc3c6dc0a1fe8a178cefbf54dfcb3a238842b30b7eedd2e"],"dtype":"bfloat16","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[]} +{"kernel":"dense_float_bfloat16_17_tf0","sha256":["716eadd68325ceb93d6c066c21d735363bcebe4215f3753e4420963918219ca9"],"dtype":"bfloat16","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[]} +{"kernel":"dense_float_bfloat16_18_tf0","sha256":["c50d1c3b67184131b01e0c93bf6c12643c26e425766dc2581d6481dca0fd6f61"],"dtype":"bfloat16","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[17]} +{"kernel":"dense_float_bfloat16_19_tf0","sha256":["58583d5fe26e638318da6bf346cf643746c206400e6a0c31fcc978313759187e"],"dtype":"bfloat16","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[17]} +{"kernel":"dense_float_bfloat16_20_tf0","sha256":["c4667ded0cf5c90e28c4a4ed0f2389163acd80ba91e84c5d01d6c5d6cc69361c"],"dtype":"bfloat16","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[7]} +{"kernel":"dense_float_bfloat16_21_tf0","sha256":["9c8170fbd83f3b15881ad646a98ea16b28188eb4612631beb28d29fac3562114"],"dtype":"bfloat16","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[7]} +{"kernel":"dense_float_bfloat16_22_tf0","sha256":["053fcc076f9eda133035bf15fff1ee66edff516ccf3e5d7d412d80fe1b796804"],"dtype":"bfloat16","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,1,1]} +{"kernel":"dense_float_bfloat16_23_tf0","sha256":["e0eaa9ed7fb1f16bfd97ce216324cbe7e66b78f635f31abc3be4a4e31fa4a558"],"dtype":"bfloat16","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,7,1]} +{"kernel":"dense_float_bfloat16_24_tf0","sha256":["3a8bc45f53dcb586420612cb0f6651ba756ccae755b84f4fed177a52d65e2129"],"dtype":"bfloat16","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,3,5,7]} +{"kernel":"dense_float_bfloat16_25_tf0","sha256":["47328e17189a3451ff9470f086461a7fa6002b805384d37840b0cc187305e270"],"dtype":"bfloat16","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_26_tf0","sha256":["01ec64711fff69fa91b381a5be5b083e351d1e2bbf4c53166da5ddf6828c5e9d"],"dtype":"bfloat16","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_27_tf0","sha256":["79336b70216a415037e5830b96920ae4338d126dbb7eb00461a740c1bfafa316"],"dtype":"bfloat16","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_28_tf0","sha256":["79336b70216a415037e5830b96920ae4338d126dbb7eb00461a740c1bfafa316"],"dtype":"bfloat16","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,5,7]} +{"kernel":"dense_float_bfloat16_29_tf0","sha256":["da35c82c3810bdb5370dfc2c4bcc82fd34a2209a30c47554472826ada71888f3"],"dtype":"bfloat16","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[65,513]} +{"kernel":"dense_float_bfloat16_30_tf0","sha256":["97f7002caba7ba165cf5f0e7f56a7ea11a1c6b60ccd9663be1b158ee5b35baaf"],"dtype":"bfloat16","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[2,2]} +{"kernel":"dense_float_bfloat16_31_tf0","sha256":["fb4a9ab788db34ae01625890c126c8658966effe7eed31ca1c751a1e4862633b"],"dtype":"bfloat16","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[193,17]} +{"kernel":"dense_float_bfloat16_32_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[0,5]} +{"kernel":"dense_float_bfloat16_33_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[5,0]} +{"kernel":"dense_float_bfloat16_34_tf0","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"bfloat16","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[5,7]} +{"kernel":"dense_float_bfloat16_35_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":false,"a_dtype":"bfloat16","b_dtype":"bfloat16","output_shape":[3,0,5]} +{"kernel":"dense_float_bfloat16_36_tf0","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"bfloat16","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_bfloat16_37_tf0","sha256":["f13d54214cfb0d8a11a677109a8d592d4aeafb79cca44b37062b35f80c0b80ea"],"dtype":"bfloat16","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} +{"kernel":"dense_float_float16_0_tf0","sha256":["8a653b3f5c7c6747a4be744ff9b951fe34b04f0db3b1ff7227e9def6b23f186c"],"dtype":"float16","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_1_tf0","sha256":["742ef1fa9a7405121c42fda6056e7419f2ffc9b9f9c7026cdbde820c44015460"],"dtype":"float16","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_2_tf0","sha256":["c18dd7a9fef19ff88afbd8dd348836ed6523b83a12894cef7d8f27a7e01c5468"],"dtype":"float16","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_3_tf0","sha256":["a4e8c393c42a001c296bb0f2d1967c8a8e4078e0b073a6bcd82850197c67a584"],"dtype":"float16","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5]} +{"kernel":"dense_float_float16_4_tf0","sha256":["cd7f5f5d4ed8adc2e8c7ddde83a16dd4dd98dfc0ffcb9238fe94d28e5b21acda"],"dtype":"float16","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_5_tf0","sha256":["810c906967da4c53a8bd2ffb30db244ee2b0aa337855ef61b2dfade79aa989b9"],"dtype":"float16","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_6_tf0","sha256":["1dc671533a3a6fb5ad3acd8d50a7257671b1085a154d2c245c36077e75b6def5"],"dtype":"float16","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_7_tf0","sha256":["227e7cc09f28039f74ba161abd664cae9811119fee9d5a786f23b867e2a1cb23"],"dtype":"float16","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[16,17]} +{"kernel":"dense_float_float16_8_tf0","sha256":["8438a5ebc007402ca92c6e8482ed849e587ec72f537b21e5f9ca6284a30c3f3b"],"dtype":"float16","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_9_tf0","sha256":["bc30a914627bf8fd339e9bb74fd07ddb15f60bc79d44158973d3f5bf28b1f398"],"dtype":"float16","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_10_tf0","sha256":["f17173199b1952c672350c7addfd4f92058de212e71d94305415ed408c06cbe2"],"dtype":"float16","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_11_tf0","sha256":["dc70f82ef85a15f8ca4137e42896f22db5c5bfc804bd8e72496a420171a1186f"],"dtype":"float16","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_12_tf0","sha256":["9626ced2a3ef9cb8fd11374448ea8778dd4753c8b60bfa15e9b23e3d3ea57bf7"],"dtype":"float16","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_13_tf0","sha256":["e5ee9287dace9f1c473beb27b8632414a96075eb25b9391f7267ac24a735c900"],"dtype":"float16","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_14_tf0","sha256":["62f6c7c3373d8f3055cc1567b53f69bc6a9b182cf18651ae26619c878898799d"],"dtype":"float16","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_15_tf0","sha256":["416e056c91668712eddeed34f423dcea2f0f04cf1c563773699103b58fe09d04"],"dtype":"float16","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[40,40]} +{"kernel":"dense_float_float16_16_tf0","sha256":["e553b881ec10b5dfeebb7fce7a04d42f4410278f6cf4c362e580d2b77c010861"],"dtype":"float16","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[]} +{"kernel":"dense_float_float16_17_tf0","sha256":["59011c209427ea5a9d7052128b92000f02d078cea1e8733ba14e27f6da143011"],"dtype":"float16","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[]} +{"kernel":"dense_float_float16_18_tf0","sha256":["13e2267ffddbda17c5bfd6e11bcae581d693c1ce20d2b9d3a790cd0fb1c1f677"],"dtype":"float16","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[17]} +{"kernel":"dense_float_float16_19_tf0","sha256":["b1602ac20cd98e4f2eced8b0b1f8dadab2e192e233fc4c3650b0ce469f9b776b"],"dtype":"float16","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[17]} +{"kernel":"dense_float_float16_20_tf0","sha256":["eab588f5100ca2b79e6ac3bb818c80b6ec3b685284d4aef4a2182c9f684f2115"],"dtype":"float16","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[7]} +{"kernel":"dense_float_float16_21_tf0","sha256":["9fe68f1b35ff27d41ba0efe2faa83688eaab3318607c98134f99a881f9208e33"],"dtype":"float16","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[7]} +{"kernel":"dense_float_float16_22_tf0","sha256":["118657cd5a48ea5f264f8d2819842f9a3dbdf835754e0cfa4008506aa1b312ba"],"dtype":"float16","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,1,1]} +{"kernel":"dense_float_float16_23_tf0","sha256":["8c981951b3b6e37fb30c6d4940d3555f3a16d1a922c7db2d42e007ad61dafebf"],"dtype":"float16","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,7,1]} +{"kernel":"dense_float_float16_24_tf0","sha256":["f3c60aaa42d3fe0a14c45b54001381286baed914487fbdbff2d8821ec1409cc4"],"dtype":"float16","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,3,5,7]} +{"kernel":"dense_float_float16_25_tf0","sha256":["2fb67c3c1ab8d6ae9bef1983a6d5c3aee8b0d99d6c88bb866e6660b89131b7ad"],"dtype":"float16","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_26_tf0","sha256":["2ba62475a80f7d5dcafb9fb0a3bb184e8cbf994a8bf8a14de6e1f08d0b04df6f"],"dtype":"float16","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_27_tf0","sha256":["84a4c8519914eecccdddcaf8bd7aac448ed8593561db3dc2bdf1c23d283c48e0"],"dtype":"float16","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_28_tf0","sha256":["84a4c8519914eecccdddcaf8bd7aac448ed8593561db3dc2bdf1c23d283c48e0"],"dtype":"float16","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,5,7]} +{"kernel":"dense_float_float16_29_tf0","sha256":["b31967cdb282966dad560a98c339b49d72171bdce4e0e7875e9f30ed927e9c95"],"dtype":"float16","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[65,513]} +{"kernel":"dense_float_float16_30_tf0","sha256":["811dca1045b7dbb187531048797d8e3b6d55da5fbacf1e3721c18fbb520fb8f7"],"dtype":"float16","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[2,2]} +{"kernel":"dense_float_float16_31_tf0","sha256":["7d9878fa49ff3e1f7ee3fa8ff22f3804d0b0c9a6ae8416b06d5618844713fa51"],"dtype":"float16","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[193,17]} +{"kernel":"dense_float_float16_32_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[0,5]} +{"kernel":"dense_float_float16_33_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[5,0]} +{"kernel":"dense_float_float16_34_tf0","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"float16","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[5,7]} +{"kernel":"dense_float_float16_35_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":false,"a_dtype":"float16","b_dtype":"float16","output_shape":[3,0,5]} +{"kernel":"dense_float_float16_36_tf0","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"float16","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_float16_37_tf0","sha256":["f13d54214cfb0d8a11a677109a8d592d4aeafb79cca44b37062b35f80c0b80ea"],"dtype":"float16","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} +{"kernel":"dense_float_float32_0_tf0","sha256":["7775bb16c3202bb0dfec534260010b3f175652f448ed8033630e7d59f21dffa1"],"dtype":"float32","profile":0,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_1_tf0","sha256":["945408d63891223245979f9d0a46a66ecdfa0bda8c4d4595bc71bf4e73cd15fc"],"dtype":"float32","profile":1,"m":3,"n":5,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_2_tf0","sha256":["560eafcc12fee0211cd1221c1cafe12a69f975bcadb4ea7a26067851593ac88f"],"dtype":"float32","profile":2,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_3_tf0","sha256":["d0ff0851a0e22a0e4a9ce2205dba26e97e83d9b4b64373374ea1d65cb48dd565"],"dtype":"float32","profile":3,"m":3,"n":5,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5]} +{"kernel":"dense_float_float32_4_tf0","sha256":["afe8687b85a835d4044879041d8306641c17d09b7c310830e079517003297c95"],"dtype":"float32","profile":4,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_5_tf0","sha256":["2d1d8934aafde3ad206ee525131a18dc5a1a5ba8debf16988cd9faf5edfa3caa"],"dtype":"float32","profile":5,"m":16,"n":17,"k":129,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_6_tf0","sha256":["d6b5c0cc8b6f23fa38015340a720dac47f57e36fb01beec580140d79de1a28cb"],"dtype":"float32","profile":6,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_7_tf0","sha256":["11e9f097f5f93a07ebcaae0ac155902d762a48da6a2dd0c2141c385e89af6bc7"],"dtype":"float32","profile":7,"m":16,"n":17,"k":129,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[16,17]} +{"kernel":"dense_float_float32_8_tf0","sha256":["637a5003e0fbd04569fa2598f42f7e90096d3940b55851824ea5ef9ee292ac48"],"dtype":"float32","profile":8,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_9_tf0","sha256":["6f9c05aca03d1c66202e8b8e8a8fe8ad2394c79057b38936ea029d947eeabb1b"],"dtype":"float32","profile":9,"m":40,"n":40,"k":127,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_10_tf0","sha256":["71fd28a34cd92652672b32bc3f37dbb24a20df994e24341c4f2fc387ecf0df3b"],"dtype":"float32","profile":10,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_11_tf0","sha256":["67977c200675bf85c053d1df7fd95110b746d2ba979f28b1691eba7a26509d70"],"dtype":"float32","profile":11,"m":40,"n":40,"k":127,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_12_tf0","sha256":["424948dcb75c585b6a2faf6d3d5d1040c133867319be5ab83bdafd60ec0ab5d1"],"dtype":"float32","profile":12,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_13_tf0","sha256":["2208f3f869f1c4839a07a5c36b126c3d237b945708460e8aa0dabee9a2f61581"],"dtype":"float32","profile":13,"m":40,"n":40,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_14_tf0","sha256":["628409d501b64d6463a31aa7481efa25cf67a121c051c8638aa1a7b222025b7e"],"dtype":"float32","profile":14,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_15_tf0","sha256":["5df20158b3c0c38523c7c762a2c5fdf2639071ddeebec8313a4e15209e1640f7"],"dtype":"float32","profile":15,"m":40,"n":40,"k":128,"kind":"plain","ta":true,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[40,40]} +{"kernel":"dense_float_float32_16_tf0","sha256":["2929a4f3ae1c7397ff694fc8f51b82d53811eeeb0f43ad99eb58e913a6399f53"],"dtype":"float32","profile":16,"m":1,"n":1,"k":7,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[]} +{"kernel":"dense_float_float32_17_tf0","sha256":["4171de595ac53c2080b81be6da8b46a6ea99d79d5dadfb14e08f358a1fe5450b"],"dtype":"float32","profile":17,"m":1,"n":1,"k":16385,"kind":"vectors","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[]} +{"kernel":"dense_float_float32_18_tf0","sha256":["1b930d9add11a75e74a5a399cb4e5aae09093e93bf97bc66614606ab94168d96"],"dtype":"float32","profile":18,"m":1,"n":17,"k":64,"kind":"left-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[17]} +{"kernel":"dense_float_float32_19_tf0","sha256":["67039a00868a48691be7709cd52d8b8fda0df1bee9cd20971d08fcf8c26ae237"],"dtype":"float32","profile":19,"m":1,"n":17,"k":65,"kind":"left-vector","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[17]} +{"kernel":"dense_float_float32_20_tf0","sha256":["774ccdf36880349dac2b131a7a680ebbd2ca1add6101009f20b746b631642cfb"],"dtype":"float32","profile":20,"m":7,"n":1,"k":65,"kind":"right-vector","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[7]} +{"kernel":"dense_float_float32_21_tf0","sha256":["97afbd15f1527f45909a67cec724876dd615adaaad39e0f7545cfba5f605a1fd"],"dtype":"float32","profile":21,"m":7,"n":1,"k":65,"kind":"right-vector","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[7]} +{"kernel":"dense_float_float32_22_tf0","sha256":["4991a488919c0db6c8a8efc72ff729da230609bb8950064d925659c744f0c297"],"dtype":"float32","profile":22,"m":1,"n":1,"k":129,"kind":"cross","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,1,1]} +{"kernel":"dense_float_float32_23_tf0","sha256":["4eeb1e642ba5d5defca89eedc60436ca43e6d41090f17655fdc892b1ec1ca863"],"dtype":"float32","profile":23,"m":7,"n":1,"k":129,"kind":"cross","ta":true,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,7,1]} +{"kernel":"dense_float_float32_24_tf0","sha256":["cbba356cfd2c4bae5b483dd6a9e0f4a3a7d0bd05f330f7636e81852af2cc1a8f"],"dtype":"float32","profile":24,"m":5,"n":7,"k":64,"kind":"cross","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,3,5,7]} +{"kernel":"dense_float_float32_25_tf0","sha256":["2a07cbe0fd02b1c34c5f1bdaa88a64fadb11fc2d0294d8cf9532cdd414d7e30f"],"dtype":"float32","profile":25,"m":5,"n":7,"k":64,"kind":"copy","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_26_tf0","sha256":["cfc5ce4bc18531083beeee43b0217864fbf12163e72c55084820f1ff118c7429"],"dtype":"float32","profile":26,"m":5,"n":7,"k":64,"kind":"offset","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_27_tf0","sha256":["dd79ec13cb4ae04da6f7b380e83439468d4b094b6eeaeccffceacb1c1c6e7a13"],"dtype":"float32","profile":27,"m":5,"n":7,"k":64,"kind":"collapse","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_28_tf0","sha256":["dd79ec13cb4ae04da6f7b380e83439468d4b094b6eeaeccffceacb1c1c6e7a13"],"dtype":"float32","profile":28,"m":5,"n":7,"k":64,"kind":"flatten","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,5,7]} +{"kernel":"dense_float_float32_29_tf0","sha256":["ca059cccf479c0bece636abc0b3b8be5010cfec8573bf71b264130f97a689730"],"dtype":"float32","profile":29,"m":65,"n":513,"k":128,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[65,513]} +{"kernel":"dense_float_float32_30_tf0","sha256":["bb4a7baf9ccae458dfa4428b34ee0fa4693532ef01e5fccc5779d7384a5e8b50"],"dtype":"float32","profile":30,"m":2,"n":2,"k":4097,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[2,2]} +{"kernel":"dense_float_float32_31_tf0","sha256":["9acb476a9c2aef6838fa78fdcaca03acc4b6f48a449c5bff0cdfe79df1130a0e"],"dtype":"float32","profile":31,"m":193,"n":17,"k":8193,"kind":"plain","ta":false,"tb":true,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[193,17]} +{"kernel":"dense_float_float32_32_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":32,"m":0,"n":5,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[0,5]} +{"kernel":"dense_float_float32_33_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":33,"m":5,"n":0,"k":7,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[5,0]} +{"kernel":"dense_float_float32_34_tf0","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"dtype":"float32","profile":34,"m":5,"n":7,"k":0,"kind":"plain","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[5,7]} +{"kernel":"dense_float_float32_35_tf0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":35,"m":0,"n":5,"k":0,"kind":"flatten","ta":false,"tb":false,"tf32":false,"a_dtype":"float32","b_dtype":"float32","output_shape":[3,0,5]} +{"kernel":"dense_float_float32_36_tf0","sha256":["302f8d49ddcc7512913cfbe9561b0632c91030f5db4d29d72ee8a20fcbaf77d9"],"dtype":"float32","profile":36,"m":3,"n":7,"k":128,"kind":"mixed","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float16","output_shape":[3,7]} +{"kernel":"dense_float_float32_37_tf0","sha256":["f13d54214cfb0d8a11a677109a8d592d4aeafb79cca44b37062b35f80c0b80ea"],"dtype":"float32","profile":37,"m":3,"n":7,"k":128,"kind":"mixed-f32","ta":false,"tb":true,"tf32":false,"a_dtype":"bfloat16","b_dtype":"float32","output_shape":[3,7]} diff --git a/tests/fixtures/mtplx-dequantize.jsonl b/tests/fixtures/mtplx-dequantize.jsonl new file mode 100644 index 0000000..33c55b5 --- /dev/null +++ b/tests/fixtures/mtplx-dequantize.jsonl @@ -0,0 +1,324 @@ +{"kernel":"dequantize_bfloat16_g32_b2_plain","sha256":["676eb35a7f044e821195c36b249fc2effa2a281567a7696420c026427d0793cc"],"dtype":"bfloat16","group":32,"bits":2,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b2_transpose","sha256":["af07c20d4621bcfc1a0d1e7c79c9bbba76d9c7a63b97aaaa5f653013e15c3a12"],"dtype":"bfloat16","group":32,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b2_slice","sha256":["dd45f10de2c54a0259977cc1de64232157256b0a1d5d683bd32fa40ca4f51aba"],"dtype":"bfloat16","group":32,"bits":2,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b2_offset","sha256":["951ed5c4bb53e8042aae09e51106b59e9b51a21ffc6ff53e7bd8968b3dac2c86"],"dtype":"bfloat16","group":32,"bits":2,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b2_broadcast","sha256":["b9dfb73eae595d0ccf88ccec3d5fcfe6ba98db97d699f5c7c50cc1c0608b9f83"],"dtype":"bfloat16","group":32,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b2_batch","sha256":["aaa069ce0d67cd194b01886eb7e5704ecdc17c2daf97b228bcae1ab3c0aa111c"],"dtype":"bfloat16","group":32,"bits":2,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g32_b3_plain","sha256":["8db419396f69e23c885106fe1d677ac8e78e2514bf2d035e36374b8f0ac54183"],"dtype":"bfloat16","group":32,"bits":3,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b3_transpose","sha256":["8043195138a1cdebf814cb08d04dd6cfd5148cbd8df9bdede7db0f5cc9131c81"],"dtype":"bfloat16","group":32,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b3_slice","sha256":["ab6b07363f8ce1fe14d1deef1dd8970adc893c159613dc725b889a1c8d24f6f6"],"dtype":"bfloat16","group":32,"bits":3,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b3_offset","sha256":["b261e58bf1810cf8f058c0b7fdd5beba6df9430db204cc3c88093f543d58e880"],"dtype":"bfloat16","group":32,"bits":3,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b3_broadcast","sha256":["8b7a7af03eb8e36336ba31d567081a8d40244fbfd1f6eaa44770563c2544e79c"],"dtype":"bfloat16","group":32,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b3_batch","sha256":["986ddb8b39e9df5ce746f2b22adef9110e197993073cfe68245471d69e3a0b27"],"dtype":"bfloat16","group":32,"bits":3,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g32_b4_plain","sha256":["1d161aac594551c08c7b656309cdb4b5be729437868b0a0e9f48f5ceb7a181ec"],"dtype":"bfloat16","group":32,"bits":4,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b4_transpose","sha256":["f8083ddbc138f8726a112505c80d1d6e9cd4c92232b9cd33910745ded419f887"],"dtype":"bfloat16","group":32,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b4_slice","sha256":["8ffc6603083dc31d60b7ebbf2175700b59369781db382067da1678b856d201f6"],"dtype":"bfloat16","group":32,"bits":4,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b4_offset","sha256":["77814e966d2454a7df84dd41b8e14eeaa9dfa5d7e17915791bb80bd1f6e8f21c"],"dtype":"bfloat16","group":32,"bits":4,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b4_broadcast","sha256":["eb2758ffffe1b5f1fde2880cd1d5add3023293713c2e691b92c6e5c86a802712"],"dtype":"bfloat16","group":32,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b4_batch","sha256":["841c2604b68c99e2c197aa326854373cc0fd609e0443d8b32a87cdc200fc4298"],"dtype":"bfloat16","group":32,"bits":4,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g32_b5_plain","sha256":["9a22606a1e7cd5a68e8dff9eacede790a6d48c8878e1255fc679f45fd80a55e1"],"dtype":"bfloat16","group":32,"bits":5,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b5_transpose","sha256":["c6098a2a4982e293fa007900b572a7e84ea68c9ad30b1e82239347525b7e50e4"],"dtype":"bfloat16","group":32,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b5_slice","sha256":["2ae5a73685fef68a694a9de0e37cd363fef625de6a5cffd69219c6460e249ab8"],"dtype":"bfloat16","group":32,"bits":5,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b5_offset","sha256":["4cac30b2f17ef2bfb53db48651083a4ea65a7999d1a595fedeba01898f526c2f"],"dtype":"bfloat16","group":32,"bits":5,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b5_broadcast","sha256":["dbb6588d88c7cdcf87e4b4b78787e4b2058ddd0708c5406477653c5a7540f2c5"],"dtype":"bfloat16","group":32,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b5_batch","sha256":["97a676b69e19eb4bfb59ac1f39a18f8d0f6f49fe97153ccb06eae24b97e50116"],"dtype":"bfloat16","group":32,"bits":5,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g32_b6_plain","sha256":["df722732a5d7f4bf5d91c850c4b36f7e8c10020ed43799c30e1b055358df8263"],"dtype":"bfloat16","group":32,"bits":6,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b6_transpose","sha256":["e93949d5236b7fbc4e0906ce2de4469ced7b3af1c0f2a52837b3aa7cb7ec92b0"],"dtype":"bfloat16","group":32,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b6_slice","sha256":["873ef90c8fc61bbf043f9edabc7d7a377339d7fcb83c56559a56889b07ddba06"],"dtype":"bfloat16","group":32,"bits":6,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b6_offset","sha256":["52276557301f40999f24be1ac30ef66aea55e96cb06dba73d203ee7c990caaa7"],"dtype":"bfloat16","group":32,"bits":6,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b6_broadcast","sha256":["5e8fb8f7d2c57d39df1347aedc52181e7f331cc3a9ce6b071a5505956f5fe043"],"dtype":"bfloat16","group":32,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b6_batch","sha256":["c0d28ad3cf1e874342544d9b599dab8265050ecaa7212b7b58dbcf177752d657"],"dtype":"bfloat16","group":32,"bits":6,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g32_b8_plain","sha256":["1872d3c62da516d8607668f9dfb5f920c1a227ca43977ca91a88aa7a1b9f0f51"],"dtype":"bfloat16","group":32,"bits":8,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g32_b8_transpose","sha256":["3eac24a3c85e2b06e91bd7143eb78c1ca8fbfd1536dedc4d38ab485b633b54d5"],"dtype":"bfloat16","group":32,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g32_b8_slice","sha256":["ca6308bd0cd68d6b6a1d2ec4a34f5de89fbe0a1f691d0568005e58820a5d6cc7"],"dtype":"bfloat16","group":32,"bits":8,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g32_b8_offset","sha256":["8f33f98020e95d7c9a4826b7f620b6dd7b68eee3c2256a40d15cde606cd28cb0"],"dtype":"bfloat16","group":32,"bits":8,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g32_b8_broadcast","sha256":["282cd3e8e5a252ccc854e4ed67f05a181e5fdeb4b18d1a4eae4f6031db71ce49"],"dtype":"bfloat16","group":32,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g32_b8_batch","sha256":["4dded06ab81a4fe8dfabdd6b31b89cdb2e048ec57abae9e61561b75a91b46cb6"],"dtype":"bfloat16","group":32,"bits":8,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b2_plain","sha256":["c1a3ec84eca02b605c611c0e0eeab6fe58a697ed534d119fb56d6487ed92d6dc"],"dtype":"bfloat16","group":64,"bits":2,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b2_transpose","sha256":["03d8cd000e8fed7d0888101a113993c469dd062c8e078a4d16b6cc712c31d495"],"dtype":"bfloat16","group":64,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b2_slice","sha256":["cbfe2a8763304d831fe8aa93dbe2b1979c99dee3584e6f26d61ba437ce12a49e"],"dtype":"bfloat16","group":64,"bits":2,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b2_offset","sha256":["4fded3c59c2bb154cfbda4b1841f8ce5e7ad465c9c0f88b21b02858a958edb9c"],"dtype":"bfloat16","group":64,"bits":2,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b2_broadcast","sha256":["126235a61e9269026da3e3fc7dbcbf9f7fae37ef19a797da9b0e9c1be02314ff"],"dtype":"bfloat16","group":64,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b2_batch","sha256":["9aa2465c9452bd110dcc43e8097ee5da62acad1ed36f05edeafb3e5d7698d2c0"],"dtype":"bfloat16","group":64,"bits":2,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b3_plain","sha256":["85ca2c9c3db062b0a62040ce42635f7883a41b5b862884a51e5419654497c5a3"],"dtype":"bfloat16","group":64,"bits":3,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b3_transpose","sha256":["b9525c3e2ec441b3c1dc943c05dc083208ec7642222a659c7ec31854358591ec"],"dtype":"bfloat16","group":64,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b3_slice","sha256":["1e6abd4be36389d15aa2b3d926d68fada34504394ffa936b9f383c977973cde4"],"dtype":"bfloat16","group":64,"bits":3,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b3_offset","sha256":["9206e09eb12c1bd58e17291965ee7a8aab3765bde2583e39db6be7814b0f5dba"],"dtype":"bfloat16","group":64,"bits":3,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b3_broadcast","sha256":["90e094a1b773cea687bab75fbe1f1405f42f5ff970d9ceedcd70ee6aeca64afa"],"dtype":"bfloat16","group":64,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b3_batch","sha256":["31d671cbbcae030e04e7f085b1de5808c4a16544c79c65b0dc232bc2dce24328"],"dtype":"bfloat16","group":64,"bits":3,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b4_plain","sha256":["56f74c935510eb909ae06e1ad3f40afae112e876127bbd2e76af661b8c0636e3"],"dtype":"bfloat16","group":64,"bits":4,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b4_transpose","sha256":["f6409e6bbb2b31446574f594df409fbaad47da303abc6c05e1a72e172ed51260"],"dtype":"bfloat16","group":64,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b4_slice","sha256":["d18f3557f4b8b7b5f5125c99fab03d7094c2aa73ecfc42df74aa7ece6e69b240"],"dtype":"bfloat16","group":64,"bits":4,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b4_offset","sha256":["802b205f7cbfc2fb1aa0dbaf0b6b6a5d761947705c0306a8c62f7233f3d0696b"],"dtype":"bfloat16","group":64,"bits":4,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b4_broadcast","sha256":["6390d4b36e3159d05c00840039571e7600058d31a4a8633c32827291f0d647ce"],"dtype":"bfloat16","group":64,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b4_batch","sha256":["740749e8359584751a4e586dd47435f747c1d5dedd1d19d994cc99c1474c0526"],"dtype":"bfloat16","group":64,"bits":4,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b5_plain","sha256":["9aa83c66fe1669b115bdf1ea2315968d506620c642396a649af5cee6d447c00e"],"dtype":"bfloat16","group":64,"bits":5,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b5_transpose","sha256":["a68b407d1e305ccec7469ddbaf7c75c5de10904e106fb847aa24047bf9887397"],"dtype":"bfloat16","group":64,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b5_slice","sha256":["9f5fa93e6de54275099f3b9d3349c01d59b27f5360bbdaf91ec46a89f9f1499e"],"dtype":"bfloat16","group":64,"bits":5,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b5_offset","sha256":["c2d703f347c27c0fbf20b18f92cc6e34cf7158854820b4c3dccfa0a85f7bec22"],"dtype":"bfloat16","group":64,"bits":5,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b5_broadcast","sha256":["dc0a5bc19017c823c4656676e4f897e545786adb111b63f1628d99f543e9d757"],"dtype":"bfloat16","group":64,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b5_batch","sha256":["2fd5e76a10def10f362992ad633776c1a104a9b1dfa1d6b72fda0efd1f244195"],"dtype":"bfloat16","group":64,"bits":5,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b6_plain","sha256":["bba08902b9802db40e6a1bd50be3801e87b5903677cd52a76a4be7a14ca0e5c2"],"dtype":"bfloat16","group":64,"bits":6,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b6_transpose","sha256":["c83ce8722c97114c7afb2c8ec6c8952c9a9964514bf649f92cc65b85629bb644"],"dtype":"bfloat16","group":64,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b6_slice","sha256":["bb4b65c612aedd2f7069dc3803febb4141f6eff269e76e5f562e298a1ad72c65"],"dtype":"bfloat16","group":64,"bits":6,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b6_offset","sha256":["c972f6552902deaee7c184e5d73f527fda9141a7ec95e2c9847a28aa41b6c955"],"dtype":"bfloat16","group":64,"bits":6,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b6_broadcast","sha256":["48dd065fa28de551f01fa36d848f7415a5880fb02dcb316e80520176fcce617a"],"dtype":"bfloat16","group":64,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b6_batch","sha256":["572c38b2d000a90b18f42126c7861f59e46c375a1c13c5d90863c103df86434a"],"dtype":"bfloat16","group":64,"bits":6,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g64_b8_plain","sha256":["77cdb9149e61a76f9b19cafe9ded40354061033f76087a8fa0450897107e3fdd"],"dtype":"bfloat16","group":64,"bits":8,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g64_b8_transpose","sha256":["7b453c80bfa62f8033afda47cec736ec33e33a58f2182bdffb0bf35d656cf7b9"],"dtype":"bfloat16","group":64,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g64_b8_slice","sha256":["1b1b9ee2a192f4ab035906288dda591681ec312f29ecd5cfc8e8947018616440"],"dtype":"bfloat16","group":64,"bits":8,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g64_b8_offset","sha256":["c77237631ce1a73c19e1f08736f0cd5e9fb342033294d8c21317b714a9c900ec"],"dtype":"bfloat16","group":64,"bits":8,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g64_b8_broadcast","sha256":["936cca10a75632204e70487170baaa15e7387ff36cbf3300fa29def621299fec"],"dtype":"bfloat16","group":64,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g64_b8_batch","sha256":["4b003e9ab8329c91db69fe776d5f852947dbd73ac75dc9f18776fe4ad1473398"],"dtype":"bfloat16","group":64,"bits":8,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b2_plain","sha256":["ca4edd933dcb82638e20b1339caacdc3c70a2e503a382245691103926e36ec57"],"dtype":"bfloat16","group":128,"bits":2,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b2_transpose","sha256":["f22e3076b9e82658be6ab148451d6da3fb861510487bbd210437e33a71304fde"],"dtype":"bfloat16","group":128,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b2_slice","sha256":["1993ad2e00c800c613b83d110d05f2eb2c018eca3f8823051f982f5dda49e4f7"],"dtype":"bfloat16","group":128,"bits":2,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b2_offset","sha256":["f2023d524e78066ee5200dbf1d4a68bedc4a25144e0bdddaab8dc3f1b5084bfc"],"dtype":"bfloat16","group":128,"bits":2,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b2_broadcast","sha256":["0a429cb8af6ddc10f47ce71b8da294a02761b729039d3acc71f4b78040da595b"],"dtype":"bfloat16","group":128,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b2_batch","sha256":["a9383d73fceec60566fd76de95290170af06ce33c6446249a800639038c00f1d"],"dtype":"bfloat16","group":128,"bits":2,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b3_plain","sha256":["7233c14477e11a54c36d775da596690c876eccc79a45f8c324e16e565bc5c967"],"dtype":"bfloat16","group":128,"bits":3,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b3_transpose","sha256":["82025477602da2287bad230639a496feb8d28672e6b0d033adfafde7ccf0e301"],"dtype":"bfloat16","group":128,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b3_slice","sha256":["9468f69cd9be127c38617a8650d697bb06e5e2aad04786ac736fdb948b017359"],"dtype":"bfloat16","group":128,"bits":3,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b3_offset","sha256":["1d232bbe3120891a28510d62aea11ade83f4bc0872fc74ffd357ea503ccb9dfc"],"dtype":"bfloat16","group":128,"bits":3,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b3_broadcast","sha256":["e6b538151af737fb2fa092ea9511afa7e6309bf74f65bbe06ee60acf00ccf9b2"],"dtype":"bfloat16","group":128,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b3_batch","sha256":["4029aae4b6afbd1f0f9a85238e669e515a814bc8f4edc56989f0d7f4d4fcfefb"],"dtype":"bfloat16","group":128,"bits":3,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b4_plain","sha256":["4e8514d325631dedb1dae3784cd1c8c3e53e5062dfbe38f9afc1fcdefe5c084e"],"dtype":"bfloat16","group":128,"bits":4,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b4_transpose","sha256":["49cc8937389c121c1dd954aaadded326ab70ca8f2c4a1f9f51ca37def122c27c"],"dtype":"bfloat16","group":128,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b4_slice","sha256":["02a38d863c4c6a9edb4d2ce5c51e704ee70b761370ae6669102f6dfd6bcfa5c5"],"dtype":"bfloat16","group":128,"bits":4,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b4_offset","sha256":["474096ddd3d03992e8229e93dd8b35324e1d4bc1cae7366a65f6259e01576d2b"],"dtype":"bfloat16","group":128,"bits":4,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b4_broadcast","sha256":["ebd82bb43f9cc544330ae848fdeffc44431cdf505b87c11a264c066f7e3b7f1a"],"dtype":"bfloat16","group":128,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b4_batch","sha256":["410229268522987f8855dc03c7dc10768f37f8184f651d5de8214879758f650f"],"dtype":"bfloat16","group":128,"bits":4,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b5_plain","sha256":["d5bbbe1b93eeae14320bc2c029e3da51c58e02d993fd386fcbf8447f01b72c83"],"dtype":"bfloat16","group":128,"bits":5,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b5_transpose","sha256":["a7feb5999deba1f317d3f7e4cd24ce90fd48cb4ae981311d3c7e6b1c03f80d54"],"dtype":"bfloat16","group":128,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b5_slice","sha256":["29aec0dc95c65388d9c7bde14e2593c0294b19d120989010d3594434f3b65caf"],"dtype":"bfloat16","group":128,"bits":5,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b5_offset","sha256":["e87eeb92e4115672f620424e06016d98ca256a9a9a57ca6c7704f53b32e34aef"],"dtype":"bfloat16","group":128,"bits":5,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b5_broadcast","sha256":["8da3f64ff9918ef431504bf6a6527028d43dd89536cf67d16af1ce17e40822fa"],"dtype":"bfloat16","group":128,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b5_batch","sha256":["af0a4b02e36094976c6415a2e9191347fc39f52e43e49b9d1d9d09f202e4b545"],"dtype":"bfloat16","group":128,"bits":5,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b6_plain","sha256":["578c4ade97b922340a4e0ad1393c6a9ec2070cd519e650cb77fbe2ac60aa2dba"],"dtype":"bfloat16","group":128,"bits":6,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b6_transpose","sha256":["9f7fcda217663e5b2b58cae2190c1af6fa4618f4c94befb4b917899b14e6c7e9"],"dtype":"bfloat16","group":128,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b6_slice","sha256":["03b897571a6c3e18e21a23a1ecd105ddfc84128a8780064b8c1e3d4e9d0b4d14"],"dtype":"bfloat16","group":128,"bits":6,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b6_offset","sha256":["a99ff1a17877eb58c255c7804b8fcd2306d42e6c03e2a6592d905623bc1ba10d"],"dtype":"bfloat16","group":128,"bits":6,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b6_broadcast","sha256":["03a633d691c2177f281a4f87f36429a93e51ccc841c5885757c05856644688f6"],"dtype":"bfloat16","group":128,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b6_batch","sha256":["ca318338207cac928251266a86223fd0f606d9bff445ea2cd83a0c253685921c"],"dtype":"bfloat16","group":128,"bits":6,"layout":"batch"} +{"kernel":"dequantize_bfloat16_g128_b8_plain","sha256":["4035eab63961d76f02ae083be242e774236823f4fdf32e26ccd1117ce26e6605"],"dtype":"bfloat16","group":128,"bits":8,"layout":"plain"} +{"kernel":"dequantize_bfloat16_g128_b8_transpose","sha256":["3d8907d9ca3a5802707dc899e5d66c013ac30302454ad15ef1070416a05da778"],"dtype":"bfloat16","group":128,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_bfloat16_g128_b8_slice","sha256":["eed40a389d005038fc3790232a4384618e30041ee041b8d704c745c1c2cfd695"],"dtype":"bfloat16","group":128,"bits":8,"layout":"slice"} +{"kernel":"dequantize_bfloat16_g128_b8_offset","sha256":["17cb4e80e1a440acf67e0694236cf8919ebcf7b1240b743dd54d66c631cd6ad1"],"dtype":"bfloat16","group":128,"bits":8,"layout":"offset"} +{"kernel":"dequantize_bfloat16_g128_b8_broadcast","sha256":["ef10e42d91702616a012675fec3f99fc0bafd27161ec7bec4445d96265876a43"],"dtype":"bfloat16","group":128,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_bfloat16_g128_b8_batch","sha256":["21482f626b6b04c53ee1d702d1234c559484a4fb8bd04565093ed1480609778f"],"dtype":"bfloat16","group":128,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b2_plain","sha256":["9e4b3110cf5994bd6209206620aecc3fe8e5bd87c89ec524610c3a7ee9fc04b5"],"dtype":"float16","group":32,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b2_transpose","sha256":["d4e16ba37438e9c05cab4a1101bdc176864db106f341a90a48b00a8794cd7ba0"],"dtype":"float16","group":32,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b2_slice","sha256":["13f8501ae0faec14e53d4d7061a748619821059205d2501d578f51a68b21f37a"],"dtype":"float16","group":32,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b2_offset","sha256":["49ce7b8bc461ec5ef5ceb09b61268dc71d4db73357a5931613c45e6eb2cafa36"],"dtype":"float16","group":32,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b2_broadcast","sha256":["6ec89dabb8666802b27421f677e0ea537c059c42b6407b45e28dea5340fc102f"],"dtype":"float16","group":32,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b2_batch","sha256":["61d065774b08d44202950e77abe20d7e659d6c3548c38c69dce09bf63fbb3c2a"],"dtype":"float16","group":32,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b3_plain","sha256":["63bdbbb6791116c928fb79b6352fab1badbfc9743b7cf45b7ec75d400756fe54"],"dtype":"float16","group":32,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b3_transpose","sha256":["0b301fc8be83416082f77da2df58e2554cace7a30de44f26ca9800dfb29ca8de"],"dtype":"float16","group":32,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b3_slice","sha256":["8791198e43e3ef707233d276730b003eef0055edbeacab788ff7d6228dcf81a0"],"dtype":"float16","group":32,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b3_offset","sha256":["4b790aaac3b7f42211b36a66008ad83955cd397ea820c38c9efc4571f4d574fb"],"dtype":"float16","group":32,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b3_broadcast","sha256":["164f65ea3944016a0b0bedabdce81d262f2731ee11fb76116755cf9044158de6"],"dtype":"float16","group":32,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b3_batch","sha256":["788ed9cb148844b6fda52ddd50aa200ae07e200ce99b3dc81e798201cbee6ae9"],"dtype":"float16","group":32,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b4_plain","sha256":["971fad5be937367bcffa753fd9a01c7d581c3af2637ac9da07f7c971de42da8f"],"dtype":"float16","group":32,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b4_transpose","sha256":["79282d4132368c3648101b6dad7b84cf9292f3bdb23d71a601c0112234d32e71"],"dtype":"float16","group":32,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b4_slice","sha256":["ff3d6cb3895e1784699c3fd551fd1f4934ce5f6d8ff234e14f925fb69948412a"],"dtype":"float16","group":32,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b4_offset","sha256":["f8b680a24db43e43df85ecf5d5930e076a38a33702cfcca7ad8af577a3a180b6"],"dtype":"float16","group":32,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b4_broadcast","sha256":["536a5d3a438f2dcf6dbe47abcef5a24507cc20dce96773ae9dc48f89a13ae55f"],"dtype":"float16","group":32,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b4_batch","sha256":["aa676dd4d69b33b09b40b0fc52f082f1b264cca3008d57e6f243cc560b1a3450"],"dtype":"float16","group":32,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b5_plain","sha256":["f310e0b08482d62f9071d5e3049d1f144ca325a529640e975d9672911066580a"],"dtype":"float16","group":32,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b5_transpose","sha256":["53887f985b255f57eddddc3adb37a75f14249cf3e66305e06c2cba479a3c6305"],"dtype":"float16","group":32,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b5_slice","sha256":["50eb67fe50ba347ed778ee36a2fdc9ffa42cdda1ca427a88a329992ff6237cea"],"dtype":"float16","group":32,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b5_offset","sha256":["74c5b99bb0418ce5441398bb7700beb4cfd2efff38cd2074d8a55e41553999b4"],"dtype":"float16","group":32,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b5_broadcast","sha256":["57e0caa1b0fab1b18159343e158095c35a7ff25a08de1bc3bdf4e14599d547c9"],"dtype":"float16","group":32,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b5_batch","sha256":["b3baf3e26000b7749e5495da4d1613231dd798025ea9df1b1aa8fff36267301a"],"dtype":"float16","group":32,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b6_plain","sha256":["15484c63e321bbf4fbc55e8129884dc6460432109b7c9069c130d1e3b47ddac0"],"dtype":"float16","group":32,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b6_transpose","sha256":["ee2fd3be2e342f580a9daa6e9e93c71b51f92366b0d0ddf7538b46b1a8277d91"],"dtype":"float16","group":32,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b6_slice","sha256":["72b61d2a347387b2cecbe680c2731c30e932461213e25e8ab78631ff1ebf4a20"],"dtype":"float16","group":32,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b6_offset","sha256":["b9ff4a5daccb25e1327da79e034bbd586d31bc96931a0495f554ef469239d275"],"dtype":"float16","group":32,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b6_broadcast","sha256":["a1d6d261beea1ea71ffdb937a11e2411cc8fe1fc1c10849f79dc75280c15592f"],"dtype":"float16","group":32,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b6_batch","sha256":["07a786a42cc38a1843aad2595ade2d8acf59f7dc0af85309824a582a1407fab2"],"dtype":"float16","group":32,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float16_g32_b8_plain","sha256":["bd9f1f80114c0c1994611d4ff6c45b2e1cdbba45827c5e1c25001568280196af"],"dtype":"float16","group":32,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float16_g32_b8_transpose","sha256":["94255c2ff4ea8a31179ff6a804ec39fde29a49c6258391d6ee4d5c072e33e8cf"],"dtype":"float16","group":32,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float16_g32_b8_slice","sha256":["407d878ad736f908665064ff0b5bd0660ea37e08bb266d2d1ceb03954579186b"],"dtype":"float16","group":32,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float16_g32_b8_offset","sha256":["a53ca780090e80b4ea75391deebb47701449b5d594d45af72644feb366ee76aa"],"dtype":"float16","group":32,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float16_g32_b8_broadcast","sha256":["231b27a1d7acc3280f30a59ac8a628be998e1d5e1ff41a366bc36a78d9814ff9"],"dtype":"float16","group":32,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float16_g32_b8_batch","sha256":["62995a1679e5f43aed0106c4f69414bd899adc74445437b5656da677447f029f"],"dtype":"float16","group":32,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b2_plain","sha256":["77ac09c94d15eb3bf537b9a01ba408c6f89d5da10f58bbc8a105e8c076c6b091"],"dtype":"float16","group":64,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b2_transpose","sha256":["a5bb3f71e8f8acc88596cee0805e5827e6593051561e69a918bf9adfe350d7e4"],"dtype":"float16","group":64,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b2_slice","sha256":["8f45dc9e0d06681571a0545dfc33a4488d6cc6be606a6d47803ade42e2554b36"],"dtype":"float16","group":64,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b2_offset","sha256":["2be5be52249d27fd8260a7612b9bb8dc304084a73e9bcd38170e411636b8ac97"],"dtype":"float16","group":64,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b2_broadcast","sha256":["8d63f61e914282624e4555bb793dc209800ba9cec6162bfce155cb529711945a"],"dtype":"float16","group":64,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b2_batch","sha256":["c038fa424e16ccbc0c1951bef3760e20abf126ddf6e286c22d88b27425171327"],"dtype":"float16","group":64,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b3_plain","sha256":["4df6263443057b8c1de038f2944ef9c5fad8e5911b2354c85afa2accab9df03e"],"dtype":"float16","group":64,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b3_transpose","sha256":["f638288c359e248239c089d235bca176deeddb8baa7da3dd4fa18d5ffd0e4a1c"],"dtype":"float16","group":64,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b3_slice","sha256":["27c9113397e161bba2837c710fd47ed71711b3b1da805e6020bcb0689dd34179"],"dtype":"float16","group":64,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b3_offset","sha256":["4825cbbed2a37694f73a8ca37bb6f6c4ed8cfb16014dd68c827605da0304e075"],"dtype":"float16","group":64,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b3_broadcast","sha256":["b8359dc53884b9629fee3d86077620ea7439fc81e5d8013b1b67f5708835649a"],"dtype":"float16","group":64,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b3_batch","sha256":["d61d8b59ec5d62eb7a2d63fb440e7a36d0295b30205ffab6c8339e989415b10f"],"dtype":"float16","group":64,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b4_plain","sha256":["3fbd45f0ad166e279b0e9b47f89d77a6d3faeb2acce961d55b7dc807dd5cefa5"],"dtype":"float16","group":64,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b4_transpose","sha256":["5bfd4874c5ef6a5599ba0e50f24bd3feedf6626dee63339c81c4573c46fb0ad2"],"dtype":"float16","group":64,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b4_slice","sha256":["121de5bad4b005d6c74d64307edab8f68313ab62ab145eef2b191662941a3503"],"dtype":"float16","group":64,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b4_offset","sha256":["d4d25350f06cd34f5fc169d06cff6d55810f4d97625877972ead1e343bae253b"],"dtype":"float16","group":64,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b4_broadcast","sha256":["2be53ac0e0b3b74583c2731c0ba7c3ca461350b055a4a2a9cf1d6ca25080ae9e"],"dtype":"float16","group":64,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b4_batch","sha256":["052dc3b38730a0700e85cc86278d8ab6ac2b852d4796e52357bfb06cbfea5fba"],"dtype":"float16","group":64,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b5_plain","sha256":["75065a0e5e8722c3634d0ec665f40d17652b311cab3db00220a310212e7e7b83"],"dtype":"float16","group":64,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b5_transpose","sha256":["1b7745e600462d15538e4fd4014cf3a3df1cc29d46569036edd5d3da647aeb0f"],"dtype":"float16","group":64,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b5_slice","sha256":["c9dfe52f40c85e3c18004b473325c8931eef8b9c665394bca708da2df19a1dd0"],"dtype":"float16","group":64,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b5_offset","sha256":["70feb69214593fcf2a806e6dd215b6fb55ebe8f833a1aa66c974ba3466970bdc"],"dtype":"float16","group":64,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b5_broadcast","sha256":["d2306e714fc41a5aa2868e314be5a189e523707a24c7e4c6f50ffbcb3d9cdba0"],"dtype":"float16","group":64,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b5_batch","sha256":["977e42c66ee479f4dc9d7885433fae0978d919c3a37e9c71eea93c5260815d96"],"dtype":"float16","group":64,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b6_plain","sha256":["5fb80c9f11703cfc77c64659abb79d89d0d0c81c3354a8022375dc4f412473aa"],"dtype":"float16","group":64,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b6_transpose","sha256":["a26c429504511fd0bf80831b33d0080e5f170e499fd1eaac6a6db4e8eaf39fc3"],"dtype":"float16","group":64,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b6_slice","sha256":["c19b52440fbb6555280f1ade307e9895fa331982a6d0a955eac647761794ccad"],"dtype":"float16","group":64,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b6_offset","sha256":["3f4e04d687cd2651b678755a7b902c14a498ec0f905553cae8c1a7b158e0d9ee"],"dtype":"float16","group":64,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b6_broadcast","sha256":["9ab914642cc5fb645ec5b787ae5707b91606b062fdd57e2d3d1884a3022b3f73"],"dtype":"float16","group":64,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b6_batch","sha256":["1e68b7fee86d18919506613f75e887bc940b22114d9ef6f41c7b6dff9390e320"],"dtype":"float16","group":64,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float16_g64_b8_plain","sha256":["8193b581fa0fe194570b0a25358f31fe339ab54de7f1005e94304447e91a9ef3"],"dtype":"float16","group":64,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float16_g64_b8_transpose","sha256":["fc9507bff2c20aae12e6a0a042761dca5c26ea353f41ffe53f866cf0ca7a803f"],"dtype":"float16","group":64,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float16_g64_b8_slice","sha256":["981d98ca8af3d835720968477cc13b3c244da4cbfb315bf27b85b97b514f3bd5"],"dtype":"float16","group":64,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float16_g64_b8_offset","sha256":["f85b367a8c3be956cefe306157fa3552bced4f6e9b788d464d81bcb2210eaa68"],"dtype":"float16","group":64,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float16_g64_b8_broadcast","sha256":["9b5708bee90bfac1246747f0858f73a47d43d5cf996360e109411f54c0544b3d"],"dtype":"float16","group":64,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float16_g64_b8_batch","sha256":["d183fdd4df41b821a9931d022b288a19fdb4ff3665dd9e498e34758975cc1a13"],"dtype":"float16","group":64,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b2_plain","sha256":["127a4c14ff4107582893239f9d86e72c79de4fdb20be15efd4a742001d1789f7"],"dtype":"float16","group":128,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b2_transpose","sha256":["f3885050a10d45d91e3dcbb5a6c1b174a89ba3800ef0d4bbe1e936562b9f5dec"],"dtype":"float16","group":128,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b2_slice","sha256":["c8fbdea2f5f0900254a61f3bc0f24ab3ae7185e682d2634932f834c30e78ddbd"],"dtype":"float16","group":128,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b2_offset","sha256":["f2023d524e78066ee5200dbf1d4a68bedc4a25144e0bdddaab8dc3f1b5084bfc"],"dtype":"float16","group":128,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b2_broadcast","sha256":["003b1ce1b71bd332a56665632556afb30be0cdea77bc1ec8e0cd04015547378e"],"dtype":"float16","group":128,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b2_batch","sha256":["06f33660bbf72a52404cdae40211ba16f54aa70fb78f3488d16f90c8ce663fa1"],"dtype":"float16","group":128,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b3_plain","sha256":["aedde88ade6786229e8c2ee56de3b77816a4d5b1a61ddb2cf3c3009c045cecc7"],"dtype":"float16","group":128,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b3_transpose","sha256":["76bef3ac6aa712325b45619d0d571ed75e4df6a5bae38486782fe0a34d42b6a3"],"dtype":"float16","group":128,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b3_slice","sha256":["23a86124d8b70db1aaa670d39a53f8d6f7ca41c74aa46ff80fd8583a625c0e30"],"dtype":"float16","group":128,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b3_offset","sha256":["1bb6dc78080c78ef89d4f4d5034815f04ea6da20d13c212d4ddaf52b9a94a74b"],"dtype":"float16","group":128,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b3_broadcast","sha256":["d5d88abd1e4e6c17da562a94895b8aba29b7599f9694b3875e6bf7bef2500cbf"],"dtype":"float16","group":128,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b3_batch","sha256":["203cb4d79a35287f3459a8e3c721c3ea0172033746bd26ac04ed6afdcb5b557e"],"dtype":"float16","group":128,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b4_plain","sha256":["6931f3e9afb1ef84f33a13e427687bee542f821d6621f2531581f1ce0004601a"],"dtype":"float16","group":128,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b4_transpose","sha256":["cbd05e9109432d30a6b594b45159d6bc9c55c3da15bbf2f3ef0f02517f50ee8d"],"dtype":"float16","group":128,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b4_slice","sha256":["00e18e1a5d4540b7d6e540ea998fc1bc03650612c337da435b23b97a97fa29bb"],"dtype":"float16","group":128,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b4_offset","sha256":["c371a159d01740e626e03360951d3f00080e77202e871bfaaa175429e6a9cab3"],"dtype":"float16","group":128,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b4_broadcast","sha256":["67ecd33d44ad3e02449e091aea925276ae0ffd5b4237265689a4f772a744145c"],"dtype":"float16","group":128,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b4_batch","sha256":["9c7e9c3710504e2ae04971ff1048617da28decea1c1ba2dd2f621a103d8a6b27"],"dtype":"float16","group":128,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b5_plain","sha256":["9cf56153484f99499ccb6a3a19d851db6377d1805f5db8161e3333e5eee7abc9"],"dtype":"float16","group":128,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b5_transpose","sha256":["e71a5306faf43a08976b1253ed44b7b5894dd1c4328075ae662d70b6246b7178"],"dtype":"float16","group":128,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b5_slice","sha256":["50ba0a476b023adc6292d858cd832ad2ad48946192a790708ab8aa5095041062"],"dtype":"float16","group":128,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b5_offset","sha256":["54c36e48cf3a38742da60ed36dedc6a2425d0ef3c9a13077156f5034fd8bae0c"],"dtype":"float16","group":128,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b5_broadcast","sha256":["a89e8db6d1caa58db205976fd15265c6a0017d934097838fa85433a91d284ec6"],"dtype":"float16","group":128,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b5_batch","sha256":["a8c905a16137c8e318218d7d99d2df935644f17bbb328de4e38f7d22fba0321d"],"dtype":"float16","group":128,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b6_plain","sha256":["84d97b93e4b51ca43414288f9685cb8305949afc9afd1907f97f0b3a7e89efbb"],"dtype":"float16","group":128,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b6_transpose","sha256":["50175beb541f318952ea747a361f3a6591fd58d5e02ddee845894ccd14f67f04"],"dtype":"float16","group":128,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b6_slice","sha256":["53648980c87991d33e5f5a07dba2618cb20f98a4ce6345e46c5cd6bfecd1fdf5"],"dtype":"float16","group":128,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b6_offset","sha256":["ff5e466cd5ef766523d3b5f5232ab3a51903c31e189cbecb3981d73f3b337959"],"dtype":"float16","group":128,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b6_broadcast","sha256":["9f31691bb3b9058bfe696f3840f668a0df0164252ed92205f14a111f3ebfd79a"],"dtype":"float16","group":128,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b6_batch","sha256":["9faf2b58c4a8ec54aa68a429292f8b30ac4ab11bd8cc647e0827b07da2d5d592"],"dtype":"float16","group":128,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float16_g128_b8_plain","sha256":["7ea6185a080beea26582d7471f4d1ddced0f90eeae00135dfa866ad549556bce"],"dtype":"float16","group":128,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float16_g128_b8_transpose","sha256":["a6389dbf1451da592ae652f849ff895e369ed723f941ff36be4e5f08af76e918"],"dtype":"float16","group":128,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float16_g128_b8_slice","sha256":["6bcff326213f40e88610e736d1395e6c8cea04ed316c391c366c0faf9c6ffdd3"],"dtype":"float16","group":128,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float16_g128_b8_offset","sha256":["faa27e4788b46ef0719f3fdbffdbc99d92c84c405b1f16065df2d776b5dbad90"],"dtype":"float16","group":128,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float16_g128_b8_broadcast","sha256":["eaf3a93e8d1af32c316391674a9e107e0936c34d4a68526c6aeefd6200d711b4"],"dtype":"float16","group":128,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float16_g128_b8_batch","sha256":["95ecf63be019e1bbfece286b6a99f0c521e45729483df13dd2837370f92bb874"],"dtype":"float16","group":128,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b2_plain","sha256":["9e4b3110cf5994bd6209206620aecc3fe8e5bd87c89ec524610c3a7ee9fc04b5"],"dtype":"float32","group":32,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b2_transpose","sha256":["d4e16ba37438e9c05cab4a1101bdc176864db106f341a90a48b00a8794cd7ba0"],"dtype":"float32","group":32,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b2_slice","sha256":["13f8501ae0faec14e53d4d7061a748619821059205d2501d578f51a68b21f37a"],"dtype":"float32","group":32,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b2_offset","sha256":["49ce7b8bc461ec5ef5ceb09b61268dc71d4db73357a5931613c45e6eb2cafa36"],"dtype":"float32","group":32,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b2_broadcast","sha256":["6ec89dabb8666802b27421f677e0ea537c059c42b6407b45e28dea5340fc102f"],"dtype":"float32","group":32,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b2_batch","sha256":["61d065774b08d44202950e77abe20d7e659d6c3548c38c69dce09bf63fbb3c2a"],"dtype":"float32","group":32,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b3_plain","sha256":["63bdbbb6791116c928fb79b6352fab1badbfc9743b7cf45b7ec75d400756fe54"],"dtype":"float32","group":32,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b3_transpose","sha256":["0b301fc8be83416082f77da2df58e2554cace7a30de44f26ca9800dfb29ca8de"],"dtype":"float32","group":32,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b3_slice","sha256":["8791198e43e3ef707233d276730b003eef0055edbeacab788ff7d6228dcf81a0"],"dtype":"float32","group":32,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b3_offset","sha256":["4b790aaac3b7f42211b36a66008ad83955cd397ea820c38c9efc4571f4d574fb"],"dtype":"float32","group":32,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b3_broadcast","sha256":["164f65ea3944016a0b0bedabdce81d262f2731ee11fb76116755cf9044158de6"],"dtype":"float32","group":32,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b3_batch","sha256":["788ed9cb148844b6fda52ddd50aa200ae07e200ce99b3dc81e798201cbee6ae9"],"dtype":"float32","group":32,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b4_plain","sha256":["971fad5be937367bcffa753fd9a01c7d581c3af2637ac9da07f7c971de42da8f"],"dtype":"float32","group":32,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b4_transpose","sha256":["79282d4132368c3648101b6dad7b84cf9292f3bdb23d71a601c0112234d32e71"],"dtype":"float32","group":32,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b4_slice","sha256":["ff3d6cb3895e1784699c3fd551fd1f4934ce5f6d8ff234e14f925fb69948412a"],"dtype":"float32","group":32,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b4_offset","sha256":["f8b680a24db43e43df85ecf5d5930e076a38a33702cfcca7ad8af577a3a180b6"],"dtype":"float32","group":32,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b4_broadcast","sha256":["536a5d3a438f2dcf6dbe47abcef5a24507cc20dce96773ae9dc48f89a13ae55f"],"dtype":"float32","group":32,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b4_batch","sha256":["aa676dd4d69b33b09b40b0fc52f082f1b264cca3008d57e6f243cc560b1a3450"],"dtype":"float32","group":32,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b5_plain","sha256":["7e084ee5be1b7f260cab23e247d919af77d5620945db71af0a623c2f18b94c27"],"dtype":"float32","group":32,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b5_transpose","sha256":["08658d23579faddf8df00f6413d863f6b4f177e1bd520160be95f62ccd090f90"],"dtype":"float32","group":32,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b5_slice","sha256":["4a2ae2e558a7b843fc99cd55e2b70bb63f299d4ef5225dacb56687ab9994995f"],"dtype":"float32","group":32,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b5_offset","sha256":["1ed33d537bf6358a405f11cc33534900175df60738671ad9ebc1838604ee9160"],"dtype":"float32","group":32,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b5_broadcast","sha256":["70f035787b748e43aaa6aed90a29d6578f61b0c69ba0b60cfa91587ad5b0561a"],"dtype":"float32","group":32,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b5_batch","sha256":["baccc2deed6d098387710f42728afef1c9185e7434280ec9f8bc3c9250baf86e"],"dtype":"float32","group":32,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b6_plain","sha256":["35ebea4f33f88558574a72789923750bed38c9417f5063a655bc8af202c882d0"],"dtype":"float32","group":32,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b6_transpose","sha256":["f2d5536f1ab43b785698748adab6e0af2ca45606755755bed92f52a6d9c34b1b"],"dtype":"float32","group":32,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b6_slice","sha256":["56850661ab264d72722c2a08dc474b3acfc2889d413e0d1626eee762c58007c4"],"dtype":"float32","group":32,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b6_offset","sha256":["6f7544e3764f91e9ba0d556a99d34c8fe3f2fba5848fc1c86b5d0d07d7675be5"],"dtype":"float32","group":32,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b6_broadcast","sha256":["d5b978df8141e5c6c956708e8134b7c46b36adb883fdcd33e086f1eab8d3db31"],"dtype":"float32","group":32,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b6_batch","sha256":["9b0fe1ab6ad51d2b2ce29ab2525d94a99fe1de9eff8c1bd85c413cef45930283"],"dtype":"float32","group":32,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float32_g32_b8_plain","sha256":["418d840fbaec95feb4be253dc0422cffa382f8172e948a48f9bf7736bb0355ed"],"dtype":"float32","group":32,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float32_g32_b8_transpose","sha256":["65668f09ef7f725d43b6aef85f9acecf712d3ae13c42151b7788b9e42ccd8f60"],"dtype":"float32","group":32,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float32_g32_b8_slice","sha256":["9f6275c4f97612c89628b068cd1b565a999a30e669cdb03eb8be724a5e4cbfd7"],"dtype":"float32","group":32,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float32_g32_b8_offset","sha256":["dc409fee82c4f7f31123e98fd74c080bc4fd533519d1b712c1f3877662b77392"],"dtype":"float32","group":32,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float32_g32_b8_broadcast","sha256":["9a6696a304ef9319c21b2f67f5b9e5ff648d679dc812ad28616c70ed2763cdb6"],"dtype":"float32","group":32,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float32_g32_b8_batch","sha256":["2b4b8e5ab01fc1a82fb7139ef1853f7cff7d1570c6c635453620699133154f23"],"dtype":"float32","group":32,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b2_plain","sha256":["77ac09c94d15eb3bf537b9a01ba408c6f89d5da10f58bbc8a105e8c076c6b091"],"dtype":"float32","group":64,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b2_transpose","sha256":["a5bb3f71e8f8acc88596cee0805e5827e6593051561e69a918bf9adfe350d7e4"],"dtype":"float32","group":64,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b2_slice","sha256":["8f45dc9e0d06681571a0545dfc33a4488d6cc6be606a6d47803ade42e2554b36"],"dtype":"float32","group":64,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b2_offset","sha256":["2be5be52249d27fd8260a7612b9bb8dc304084a73e9bcd38170e411636b8ac97"],"dtype":"float32","group":64,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b2_broadcast","sha256":["8d63f61e914282624e4555bb793dc209800ba9cec6162bfce155cb529711945a"],"dtype":"float32","group":64,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b2_batch","sha256":["c038fa424e16ccbc0c1951bef3760e20abf126ddf6e286c22d88b27425171327"],"dtype":"float32","group":64,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b3_plain","sha256":["4df6263443057b8c1de038f2944ef9c5fad8e5911b2354c85afa2accab9df03e"],"dtype":"float32","group":64,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b3_transpose","sha256":["f638288c359e248239c089d235bca176deeddb8baa7da3dd4fa18d5ffd0e4a1c"],"dtype":"float32","group":64,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b3_slice","sha256":["27c9113397e161bba2837c710fd47ed71711b3b1da805e6020bcb0689dd34179"],"dtype":"float32","group":64,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b3_offset","sha256":["4825cbbed2a37694f73a8ca37bb6f6c4ed8cfb16014dd68c827605da0304e075"],"dtype":"float32","group":64,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b3_broadcast","sha256":["b8359dc53884b9629fee3d86077620ea7439fc81e5d8013b1b67f5708835649a"],"dtype":"float32","group":64,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b3_batch","sha256":["d61d8b59ec5d62eb7a2d63fb440e7a36d0295b30205ffab6c8339e989415b10f"],"dtype":"float32","group":64,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b4_plain","sha256":["3fbd45f0ad166e279b0e9b47f89d77a6d3faeb2acce961d55b7dc807dd5cefa5"],"dtype":"float32","group":64,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b4_transpose","sha256":["5bfd4874c5ef6a5599ba0e50f24bd3feedf6626dee63339c81c4573c46fb0ad2"],"dtype":"float32","group":64,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b4_slice","sha256":["121de5bad4b005d6c74d64307edab8f68313ab62ab145eef2b191662941a3503"],"dtype":"float32","group":64,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b4_offset","sha256":["d4d25350f06cd34f5fc169d06cff6d55810f4d97625877972ead1e343bae253b"],"dtype":"float32","group":64,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b4_broadcast","sha256":["2be53ac0e0b3b74583c2731c0ba7c3ca461350b055a4a2a9cf1d6ca25080ae9e"],"dtype":"float32","group":64,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b4_batch","sha256":["052dc3b38730a0700e85cc86278d8ab6ac2b852d4796e52357bfb06cbfea5fba"],"dtype":"float32","group":64,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b5_plain","sha256":["928197fe687b016a06f9cbede74d1607bf67dafb09ea68967f733b837e44aaf7"],"dtype":"float32","group":64,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b5_transpose","sha256":["5a179daf87f80d2dbea67b46c56b824b2e91261921a64798d655676ebf4e727e"],"dtype":"float32","group":64,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b5_slice","sha256":["ac30606c3c4de166c25e0fcbd25c94a4529cd1e88e2f546c355acab9cc614a36"],"dtype":"float32","group":64,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b5_offset","sha256":["6035f00947e117aa07ab8c74102cb39372f660867f60ec874a78fc8d85d2b19e"],"dtype":"float32","group":64,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b5_broadcast","sha256":["45e7a323802043e44584658cba782fa816216a8e245c82a9928417ef1b2bf3e4"],"dtype":"float32","group":64,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b5_batch","sha256":["5366a885f95a06d80bb73d6bb3f69e31e585b9821697b5d2eeda6dc1454b1177"],"dtype":"float32","group":64,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b6_plain","sha256":["bbb8526b7f5a400b14d44fc0be3e0524cb33c117199274cc228a7f45c1b7715f"],"dtype":"float32","group":64,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b6_transpose","sha256":["869b034512a96ca87c7a3286f0595f4d4fbea16c10ff38d1c396b38d0dff1776"],"dtype":"float32","group":64,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b6_slice","sha256":["abfc0315521e1a7f4c2ceff61f90dd3c7192f4a2d842df3d44694130bd68474b"],"dtype":"float32","group":64,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b6_offset","sha256":["8dd2e79dcba397f1c8121f49120917fa7500e05ebec107cc9ef04d0b4cccdef8"],"dtype":"float32","group":64,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b6_broadcast","sha256":["93e0fe7dd779639e3726e4ce75448025cfe3c3d62412d57067091e0233969f9d"],"dtype":"float32","group":64,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b6_batch","sha256":["392a7a830236347e31ef1018ddfbeb412392f27f232df2bd1494def498d21d72"],"dtype":"float32","group":64,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float32_g64_b8_plain","sha256":["7a292800c28de8cd0e34b8ce49f840c126d156027317e78ea088cc0a298c1009"],"dtype":"float32","group":64,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float32_g64_b8_transpose","sha256":["b3d3cac52469b6ed7128d43cd772edfb17354ef95743b3f2a5cb2f1ce56821ed"],"dtype":"float32","group":64,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float32_g64_b8_slice","sha256":["3defef3f7ebcf98b2ff92dbfe9c1991dbac0802d3ff26a36eeb43f57fc3d5fbe"],"dtype":"float32","group":64,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float32_g64_b8_offset","sha256":["a11560cb435f1f76719c6fd24f4d1c3ea1523d502ceceffffd0ae7379d956024"],"dtype":"float32","group":64,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float32_g64_b8_broadcast","sha256":["6fe25c9ca1caa91276c0108bf52f5f4302f04654ea4b4a337642881613f93607"],"dtype":"float32","group":64,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float32_g64_b8_batch","sha256":["ce55de349f1e2a1e0ddbbfdeecdd6de3b377d67c422ed9f7ab73c435561cf4bd"],"dtype":"float32","group":64,"bits":8,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b2_plain","sha256":["127a4c14ff4107582893239f9d86e72c79de4fdb20be15efd4a742001d1789f7"],"dtype":"float32","group":128,"bits":2,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b2_transpose","sha256":["f3885050a10d45d91e3dcbb5a6c1b174a89ba3800ef0d4bbe1e936562b9f5dec"],"dtype":"float32","group":128,"bits":2,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b2_slice","sha256":["c8fbdea2f5f0900254a61f3bc0f24ab3ae7185e682d2634932f834c30e78ddbd"],"dtype":"float32","group":128,"bits":2,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b2_offset","sha256":["f2023d524e78066ee5200dbf1d4a68bedc4a25144e0bdddaab8dc3f1b5084bfc"],"dtype":"float32","group":128,"bits":2,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b2_broadcast","sha256":["003b1ce1b71bd332a56665632556afb30be0cdea77bc1ec8e0cd04015547378e"],"dtype":"float32","group":128,"bits":2,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b2_batch","sha256":["06f33660bbf72a52404cdae40211ba16f54aa70fb78f3488d16f90c8ce663fa1"],"dtype":"float32","group":128,"bits":2,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b3_plain","sha256":["aedde88ade6786229e8c2ee56de3b77816a4d5b1a61ddb2cf3c3009c045cecc7"],"dtype":"float32","group":128,"bits":3,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b3_transpose","sha256":["76bef3ac6aa712325b45619d0d571ed75e4df6a5bae38486782fe0a34d42b6a3"],"dtype":"float32","group":128,"bits":3,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b3_slice","sha256":["23a86124d8b70db1aaa670d39a53f8d6f7ca41c74aa46ff80fd8583a625c0e30"],"dtype":"float32","group":128,"bits":3,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b3_offset","sha256":["1bb6dc78080c78ef89d4f4d5034815f04ea6da20d13c212d4ddaf52b9a94a74b"],"dtype":"float32","group":128,"bits":3,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b3_broadcast","sha256":["d5d88abd1e4e6c17da562a94895b8aba29b7599f9694b3875e6bf7bef2500cbf"],"dtype":"float32","group":128,"bits":3,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b3_batch","sha256":["203cb4d79a35287f3459a8e3c721c3ea0172033746bd26ac04ed6afdcb5b557e"],"dtype":"float32","group":128,"bits":3,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b4_plain","sha256":["6931f3e9afb1ef84f33a13e427687bee542f821d6621f2531581f1ce0004601a"],"dtype":"float32","group":128,"bits":4,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b4_transpose","sha256":["cbd05e9109432d30a6b594b45159d6bc9c55c3da15bbf2f3ef0f02517f50ee8d"],"dtype":"float32","group":128,"bits":4,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b4_slice","sha256":["00e18e1a5d4540b7d6e540ea998fc1bc03650612c337da435b23b97a97fa29bb"],"dtype":"float32","group":128,"bits":4,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b4_offset","sha256":["c371a159d01740e626e03360951d3f00080e77202e871bfaaa175429e6a9cab3"],"dtype":"float32","group":128,"bits":4,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b4_broadcast","sha256":["67ecd33d44ad3e02449e091aea925276ae0ffd5b4237265689a4f772a744145c"],"dtype":"float32","group":128,"bits":4,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b4_batch","sha256":["9c7e9c3710504e2ae04971ff1048617da28decea1c1ba2dd2f621a103d8a6b27"],"dtype":"float32","group":128,"bits":4,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b5_plain","sha256":["1bb379f01a4b2bff07c1c77ba7e27dd8fedd494ee168b5e9df2d616d079aae3f"],"dtype":"float32","group":128,"bits":5,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b5_transpose","sha256":["c53cc6268dc1176925a90787978d145c521bac6be6b6897613d4c6f105603544"],"dtype":"float32","group":128,"bits":5,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b5_slice","sha256":["8edb05287d333ab66fe97aad1a6c6d0bc64ff901f744e8969181b8eb75724e9a"],"dtype":"float32","group":128,"bits":5,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b5_offset","sha256":["54c36e48cf3a38742da60ed36dedc6a2425d0ef3c9a13077156f5034fd8bae0c"],"dtype":"float32","group":128,"bits":5,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b5_broadcast","sha256":["1cd5cd3f69d540610a98f929118d8a1b0882dde441d98af64c1b71b0d6824fa6"],"dtype":"float32","group":128,"bits":5,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b5_batch","sha256":["9147f7a4b2c37369d759e1f21b8d69e63c3379e8ba99c63c65e3d3fd120c6d4a"],"dtype":"float32","group":128,"bits":5,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b6_plain","sha256":["f8fbe1e45c0ff23a24b59bdb3f5ae77d00a29b10efee03329f51be5eeca313f9"],"dtype":"float32","group":128,"bits":6,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b6_transpose","sha256":["65927e810b1256c44de696ca55e2e577381f9fb99f389fc427c6c35d202600cb"],"dtype":"float32","group":128,"bits":6,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b6_slice","sha256":["2812ffcf38bb474a02ed5a895516b672934c24f75bf9092b854d7dc7d99887aa"],"dtype":"float32","group":128,"bits":6,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b6_offset","sha256":["ac058771811a64f61fbe4485d7bc0345d01052975bfec62a6fd8b0f5af734f4c"],"dtype":"float32","group":128,"bits":6,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b6_broadcast","sha256":["192fc1b1e4f5724afcf9782df6eb928787225d983c87ae39705c93f961f21cbf"],"dtype":"float32","group":128,"bits":6,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b6_batch","sha256":["c1f500ab934c761564629d5376f2702b873756a3a80fca56bafdc85d716e80ea"],"dtype":"float32","group":128,"bits":6,"layout":"batch"} +{"kernel":"dequantize_float32_g128_b8_plain","sha256":["a4c199dff739cca2a581d8422e88051807c76f4ca417df3357ba423af888c96c"],"dtype":"float32","group":128,"bits":8,"layout":"plain"} +{"kernel":"dequantize_float32_g128_b8_transpose","sha256":["5cbf8798747954a57647a1a423ddc3dd9d3dfbe74915ce219bf5dd1c0a18f6a4"],"dtype":"float32","group":128,"bits":8,"layout":"transpose"} +{"kernel":"dequantize_float32_g128_b8_slice","sha256":["6b60d450430dcae09edb034327246a0f1f6a9921ada86e5c4f0a646f8461f6e2"],"dtype":"float32","group":128,"bits":8,"layout":"slice"} +{"kernel":"dequantize_float32_g128_b8_offset","sha256":["cd8297fdd0da7226adebd53927c0d307243b28bf1a607cf2639214a1949706d9"],"dtype":"float32","group":128,"bits":8,"layout":"offset"} +{"kernel":"dequantize_float32_g128_b8_broadcast","sha256":["7f94557083ba3f9f6186fffec7764ae06cee69e9b958ff44f720b926b5371d3c"],"dtype":"float32","group":128,"bits":8,"layout":"broadcast"} +{"kernel":"dequantize_float32_g128_b8_batch","sha256":["5901fc6b6f9801ca50f656e0e60e359c8e4dc4bbe01a8a29c4df58221ef2fc68"],"dtype":"float32","group":128,"bits":8,"layout":"batch"} diff --git a/tests/fixtures/mtplx-dynamic-slice-graph.jsonl b/tests/fixtures/mtplx-dynamic-slice-graph.jsonl new file mode 100644 index 0000000..35e8a6a --- /dev/null +++ b/tests/fixtures/mtplx-dynamic-slice-graph.jsonl @@ -0,0 +1,30 @@ +{"kernel":"dynamic_slice_graph_bfloat16_0","sha256":["c4e99c6c025b0a1ac24d68d1d32e41edf0e62d33f0ac61009bb7c94109581235","96c08ed7289398e2d9fd6d733d4d60023d9a4aa65b2c36c8295741c0c7a2cf7f","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"int32","profile":0,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_bfloat16_1","sha256":["85efe5a6d461b70fc3280ea35477fd519ebf042c33dbbd90dcc7b6d909287b80","9aae29ff7849f4e384c557efa8836e7e02dfaad9f63b126dc567aef2e7ceec71","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"int64","profile":1,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[12],"kind":"stride","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_bfloat16_2","sha256":["0f2aee9cc9a3a0f853da6cd5dd8abc021eb88b92afd4ae8b5e70ade45d411d07","823461c5b47065031b60b7d877449ae232d4d39dccaf22fbb3ca737a5cf72bba","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"uint32","profile":2,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[6],"kind":"transpose","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_bfloat16_3","sha256":["1c31cb3655fcfdca3b2aac9150872b62ce5fa228721794c59529ffac413bf87e","a7ffaac50f64bba62a3074574f88aba84e8a17c304dc6b56481e0cae2cd3f142","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"uint64","profile":3,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"broadcast","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_bfloat16_4","sha256":["bb65129b4e61f45663b9a881f58c9d29f6563e26d5f94a0a104a4576a78bbf92","004c7fa453d7e5a669c3d8166e2659be802880150a8050a3fc04f04ec1372114","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"int8","profile":4,"shape":[3,7,8],"size":[2,3,4],"axes":[0,1,2],"values":[1,2,3],"kind":"plain","shapes":[[2,3,4],[3,7,8],[2,3,4]]} +{"kernel":"dynamic_slice_graph_bfloat16_5","sha256":["6e8117d6ed4b697c7f7eb65e1bb3013d59514d6d64141c0c2390982331def86a","1ae425c802772ffa0aa29c1db4e123e578ecdd6aef6117e0af87171df83fdc15","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"bfloat16","idx_dtype":"uint8","profile":5,"shape":[2,3,4,5],"size":[1,2,3,4],"axes":[0,1,2,3],"values":[1,1,1,1],"kind":"stride","shapes":[[1,2,3,4],[2,3,4,5],[1,2,3,4]]} +{"kernel":"dynamic_slice_graph_bfloat16_6","sha256":["9a61be796c8b613216123e8569445cbf1d5b605aaaf8165143fda4abbedeb66c","613d93c52292064720f887f42d7e669adad9dce844ac42812feadee1242a0a4f","eb10f7ab7538eedc2adbe2fc1cd7eba06acc60eba1928ad96437a57bee31c19a"],"dtype":"bfloat16","idx_dtype":"int16","profile":6,"shape":[1,8,4],"size":[1,2,4],"axes":[1],"values":[3],"kind":"reverse","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_bfloat16_7","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1402de27fe6db7534bd2f56366e7de070ee16e9cd5bd3cac46cc2537f9061359","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","idx_dtype":"uint16","profile":7,"shape":[1,8,4],"size":[1,0,4],"axes":[1],"values":[2],"kind":"plain","shapes":[[1,0,4],[1,8,4],[1,0,4]]} +{"kernel":"dynamic_slice_graph_bfloat16_8","sha256":["6b14290fb3fc79652f390c6bbae3978e32eb2d399d37e604ebae804bfd4f6879","61852164bbb2176245d00be4f61dd7b9edf6679251d82f2354606619b15b7b6d","16c43cddfe17018da50129d6c8ff3ab6f7ea2f7b357d63d43c1fe192852b45b9"],"dtype":"bfloat16","idx_dtype":"int32","profile":8,"shape":[1,8,4],"size":[1,2,4],"axes":[-2],"values":[4],"kind":"scalar_update","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_bfloat16_9","sha256":["329477d022a40d0c4c43481dc6c2ee25b18bfb13f0e4c2c9b08d8b39af99dc01","59454977853738dc15a321f8ed25fe4ed2da27598037c11a5e86b60e38394150","d90abeb028f1368025a073330757a3f437e1d54941ebf238761ea824f1adb796"],"dtype":"bfloat16","idx_dtype":"uint16","profile":9,"shape":[1,16,128],"size":[1,3,128],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,128],[1,16,128],[1,3,128]]} +{"kernel":"dynamic_slice_graph_float16_0","sha256":["c4e99c6c025b0a1ac24d68d1d32e41edf0e62d33f0ac61009bb7c94109581235","96c08ed7289398e2d9fd6d733d4d60023d9a4aa65b2c36c8295741c0c7a2cf7f","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"int32","profile":0,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float16_1","sha256":["85efe5a6d461b70fc3280ea35477fd519ebf042c33dbbd90dcc7b6d909287b80","9aae29ff7849f4e384c557efa8836e7e02dfaad9f63b126dc567aef2e7ceec71","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"int64","profile":1,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[12],"kind":"stride","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float16_2","sha256":["0f2aee9cc9a3a0f853da6cd5dd8abc021eb88b92afd4ae8b5e70ade45d411d07","823461c5b47065031b60b7d877449ae232d4d39dccaf22fbb3ca737a5cf72bba","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"uint32","profile":2,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[6],"kind":"transpose","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float16_3","sha256":["1c31cb3655fcfdca3b2aac9150872b62ce5fa228721794c59529ffac413bf87e","a7ffaac50f64bba62a3074574f88aba84e8a17c304dc6b56481e0cae2cd3f142","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"uint64","profile":3,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"broadcast","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float16_4","sha256":["bb65129b4e61f45663b9a881f58c9d29f6563e26d5f94a0a104a4576a78bbf92","004c7fa453d7e5a669c3d8166e2659be802880150a8050a3fc04f04ec1372114","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"int8","profile":4,"shape":[3,7,8],"size":[2,3,4],"axes":[0,1,2],"values":[1,2,3],"kind":"plain","shapes":[[2,3,4],[3,7,8],[2,3,4]]} +{"kernel":"dynamic_slice_graph_float16_5","sha256":["6e8117d6ed4b697c7f7eb65e1bb3013d59514d6d64141c0c2390982331def86a","1ae425c802772ffa0aa29c1db4e123e578ecdd6aef6117e0af87171df83fdc15","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float16","idx_dtype":"uint8","profile":5,"shape":[2,3,4,5],"size":[1,2,3,4],"axes":[0,1,2,3],"values":[1,1,1,1],"kind":"stride","shapes":[[1,2,3,4],[2,3,4,5],[1,2,3,4]]} +{"kernel":"dynamic_slice_graph_float16_6","sha256":["9a61be796c8b613216123e8569445cbf1d5b605aaaf8165143fda4abbedeb66c","613d93c52292064720f887f42d7e669adad9dce844ac42812feadee1242a0a4f","eb10f7ab7538eedc2adbe2fc1cd7eba06acc60eba1928ad96437a57bee31c19a"],"dtype":"float16","idx_dtype":"int16","profile":6,"shape":[1,8,4],"size":[1,2,4],"axes":[1],"values":[3],"kind":"reverse","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_float16_7","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1402de27fe6db7534bd2f56366e7de070ee16e9cd5bd3cac46cc2537f9061359","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","idx_dtype":"uint16","profile":7,"shape":[1,8,4],"size":[1,0,4],"axes":[1],"values":[2],"kind":"plain","shapes":[[1,0,4],[1,8,4],[1,0,4]]} +{"kernel":"dynamic_slice_graph_float16_8","sha256":["6b14290fb3fc79652f390c6bbae3978e32eb2d399d37e604ebae804bfd4f6879","61852164bbb2176245d00be4f61dd7b9edf6679251d82f2354606619b15b7b6d","16c43cddfe17018da50129d6c8ff3ab6f7ea2f7b357d63d43c1fe192852b45b9"],"dtype":"float16","idx_dtype":"int32","profile":8,"shape":[1,8,4],"size":[1,2,4],"axes":[-2],"values":[4],"kind":"scalar_update","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_float16_9","sha256":["329477d022a40d0c4c43481dc6c2ee25b18bfb13f0e4c2c9b08d8b39af99dc01","59454977853738dc15a321f8ed25fe4ed2da27598037c11a5e86b60e38394150","d90abeb028f1368025a073330757a3f437e1d54941ebf238761ea824f1adb796"],"dtype":"float16","idx_dtype":"uint16","profile":9,"shape":[1,16,128],"size":[1,3,128],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,128],[1,16,128],[1,3,128]]} +{"kernel":"dynamic_slice_graph_float32_0","sha256":["c4e99c6c025b0a1ac24d68d1d32e41edf0e62d33f0ac61009bb7c94109581235","96c08ed7289398e2d9fd6d733d4d60023d9a4aa65b2c36c8295741c0c7a2cf7f","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"int32","profile":0,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float32_1","sha256":["85efe5a6d461b70fc3280ea35477fd519ebf042c33dbbd90dcc7b6d909287b80","9aae29ff7849f4e384c557efa8836e7e02dfaad9f63b126dc567aef2e7ceec71","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"int64","profile":1,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[12],"kind":"stride","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float32_2","sha256":["0f2aee9cc9a3a0f853da6cd5dd8abc021eb88b92afd4ae8b5e70ade45d411d07","823461c5b47065031b60b7d877449ae232d4d39dccaf22fbb3ca737a5cf72bba","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"uint32","profile":2,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[6],"kind":"transpose","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float32_3","sha256":["1c31cb3655fcfdca3b2aac9150872b62ce5fa228721794c59529ffac413bf87e","a7ffaac50f64bba62a3074574f88aba84e8a17c304dc6b56481e0cae2cd3f142","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"uint64","profile":3,"shape":[1,16,8],"size":[1,3,8],"axes":[1],"values":[5],"kind":"broadcast","shapes":[[1,3,8],[1,16,8],[1,3,8]]} +{"kernel":"dynamic_slice_graph_float32_4","sha256":["bb65129b4e61f45663b9a881f58c9d29f6563e26d5f94a0a104a4576a78bbf92","004c7fa453d7e5a669c3d8166e2659be802880150a8050a3fc04f04ec1372114","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"int8","profile":4,"shape":[3,7,8],"size":[2,3,4],"axes":[0,1,2],"values":[1,2,3],"kind":"plain","shapes":[[2,3,4],[3,7,8],[2,3,4]]} +{"kernel":"dynamic_slice_graph_float32_5","sha256":["6e8117d6ed4b697c7f7eb65e1bb3013d59514d6d64141c0c2390982331def86a","1ae425c802772ffa0aa29c1db4e123e578ecdd6aef6117e0af87171df83fdc15","e54560f21cc33897216f3b3d8b88d22e133f9bf7c6d8aca8886c02e46d67e4d8"],"dtype":"float32","idx_dtype":"uint8","profile":5,"shape":[2,3,4,5],"size":[1,2,3,4],"axes":[0,1,2,3],"values":[1,1,1,1],"kind":"stride","shapes":[[1,2,3,4],[2,3,4,5],[1,2,3,4]]} +{"kernel":"dynamic_slice_graph_float32_6","sha256":["9a61be796c8b613216123e8569445cbf1d5b605aaaf8165143fda4abbedeb66c","613d93c52292064720f887f42d7e669adad9dce844ac42812feadee1242a0a4f","eb10f7ab7538eedc2adbe2fc1cd7eba06acc60eba1928ad96437a57bee31c19a"],"dtype":"float32","idx_dtype":"int16","profile":6,"shape":[1,8,4],"size":[1,2,4],"axes":[1],"values":[3],"kind":"reverse","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_float32_7","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1402de27fe6db7534bd2f56366e7de070ee16e9cd5bd3cac46cc2537f9061359","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","idx_dtype":"uint16","profile":7,"shape":[1,8,4],"size":[1,0,4],"axes":[1],"values":[2],"kind":"plain","shapes":[[1,0,4],[1,8,4],[1,0,4]]} +{"kernel":"dynamic_slice_graph_float32_8","sha256":["6b14290fb3fc79652f390c6bbae3978e32eb2d399d37e604ebae804bfd4f6879","61852164bbb2176245d00be4f61dd7b9edf6679251d82f2354606619b15b7b6d","16c43cddfe17018da50129d6c8ff3ab6f7ea2f7b357d63d43c1fe192852b45b9"],"dtype":"float32","idx_dtype":"int32","profile":8,"shape":[1,8,4],"size":[1,2,4],"axes":[-2],"values":[4],"kind":"scalar_update","shapes":[[1,2,4],[1,8,4],[1,2,4]]} +{"kernel":"dynamic_slice_graph_float32_9","sha256":["329477d022a40d0c4c43481dc6c2ee25b18bfb13f0e4c2c9b08d8b39af99dc01","59454977853738dc15a321f8ed25fe4ed2da27598037c11a5e86b60e38394150","d90abeb028f1368025a073330757a3f437e1d54941ebf238761ea824f1adb796"],"dtype":"float32","idx_dtype":"uint16","profile":9,"shape":[1,16,128],"size":[1,3,128],"axes":[1],"values":[5],"kind":"plain","shapes":[[1,3,128],[1,16,128],[1,3,128]]} diff --git a/tests/fixtures/mtplx-gather-array.jsonl b/tests/fixtures/mtplx-gather-array.jsonl new file mode 100644 index 0000000..e1730c7 --- /dev/null +++ b/tests/fixtures/mtplx-gather-array.jsonl @@ -0,0 +1,52 @@ +{"kernel":"gather_array_0_b4_g32","sha256":["a4e3854196bb51ef216b6965524da946363bb5f1233bf31caffa8abc68663017"],"case":0,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"plain","left":false,"right":true,"sorted":false,"rank":1,"bits":4,"group":32,"shape":[10,1,80]} +{"kernel":"gather_array_1_b4_g32","sha256":["00d69885670ad4287fd051a4bc90b74a76368ad5f161f6f0e1f37fd3cf0db2d0"],"case":1,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":4,"group":32,"shape":[1,4,10,1,80]} +{"kernel":"gather_array_2_b4_g32","sha256":["67fe7a766bbf5de82fb5227fb2ce2cf694c3d1913cdd0671003991606d350b7d"],"case":2,"xb":7,"m":1,"n":81,"k":64,"e":8,"r":70,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":4,"group":32,"shape":[1,7,10,1,81]} +{"kernel":"gather_array_3_b4_g32","sha256":["404792930fc7ab9f6465ea40a1aa33036a02b853a0b35d33392e1580927f7a4a"],"case":3,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":32,"shape":[8,33,80]} +{"kernel":"gather_array_4_b4_g32","sha256":["a038158ab6b23ea13432ef492f431b06a776d07e0ec0da2b59b0862b39ffaee7"],"case":4,"xb":2,"m":17,"n":81,"k":64,"e":8,"r":8,"layout":"transpose","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":32,"shape":[8,17,81]} +{"kernel":"gather_array_5_b4_g32","sha256":["11284db5b52eed8f5a2b8274f6cc6d72b421fba80cc31cbe3102f759bab0721c"],"case":5,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"expert_slice","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":32,"shape":[8,33,80]} +{"kernel":"gather_array_6_b4_g32","sha256":["3eed23bf77a46aefa1b9e84246732cdea9e404a5c57d73d17ba3de5ca3621a67"],"case":6,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"plain","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":32,"shape":[16,1,80]} +{"kernel":"gather_array_7_b4_g32","sha256":["e734dda30c69b235171b46e8e792b6342eff0fe41939149c1073052e58c31950"],"case":7,"xb":256,"m":1,"n":80,"k":512,"e":4,"r":256,"layout":"expert_slice","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":32,"shape":[256,1,80]} +{"kernel":"gather_array_8_b4_g32","sha256":["464a801dc46e541ff8b502a4fd9cecc3c86d9b16f141ad4fd14ce8d05f9f864f"],"case":8,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"expert_slice","left":true,"right":true,"sorted":true,"rank":1,"bits":4,"group":32,"shape":[16,1,80]} +{"kernel":"gather_array_9_b4_g32","sha256":["a40c1666160e918d5854e6162b4e05c161f52a2458a021369c1ad7aab7437d1e"],"case":9,"xb":2,"m":4,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":false,"sorted":true,"rank":1,"bits":4,"group":32,"shape":[8,4,80]} +{"kernel":"gather_array_10_b4_g32","sha256":["a4e3854196bb51ef216b6965524da946363bb5f1233bf31caffa8abc68663017"],"case":10,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"rank2","left":false,"right":true,"sorted":false,"rank":1,"bits":4,"group":32,"shape":[10,1,80]} +{"kernel":"gather_array_11_b4_g32","sha256":["7224f68cd8b4fa09eac58e9060762cbbb81af4a355b8a7868221513c1a7094d8"],"case":11,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"input_slice","left":false,"right":true,"sorted":false,"rank":3,"bits":4,"group":32,"shape":[2,2,10,1,80]} +{"kernel":"gather_array_12_b4_g32","sha256":["837725b4b52aa1580ebbb720468a7867ddd8e30905525b35845fb5af6c3cebe1"],"case":12,"xb":32,"m":1,"n":80,"k":512,"e":4,"r":32,"layout":"transpose","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":32,"shape":[32,1,80]} +{"kernel":"gather_array_0_b4_g64","sha256":["0551f9468b2b863911f58cb306ef5e0c26d716663fce4da3d527f544062115ab"],"case":0,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"plain","left":false,"right":true,"sorted":false,"rank":1,"bits":4,"group":64,"shape":[10,1,80]} +{"kernel":"gather_array_1_b4_g64","sha256":["bcd7233299afe2e4f9363016af723c39ae108da462bbdfb9bc06e5f0efcce88f"],"case":1,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":4,"group":64,"shape":[1,4,10,1,80]} +{"kernel":"gather_array_2_b4_g64","sha256":["08a625a61a4b6920fa850cfab736e31d3df88a68f349269b7bf6c5a34c442773"],"case":2,"xb":7,"m":1,"n":81,"k":64,"e":8,"r":70,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":4,"group":64,"shape":[1,7,10,1,81]} +{"kernel":"gather_array_3_b4_g64","sha256":["a7f771a4ffcc5bcc13d6596f6694954ed759ee020b79bf90f0c13d0970e3f569"],"case":3,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":64,"shape":[8,33,80]} +{"kernel":"gather_array_4_b4_g64","sha256":["ecc1ef08a26e000a09ddfa05f733982c245062231474aea49a70a9fd03decc99"],"case":4,"xb":2,"m":17,"n":81,"k":64,"e":8,"r":8,"layout":"transpose","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":64,"shape":[8,17,81]} +{"kernel":"gather_array_5_b4_g64","sha256":["368ccd80c8e4bc634c487ec0d5c05a74f2a422342b7218f86959e45798b8bcb8"],"case":5,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"expert_slice","left":true,"right":true,"sorted":false,"rank":1,"bits":4,"group":64,"shape":[8,33,80]} +{"kernel":"gather_array_6_b4_g64","sha256":["3dae895d9f63630eedb1bf883139716a2cd936b45f3b64e904bdf0ed0712d901"],"case":6,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"plain","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":64,"shape":[16,1,80]} +{"kernel":"gather_array_7_b4_g64","sha256":["cda7056dc7f303e38d1e07f5872b784160cd4c30b831eac23659f5ec8b9e666b"],"case":7,"xb":256,"m":1,"n":80,"k":512,"e":4,"r":256,"layout":"expert_slice","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":64,"shape":[256,1,80]} +{"kernel":"gather_array_8_b4_g64","sha256":["116fec2604f238053e745eeb8f4583a1a61bbc83d1943f02ac15af0085f46e62"],"case":8,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"expert_slice","left":true,"right":true,"sorted":true,"rank":1,"bits":4,"group":64,"shape":[16,1,80]} +{"kernel":"gather_array_9_b4_g64","sha256":["436368d6080c927d0174ec52ac5d281276201b5cf287979c9f10750af5bee6a3"],"case":9,"xb":2,"m":4,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":false,"sorted":true,"rank":1,"bits":4,"group":64,"shape":[8,4,80]} +{"kernel":"gather_array_10_b4_g64","sha256":["0551f9468b2b863911f58cb306ef5e0c26d716663fce4da3d527f544062115ab"],"case":10,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"rank2","left":false,"right":true,"sorted":false,"rank":1,"bits":4,"group":64,"shape":[10,1,80]} +{"kernel":"gather_array_11_b4_g64","sha256":["a643ab503262122a83628cb2b3a8a022a490b1af85877078a8be3dc38e9a3b0a"],"case":11,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"input_slice","left":false,"right":true,"sorted":false,"rank":3,"bits":4,"group":64,"shape":[2,2,10,1,80]} +{"kernel":"gather_array_12_b4_g64","sha256":["083fd49203700436384e2cf1c4481e830ccad0ec23a32b14b20c58c7e7a3d22e"],"case":12,"xb":32,"m":1,"n":80,"k":512,"e":4,"r":32,"layout":"transpose","left":false,"right":true,"sorted":true,"rank":1,"bits":4,"group":64,"shape":[32,1,80]} +{"kernel":"gather_array_0_b8_g32","sha256":["23c451c64951fd3a148036d8476fa5422b12a535205d14a96b36012f148e81f1"],"case":0,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"plain","left":false,"right":true,"sorted":false,"rank":1,"bits":8,"group":32,"shape":[10,1,80]} +{"kernel":"gather_array_1_b8_g32","sha256":["7621a5da9e3246eff597b9794a508d072cff28c7214afab63b83985d453a3c58"],"case":1,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":8,"group":32,"shape":[1,4,10,1,80]} +{"kernel":"gather_array_2_b8_g32","sha256":["ec27b1ba733b0da7b7824d9dce8d563b2e0660d15c966078a7652bd599e95c2f"],"case":2,"xb":7,"m":1,"n":81,"k":64,"e":8,"r":70,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":8,"group":32,"shape":[1,7,10,1,81]} +{"kernel":"gather_array_3_b8_g32","sha256":["ae44c4a3ede4f3563024f7c3dfa3115c722f98b6d2d66d8caeb103ec1aaa0318"],"case":3,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":32,"shape":[8,33,80]} +{"kernel":"gather_array_4_b8_g32","sha256":["cccc9882c573bb35f2b04c9cac02f56e4f1ccadb1785c70c03cbd7bf8bd07a1f"],"case":4,"xb":2,"m":17,"n":81,"k":64,"e":8,"r":8,"layout":"transpose","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":32,"shape":[8,17,81]} +{"kernel":"gather_array_5_b8_g32","sha256":["bd83d29aac3781e0c683234a6f4d890d1eb94ce22f55a3f1387637a98bfadead"],"case":5,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"expert_slice","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":32,"shape":[8,33,80]} +{"kernel":"gather_array_6_b8_g32","sha256":["fc1b32c95439b99edd0257c33ad828d6b9f315a32e6e2c2f85d92b7cf4a341eb"],"case":6,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"plain","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":32,"shape":[16,1,80]} +{"kernel":"gather_array_7_b8_g32","sha256":["ea0321819f35df62861d6b52abd3ccd5a93c38b6b821ee782a458c0a36e01f55"],"case":7,"xb":256,"m":1,"n":80,"k":512,"e":4,"r":256,"layout":"expert_slice","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":32,"shape":[256,1,80]} +{"kernel":"gather_array_8_b8_g32","sha256":["b429235e716fcda8a7c1e21b1c9dc12e359e918cc18840a85f34e5784fe7a367"],"case":8,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"expert_slice","left":true,"right":true,"sorted":true,"rank":1,"bits":8,"group":32,"shape":[16,1,80]} +{"kernel":"gather_array_9_b8_g32","sha256":["d8a67281577c269fce4ccf9e4139933bd649ee92ba04ec2ba7903b0d71ba10e5"],"case":9,"xb":2,"m":4,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":false,"sorted":true,"rank":1,"bits":8,"group":32,"shape":[8,4,80]} +{"kernel":"gather_array_10_b8_g32","sha256":["23c451c64951fd3a148036d8476fa5422b12a535205d14a96b36012f148e81f1"],"case":10,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"rank2","left":false,"right":true,"sorted":false,"rank":1,"bits":8,"group":32,"shape":[10,1,80]} +{"kernel":"gather_array_11_b8_g32","sha256":["d39e9c1ed7d77aa57bee84137fed7b4dccfbac09fad766e96b78325cd5b03417"],"case":11,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"input_slice","left":false,"right":true,"sorted":false,"rank":3,"bits":8,"group":32,"shape":[2,2,10,1,80]} +{"kernel":"gather_array_12_b8_g32","sha256":["45161acda177654ccf2258b7889582f6adc26e562f87028b57bedb916c01eef1"],"case":12,"xb":32,"m":1,"n":80,"k":512,"e":4,"r":32,"layout":"transpose","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":32,"shape":[32,1,80]} +{"kernel":"gather_array_0_b8_g64","sha256":["d26b64ec9b36db2cf231d5f268752fdfbdc1efe7feac8fea8ac0ae40afa19518"],"case":0,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"plain","left":false,"right":true,"sorted":false,"rank":1,"bits":8,"group":64,"shape":[10,1,80]} +{"kernel":"gather_array_1_b8_g64","sha256":["03e4f06b2faaee802b7635a8540b7b061cbc75c70c2a918ef516577773b49cd8"],"case":1,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":8,"group":64,"shape":[1,4,10,1,80]} +{"kernel":"gather_array_2_b8_g64","sha256":["62144edaee8b2ed000bc4066aa3d61a9fc92f9926630efab394917813cede175"],"case":2,"xb":7,"m":1,"n":81,"k":64,"e":8,"r":70,"layout":"expert_slice","left":false,"right":true,"sorted":false,"rank":2,"bits":8,"group":64,"shape":[1,7,10,1,81]} +{"kernel":"gather_array_3_b8_g64","sha256":["e6de900ce3ece934803f6dcfef9f68a23e7ca7210a5c2c8b4700f06a198c794f"],"case":3,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":64,"shape":[8,33,80]} +{"kernel":"gather_array_4_b8_g64","sha256":["22f3e6d209e8536b7b94aeaa0d1ec5c7614adae2c94eb8fab922f469a86215eb"],"case":4,"xb":2,"m":17,"n":81,"k":64,"e":8,"r":8,"layout":"transpose","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":64,"shape":[8,17,81]} +{"kernel":"gather_array_5_b8_g64","sha256":["e2032c17877857bda47ad1f4e7bc2116db5dd851c29e86435b37f4a49271c981"],"case":5,"xb":2,"m":33,"n":80,"k":512,"e":8,"r":8,"layout":"expert_slice","left":true,"right":true,"sorted":false,"rank":1,"bits":8,"group":64,"shape":[8,33,80]} +{"kernel":"gather_array_6_b8_g64","sha256":["d77c41759cf95161d700ab74cc72b9860c25dc6333628fe7cdcbd7293dd35c89"],"case":6,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"plain","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":64,"shape":[16,1,80]} +{"kernel":"gather_array_7_b8_g64","sha256":["49608ecd9af739f464797af9c09a1a948f0eeba30bfb5f21a265b20a93c23dea"],"case":7,"xb":256,"m":1,"n":80,"k":512,"e":4,"r":256,"layout":"expert_slice","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":64,"shape":[256,1,80]} +{"kernel":"gather_array_8_b8_g64","sha256":["2f587059bc3221ac897261379b7473a6b3eaa52c159a5c0ad3c4cf57e4d93860"],"case":8,"xb":16,"m":1,"n":80,"k":512,"e":4,"r":16,"layout":"expert_slice","left":true,"right":true,"sorted":true,"rank":1,"bits":8,"group":64,"shape":[16,1,80]} +{"kernel":"gather_array_9_b8_g64","sha256":["d366baa636721db818afb1da788f13bf5cfddc6c87bbddda4ec5079616f4dc66"],"case":9,"xb":2,"m":4,"n":80,"k":512,"e":8,"r":8,"layout":"plain","left":true,"right":false,"sorted":true,"rank":1,"bits":8,"group":64,"shape":[8,4,80]} +{"kernel":"gather_array_10_b8_g64","sha256":["d26b64ec9b36db2cf231d5f268752fdfbdc1efe7feac8fea8ac0ae40afa19518"],"case":10,"xb":1,"m":1,"n":80,"k":512,"e":8,"r":10,"layout":"rank2","left":false,"right":true,"sorted":false,"rank":1,"bits":8,"group":64,"shape":[10,1,80]} +{"kernel":"gather_array_11_b8_g64","sha256":["4c2b9314304be437eb9b77c7c1f5d44529a5676a78e5bbcccea0011f0b820ffd"],"case":11,"xb":4,"m":1,"n":80,"k":512,"e":8,"r":40,"layout":"input_slice","left":false,"right":true,"sorted":false,"rank":3,"bits":8,"group":64,"shape":[2,2,10,1,80]} +{"kernel":"gather_array_12_b8_g64","sha256":["b4cd30693f26fbadd4e3ee0f901f4497b136c83237758d272e421acfa3d26fa8"],"case":12,"xb":32,"m":1,"n":80,"k":512,"e":4,"r":32,"layout":"transpose","left":false,"right":true,"sorted":true,"rank":1,"bits":8,"group":64,"shape":[32,1,80]} diff --git a/tests/fixtures/mtplx-gdn-commit.jsonl b/tests/fixtures/mtplx-gdn-commit.jsonl new file mode 100644 index 0000000..8c04c1c --- /dev/null +++ b/tests/fixtures/mtplx-gdn-commit.jsonl @@ -0,0 +1,26 @@ +{"kernel":"gdn_commit_r1_keep1_conv0","sha256":["65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","2494fda3c35507843f1e1a8e83146784eeef0feb434c5cfd75e42a633d462678","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","05d233fc9e90183d250dcdf6d004a0dc144a6f28b53d941c09a732ca7f0ad0f5","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","405249dc0613a1bc6514be13abfc40a3ef083d27c374028c7a61231c42dececa"],"rows":1,"keep":1,"conv_present":false} +{"kernel":"gdn_commit_r1_keep1_conv1","sha256":["a480a7a5d883f237b624b15e1d3791d70c08a1874b92f9ddc9711097344f3ff1","a4fbfcf67b664a6cd12999aff8f2b8a06afddfd63b4351f2cf3db63d6cd82730","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","0e5c64fecbe123071bbeec301c02c90aa2313d8ad3c143d0508182c438f7359e","f2fd699eae0dd4e9286f4df385fb773fd5ae498551dab00488a291949c3b98b4","66ce224c1ae4285c992ec1b5e6a3fa8f49acc18efe94a8a46de9609393dd4da5"],"rows":1,"keep":1,"conv_present":true} +{"kernel":"gdn_commit_r2_keep1_conv0","sha256":["a2ec79eada5f29ac52ac22b9000f2215ec2e30db8404e9409c7e1a79e5687b6f","91a85580997c31e1c868800a97b135fe77a9b34b17082ffd342ba94d2e327aa7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","403bf441233dda32af819a97c7bd1d365d59e04dd63242f637be993d8497e51e","649e406ce594f19523141d88c14b08eae6af7daaa5bbadc135e123abaaaaec95","3ac0e6238b4bd8cc0c3cec94675052717688c734f2bcd67ae58f3ece88284f32"],"rows":2,"keep":1,"conv_present":false} +{"kernel":"gdn_commit_r2_keep1_conv1","sha256":["38c31064742f1db20110430ccda23d8228b5bf9df622a3d740c0ce7c0e5b6620","0af47eed604064cbc98a6e4ce175d7b6043c6ae7191623f7ec4662927466b4a4","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","e2fa30a2594e69815632bce8d7c4c9da18ecf92f47b3f3f3b0ffcd3d7f94e7f7","d31cd825c0f1b517244452a70b8f528e3e999135af95f925f7ed13a3979494ea","9faf256f9bf367996a0f068e69d8a7006da282d91e29dccd05ea82cb2792695c"],"rows":2,"keep":1,"conv_present":true} +{"kernel":"gdn_commit_r2_keep2_conv0","sha256":["e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","c811976b71ceb037867fe987f20b247e66e126446525907781a0d66d450050b7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","d9baa300cc5336935e236892893451b2754f59bd40f9ff6c2f7b6be3ebc32668","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","8d86b84ab2366830c25daa3f4138b61b0d002dad78af7288aecad7f29ec5ec99"],"rows":2,"keep":2,"conv_present":false} +{"kernel":"gdn_commit_r2_keep2_conv1","sha256":["ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","640a1f2a249f0767937ba7c2bf0f77e05464a05c4e802415e45466852f0a0037","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","6e087d99c944c8ddf2826820b340cdc4fcea5bccac770253c2f36027e99188bf","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","3e8a19c0852736ef431df4700cd62a71da7017275b49c7ccbe050f4987166f83"],"rows":2,"keep":2,"conv_present":true} +{"kernel":"gdn_commit_r4_keep1_conv0","sha256":["a2ec79eada5f29ac52ac22b9000f2215ec2e30db8404e9409c7e1a79e5687b6f","91a85580997c31e1c868800a97b135fe77a9b34b17082ffd342ba94d2e327aa7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","403bf441233dda32af819a97c7bd1d365d59e04dd63242f637be993d8497e51e","649e406ce594f19523141d88c14b08eae6af7daaa5bbadc135e123abaaaaec95","3ac0e6238b4bd8cc0c3cec94675052717688c734f2bcd67ae58f3ece88284f32"],"rows":4,"keep":1,"conv_present":false} +{"kernel":"gdn_commit_r4_keep1_conv1","sha256":["38c31064742f1db20110430ccda23d8228b5bf9df622a3d740c0ce7c0e5b6620","0af47eed604064cbc98a6e4ce175d7b6043c6ae7191623f7ec4662927466b4a4","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","e2fa30a2594e69815632bce8d7c4c9da18ecf92f47b3f3f3b0ffcd3d7f94e7f7","d31cd825c0f1b517244452a70b8f528e3e999135af95f925f7ed13a3979494ea","9faf256f9bf367996a0f068e69d8a7006da282d91e29dccd05ea82cb2792695c"],"rows":4,"keep":1,"conv_present":true} +{"kernel":"gdn_commit_r4_keep2_conv0","sha256":["e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","c811976b71ceb037867fe987f20b247e66e126446525907781a0d66d450050b7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","d9baa300cc5336935e236892893451b2754f59bd40f9ff6c2f7b6be3ebc32668","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","8d86b84ab2366830c25daa3f4138b61b0d002dad78af7288aecad7f29ec5ec99"],"rows":4,"keep":2,"conv_present":false} +{"kernel":"gdn_commit_r4_keep2_conv1","sha256":["ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","640a1f2a249f0767937ba7c2bf0f77e05464a05c4e802415e45466852f0a0037","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","6e087d99c944c8ddf2826820b340cdc4fcea5bccac770253c2f36027e99188bf","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","3e8a19c0852736ef431df4700cd62a71da7017275b49c7ccbe050f4987166f83"],"rows":4,"keep":2,"conv_present":true} +{"kernel":"gdn_commit_r4_keep3_conv0","sha256":["9842b9b0eaf27467a2e513478541d2972429266da2801684bff6a6ec2a7ad380","ad926743afc057135088e8a6aadd63ef59dbe1b1de697dcfc23a5b552f9a2297","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","e110cadfffa8ac0d2cba6164df2440c59637e7f7ed1a2d803d820b73ddcb495f","8582230617a72d055b504421a43c1eb9ee4ae367c79b0af09d03573d206287cf","2ca36da39a233d690dc94ef96d9dc6796a3be00f895f13a9464d3e7c9c5e02b4"],"rows":4,"keep":3,"conv_present":false} +{"kernel":"gdn_commit_r4_keep3_conv1","sha256":["9842b9b0eaf27467a2e513478541d2972429266da2801684bff6a6ec2a7ad380","5bb7c97814d3312f5f50bd2fb405646c7cf593410ed6878ee06bfb0881b676f3","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","adecea5553976ab7880de0d61699c41ceb5a0203b94adccc4eb2e0825c4478ed","8582230617a72d055b504421a43c1eb9ee4ae367c79b0af09d03573d206287cf","9732864eca5b08d84e41c7f66b723e21dae6adc6cf517c6f3057cb9798df8a12"],"rows":4,"keep":3,"conv_present":true} +{"kernel":"gdn_commit_r4_keep4_conv0","sha256":["a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","f47111a4292c8214c90e55d2ffbf185d4a27d668c0d3643af349663abf8d2eb0","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","c60b2612e5c9fb5d1aecbfe456b884e9d6ed9b8c4f93233451e4a3fe4c84a94b","705060c91d15b439bb49f695b84d27518d5cac86cbad879d270d791e392097fa","880996747578a3baf3c6be09e9b24c38842737e804ac85db04225329e26f558e"],"rows":4,"keep":4,"conv_present":false} +{"kernel":"gdn_commit_r4_keep4_conv1","sha256":["a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","73702aa03e13141ce2a3ba6236becedefafb111fce95c8a6888962895e9ee1c4","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","38f188abf4320b520517496b887e99a33b6c3be08ec02f0914a09df7da214cd0","705060c91d15b439bb49f695b84d27518d5cac86cbad879d270d791e392097fa","1223dd6dc3cc5a25e5d2f99b52c4f94bfef05a7f7155f2aa7dba8af8f71c18f7"],"rows":4,"keep":4,"conv_present":true} +{"kernel":"gdn_commit_r6_keep1_conv0","sha256":["a2ec79eada5f29ac52ac22b9000f2215ec2e30db8404e9409c7e1a79e5687b6f","91a85580997c31e1c868800a97b135fe77a9b34b17082ffd342ba94d2e327aa7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","403bf441233dda32af819a97c7bd1d365d59e04dd63242f637be993d8497e51e","649e406ce594f19523141d88c14b08eae6af7daaa5bbadc135e123abaaaaec95","3ac0e6238b4bd8cc0c3cec94675052717688c734f2bcd67ae58f3ece88284f32"],"rows":6,"keep":1,"conv_present":false} +{"kernel":"gdn_commit_r6_keep1_conv1","sha256":["38c31064742f1db20110430ccda23d8228b5bf9df622a3d740c0ce7c0e5b6620","0af47eed604064cbc98a6e4ce175d7b6043c6ae7191623f7ec4662927466b4a4","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","e2fa30a2594e69815632bce8d7c4c9da18ecf92f47b3f3f3b0ffcd3d7f94e7f7","d31cd825c0f1b517244452a70b8f528e3e999135af95f925f7ed13a3979494ea","9faf256f9bf367996a0f068e69d8a7006da282d91e29dccd05ea82cb2792695c"],"rows":6,"keep":1,"conv_present":true} +{"kernel":"gdn_commit_r6_keep2_conv0","sha256":["e70250105c0055516afa1cf947e329ef436aebc2ec792f26b9ba0583cd36dac5","c811976b71ceb037867fe987f20b247e66e126446525907781a0d66d450050b7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","d9baa300cc5336935e236892893451b2754f59bd40f9ff6c2f7b6be3ebc32668","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","8d86b84ab2366830c25daa3f4138b61b0d002dad78af7288aecad7f29ec5ec99"],"rows":6,"keep":2,"conv_present":false} +{"kernel":"gdn_commit_r6_keep2_conv1","sha256":["ae1a6b6466ad5a58e88c93a34ee28e7f01a24f3045f95776b8bf14d025b4f64d","640a1f2a249f0767937ba7c2bf0f77e05464a05c4e802415e45466852f0a0037","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","6e087d99c944c8ddf2826820b340cdc4fcea5bccac770253c2f36027e99188bf","e2bbc1a5f24a98d0e7885ecb75255b2cd63c4c6e65231a2ed4ab189747902960","3e8a19c0852736ef431df4700cd62a71da7017275b49c7ccbe050f4987166f83"],"rows":6,"keep":2,"conv_present":true} +{"kernel":"gdn_commit_r6_keep3_conv0","sha256":["9842b9b0eaf27467a2e513478541d2972429266da2801684bff6a6ec2a7ad380","ad926743afc057135088e8a6aadd63ef59dbe1b1de697dcfc23a5b552f9a2297","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","e110cadfffa8ac0d2cba6164df2440c59637e7f7ed1a2d803d820b73ddcb495f","8582230617a72d055b504421a43c1eb9ee4ae367c79b0af09d03573d206287cf","2ca36da39a233d690dc94ef96d9dc6796a3be00f895f13a9464d3e7c9c5e02b4"],"rows":6,"keep":3,"conv_present":false} +{"kernel":"gdn_commit_r6_keep3_conv1","sha256":["9842b9b0eaf27467a2e513478541d2972429266da2801684bff6a6ec2a7ad380","5bb7c97814d3312f5f50bd2fb405646c7cf593410ed6878ee06bfb0881b676f3","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","adecea5553976ab7880de0d61699c41ceb5a0203b94adccc4eb2e0825c4478ed","8582230617a72d055b504421a43c1eb9ee4ae367c79b0af09d03573d206287cf","9732864eca5b08d84e41c7f66b723e21dae6adc6cf517c6f3057cb9798df8a12"],"rows":6,"keep":3,"conv_present":true} +{"kernel":"gdn_commit_r6_keep4_conv0","sha256":["a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","f47111a4292c8214c90e55d2ffbf185d4a27d668c0d3643af349663abf8d2eb0","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","c60b2612e5c9fb5d1aecbfe456b884e9d6ed9b8c4f93233451e4a3fe4c84a94b","705060c91d15b439bb49f695b84d27518d5cac86cbad879d270d791e392097fa","880996747578a3baf3c6be09e9b24c38842737e804ac85db04225329e26f558e"],"rows":6,"keep":4,"conv_present":false} +{"kernel":"gdn_commit_r6_keep4_conv1","sha256":["a3a45aec698cd8228088935c51ed59732aac5e7fd405fc63b1f9c2cadeced313","73702aa03e13141ce2a3ba6236becedefafb111fce95c8a6888962895e9ee1c4","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","38f188abf4320b520517496b887e99a33b6c3be08ec02f0914a09df7da214cd0","705060c91d15b439bb49f695b84d27518d5cac86cbad879d270d791e392097fa","1223dd6dc3cc5a25e5d2f99b52c4f94bfef05a7f7155f2aa7dba8af8f71c18f7"],"rows":6,"keep":4,"conv_present":true} +{"kernel":"gdn_commit_r6_keep5_conv0","sha256":["aef4a94b48aac458af3cf8f75c533b92f247f3178e09ad1d3d8652d46f645afb","e013d9d77b2d69ee670d4d7b362986d2d5104be54c8f97c372186f3dc01fc2fc","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","6d08fa09b61c6b0a89540564c611ce565a8a2da501065738d9ec6ef4d24cdff1","68f3fcdbbaefa4be2f5702ad0ebdfa2167d2268305aef409fcb165778e16d389","7fab2e77ef642d616bbbab475bf45cfc80b750defda6d516da6bb7baf328e157"],"rows":6,"keep":5,"conv_present":false} +{"kernel":"gdn_commit_r6_keep5_conv1","sha256":["aef4a94b48aac458af3cf8f75c533b92f247f3178e09ad1d3d8652d46f645afb","232b608114179924a39a49d5c71e9a2dd704006a371260279364891aec2363e3","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","82f886347695f4f9abbb7d824ab46752e66dac1cf1a23027a76524f3666f4fcc","68f3fcdbbaefa4be2f5702ad0ebdfa2167d2268305aef409fcb165778e16d389","361cd1405166f6c2583ca0184675ef4f58e410c0ce7be40130c1ea69dde570c4"],"rows":6,"keep":5,"conv_present":true} +{"kernel":"gdn_commit_r6_keep6_conv0","sha256":["9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","2325d4cb45ec62512f1da68762a60b882bc2c396ad78a84d132f9919bcc8ad41","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","22f4fb66ea773fd2e52312fd7e3b54483025cf053038e7e6c51097c479646557","3f43497b1087be261ed0e543e8b94386f095db9c63cd013f3c9fc75608765fbd","abfeece352e2340ea0332e0b6d4539155d9a23ae424b595b8583853e0b501708"],"rows":6,"keep":6,"conv_present":false} +{"kernel":"gdn_commit_r6_keep6_conv1","sha256":["9eca7ad7b632331d64d6bab983c3bebf91b409031ea46ebbee41a1f937e282d1","0d0e49059e61df3e57d847b53c1cf213a97b448ff98bf0fd5be54cc1ab2d29d7","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","5031fa242fd547c30fa03d904895dca3907d31ae023427dfe3fea0d7dc1e4a99","4367441a8b36f0dd4ff352054c8677530f76a9dc3d337e640cd2b6a6e674767b","3f43497b1087be261ed0e543e8b94386f095db9c63cd013f3c9fc75608765fbd","318eda8f57ec421dfd894d1c82c4c234513d8d7e2b5e7c407d6939f096db8524"],"rows":6,"keep":6,"conv_present":true} diff --git a/tests/fixtures/mtplx-gdn-lifecycle.jsonl b/tests/fixtures/mtplx-gdn-lifecycle.jsonl new file mode 100644 index 0000000..9965ac5 --- /dev/null +++ b/tests/fixtures/mtplx-gdn-lifecycle.jsonl @@ -0,0 +1,24 @@ +{"kernel":"gdn_lifecycle_b1_r1_none_step0","sha256":["49cbaf55b9a7734e41b2ea1f14e45b0efa5a1f749cd1d37e8f49676f10033084"],"batch":1,"rows":1,"mode":"none","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r1_none_step1","sha256":["dcf0a29a70a589639c258b94e633dd3d12a99fec4b49d0918c17375433fe77b3"],"batch":1,"rows":1,"mode":"none","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b1_r1_plain_step0","sha256":["f4e539f6a137fe7de2d41e8749049ce583a90200380f2e8984c76b5dbb845f47","65094b474157a1e7aefcfef4d019f5f618dfa81fcb97e200f056668c80d4907d","5fb5707796cad8d973d84dd555bb9612b81606e9dd7362eabe7da53b5061fec1"],"batch":1,"rows":1,"mode":"plain","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r1_plain_step1","sha256":["d5598606227433814242800052868ef227ed286a974fc9085f5fe4c4997ab614","69e8542f2638c94cbde5697fa433502112758a2369f4b9ede66c36bc710d8ee9","f51bc489301e4f32c1096164b5260fe5b5f2b89045b2e766486cc704e4a85aa4"],"batch":1,"rows":1,"mode":"plain","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b1_r1_metadata_step0","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"batch":1,"rows":1,"mode":"metadata","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r1_metadata_step1","sha256":["84ff92691f909a05b224e1c56abb4864f01b4f8e3c854e4bb4c7baf1d3f6d652","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","c68830a25204a09f8e77aada6bc5807f607cccaaa0ebb2a7122d317584478a8b"],"batch":1,"rows":1,"mode":"metadata","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b1_r7_none_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836"],"batch":1,"rows":7,"mode":"none","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r7_none_step1","sha256":["bf8143b6c4a63ec8b22a290263b1f14b657d7c0e375989e3db78222fb9298e19"],"batch":1,"rows":7,"mode":"none","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b1_r7_plain_step0","sha256":["9e012c2807d6a14e8ded7d91d967be94b23e015889f82508db8fb3cb6de8d836","7cf73cf4c5477d24cb4c96bfca2b9a3c0e41d61f9b0931bc097e17ea40caaa39","c7227caac7dbdfdf51a806669516201d92e7bba9695504cd8d252dda52ee84ab"],"batch":1,"rows":7,"mode":"plain","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r7_plain_step1","sha256":["968dbb2568ba6aa202d1ef555feef8ecf42b94250e5a99ec2a6fa5d33a822469","b9efcb988faba084d70d0eff2c594340953be58c19dc67677e7c527deae7f11b","3327ddf698a8ffe1d5a79d1fe17af6865b9d33d83614c5aa0ff102c3711eafc0"],"batch":1,"rows":7,"mode":"plain","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b1_r7_metadata_step0","sha256":["c05ce092dbe76d41c5e4a79cbe60b7316000afd3e2a81ab881908c09750a53da","eb03bdeb94458fb833d513d1b07a5f535ce76970bc0c285b66ebb5c6e1d42f27","d71acfb276b5e956ffbc58f1a34dba307db3a066b464adc2a09401c96d645db8","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","6bd5e30e99b6cfe9c9e85bcbe7ae22cda0df1fb6f5c858c4448e5c127424c7f4"],"batch":1,"rows":7,"mode":"metadata","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b1_r7_metadata_step1","sha256":["86148af3686e86c15cf317b36d285921f1148d26f1aeb056d90d92523330f666","d31b6f97d4cb924acec06a17c91063de289f27998ef21438ebe98327db12b5ba","35a00747cc93326a6bd1e4b2b6395af965867f8becad96b1603317c5c6c340eb","6bd5e30e99b6cfe9c9e85bcbe7ae22cda0df1fb6f5c858c4448e5c127424c7f4","6d557aa85ea5c5c1f74dc4a7822904f3759909cf9ae6f515a2d69237c4f49fc4"],"batch":1,"rows":7,"mode":"metadata","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r1_none_step0","sha256":["fd11fdd35daa9a5b2cba20d3d0886fb7962099f4fb6bb5f3ba887c3ab81a9f57"],"batch":2,"rows":1,"mode":"none","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r1_none_step1","sha256":["bd607e87cf244378f6c176271c787276b4730a38e7ac667e5955ed4153ba238f"],"batch":2,"rows":1,"mode":"none","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r1_plain_step0","sha256":["fd11fdd35daa9a5b2cba20d3d0886fb7962099f4fb6bb5f3ba887c3ab81a9f57","cc6e415755035d3a46e7d6b0e3abd368f09311faf54cc2851050e1cfd14b4826","75f80b6cde24bf367e5b858d53e4c802d51eafdba00ed4d4f89ad59f12f5d5d0"],"batch":2,"rows":1,"mode":"plain","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r1_plain_step1","sha256":["c12a27b4a0a9838f3a0e2fc28924c4cf426f9b6f7449b73be0b5b28ffe000634","31df5f43b29e4bad587ed806f0c558e02c7790390e0a6d093af0cf695fbd6169","d0e48afb238aa3b7da653ab0d5bfbc3649dbf6fffdcc653471d8279b42fd034c"],"batch":2,"rows":1,"mode":"plain","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r1_metadata_step0","sha256":["4453daa45612996b92ebf8732028f9ceed77ebc4cb7da86519fe28ea0105b248","9eb8fa54d87a9b9775dd55c07b3d164453884695bd1ed83fe2f63259ee9e6afc","6acd52983c65a81478339652a9eb186b87498d6a11bef947ee0841e04111f8cb","dee9bee38d8ce139ee23552fc0ca83067114ae903518d7711ba7937b72c0d697","950db61d66a8b18ffbff0b0cd13a2a2bf38334256220f042fd7930463bcb91f0"],"batch":2,"rows":1,"mode":"metadata","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r1_metadata_step1","sha256":["7b410a22e062ea8fc76c736d8ed531c1b952ac2ce1cd4a627f36772519deb747","9eb8fa54d87a9b9775dd55c07b3d164453884695bd1ed83fe2f63259ee9e6afc","34d6f39514a114e6a940f25e2e61197aa4d5e41f88269774876a48f9f9b74918","e25d2084cf6f361fdd6e9d1d8c170efa78f59e25780d0b7c56aee28bc1c6fed7","156723574463ac3f7dfbc0defc048cb0abf2b039677a27b85d7cd46dec012b2d"],"batch":2,"rows":1,"mode":"metadata","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r7_none_step0","sha256":["595fc55ef468b5a9eb101d68da7866b855cd1fd61a5d21663c3ccd11069f0b6d"],"batch":2,"rows":7,"mode":"none","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r7_none_step1","sha256":["577403632043b578860c9ba0b997f115c185b9eb7ab1b211d9abe01267d19482"],"batch":2,"rows":7,"mode":"none","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r7_plain_step0","sha256":["595fc55ef468b5a9eb101d68da7866b855cd1fd61a5d21663c3ccd11069f0b6d","0fca91a9c04999f28fb0e2f6ffed35ab3ca1f6c1856d65bec3b30e7258494862","c24aee03fa3cfce69c2c42c2295dd052d11193dc5b9fccfc703da309fb9a65c4"],"batch":2,"rows":7,"mode":"plain","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r7_plain_step1","sha256":["b04e2e88ee695db537c8f8178268f38ff8fb211fdb65812cf7832a92069c6ad5","98b1a008b1d54a06bf3935cd66270d5b51614dffa3c1c2bab30b9fab739db198","76d682818a9e1decb0c25fcfed46c5c70b82bc53fe55d97279298d93cf1be81b"],"batch":2,"rows":7,"mode":"plain","step":1,"capture_preserved":true} +{"kernel":"gdn_lifecycle_b2_r7_metadata_step0","sha256":["17fb3d8448e676c48a7d6621684e8c44d05f9e75e5b32dc355b4b8f9275854fd","9fc8d195bd2899c35f7f3da9a465b293fb9612a0650468263f4131a739634171","058530e83f5effa3dddedd6cf3e60aff0b12446abb91d8371edbd018934238d8","dee9bee38d8ce139ee23552fc0ca83067114ae903518d7711ba7937b72c0d697","baedef892aae7c5cb1a73293bc60b00eba7695ad2a81a8055f108484ce22eab8"],"batch":2,"rows":7,"mode":"metadata","step":0,"capture_preserved":null} +{"kernel":"gdn_lifecycle_b2_r7_metadata_step1","sha256":["a9bf6ab9fca8bc73c31cfa39e13a61d33a55893c2e703e7d32d9ffe28ba43946","2f66f83c3b16f41ceb7192532ab5ca0f2e34a6058ddc186ffb0fc59ac622bbc8","a2d690c73a3c4c2123b0a659b987617581e00a9d95e9e4261cc87912cd2349bc","2b1961fc07f8b21e0886fd17267b94c75cfcb3d81321ca14ec5d3a37ecd34165","67e0136f3c036088b2a12580a302946dde2a4c01810b3c6c29671a013c3fd1e1"],"batch":2,"rows":7,"mode":"metadata","step":1,"capture_preserved":true} diff --git a/tests/fixtures/mtplx-gdn-runs.jsonl b/tests/fixtures/mtplx-gdn-runs.jsonl new file mode 100644 index 0000000..f65f6a0 --- /dev/null +++ b/tests/fixtures/mtplx-gdn-runs.jsonl @@ -0,0 +1,8 @@ +{"kernel":"gdn_run_r4_capture0_hc1","rows":4,"capture":false,"hyper_fused":true,"shapes":[[1,4,10240],[1,3,10240],[1,48,128,128]],"sha256":["32ef0e25077a5ca941b37236cf94d856970bc66a8717c0b5cd07c8695fb88b19","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"contract":[["0604bba11351b727b3faa2d044127da23e13a539fc464488f9696f45c384365b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d47a838caf803ac76cd4e3060bd14d845eec8fc55bad943a1c37f13e7c8464d","1aef97ca69d485959d96428ee9bcf10a3e5e0ed8c0fa8153d4d19b8c56df4b3e","1fa6343f665e7012e89863396a8626cc4a5c8689f2a0254089c68fd807d0d15f","1ff821b34610dc15c48304fe46af349148e09c98b641f357dd8511bedd8330be","21471c76af855571680f3c14c90d37261d462e133e1627bd34a346e52bd0e70f","21782534abcaddf88c17cc176191b19cefaa39193e71bcc1b24c727c36416963","2181ed40bcc215abf94a52154a7ab23c2767d1330873a19e9d1547384381e461","233c731ab14e10769c17fa688102fb5d04497afc595a71065782114472697687","23745bd3365bb4ae53e1e6ed081000655391ca26d8fe1e3082d5d19609d03a68","260b5c72e3fcbac48de4b3aa26bb724811a27406ae07bed1a45ce55a3f8c68ce","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","27d231b4ee99b2dab7951ea99a28dbd80edc331f5f4f3de69d6d78b7954560f4","28151bccd2be59b7e9093d7a014727bddd5087d479eb1ad1bb1193153b6a0ece","2be4094168f32e08a47685aab3ba61bf3e58e72049049897aabcdb8ba53f5958","3a99db0f7e8866aed82506b9f85dba04e711972931ca79a234c694d7676ed563","3dabed541efdc6326116ee7b0cd0a991a762d523e415ecc6d330746618865d75","410b1c53e0fad7a24318f64ac5bced65e2570b120397cb94d5acfa00ed59c2d6","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","518bc0b092ed73fc6af18b683ba2c1de06a6eaf282e1f16803397a29094a7664","5cb6513752960a54da5d48e2d18a82da94b97c4e53f40071ce1ae8dce0812c17","6002a8453633014dd398117afadedbd4731efd0b8acd229dacdd77296f5bb3d4","6393e15fc835cd94a2b54665445ea08bc284e75c18d824a238eaaae80c14ea97","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","67141226a4b4036023b3e4e5615bb7e41033454f51e33aab001ac712ddee2ae8","79b196a0c081e52a72a18437cefe79e61e4d9b8c69a35f1b0f9bf8705979469c","7a9ff8af8ce010b6aaa6c5b53a0fb2f65608e15aa99087df63da931bee4808ac","7e5ca70eb7e40e2c51177f5bbbf4045bbf8237442d5f2dc4cb3c1fe3f4c747ae","86159333067dcd03bc42b93a5470e5aec6eeab4a4284d196223d1542aa03d21c","875a407ed5df23db4c21f5d6b528de2721fc2ae031d9ff2fd8bd850ebc25f59f","8dba8ade236047e63a8bcd75212d5ac932e83cc1ef6fffa7d29971174011116c","8dd88402672c6b109970c047bd2909f0a253b7470a4f2cd1b46441f161a40112","9476d394ca9efa6b9d111092e3b133d3f83227dd3d48e01077e4c0f4194a612a","989825b093715fecf48635fe8dd6cf2b342f8686c23379f4c797e32769c4da8c","9ea872181d8defd46af6b011b7efe5b69c219560597295db3235e624c08a2a25","a23d7e1cd1123f9238ab8e347de62843d38e649e11cdceda450d6271a37605d7","a366c52582b0c3c6f5bfdeb090d6759b81fdbecb469aecf2c382461f258dbc83","a3c35c4d85cc6b72683c0b88507715d59eaf73361f61863366e15b5c8ede9d0a","ab2ce6a6f134d57caad0adbe018ea2fca95cb6d954bec0902835fa102d62e12c","b3e7fd681d1d86feb3e725fabfd7a559c14c58c61f3c8cff7ee13ac44cc67f28","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856","c22a078983226336486e73726add7c5bd60bcf883e75a53d9cf92f379cdd5aeb","cb6b95f5e7a517ec0b3d031e35a0d4f7a798ee7e06573d4c5c3fa53b77e00fc9","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","d31471790978cffcc8d279384c0f2be93f1a465d0190676d11217c224fef575f","d45fea80567e888db9944857b75c67c2a34410856b7d1ed83eb1b4923e8729c6","d5ca3d522bbfb7c8348ffde59a1742b7fd38be81a78806524a3b0a98d23a78be","d992fbcb3cafb6f6c022d0782d2d6366da82c7d507f6894555960ad0a29b09a3","daba6ceffb3dee278fe1d9041ac7cf7f9f343d27bef9707881fdfa9ab755ed33","e1fd41d8c742c46d9ed394d9931c4139c780608c864cc1e8f5657b4d8aa0cfac","e2bd497607a1bb1bafbd063cad908b5bbcc35d1f59013bd80408a4a14b54ff18","ea6b2005bd14d5c1494a3eaaf59950be8f5c21a8ad95b35518ac8e9d0d3b456d","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee9e0a80fba6f0d435f487b0f3672cc4ef1d3abec62afde491fe4eadbc0a3aef","f08f582d7ea566dac3c994be465fda33c0a6fe2cf31749b450e7069b4788f204","f1b6aee6b2f061c106f760996ceeba4a6dcd7f54ae91084384a28a0388fb2354","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f7b02633421b8838726fabea5822c62c8a9144397d70e3b365cac0859e4df9ba"],["d992fbcb3cafb6f6c022d0782d2d6366da82c7d507f6894555960ad0a29b09a3:0","f1b6aee6b2f061c106f760996ceeba4a6dcd7f54ae91084384a28a0388fb2354:0","f08f582d7ea566dac3c994be465fda33c0a6fe2cf31749b450e7069b4788f204:1"]]} +{"kernel":"gdn_run_r1_capture0_hc1","rows":1,"capture":false,"hyper_fused":true,"shapes":[[1,1,10240],[1,3,10240],[1,48,128,128]],"sha256":["a74243c8cc3566eba91750304ef0b97340712c825d18f1d592a5e564fd449c99","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"contract":[["018dee6a265533a32f4e2ba257af6e6014d270e4778001a70ea68097be75203d","0a96aa61506bee5854eaebdaaf1b18e46e3143d5776542ae207d48b21d345ba9","0b6388b774daecb3cff8be3f461db15ed72ebf68ae3401d918a65af1f490863c","0bfbad0f6b469155523b205ab230a11e61e72f6a93774ccef6dc78e8cc2baf42","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","151afe82b1678706d36c8e9a0e6233ff32a59d5b71f609d17f383463471ee34e","19dc018b1bc2c9fa3843e531483879866c485324380f6a772c8ffe86e92befbe","1b8ea1324b890fec7833f145ea649ed6dd8535540a75b14781a13a4907a71d28","1d9beb188c0f255130db8c57a6e370eabd34dccf8bd38d6cccb5819f8006f47d","1ec6a9b7e616dd9eaecfe4c6179ed7c4f8b04d1f82cbab382a2bc6a4fa9d95c8","1f2ab13d4e13ae5b18c8d046af4acddb7e0ef99ac5ed76c9eefef5255e8b774e","1f2ab13d4e13ae5b18c8d046af4acddb7e0ef99ac5ed76c9eefef5255e8b774e","1f2ab13d4e13ae5b18c8d046af4acddb7e0ef99ac5ed76c9eefef5255e8b774e","1f9425958d3ff5260760d6c7fba842125d09d8114c3b63ca3331f11bb328cb35","21471c76af855571680f3c14c90d37261d462e133e1627bd34a346e52bd0e70f","21782534abcaddf88c17cc176191b19cefaa39193e71bcc1b24c727c36416963","2549005a8c92ad0a7cf8c318fc9aaf5358dd460aee05f8fcbc35e247bd7b5be6","26824e7eafba6b5eb6a6f14b94d924f6c605745deedbb1742b279380b73f7fc5","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","2a50379654330bf4325ca10ba10f5468b8f4f32704b3b1313dc56736097fd5ee","30174507222ebbdd28d51fa7e62b83c2f47ff8b6828497aeca67b1e1354bc6cf","38d3ca8879ddb75d65a99bc9af09c8017c20f2bb293c3138e5827e3c2448352c","3d697dcca9867e8e605ae2a362a31d8579ce021b5d19f6ba2bc62499454fcc7d","410b1c53e0fad7a24318f64ac5bced65e2570b120397cb94d5acfa00ed59c2d6","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4cce1904ebcdf1d2fafc2814f8434dc215e75e541ac8c1930b42bb7450cc2018","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","4d822b70cadc8a2d8ef1b607a0360b31be56537ba3fddf2dd7c82ba1eaafe8c2","4dfac04053122ef83def61a03ccae657405e6e224f4d5e8cbcfd737857bf49b4","4ed7be8f5ce403ba06b89c587ceaf4cc9c75de4d95251b89f0298b99ad59eb18","51ee4b78fe0412d1384388c04cdca98e6e895789c1cd61b9998ef9f976cc2a81","55751403637a0b58be705e057b697e2dfdd47657576791d1ea88a485463aefbe","581d40ab93bd4ad431c5ce329d2f5e8ad623fa13e3fcee35137724e133746f64","5b501b65f6d35b35889b9853770d670d1297b2f93f9a067d191d20e53e9e60ce","6cb39e413f07e80451217c0ccd8ccdbb9922891dcad4ed0be7f75cc583143a2f","86159333067dcd03bc42b93a5470e5aec6eeab4a4284d196223d1542aa03d21c","875a407ed5df23db4c21f5d6b528de2721fc2ae031d9ff2fd8bd850ebc25f59f","878f1914ca075482cfd349997e35a2e18d001f7b5b5be0181e3dee3eb79ffa5e","89a2b3a20ab87e3f04e7576ca429ea15da4384baf79ae9616edaaf00a64c5d18","8dba8ade236047e63a8bcd75212d5ac932e83cc1ef6fffa7d29971174011116c","911709e29eb1c1fd3ccc0c4c07ba77cb0b63497dae17fd6a53f2ef2c1aa7929a","9933bb967a760da415964cd857687967faf7db0aa0241e9fd106ff65e75beb09","9b9cb039f89ac05ce54f0e8627ffe551ef09baf2b5db867734c8abcffa193405","a00a63c9e0ffca62decff8c730e7ded377ed45a89ade2e9dca75fab2514ad9b2","a24f12958b780a5db664c6b3d6db6a1a71e669ad1a4b3acf3773522a4fe7921e","ae6251e8384d5f908bd205e9a9b3aebdee0efe32a2d070e06cc826c8a0665ccc","b04cffef22d66dfa8f0e96b15a880e35cd15b9d148fac3dd9910b51ab71fb557","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856","c22a078983226336486e73726add7c5bd60bcf883e75a53d9cf92f379cdd5aeb","c962e2001d91930daf2e3852ddb41c8e1ca38fc930fabbe1cae620dac471efc0","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","d3f776190fffd3a7ddd529ad81e38513c1c3ae4faa05406cab4930aeaa127272","d6e7f77afba4016b452d4691106ca84d0d1273042e8d0d20359de0959a8df719","e215ebe748591a435013b6769a88ae72f26fb7e9a238e3f78019b444a9695c48","e4526f03cca02336005717ea54a048f502a103721790bbacb612fbcd085c42b7","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","f19e653508c7c2bf851e2114b067c0d71fbe5ae535bc878d5ab4ad540a9f84d2","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb"],["911709e29eb1c1fd3ccc0c4c07ba77cb0b63497dae17fd6a53f2ef2c1aa7929a:0","6cb39e413f07e80451217c0ccd8ccdbb9922891dcad4ed0be7f75cc583143a2f:0","9b9cb039f89ac05ce54f0e8627ffe551ef09baf2b5db867734c8abcffa193405:0"]]} +{"kernel":"gdn_run_r1_capture1_hc1","rows":1,"capture":true,"hyper_fused":true,"shapes":[[1,1,10240],[1,3,10240],[1,48,128,128],[1,1,10240],[1,1,16,128],[1,1,16,128],[1,1,48,128],[1,1,48],[1,1,48]],"sha256":["a74243c8cc3566eba91750304ef0b97340712c825d18f1d592a5e564fd449c99","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","02b1c2234680617802901a77eae606ad02e4ddb4282ccbc60061eac5b2d90bba","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","5d89f056865052bcb89c910d2d62872e029fb273c3db03f8968a52a41593c1b5","5d89f056865052bcb89c910d2d62872e029fb273c3db03f8968a52a41593c1b5"],"contract":[["03f6a8daf07329b19630c756804e1b9996e8ec9dc5f15221ba16d6e22f3e4f1e","083bf885c31796535b03a9c75b8d594f330e4f834956ae479485d7b2590682c7","0a2de0808cb50cc24a29b205f7dd4e11401bef1bc782be97ffbdc5d5256637a0","0d1e5b1ffbd9739b8643f3de78b7c32f3644ab33cba1b516e9d4b0594fb4efe9","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0da14ddf5c7a8bf5889945bca9ac879cff2adab391289b195eec1bca8244c8de","0f13c83b0a1c0d4e2cc883b6f70c8b422d2690b5264e812f3d5ee8ba82b8ab45","1252d272c78a397cfe1e5aa6225ab3276d75d112fe1040c2e4bd1991f280bc1a","19c59eb0d7ae199e8f77167350e3f5ea2b32a2bd3063b8346920bfeb97f1a525","1aafca5e0258a4c3bf1defce772f6be2d4d5f4cd3c8e5f28be6a5daf5e28131f","1aef97ca69d485959d96428ee9bcf10a3e5e0ed8c0fa8153d4d19b8c56df4b3e","21471c76af855571680f3c14c90d37261d462e133e1627bd34a346e52bd0e70f","21782534abcaddf88c17cc176191b19cefaa39193e71bcc1b24c727c36416963","24509961f4d8337570d8f9d6405ce8ee0060ed78a85ea484653c3ea1c87b2540","260b5c72e3fcbac48de4b3aa26bb724811a27406ae07bed1a45ce55a3f8c68ce","26a2f7bceb40c2d8b3cc18153f75b7592e33bb6afbb8894ae0b68606152829fd","290e36583753c6449b6366127ba0341f67960223e67598bc4e779ede4439c6ea","309e74a061da1ad9e7d15e80f81cc78c4589502f5b824a171c70d2e86338a53e","3cb04f8032c091db69839fb25f4601b7f392d5d9106d699a7f3a7d4d40b0a4a3","410b1c53e0fad7a24318f64ac5bced65e2570b120397cb94d5acfa00ed59c2d6","449f3579973d2aedfce09583d366879f89382e1305a7b1cb6b20ee868d295f12","49f6c318634fc400f55aac43bbeebc186fcd57b657937fb9d8aed134f7dd8efb","4dba14cc5062db9fbb3faf026ca6aac9969408708e6d9f2e050c694cbc499bb4","5047383d90de334a217cc021e465148b79f5cf6e5a50edf7742dc636344ab49b","5e045d2abb2a07e0f8c1d4e114c192e039136d5f013fafe26b8ea55d0fbf4bbc","61b43c5f60f27575ae039c682739673108e5c046e2e0e368e918fed8d163f6d7","68a4c3c1a98eff336d19a83040469f41842ab8d96468042b6abb7bc6456408c2","79439f11138932a1da01a5d0e4289e1579ab24f7800df68311f5316494d13fce","7f0c19a17bb245c41aab0de832aa080a4cc59860c193d469025cc095815b55ee","7f3ec2c081696c0aacd57ee899ddf37e180632de910d31704a9763da6d910d37","81fa195f6ec0ab0dad14bde179d1b6336be7d85adab9ecc91819477d1631f5fd","821566f79c5521dec1396c55a65933d53700d449972efd7735e4349e951964ae","875a407ed5df23db4c21f5d6b528de2721fc2ae031d9ff2fd8bd850ebc25f59f","89aac0bba6b64084ab418d56cfe1efff558b3225bcc9a699ab97cffe60af1bb9","8dba8ade236047e63a8bcd75212d5ac932e83cc1ef6fffa7d29971174011116c","8fdd7e71577e140a4b8e62b5832e7bff3c71bfaa72cda323d56db11c79d08137","91714b44f4084d36c608ed4e6cd4a73026ec2e984ce3de7a21be062ea3c2f03c","9193d3cb158003a23248595cf9bfcd9f844b5699f75597c95784a628c08dd4d9","94b9806f79ca0b38a746b72b66b3d735a19575c59f56302ddfdb4f1db9710500","a82649ee570fdb102db26607350c220faf62d54d557b99c181c920c5610be538","a979d33307e7e7983f415ebad0c00b6538978365dd76eefc062840bd037e32f3","aa4eaf34ba4e86bc55db85ecf36af3d5e28819ed89b13ff31523bb6eb2248561","ad18200d2ee28af2d9dfaca77ce73cb5b564b2e82a4c2db7a55a6d014ecc7157","b132bfa1e709d7f8adaadc12d59f02b2b8b480b1faca2dc6dce60bec25452da9","b1dd1e600b72652d5ac041bf6c0d9063a9d0701dc4ff34ef729d174a148078c9","b305301e89f8e607f14f3a02b25b11be5f28feaae0d3feaf8b5cb51c95fbf270","b64a74c3d987b35f02053aa087c2ec04a95e0515635b61caae793045526e1152","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856","c22a078983226336486e73726add7c5bd60bcf883e75a53d9cf92f379cdd5aeb","c51e4e781a6ca843df9528ccfbd620ab97c5469756a465b0bb46c9685daeae88","d342c9957b8f2dd1d7984191f1b8831ce968251bd7774d0e217226ecaa230bd1","d55ad682eda4a516460a93c1f8f207a8f46ec5c122ea341dc62fbe8c7fac5fba","de3c90137bd98b6bbcdebbbea162d2cb5cb4bd6475882f2ab066516a28801262","e2652a311ce8774b9d446ec669a6b4a7ab40e9e92dfc7ae291ef3c0bd5cb4cb3","e2be09f3ea154fe0d5f7304dbea0e1e60b3c4db7b5a527bf082b3a3073f80909","e3c4aa6e26712a7ea4f8919b25559811cc0d4853e895116bac321e265aea33be","e3cb1218c528192ff1279a2f6e319e3ff37e39b4cea9819523744a6a4f530840","e5e11b9d680a02bd77367f3276a810baceb71bd56f74c3555d3b78ec0224351c","e9ec1e08af199d2df8aceaa34041854fce9600388968090b6a25441c4e6f6e3e","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","eb67a44f461a9c0f405b5482c66273d8ed72483fd830f850f64db19b07f840a8","eb67a44f461a9c0f405b5482c66273d8ed72483fd830f850f64db19b07f840a8","eb67a44f461a9c0f405b5482c66273d8ed72483fd830f850f64db19b07f840a8","eb68ff3e5061389d1e2e1f229bac231869b3fed7bf4f8d9caf2cfdf0093cc41f","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","fa101df896be996f2c76a514ab1d4370943908d1f0d0c82db61812bc10b820e5","fbe55f49a1b00065c93df166583990ff8fb2f8df84f616f0e877cfd8ba406303","fd76bd1be2e94fd670c2636d5c90e7003f1f8409464bc48619440d54876f2029"],["e5e11b9d680a02bd77367f3276a810baceb71bd56f74c3555d3b78ec0224351c:0","89aac0bba6b64084ab418d56cfe1efff558b3225bcc9a699ab97cffe60af1bb9:0","fd76bd1be2e94fd670c2636d5c90e7003f1f8409464bc48619440d54876f2029:1","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:0","9193d3cb158003a23248595cf9bfcd9f844b5699f75597c95784a628c08dd4d9:0","7f0c19a17bb245c41aab0de832aa080a4cc59860c193d469025cc095815b55ee:0","d342c9957b8f2dd1d7984191f1b8831ce968251bd7774d0e217226ecaa230bd1:0","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:3","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:2"]]} +{"kernel":"gdn_run_r4_capture1_hc1","rows":4,"capture":true,"hyper_fused":true,"shapes":[[1,4,10240],[1,3,10240],[1,48,128,128],[1,4,10240],[1,4,16,128],[1,4,16,128],[1,4,48,128],[1,4,48],[1,4,48]],"sha256":["32ef0e25077a5ca941b37236cf94d856970bc66a8717c0b5cd07c8695fb88b19","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","6cdd259c8ecbe61fbc369f3293c1961541386954a223b17a37899d7fd9ad42da","c35020473aed1b4642cd726cad727b63fff2824ad68cedd7ffb73c7cbd890479","c35020473aed1b4642cd726cad727b63fff2824ad68cedd7ffb73c7cbd890479","3a3ed164e42500a1c5b2d0093f0a813d27dc50d038f330cc100a7e70ece2e6e4","ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8","ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8"],"contract":[["0604bba11351b727b3faa2d044127da23e13a539fc464488f9696f45c384365b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d47a838caf803ac76cd4e3060bd14d845eec8fc55bad943a1c37f13e7c8464d","1aef97ca69d485959d96428ee9bcf10a3e5e0ed8c0fa8153d4d19b8c56df4b3e","1fa6343f665e7012e89863396a8626cc4a5c8689f2a0254089c68fd807d0d15f","1ff821b34610dc15c48304fe46af349148e09c98b641f357dd8511bedd8330be","21471c76af855571680f3c14c90d37261d462e133e1627bd34a346e52bd0e70f","21782534abcaddf88c17cc176191b19cefaa39193e71bcc1b24c727c36416963","2181ed40bcc215abf94a52154a7ab23c2767d1330873a19e9d1547384381e461","233c731ab14e10769c17fa688102fb5d04497afc595a71065782114472697687","23745bd3365bb4ae53e1e6ed081000655391ca26d8fe1e3082d5d19609d03a68","260b5c72e3fcbac48de4b3aa26bb724811a27406ae07bed1a45ce55a3f8c68ce","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","27d231b4ee99b2dab7951ea99a28dbd80edc331f5f4f3de69d6d78b7954560f4","28151bccd2be59b7e9093d7a014727bddd5087d479eb1ad1bb1193153b6a0ece","2be4094168f32e08a47685aab3ba61bf3e58e72049049897aabcdb8ba53f5958","3a99db0f7e8866aed82506b9f85dba04e711972931ca79a234c694d7676ed563","3dabed541efdc6326116ee7b0cd0a991a762d523e415ecc6d330746618865d75","410b1c53e0fad7a24318f64ac5bced65e2570b120397cb94d5acfa00ed59c2d6","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","518bc0b092ed73fc6af18b683ba2c1de06a6eaf282e1f16803397a29094a7664","5cb6513752960a54da5d48e2d18a82da94b97c4e53f40071ce1ae8dce0812c17","6002a8453633014dd398117afadedbd4731efd0b8acd229dacdd77296f5bb3d4","6393e15fc835cd94a2b54665445ea08bc284e75c18d824a238eaaae80c14ea97","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","642fb3cd360cb417de38e5bdfbf96c225b09fcef57cd4b5a8798a3fb6446fe48","67141226a4b4036023b3e4e5615bb7e41033454f51e33aab001ac712ddee2ae8","79b196a0c081e52a72a18437cefe79e61e4d9b8c69a35f1b0f9bf8705979469c","7a9ff8af8ce010b6aaa6c5b53a0fb2f65608e15aa99087df63da931bee4808ac","7e5ca70eb7e40e2c51177f5bbbf4045bbf8237442d5f2dc4cb3c1fe3f4c747ae","86159333067dcd03bc42b93a5470e5aec6eeab4a4284d196223d1542aa03d21c","875a407ed5df23db4c21f5d6b528de2721fc2ae031d9ff2fd8bd850ebc25f59f","8dba8ade236047e63a8bcd75212d5ac932e83cc1ef6fffa7d29971174011116c","8dd88402672c6b109970c047bd2909f0a253b7470a4f2cd1b46441f161a40112","9476d394ca9efa6b9d111092e3b133d3f83227dd3d48e01077e4c0f4194a612a","989825b093715fecf48635fe8dd6cf2b342f8686c23379f4c797e32769c4da8c","9ea872181d8defd46af6b011b7efe5b69c219560597295db3235e624c08a2a25","a23d7e1cd1123f9238ab8e347de62843d38e649e11cdceda450d6271a37605d7","a366c52582b0c3c6f5bfdeb090d6759b81fdbecb469aecf2c382461f258dbc83","a3c35c4d85cc6b72683c0b88507715d59eaf73361f61863366e15b5c8ede9d0a","ab2ce6a6f134d57caad0adbe018ea2fca95cb6d954bec0902835fa102d62e12c","b3e7fd681d1d86feb3e725fabfd7a559c14c58c61f3c8cff7ee13ac44cc67f28","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856","c22a078983226336486e73726add7c5bd60bcf883e75a53d9cf92f379cdd5aeb","cb6b95f5e7a517ec0b3d031e35a0d4f7a798ee7e06573d4c5c3fa53b77e00fc9","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","d31471790978cffcc8d279384c0f2be93f1a465d0190676d11217c224fef575f","d45fea80567e888db9944857b75c67c2a34410856b7d1ed83eb1b4923e8729c6","d5ca3d522bbfb7c8348ffde59a1742b7fd38be81a78806524a3b0a98d23a78be","d992fbcb3cafb6f6c022d0782d2d6366da82c7d507f6894555960ad0a29b09a3","daba6ceffb3dee278fe1d9041ac7cf7f9f343d27bef9707881fdfa9ab755ed33","e1fd41d8c742c46d9ed394d9931c4139c780608c864cc1e8f5657b4d8aa0cfac","e2bd497607a1bb1bafbd063cad908b5bbcc35d1f59013bd80408a4a14b54ff18","ea6b2005bd14d5c1494a3eaaf59950be8f5c21a8ad95b35518ac8e9d0d3b456d","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee9e0a80fba6f0d435f487b0f3672cc4ef1d3abec62afde491fe4eadbc0a3aef","f08f582d7ea566dac3c994be465fda33c0a6fe2cf31749b450e7069b4788f204","f1b6aee6b2f061c106f760996ceeba4a6dcd7f54ae91084384a28a0388fb2354","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f7b02633421b8838726fabea5822c62c8a9144397d70e3b365cac0859e4df9ba"],["d992fbcb3cafb6f6c022d0782d2d6366da82c7d507f6894555960ad0a29b09a3:0","f1b6aee6b2f061c106f760996ceeba4a6dcd7f54ae91084384a28a0388fb2354:0","f08f582d7ea566dac3c994be465fda33c0a6fe2cf31749b450e7069b4788f204:1","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:0","a3c35c4d85cc6b72683c0b88507715d59eaf73361f61863366e15b5c8ede9d0a:0","d31471790978cffcc8d279384c0f2be93f1a465d0190676d11217c224fef575f:0","233c731ab14e10769c17fa688102fb5d04497afc595a71065782114472697687:0","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:3","beddd1064e53aacc7a15b6361e205a6c44655bea60762c933a11a1069320a856:2"]]} +{"kernel":"gdn_run_r4_capture0_hc0","rows":4,"capture":false,"hyper_fused":false,"shapes":[[1,4,10240],[1,3,10240],[1,48,128,128]],"sha256":["32ef0e25077a5ca941b37236cf94d856970bc66a8717c0b5cd07c8695fb88b19","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"contract":[["0170df635019132684809fb22343a424a9f44f82a63dae2ad73407a192ae9bf9","01d61655ca633d8c0ed37fb911a9b46aead9ec55f24f41f6d9ec277e271f5c2c","04d822cad972ac933a5c8015adae6327b9c9b6d5269bc4fed5cca82ab3cb8bbc","06011c0c913cd10be471a2626651e6530e469f5ef4a730c2986d9e3700373dce","092cdc4e9955ca5e28abc38642f40709d0401482f4916587acd5efed71667c89","0b15c114231d7bd2079ad4079a830e3ad29b32e2b3f5d143c53e600397ed1832","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d5f64c048a27509878e0a8afc20c143087e6dbd2a374237c6e3ee81981aefe4","0dbb9005bcd4a751a01e3bb3f0fe2ce964116d52b30179baac189d546359ae30","1a0d26ce39eff8c9fabbe860fa022707d607c142ebf7cd7bb0044ae596ed8cc0","1abda5668709b7b5ce2095bdab40bf7b58502dfcf09798a426f6af4b455a1a53","1ae0361736423bf375a837d9ae6ab063ccb704a8b3b02c85bebbcf59af8bb257","1bf76eda59cf524c343e4cb337280082e7a4f0d5c7100c5a4e2d1010a9c68af4","1c55ec0498d5d6e55fc9e8533c9131d140ca53e12e283ec9d4a6a90746ee1dee","1f5f5bca2d61ff779fdfa6f1ed1f7d230436deb346d20a0f47af3c5ab154f1d9","1fba05f49981939e69f50d45fb6d5af1e745be412a5b0a2369c810f634550de5","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","2801e77d6a3b9fade6e6bff527896a73b4e304faa0729d687ade6b4d5f2de506","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","315b768137c6fb30cf4cf3c53f588c7f25629891ecf5145c10ffb1ee93aa7a75","36942b8eb4a9aa0a9ea0f0b5306615c9fa4cc827445e98773f88e5e01f022178","3792d3e4a27e21fab372c2bc08b759d9581143e26a7a78a119d28b618a5d81ff","3adacae4d2c0da5c04d00afc7e2ab17d5b525186dd3c0909d0725328016547de","3be39e1490246a23a1e1fb9d3788adba9ff27b6302da54ef941e69a320fd7359","3c088b0f93f7095531169ef91e00652360991b097c6c8e4b818465b0dbc6527b","3f7a1303d8536cf11afddb0069c24cd8de93d75c3fa7cdcfaa860f1a4aa729f3","3f84e3641fbbaf79b24723b9347f74e51504f2b1e0e909143140584ec759f5e6","4001ae92ba570836a39e59a21b4b8f7a4346a8d5905538f18a07be5a4f254243","469e581183017492eba4294532f4ce00b1b974b92aeeb3284d9000657a256835","4702dd404f47573b0c818a95422a762d5f5d81c79e193f3b7441d7b8114797a6","48a0693ba7c1f8bb3ed1ee0f4abafe707fdab1fbdbae9b591fd40f6fa7da52cc","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","4d2f3c8e9ac816be6d259ae436e171f1715772da0382d592909c930cc9a623de","4d66974997bc8c259bbb57947cd0dc760ccc1bd32ef1a61c8f7a76f3d801999e","4ed0962b832bd8110048153d4b655392a540419c85478e88d17a47e1c18cbdb0","596000f232614c2d52ec931cea616b79288814b6dfec9892248ade6cfbadb9d3","59d14699990791f09aaaeef4c39c9f77e92a15c34be67a898edf49ddc47849ef","5e36a73533a71368b13a88e24c1155935ea3108922d88c81a06caacb5b4ccab2","5eb9433f31a87aaabfbe17b48054b235a5b41e69f129b3706162f0ed4c7e65a1","5f0395b6aeca8b47f1f0158b8a9a4a1112fda7f47ea521782e0f538f04411de8","62a2a2962496ec18ab190c8a745c5043003297daca9e21602f189ab1513c3b88","638cec8f26e8933397ebb42424344f93f5d315f4c86c0c8ebadb99c56835e8d0","6801171ea2564db57f5930c629bd2d921f1771eaa61f08f5ae4257e0c26b49a4","6b7e139e75bdfc3835bf6fb4e1f7396747bc03fc6785c79c6f0efac1d85d833d","722a5acbdeba9c302b0d9063c8a2804b0b3ddbce3e511ac278d20b58cf559caa","7af33d3700e879eca811f6badd233b011f194eb47a3e696a35a58cbde5bb00db","80152322d00491ea555563b698c413fba96b7289bf274dd2de4ca4eb0c1b65bc","80febdf80b6fba6642173e6a99c825692d670bcd0a6718b811e94b49424115a7","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","8623c48d8e824b84dd31be786240b52aa1f1d048b20bf16eeaef2ed39eaa0e2b","8a2bbecf8ad6581c5e7e1164d27a49677fe3c22a4bd4049212fcfbe0db730c73","8a2bbecf8ad6581c5e7e1164d27a49677fe3c22a4bd4049212fcfbe0db730c73","8cc03fde328307cb1bcce4b293594e82594a8a1dd4636df711d2379363dad0e4","92e886b111e83088b71b3adb1914968bbc780558edee57118fdf51e450eda2a9","9836cf37e2ff557e93b627bafef1f54ad452d5337fb89d94852dbad43848a11d","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a","a0c7ab2894e276b07458457ef259a9ff485329e1e694f912ae2bfe32628fa40d","a1507b4317ecd1f8418d79449821f3d9d20723ffdf0bae78f50487d61febf80c","a826133e01074676868f55c7a4299a31404d96d8feccc854c1d89199657a11be","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","aee0453cbdb48afd807521a905f4b781b3177111cf8fc452748a5f03379fe042","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b5a4dc44f3126e44488566716d00561d83c8c4cc74098cb29c452956e0bb7223","b6fb9b88419437dc67357c7b1a4938dddd54cdf7f8f45fad73735059fe7776e0","b9054ccad2a24bc02a19fddb9073a2dec7e2c38d301838580a6eb8181ff95840","c5c9dbe3a691bde75ee4f4c8c3e9f09356e5a2a3e3bd20bc2aa8a66dd1f91dc8","c73e48eb078bf64cf073c54e332576440d94d9715a2720f5bcfb8f341dc2b7f2","caffa71cd8f646e82044dade865dead71a785e5453bf4984289e37dbd9bada73","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","d06a3cff5d9ebb8cb88dbb21a27c3739b047c7a924ede76a91c7f003e3b83b0f","d14ba78d1b8a174605b10044931f2f830b29076c0eb2c56d952e819211d0e3fd","d14ba78d1b8a174605b10044931f2f830b29076c0eb2c56d952e819211d0e3fd","d4a332ccbf5b01c8c81b850764571db332d6c662206cced77da3e7b69a35f2c9","d639b2600430a2f748eaba4f6c813c76a2859e801149c5ecf08730d805c7da61","d7c18ead1716d95b3c212ecdb9065a134ffaa496f26b5b0a078d0977d2cec559","d97b6b23dbe3f2ecd8e91867387af4e863b76c9448e47b72fcd029422cc2800e","db7d0c3bd180e189fe62bc759b7cf4210c3f5496b57911d8f764908307e1555b","dbc731f75f4e07986acca2d08f424c7705bd486f6b5519e6e6603924f785c7c9","df7dd851f8eed0d3a9d6f8fefc99048b274aef020f45b071b49e296a3eb14018","e2ee858348da31a76173ea9fafcd0f00f204ac6999914cd4c9ef0bfd114c029b","e4a4deea860c9b4c068789d78e1509571deb4a076b00762b261a0fac8830d5e1","e80dc7a98e25a7ae5f00de65af66172ff09019ef021956955734ec11b14fd766","e8c4c7767a5d1f88d1192937ee75157f9c46c8da5948cc9743e58d137b8abbab","ea6d9c24c9e90e61eea879a709b62b4ed60aa0f67dd622bf8fd0aecdac67afc1","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee173f747bd38e865d17600a00fe9c9f8178762a828abec708ab4d603c21a82f","ee1c3d4c37f5be8c9785b55cd2801afe487ac589c72523ff345caad02e1e2bd1","ef9d70e0bb2035163153ca96ea417b182c4c44888cc835345ac6ccd30cecba34","f05f73340e75117faa79ca12e564c72adb286bb369e942fe204c223b5e939d51","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f7d5ce93c483944b5bd80ec92ab67588c1fe116d86e602ca1f97a80f25c4f91f","f9ab5fbe730526aeede7753a90a12ce35e8376b6fd285be109da79b5af8f1969"],["e4a4deea860c9b4c068789d78e1509571deb4a076b00762b261a0fac8830d5e1:0","d7c18ead1716d95b3c212ecdb9065a134ffaa496f26b5b0a078d0977d2cec559:0","6b7e139e75bdfc3835bf6fb4e1f7396747bc03fc6785c79c6f0efac1d85d833d:1"]]} +{"kernel":"gdn_run_r1_capture0_hc0","rows":1,"capture":false,"hyper_fused":false,"shapes":[[1,1,10240],[1,3,10240],[1,48,128,128]],"sha256":["a74243c8cc3566eba91750304ef0b97340712c825d18f1d592a5e564fd449c99","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5"],"contract":[["01f7eca1806ae5ab7297abb87ab01522ca904564f6531ccdec82775ac4474a50","04d822cad972ac933a5c8015adae6327b9c9b6d5269bc4fed5cca82ab3cb8bbc","097a419ebe04c9e2d299a9404fdf447eff0afddc7ee29121f3d3d853957ff7f4","09ca04934275d9f41a8cfbfaf2b27f687d8db773ca68f159ff6fba3153e9cde9","0b15c114231d7bd2079ad4079a830e3ad29b32e2b3f5d143c53e600397ed1832","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d5f64c048a27509878e0a8afc20c143087e6dbd2a374237c6e3ee81981aefe4","0dbb9005bcd4a751a01e3bb3f0fe2ce964116d52b30179baac189d546359ae30","0eed68bf90b1b96c91096d8382595fa624d5331b7a5c8edb8d567eca8a928b9b","145dfe873e32573f0437f9fed93f33bc9572488e29a3675fe317336e0433aaef","1a8533db2a0b0fa94738adb23f53b036da532b352ef0ef716dd9b83c36210210","1e549203f0b133f25823eb025a32985b11ac0e9e3725184db9d7f7f71ace84d9","1f416dec80d3dd9b431b6b96097741161bcf554c8811461f44cb62097846936f","1fba05f49981939e69f50d45fb6d5af1e745be412a5b0a2369c810f634550de5","23189d62b70806daaefe447c4bd090a0e79c747778f6bdc0beed1a479a4985ac","2586f87bd4e5e0aa647a4cfb2f5c3a744e2d9915be7a59b84f31f047eeb3f59a","26824e7eafba6b5eb6a6f14b94d924f6c605745deedbb1742b279380b73f7fc5","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","2801e77d6a3b9fade6e6bff527896a73b4e304faa0729d687ade6b4d5f2de506","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","315b768137c6fb30cf4cf3c53f588c7f25629891ecf5145c10ffb1ee93aa7a75","33e260eec4283e03c4c55a66eef91444a9fbd1e4c8069a4c8a589c001f2e48b6","368d0e4b389b14422ca3f021fd421b8f7085d84ef582cf93b8b992fe96ffc4e3","36e10989310b7721020b991bc9be82c24d933617b42abdc580099f8c6edbdffa","3863b05f176103b9cf045d004dd0d1519a87176d44d17ba620935a9918c14428","399a05d002ebc485e1534f0568e3ea4a09590be5645943c25001753b563116e1","3b3ad0e718d629fc29f8ea01cfb66306b888c18daac3667daca52c91628f9463","3c088b0f93f7095531169ef91e00652360991b097c6c8e4b818465b0dbc6527b","3d8ef37f31d84b803527ebcc00cba8254acfa7f195c56e5da1a6789e6c984ff4","43f994432e40ee19b5538bf23c686aa851960b4e5ced177556a0281743e67a5d","46550f9829a7248ff5f108c217ffe53b104204714c7678f836d6805c32770111","48a0693ba7c1f8bb3ed1ee0f4abafe707fdab1fbdbae9b591fd40f6fa7da52cc","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4cfe368f9ea4a1a1b4e9263f89df316ea7c98c04472350d241ee1b8b1f7f3cff","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","4ec333843f26c22ac91e136d75078fae8d75d41f9c1cee49e1c43defd74c0fb1","504dff1216f639b9f2a4cb02f2306ac593ab3eb0dc43cab3882b12c141da4aed","57e3e3c046f2167bf70876d2a8bb49a885d4136903a868d0f6c661cc4af4ed69","59d14699990791f09aaaeef4c39c9f77e92a15c34be67a898edf49ddc47849ef","5b557075b1150976eee2bd66b879a0da1edd9631ee7f8476b24f63ed0e11325a","5cfc89e28bd22ac0597a12b9adc8679f1d9a502aed83d6334b3053de129cc783","5eb9433f31a87aaabfbe17b48054b235a5b41e69f129b3706162f0ed4c7e65a1","5f0395b6aeca8b47f1f0158b8a9a4a1112fda7f47ea521782e0f538f04411de8","60bc527f339f42fca3767cb607cf4931f34e1c7cb5bf8bc0621d783c76791bcc","62a2a2962496ec18ab190c8a745c5043003297daca9e21602f189ab1513c3b88","67accecdfd37e09072e8881820daf23b2323c5561aa9422a43359d3e61564594","6d7c528cb7012e70c5c9c224c1233791d8dceafcae033c1dbc793b8c0aee5878","6d8d2ab421ac6e277efcf936c4be5714eac9ff9ba8043e475f2ad57c68dc02dc","6ee82410be30736f59dc5d7d85481368e8f8c078cad07f48deaf2c1b9ccd3653","711c33e20ea9655f2b30cc73b409f46d891f8980217fe87649f73da3b98a1c76","75dc76f81f725fc92914363b908c9f9448d6399b71234fe199c7090f688e61f1","7804c39d68c60665e0d0368f6c4594c07d8611671fbaa4a82d56cd3c8f718ff0","7dd0080ef2603061d62e54e8438bef3e27682a252cef3ad2abd853bbd36c2c8f","81a08ca492a5fdceec0914df70207ca9351e61310d3d483ca987a97174455289","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","8d17f127591dbece80a008318834005b801b95bdfea9866b4bca1c8c251cb9ca","93066d576ee5904e429c02ef158d0357517c21259ce9b0d4ca196abbb5e91ff9","9836cf37e2ff557e93b627bafef1f54ad452d5337fb89d94852dbad43848a11d","99dbb2c8fdbfc36b91ca7152887f4adb3a4bb4a52b5f5f3eb6fc6e216476a12d","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a","a0c7ab2894e276b07458457ef259a9ff485329e1e694f912ae2bfe32628fa40d","a2fd166115616b952a173605e8d100afc31c5b89de4c3eb7ed5988576df86b98","ad3a3d5977cef5c11a66fd1c04bfa744cf992f770a5e82911f72457ab00ca130","aee0453cbdb48afd807521a905f4b781b3177111cf8fc452748a5f03379fe042","b1613a647bf8efeb03c2b45668361dd040c2e082eaeac88fb0caa0070ff4f0e5","b1613a647bf8efeb03c2b45668361dd040c2e082eaeac88fb0caa0070ff4f0e5","b1613a647bf8efeb03c2b45668361dd040c2e082eaeac88fb0caa0070ff4f0e5","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b9054ccad2a24bc02a19fddb9073a2dec7e2c38d301838580a6eb8181ff95840","c6dbb3bd63a9ee6ac86bc50296c4893e3311147d4b2df71ad8ad201d7be1108c","c89757fade08a743f0f2949060502f8fa4283244590c981c9ae0ab2398ae1e18","c89757fade08a743f0f2949060502f8fa4283244590c981c9ae0ab2398ae1e18","caffa71cd8f646e82044dade865dead71a785e5453bf4984289e37dbd9bada73","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","dca3013af8e31fbca9e436cbcb0eac62040c67c5903cbfbfb774f326265de319","e3ec8a8e83cf3b51c60d50755248cbcef1a0f65ae97d1dc079503ad7af5c60db","e40697c8b6d14ad4414415adc960baa0965801818fbcb665705907f82b6b8574","e594a47b5829de14b25a4c47fd23f5892633c8a091d6acbe891b6aa3c334c982","e594a47b5829de14b25a4c47fd23f5892633c8a091d6acbe891b6aa3c334c982","eae04e9b1d39255c1c79e28d83cabe9afec95674f90e1ae93798267c0f9cb912","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee173f747bd38e865d17600a00fe9c9f8178762a828abec708ab4d603c21a82f","f009c8eb21bb74ca48d3059e1e7fadbb3d4ea83887fbb465888cef21d6b0aa5c","f018a743fe6247528d1741e4e3f273aa314beeb4668bbaed6ba5bc89bd726a33","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f3b53d1e54d595dd4959564c4d2c459967bb15e473670e4692cf121cb7c96d8f","f49f7710f2487defc61ab8dd4912dea27748309fa67c9d059995878c04248ee1","f6294bc9bda3582643e45b7f4893210bda00056f0c3e99e95b45bb3f90250472","f7e7c683b5363a42ae04cfbe2b41776585d82ca1efbfff668cb987efed96c802","f97bcd529294cec4241c3560c15f1543c303a2aa63bb13d11b1088c906ec6da4","f9ab5fbe730526aeede7753a90a12ce35e8376b6fd285be109da79b5af8f1969"],["6d8d2ab421ac6e277efcf936c4be5714eac9ff9ba8043e475f2ad57c68dc02dc:0","5b557075b1150976eee2bd66b879a0da1edd9631ee7f8476b24f63ed0e11325a:0","504dff1216f639b9f2a4cb02f2306ac593ab3eb0dc43cab3882b12c141da4aed:0"]]} +{"kernel":"gdn_run_r1_capture1_hc0","rows":1,"capture":true,"hyper_fused":false,"shapes":[[1,1,10240],[1,3,10240],[1,48,128,128],[1,1,10240],[1,1,16,128],[1,1,16,128],[1,1,48,128],[1,1,48],[1,1,48]],"sha256":["a74243c8cc3566eba91750304ef0b97340712c825d18f1d592a5e564fd449c99","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","02b1c2234680617802901a77eae606ad02e4ddb4282ccbc60061eac5b2d90bba","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","9f1dcbc35c350d6027f98be0f5c8b43b42ca52b7604459c0c42be3aa88913d47","de676bae28a480011d3d012db14bef539324e62a841a9627863c689bea168af3","5d89f056865052bcb89c910d2d62872e029fb273c3db03f8968a52a41593c1b5","5d89f056865052bcb89c910d2d62872e029fb273c3db03f8968a52a41593c1b5"],"contract":[["00c4331154617edae82c01582f58a8a41cd276baf459821361d7bba59a68df3b","02b1dde74eb9ded5a8cf2a6357b8d5e3b144c885a170bd7106e39bd8f658390c","04d822cad972ac933a5c8015adae6327b9c9b6d5269bc4fed5cca82ab3cb8bbc","0adbdd001fc6f852f8b5ff3815fabeac67cb14993f4dec29839399e8ea82d85a","0b15c114231d7bd2079ad4079a830e3ad29b32e2b3f5d143c53e600397ed1832","0c1c7341958bdbb1645ad5eb7c1ff18f228a377ba0f264cafa1ea31647800ada","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d5f64c048a27509878e0a8afc20c143087e6dbd2a374237c6e3ee81981aefe4","0dbb9005bcd4a751a01e3bb3f0fe2ce964116d52b30179baac189d546359ae30","12036a7849e693058712241848d9213d32b079ec64a638700ad704ecb28eada5","1f229c380f20ee36aead8d343a05413503481e0370a300b2ef9681e99267f57b","1fba05f49981939e69f50d45fb6d5af1e745be412a5b0a2369c810f634550de5","21b7b0b3b0afd593e35021161a67e4061167c0f79206708293f139946ddc9321","238d492be426103ec3043b283e364ed1dc6dc31c4338cd5fb33e8b05b4db2dc3","23a2df521d9a0a5b035d0460230ebb21b95a9d1e7195d4f5abb4561db9337126","23e177dc66b8c8ecfeab8acd156c1c14901816a78e1f530e65beb700ebb6840a","25d7a0c7fc3809e966090f55be2ed9100c6e53d7c51a0c0a0c64cc2067b9e17f","2801e77d6a3b9fade6e6bff527896a73b4e304faa0729d687ade6b4d5f2de506","2870441664616a964a3dfa48617492b256802f15760aa36339b00fc4b899458a","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","2dd2b59675ddbbd64054eb69331cc65459a6b4b73cf9e74cee5ccc5e66af913b","2f93ee4611384a85ec69019dcab34e9994d6367f7990f6db946c2c5edcb6216e","30cf9f31fc3a1fab0997fff2b453dc8dc058838c01b32875fc311a775978a3bf","315b768137c6fb30cf4cf3c53f588c7f25629891ecf5145c10ffb1ee93aa7a75","3c088b0f93f7095531169ef91e00652360991b097c6c8e4b818465b0dbc6527b","3cc70b016fab510523bebf38a8fa09002061c8d7d2263ca431ce3b2c05d889e1","4579af234ac36f2dac4968b82d885b905920fabc1c78644e2c16ba63356c9e41","47226c7471aaef97a4ba40ad93b3c7e14e3939bcd3d6373510369cc1c2b15c12","48a0693ba7c1f8bb3ed1ee0f4abafe707fdab1fbdbae9b591fd40f6fa7da52cc","497a2960866a6ba32e4d8f9b8268b071a3eb9c85bef2b281eb3fa8a05706f41b","497a2960866a6ba32e4d8f9b8268b071a3eb9c85bef2b281eb3fa8a05706f41b","4a61dde807cdbd544018f92b303f98c6528fdbc1a8edda4faaf5fbcdca69e15f","4b9cf5af133bd941224d818b2748aacf2c2cb15f837e72a50e2ea7f68d6ce387","4c5f51809b686af509e20f28f49895467242273dffee8f8c1eff53256d2a46ef","4e8a66c6ae50df2be89eec51f74ca4202580cac92740f7ed558bc4703695fc9d","525b25e5b08a2b5e337a67b1d15a5195fc62421f9b863d5150a666c073dce008","58ea445557a16f616f7d15be3c5e4fa373f8d24952c3a78bfc54df60ad98486b","59d14699990791f09aaaeef4c39c9f77e92a15c34be67a898edf49ddc47849ef","5d6018c9ecc77dbc6cc64238eee90ae5aa8d9e54dd71777f847e1ca385e0ff65","5eb9433f31a87aaabfbe17b48054b235a5b41e69f129b3706162f0ed4c7e65a1","5f0395b6aeca8b47f1f0158b8a9a4a1112fda7f47ea521782e0f538f04411de8","5f69616db27c85c7d00fa0b9f66c0f4482d74ab5c5f7cda577497236fce939eb","60ea2be96ac0e77e8c4bc5dfdc328906cc99697d17891fe9e0f2094260a965b1","62a2a2962496ec18ab190c8a745c5043003297daca9e21602f189ab1513c3b88","6460dfb32aabba47ec9a3ee82bfb8aeae57fefcb0a673f2b1174cac2d3a017c4","678fc3d2f42f1ce9c526b807df13bbe80bc8b374c4d1d4ea599a1811a7f83873","67c67f1971c8ec1ea628a31911b62b1c42070758474d8414bcddf776e2fa3fc6","6801171ea2564db57f5930c629bd2d921f1771eaa61f08f5ae4257e0c26b49a4","688aa4078ea3d75ea80394a10ba35da05de296ba1c77daa26702f14462797ea0","688aa4078ea3d75ea80394a10ba35da05de296ba1c77daa26702f14462797ea0","6bdd20b3fac09a8e22bce1e9bdcaa6cbad1a89ae578991b4d9074db3b44fff8f","6e5041732adb304d07a92edacd8790554e9c000144456b8edfea2d4fa8600a42","6e5041732adb304d07a92edacd8790554e9c000144456b8edfea2d4fa8600a42","6e5041732adb304d07a92edacd8790554e9c000144456b8edfea2d4fa8600a42","6f30b13aa8e44fb3e7dbb83a3d83208a0af96da621dfd40ee0607f7ce3f6edac","76188080123357a8d4703db007492080397c735988f1121f1f4b5f97db19ab26","768909b640e0d7a5a12a39582452ab723a55bca13d2311c4d48e149c6590a48c","7708901c0492dac3259addf1ca77a88f8d4aaa754a962a0d26eb82389e7cf855","79521ed9cc7d7d65dc99f393f4bfbeefd1fa4efa2e9418cfb5410c2a8d2607b5","7e26098ae4789d4c5a9fde6064e1526a51a1afe77961f5d50b32286248afa9d2","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","87f53c97acef2a52938d27a067339db75dd2f399e9c550a262c3df88f4503b72","89b8f71e2c5dcab26e63b390cad578821cabd06a755efd4fceb017bab7170fe6","8b7dfb1297bfbabe9ad39407effa483d64d481c1ec82efa185691e3f43253fa0","9264f08b138575ff15213485d1cf1bb7ae746a2d4efd97a442aff1efe490d037","9836cf37e2ff557e93b627bafef1f54ad452d5337fb89d94852dbad43848a11d","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a","9e10fa0e0ba0aa4bd50d2e7a0a9796e7cf80e9733fb6b0d3cd6ac998fd8d0c13","a0c7ab2894e276b07458457ef259a9ff485329e1e694f912ae2bfe32628fa40d","a6d921c9b3c480a2ffdb232a85d78d1148b0a1b013ff189131532430db45f49b","ade38e4fdc356e214749ad15c581891897c99980f102381d72c52d2564964cbd","aee0453cbdb48afd807521a905f4b781b3177111cf8fc452748a5f03379fe042","afb7228ce5b739910f829507fb92dfb3a4ed47ccc9c80d573d6fe93d3f9083bf","b28a7da7197a83379fd9a4260d1c67894dbd3e72f5defec77ae542c70b2c8c97","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b9054ccad2a24bc02a19fddb9073a2dec7e2c38d301838580a6eb8181ff95840","bd8c35d61e57c70919a3b755122756d945d130df19cde6422e2ddc88738617fe","befad086b2eded6d4d58c0209b48ed220d28394e499bdf3b16f4a9e3426c3ab3","bf238cff8b08754c4ab94945ce046db55e03b2dd15e10c8abbbd9e09ba2874c4","c65fdd07715c1b3007ede6ad7d0393334129d7d0d3966cc5cb76f6306a2d2340","ca44a9744f75cf5fb6f92d47c09a4a40170b960f6823154a2051ace5e3ce6ce1","cca013f009814558915bcadf03752b8c2b3800a1c6e684c84664d51a8c330583","cceace66bbc09d09c1139ab9275e53c1529e23cd75ee4a4a7c8efd99f3e8fbca","cf42b92b15559db2decd7f77aa2d59e2d2c959f8e41c09fc99964ebf787f19dd","d21984e80c7ba89b0857269c6bb6519a310ea57190d24e6d16083f8123206b83","d89e9d8afe1164b59a00768e0f064098d7f5bcc4de06dbc48fa64b34bd69dd03","db84984ea34543336f8969f85ac67d0dd9aa219af64d57ca3871d39c4d4e56a8","dd6cc757b99a88223da70159294a3d6c07597abe8843e7597ba35f2e6662ada2","df4164dedae15442444a70ce300301b2495cf341227f277f661b0fb9c2feba9b","e4488c03aa5273376773673a062ad67eea6496f5ee5a93e6cae18bd67407dc21","e5d25dd6df39ce354716a64f0919f88ec293aea042251d4d2ba4d31e0f02c68e","e75f5fc6e9fbaf99657a7edb3c24a17a6f268249a9186d188f037acaabfa68e4","ea2caed5fdf8c7250adce20ffb5334a1c6c522f4a198528fcadcf9f684273a20","ea6d9c24c9e90e61eea879a709b62b4ed60aa0f67dd622bf8fd0aecdac67afc1","ea9f7bc7aff39eb5f486dbd8dc1b12416cf5db03f0eb939712a7bd870d759d98","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee173f747bd38e865d17600a00fe9c9f8178762a828abec708ab4d603c21a82f","ef6c7bacfde27228418bf320424e765fe1bf9b4ee3fce3e89899e3d69cf3b0d3","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f44c3cc84b99d06b89176877c9fdc8d96e03b4adb38693a2ff87b6188227969d","f9ab5fbe730526aeede7753a90a12ce35e8376b6fd285be109da79b5af8f1969"],["f44c3cc84b99d06b89176877c9fdc8d96e03b4adb38693a2ff87b6188227969d:0","bd8c35d61e57c70919a3b755122756d945d130df19cde6422e2ddc88738617fe:0","7708901c0492dac3259addf1ca77a88f8d4aaa754a962a0d26eb82389e7cf855:1","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:0","cf42b92b15559db2decd7f77aa2d59e2d2c959f8e41c09fc99964ebf787f19dd:0","47226c7471aaef97a4ba40ad93b3c7e14e3939bcd3d6373510369cc1c2b15c12:0","ade38e4fdc356e214749ad15c581891897c99980f102381d72c52d2564964cbd:0","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:3","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:2"]]} +{"kernel":"gdn_run_r4_capture1_hc0","rows":4,"capture":true,"hyper_fused":false,"shapes":[[1,4,10240],[1,3,10240],[1,48,128,128],[1,4,10240],[1,4,16,128],[1,4,16,128],[1,4,48,128],[1,4,48],[1,4,48]],"sha256":["32ef0e25077a5ca941b37236cf94d856970bc66a8717c0b5cd07c8695fb88b19","6d7bd1fa33ee71b2d2c4fc8062f6c4b09804b84449ff73a687fe7cfd568d0625","bbd05cf6097ac9b1f89ea29d2542c1b7b67ee46848393895f5a9e43fa1f621e5","6cdd259c8ecbe61fbc369f3293c1961541386954a223b17a37899d7fd9ad42da","c35020473aed1b4642cd726cad727b63fff2824ad68cedd7ffb73c7cbd890479","c35020473aed1b4642cd726cad727b63fff2824ad68cedd7ffb73c7cbd890479","3a3ed164e42500a1c5b2d0093f0a813d27dc50d038f330cc100a7e70ece2e6e4","ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8","ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8"],"contract":[["0170df635019132684809fb22343a424a9f44f82a63dae2ad73407a192ae9bf9","01d61655ca633d8c0ed37fb911a9b46aead9ec55f24f41f6d9ec277e271f5c2c","04d822cad972ac933a5c8015adae6327b9c9b6d5269bc4fed5cca82ab3cb8bbc","06011c0c913cd10be471a2626651e6530e469f5ef4a730c2986d9e3700373dce","092cdc4e9955ca5e28abc38642f40709d0401482f4916587acd5efed71667c89","0b15c114231d7bd2079ad4079a830e3ad29b32e2b3f5d143c53e600397ed1832","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d333a4c45cab781ee643296609e1ce0db95aacbca032cb88a0305ac33883b6b","0d5f64c048a27509878e0a8afc20c143087e6dbd2a374237c6e3ee81981aefe4","0dbb9005bcd4a751a01e3bb3f0fe2ce964116d52b30179baac189d546359ae30","1a0d26ce39eff8c9fabbe860fa022707d607c142ebf7cd7bb0044ae596ed8cc0","1abda5668709b7b5ce2095bdab40bf7b58502dfcf09798a426f6af4b455a1a53","1ae0361736423bf375a837d9ae6ab063ccb704a8b3b02c85bebbcf59af8bb257","1bf76eda59cf524c343e4cb337280082e7a4f0d5c7100c5a4e2d1010a9c68af4","1c55ec0498d5d6e55fc9e8533c9131d140ca53e12e283ec9d4a6a90746ee1dee","1f5f5bca2d61ff779fdfa6f1ed1f7d230436deb346d20a0f47af3c5ab154f1d9","1fba05f49981939e69f50d45fb6d5af1e745be412a5b0a2369c810f634550de5","26a3eba456b13b105490f59de5cab7a6cfb70e4ee40341a37b4826e067969c9e","2801e77d6a3b9fade6e6bff527896a73b4e304faa0729d687ade6b4d5f2de506","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","2d18aa8535f30ee6209d81e16b6e7e82a8e901dd6097d99c8ea9791cf850cf4c","315b768137c6fb30cf4cf3c53f588c7f25629891ecf5145c10ffb1ee93aa7a75","36942b8eb4a9aa0a9ea0f0b5306615c9fa4cc827445e98773f88e5e01f022178","3792d3e4a27e21fab372c2bc08b759d9581143e26a7a78a119d28b618a5d81ff","3adacae4d2c0da5c04d00afc7e2ab17d5b525186dd3c0909d0725328016547de","3be39e1490246a23a1e1fb9d3788adba9ff27b6302da54ef941e69a320fd7359","3c088b0f93f7095531169ef91e00652360991b097c6c8e4b818465b0dbc6527b","3f7a1303d8536cf11afddb0069c24cd8de93d75c3fa7cdcfaa860f1a4aa729f3","3f84e3641fbbaf79b24723b9347f74e51504f2b1e0e909143140584ec759f5e6","4001ae92ba570836a39e59a21b4b8f7a4346a8d5905538f18a07be5a4f254243","469e581183017492eba4294532f4ce00b1b974b92aeeb3284d9000657a256835","4702dd404f47573b0c818a95422a762d5f5d81c79e193f3b7441d7b8114797a6","48a0693ba7c1f8bb3ed1ee0f4abafe707fdab1fbdbae9b591fd40f6fa7da52cc","4bcc28d23db5901e4f618b66bec2b0bfaef67b3c8b4cd45c0b6701cd5cc92264","4d1c127dd0ced703354f6844c5c797fc8b1535ba1925a1fe84b15cc5b6e36857","4d2f3c8e9ac816be6d259ae436e171f1715772da0382d592909c930cc9a623de","4d66974997bc8c259bbb57947cd0dc760ccc1bd32ef1a61c8f7a76f3d801999e","4ed0962b832bd8110048153d4b655392a540419c85478e88d17a47e1c18cbdb0","596000f232614c2d52ec931cea616b79288814b6dfec9892248ade6cfbadb9d3","59d14699990791f09aaaeef4c39c9f77e92a15c34be67a898edf49ddc47849ef","5e36a73533a71368b13a88e24c1155935ea3108922d88c81a06caacb5b4ccab2","5eb9433f31a87aaabfbe17b48054b235a5b41e69f129b3706162f0ed4c7e65a1","5f0395b6aeca8b47f1f0158b8a9a4a1112fda7f47ea521782e0f538f04411de8","62a2a2962496ec18ab190c8a745c5043003297daca9e21602f189ab1513c3b88","638cec8f26e8933397ebb42424344f93f5d315f4c86c0c8ebadb99c56835e8d0","6801171ea2564db57f5930c629bd2d921f1771eaa61f08f5ae4257e0c26b49a4","6b7e139e75bdfc3835bf6fb4e1f7396747bc03fc6785c79c6f0efac1d85d833d","722a5acbdeba9c302b0d9063c8a2804b0b3ddbce3e511ac278d20b58cf559caa","7af33d3700e879eca811f6badd233b011f194eb47a3e696a35a58cbde5bb00db","80152322d00491ea555563b698c413fba96b7289bf274dd2de4ca4eb0c1b65bc","80febdf80b6fba6642173e6a99c825692d670bcd0a6718b811e94b49424115a7","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","82224fb8a13214dd07b0368521c89d58653c4d7409e5a90abef05ee6152ff43f","8623c48d8e824b84dd31be786240b52aa1f1d048b20bf16eeaef2ed39eaa0e2b","8a2bbecf8ad6581c5e7e1164d27a49677fe3c22a4bd4049212fcfbe0db730c73","8a2bbecf8ad6581c5e7e1164d27a49677fe3c22a4bd4049212fcfbe0db730c73","8cc03fde328307cb1bcce4b293594e82594a8a1dd4636df711d2379363dad0e4","92e886b111e83088b71b3adb1914968bbc780558edee57118fdf51e450eda2a9","9836cf37e2ff557e93b627bafef1f54ad452d5337fb89d94852dbad43848a11d","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a","a0c7ab2894e276b07458457ef259a9ff485329e1e694f912ae2bfe32628fa40d","a1507b4317ecd1f8418d79449821f3d9d20723ffdf0bae78f50487d61febf80c","a826133e01074676868f55c7a4299a31404d96d8feccc854c1d89199657a11be","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","a8d507f576fc03e994d5fc9587064b7b42a994dc7d79c9f8299810a6d9ce2183","aee0453cbdb48afd807521a905f4b781b3177111cf8fc452748a5f03379fe042","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b46088c938ca002e6715a16ab517bc6189676586ad0f82c1960b6cc9ef9c0eb8","b5a4dc44f3126e44488566716d00561d83c8c4cc74098cb29c452956e0bb7223","b6fb9b88419437dc67357c7b1a4938dddd54cdf7f8f45fad73735059fe7776e0","b9054ccad2a24bc02a19fddb9073a2dec7e2c38d301838580a6eb8181ff95840","c5c9dbe3a691bde75ee4f4c8c3e9f09356e5a2a3e3bd20bc2aa8a66dd1f91dc8","c73e48eb078bf64cf073c54e332576440d94d9715a2720f5bcfb8f341dc2b7f2","caffa71cd8f646e82044dade865dead71a785e5453bf4984289e37dbd9bada73","cde7a60faa203dff69cad870be030ffce8dec0f86dcc69aa1adb072274ded1dd","d06a3cff5d9ebb8cb88dbb21a27c3739b047c7a924ede76a91c7f003e3b83b0f","d14ba78d1b8a174605b10044931f2f830b29076c0eb2c56d952e819211d0e3fd","d14ba78d1b8a174605b10044931f2f830b29076c0eb2c56d952e819211d0e3fd","d4a332ccbf5b01c8c81b850764571db332d6c662206cced77da3e7b69a35f2c9","d639b2600430a2f748eaba4f6c813c76a2859e801149c5ecf08730d805c7da61","d7c18ead1716d95b3c212ecdb9065a134ffaa496f26b5b0a078d0977d2cec559","d97b6b23dbe3f2ecd8e91867387af4e863b76c9448e47b72fcd029422cc2800e","db7d0c3bd180e189fe62bc759b7cf4210c3f5496b57911d8f764908307e1555b","dbc731f75f4e07986acca2d08f424c7705bd486f6b5519e6e6603924f785c7c9","df7dd851f8eed0d3a9d6f8fefc99048b274aef020f45b071b49e296a3eb14018","e2ee858348da31a76173ea9fafcd0f00f204ac6999914cd4c9ef0bfd114c029b","e4a4deea860c9b4c068789d78e1509571deb4a076b00762b261a0fac8830d5e1","e80dc7a98e25a7ae5f00de65af66172ff09019ef021956955734ec11b14fd766","e8c4c7767a5d1f88d1192937ee75157f9c46c8da5948cc9743e58d137b8abbab","ea6d9c24c9e90e61eea879a709b62b4ed60aa0f67dd622bf8fd0aecdac67afc1","eb4bce225ee9703c0b29bd5770512c0787b92ba901c8401bc6e8dbc0160c33e2","ee173f747bd38e865d17600a00fe9c9f8178762a828abec708ab4d603c21a82f","ee1c3d4c37f5be8c9785b55cd2801afe487ac589c72523ff345caad02e1e2bd1","ef9d70e0bb2035163153ca96ea417b182c4c44888cc835345ac6ccd30cecba34","f05f73340e75117faa79ca12e564c72adb286bb369e942fe204c223b5e939d51","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f392f328c2a361595e7947988331f69ef94626259ce63a7f8be70eef6e0ddbfb","f7d5ce93c483944b5bd80ec92ab67588c1fe116d86e602ca1f97a80f25c4f91f","f9ab5fbe730526aeede7753a90a12ce35e8376b6fd285be109da79b5af8f1969"],["e4a4deea860c9b4c068789d78e1509571deb4a076b00762b261a0fac8830d5e1:0","d7c18ead1716d95b3c212ecdb9065a134ffaa496f26b5b0a078d0977d2cec559:0","6b7e139e75bdfc3835bf6fb4e1f7396747bc03fc6785c79c6f0efac1d85d833d:1","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:0","3adacae4d2c0da5c04d00afc7e2ab17d5b525186dd3c0909d0725328016547de:0","0170df635019132684809fb22343a424a9f44f82a63dae2ad73407a192ae9bf9:0","e80dc7a98e25a7ae5f00de65af66172ff09019ef021956955734ec11b14fd766:0","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:3","9ce134cbed9bf1d94793ad0590fbb4c4b6ac59480dabc3dfb6a497c8d2e70f7a:2"]]} diff --git a/tests/fixtures/mtplx-hyper-forward.jsonl b/tests/fixtures/mtplx-hyper-forward.jsonl new file mode 100644 index 0000000..551a61f --- /dev/null +++ b/tests/fixtures/mtplx-hyper-forward.jsonl @@ -0,0 +1,128 @@ +{"kernel":"hyper_forward_dense_combine0_r1_mode0","sha256":["6fa53803eb26df04d12ecf80ac3dd8dde193b2f9fa4b45165b5dda6fd6dcb001"],"layout":"dense","combine":false,"rows":1,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r1_mode1","sha256":["62f31b63f6e0f1d97f53b59365e17c6a7b6cee85e4aae70667d1d8efbac637ac"],"layout":"dense","combine":false,"rows":1,"mode":1,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r1_mode2","sha256":["6fa53803eb26df04d12ecf80ac3dd8dde193b2f9fa4b45165b5dda6fd6dcb001"],"layout":"dense","combine":false,"rows":1,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r1_mode3","sha256":["62f31b63f6e0f1d97f53b59365e17c6a7b6cee85e4aae70667d1d8efbac637ac"],"layout":"dense","combine":false,"rows":1,"mode":3,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2_mode0","sha256":["65f2bd35c60576a6d6a868ed4da3f2bd884be2912615c560abe753f11c37de23"],"layout":"dense","combine":false,"rows":2,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2_mode1","sha256":["da5e91a3a7b593a6fa37f4083632c783feb48a58d29a78493ade68e0e25268cf"],"layout":"dense","combine":false,"rows":2,"mode":1,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2_mode2","sha256":["65f2bd35c60576a6d6a868ed4da3f2bd884be2912615c560abe753f11c37de23"],"layout":"dense","combine":false,"rows":2,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2_mode3","sha256":["da5e91a3a7b593a6fa37f4083632c783feb48a58d29a78493ade68e0e25268cf"],"layout":"dense","combine":false,"rows":2,"mode":3,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r4_mode0","sha256":["33a51ca21a335a35b85fe3f599846aa6d595146c9908b2ccc020cea02a3b8d8f"],"layout":"dense","combine":false,"rows":4,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r4_mode1","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e"],"layout":"dense","combine":false,"rows":4,"mode":1,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r4_mode2","sha256":["33a51ca21a335a35b85fe3f599846aa6d595146c9908b2ccc020cea02a3b8d8f"],"layout":"dense","combine":false,"rows":4,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r4_mode3","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e"],"layout":"dense","combine":false,"rows":4,"mode":3,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r8_mode0","sha256":["97aef2ef8e362b65eeaf014a954fb7aa12f9b93c5c514c765393405e16d4b746"],"layout":"dense","combine":false,"rows":8,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r8_mode1","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994"],"layout":"dense","combine":false,"rows":8,"mode":1,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r8_mode2","sha256":["97aef2ef8e362b65eeaf014a954fb7aa12f9b93c5c514c765393405e16d4b746"],"layout":"dense","combine":false,"rows":8,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r8_mode3","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994"],"layout":"dense","combine":false,"rows":8,"mode":3,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r15_mode0","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4"],"layout":"dense","combine":false,"rows":15,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r15_mode1","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4"],"layout":"dense","combine":false,"rows":15,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r15_mode2","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4"],"layout":"dense","combine":false,"rows":15,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r15_mode3","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4"],"layout":"dense","combine":false,"rows":15,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r16_mode0","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7"],"layout":"dense","combine":false,"rows":16,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r16_mode1","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7"],"layout":"dense","combine":false,"rows":16,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r16_mode2","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7"],"layout":"dense","combine":false,"rows":16,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r16_mode3","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7"],"layout":"dense","combine":false,"rows":16,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r32_mode0","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405"],"layout":"dense","combine":false,"rows":32,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r32_mode1","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405"],"layout":"dense","combine":false,"rows":32,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r32_mode2","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405"],"layout":"dense","combine":false,"rows":32,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r32_mode3","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405"],"layout":"dense","combine":false,"rows":32,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2048_mode0","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf"],"layout":"dense","combine":false,"rows":2048,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2048_mode1","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf"],"layout":"dense","combine":false,"rows":2048,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2048_mode2","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf"],"layout":"dense","combine":false,"rows":2048,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine0_r2048_mode3","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf"],"layout":"dense","combine":false,"rows":2048,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine1_r1_mode0","sha256":["6fa53803eb26df04d12ecf80ac3dd8dde193b2f9fa4b45165b5dda6fd6dcb001","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"],"layout":"dense","combine":true,"rows":1,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_dense_combine1_r1_mode1","sha256":["62f31b63f6e0f1d97f53b59365e17c6a7b6cee85e4aae70667d1d8efbac637ac","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"],"layout":"dense","combine":true,"rows":1,"mode":1,"selected":"fused","pack_exists":false} +{"kernel":"hyper_forward_dense_combine1_r1_mode2","sha256":["59264228afb8587ba8d6d5eec11c19ee14c97f963e5986c84b54c0322848e528","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"],"layout":"dense","combine":true,"rows":1,"mode":2,"selected":"v3","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r1_mode3","sha256":["59264228afb8587ba8d6d5eec11c19ee14c97f963e5986c84b54c0322848e528","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"],"layout":"dense","combine":true,"rows":1,"mode":3,"selected":"v3","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2_mode0","sha256":["65f2bd35c60576a6d6a868ed4da3f2bd884be2912615c560abe753f11c37de23","469118711ecca742e12b535beb6bf00fa5a91a5e904e8a1832d8093bcea0129c"],"layout":"dense","combine":true,"rows":2,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2_mode1","sha256":["da5e91a3a7b593a6fa37f4083632c783feb48a58d29a78493ade68e0e25268cf","284f4641323a84230ce62237adb7c2295d972f8c1d2e067a89145c9124f8ff6b"],"layout":"dense","combine":true,"rows":2,"mode":1,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2_mode2","sha256":["65f2bd35c60576a6d6a868ed4da3f2bd884be2912615c560abe753f11c37de23","469118711ecca742e12b535beb6bf00fa5a91a5e904e8a1832d8093bcea0129c"],"layout":"dense","combine":true,"rows":2,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2_mode3","sha256":["da5e91a3a7b593a6fa37f4083632c783feb48a58d29a78493ade68e0e25268cf","284f4641323a84230ce62237adb7c2295d972f8c1d2e067a89145c9124f8ff6b"],"layout":"dense","combine":true,"rows":2,"mode":3,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r4_mode0","sha256":["33a51ca21a335a35b85fe3f599846aa6d595146c9908b2ccc020cea02a3b8d8f","693efb1ffa63a0fc19c849019b622d854c84d51fab38eae522cfcd68f7900027"],"layout":"dense","combine":true,"rows":4,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r4_mode1","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e","3e93f1ea3dd60b419626d542b6b4903944cb04fb93c220d9b2378f370e0b7118"],"layout":"dense","combine":true,"rows":4,"mode":1,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r4_mode2","sha256":["33a51ca21a335a35b85fe3f599846aa6d595146c9908b2ccc020cea02a3b8d8f","693efb1ffa63a0fc19c849019b622d854c84d51fab38eae522cfcd68f7900027"],"layout":"dense","combine":true,"rows":4,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r4_mode3","sha256":["f3555fbbc495f7094b9e0efcd8f5431f858f12938de70c7e634e16b1b15adb1e","3e93f1ea3dd60b419626d542b6b4903944cb04fb93c220d9b2378f370e0b7118"],"layout":"dense","combine":true,"rows":4,"mode":3,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r8_mode0","sha256":["97aef2ef8e362b65eeaf014a954fb7aa12f9b93c5c514c765393405e16d4b746","61e097ccf1bf39de7e446a75ac726d6a3d5d552f633fcfe89e5c62f0208cd7a1"],"layout":"dense","combine":true,"rows":8,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r8_mode1","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994","65d4615ade50ddbdb6d019edf5897ad13e34dcff2a3164c7371ecd3679770b7c"],"layout":"dense","combine":true,"rows":8,"mode":1,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r8_mode2","sha256":["97aef2ef8e362b65eeaf014a954fb7aa12f9b93c5c514c765393405e16d4b746","61e097ccf1bf39de7e446a75ac726d6a3d5d552f633fcfe89e5c62f0208cd7a1"],"layout":"dense","combine":true,"rows":8,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r8_mode3","sha256":["f6f9b7212fe987ffbf8b665d2328095c03956111d52d8668c3846f777af25994","65d4615ade50ddbdb6d019edf5897ad13e34dcff2a3164c7371ecd3679770b7c"],"layout":"dense","combine":true,"rows":8,"mode":3,"selected":"fused","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r15_mode0","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4","cc505d824cb4cd57ac9fe7c162597d8ee260f429dab4b4dbb21ec097f861f8f4"],"layout":"dense","combine":true,"rows":15,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r15_mode1","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4","cc505d824cb4cd57ac9fe7c162597d8ee260f429dab4b4dbb21ec097f861f8f4"],"layout":"dense","combine":true,"rows":15,"mode":1,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r15_mode2","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4","cc505d824cb4cd57ac9fe7c162597d8ee260f429dab4b4dbb21ec097f861f8f4"],"layout":"dense","combine":true,"rows":15,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r15_mode3","sha256":["d13613163f1d5f757ac7d6a6f0222a9c8821cdf35acd811e0e0188f258c049d4","cc505d824cb4cd57ac9fe7c162597d8ee260f429dab4b4dbb21ec097f861f8f4"],"layout":"dense","combine":true,"rows":15,"mode":3,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r16_mode0","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7","5e8fd2e4de18fe83da76d589b9408695eccef8db7d4898e8c397d443e41ab28f"],"layout":"dense","combine":true,"rows":16,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r16_mode1","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7","5e8fd2e4de18fe83da76d589b9408695eccef8db7d4898e8c397d443e41ab28f"],"layout":"dense","combine":true,"rows":16,"mode":1,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r16_mode2","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7","5e8fd2e4de18fe83da76d589b9408695eccef8db7d4898e8c397d443e41ab28f"],"layout":"dense","combine":true,"rows":16,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r16_mode3","sha256":["7e34ded1471fee6d8f7bc9dfb3c602b1458fb83fc6ae2d6db12ca0634e945dc7","5e8fd2e4de18fe83da76d589b9408695eccef8db7d4898e8c397d443e41ab28f"],"layout":"dense","combine":true,"rows":16,"mode":3,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r32_mode0","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405","c9c2881fe65361f99a1c50e8888ad49d95599a888dbe0935cedbe60680e1c8d8"],"layout":"dense","combine":true,"rows":32,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r32_mode1","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405","c9c2881fe65361f99a1c50e8888ad49d95599a888dbe0935cedbe60680e1c8d8"],"layout":"dense","combine":true,"rows":32,"mode":1,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r32_mode2","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405","c9c2881fe65361f99a1c50e8888ad49d95599a888dbe0935cedbe60680e1c8d8"],"layout":"dense","combine":true,"rows":32,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r32_mode3","sha256":["5d608b361f9d401fb1c529252ea8f9a25dbc917c5b99a213adc95b9e88e2b405","c9c2881fe65361f99a1c50e8888ad49d95599a888dbe0935cedbe60680e1c8d8"],"layout":"dense","combine":true,"rows":32,"mode":3,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2048_mode0","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf","7989dcb7476f39d9f8ac4461fa1940ede005f0ef50bcab4d66a124202da92b28"],"layout":"dense","combine":true,"rows":2048,"mode":0,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2048_mode1","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf","7989dcb7476f39d9f8ac4461fa1940ede005f0ef50bcab4d66a124202da92b28"],"layout":"dense","combine":true,"rows":2048,"mode":1,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2048_mode2","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf","7989dcb7476f39d9f8ac4461fa1940ede005f0ef50bcab4d66a124202da92b28"],"layout":"dense","combine":true,"rows":2048,"mode":2,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_dense_combine1_r2048_mode3","sha256":["860631b954b07cb402232288e0809f73cfd65bd7ffdb7c9c0900d2354cd937cf","7989dcb7476f39d9f8ac4461fa1940ede005f0ef50bcab4d66a124202da92b28"],"layout":"dense","combine":true,"rows":2048,"mode":3,"selected":"eager","pack_exists":true} +{"kernel":"hyper_forward_quantized_combine0_r1_mode0","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c"],"layout":"quantized","combine":false,"rows":1,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r1_mode1","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c"],"layout":"quantized","combine":false,"rows":1,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r1_mode2","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c"],"layout":"quantized","combine":false,"rows":1,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r1_mode3","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c"],"layout":"quantized","combine":false,"rows":1,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2_mode0","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8"],"layout":"quantized","combine":false,"rows":2,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2_mode1","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8"],"layout":"quantized","combine":false,"rows":2,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2_mode2","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8"],"layout":"quantized","combine":false,"rows":2,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2_mode3","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8"],"layout":"quantized","combine":false,"rows":2,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r4_mode0","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f"],"layout":"quantized","combine":false,"rows":4,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r4_mode1","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f"],"layout":"quantized","combine":false,"rows":4,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r4_mode2","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f"],"layout":"quantized","combine":false,"rows":4,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r4_mode3","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f"],"layout":"quantized","combine":false,"rows":4,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r8_mode0","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b"],"layout":"quantized","combine":false,"rows":8,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r8_mode1","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b"],"layout":"quantized","combine":false,"rows":8,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r8_mode2","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b"],"layout":"quantized","combine":false,"rows":8,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r8_mode3","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b"],"layout":"quantized","combine":false,"rows":8,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r15_mode0","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2"],"layout":"quantized","combine":false,"rows":15,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r15_mode1","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2"],"layout":"quantized","combine":false,"rows":15,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r15_mode2","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2"],"layout":"quantized","combine":false,"rows":15,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r15_mode3","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2"],"layout":"quantized","combine":false,"rows":15,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r16_mode0","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47"],"layout":"quantized","combine":false,"rows":16,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r16_mode1","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47"],"layout":"quantized","combine":false,"rows":16,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r16_mode2","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47"],"layout":"quantized","combine":false,"rows":16,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r16_mode3","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47"],"layout":"quantized","combine":false,"rows":16,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r32_mode0","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609"],"layout":"quantized","combine":false,"rows":32,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r32_mode1","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609"],"layout":"quantized","combine":false,"rows":32,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r32_mode2","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609"],"layout":"quantized","combine":false,"rows":32,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r32_mode3","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609"],"layout":"quantized","combine":false,"rows":32,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2048_mode0","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43"],"layout":"quantized","combine":false,"rows":2048,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2048_mode1","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43"],"layout":"quantized","combine":false,"rows":2048,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2048_mode2","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43"],"layout":"quantized","combine":false,"rows":2048,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine0_r2048_mode3","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43"],"layout":"quantized","combine":false,"rows":2048,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r1_mode0","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c","12cb6f5c346197418c2ce1cb2917d76892aaf5898d0876fa8ebdf7ef82f6561e"],"layout":"quantized","combine":true,"rows":1,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r1_mode1","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c","12cb6f5c346197418c2ce1cb2917d76892aaf5898d0876fa8ebdf7ef82f6561e"],"layout":"quantized","combine":true,"rows":1,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r1_mode2","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c","12cb6f5c346197418c2ce1cb2917d76892aaf5898d0876fa8ebdf7ef82f6561e"],"layout":"quantized","combine":true,"rows":1,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r1_mode3","sha256":["9d26840e41a827192f4af62027960b6823480d97d142199a314b23d5e307466c","12cb6f5c346197418c2ce1cb2917d76892aaf5898d0876fa8ebdf7ef82f6561e"],"layout":"quantized","combine":true,"rows":1,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2_mode0","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8","7c82bf5185dd94d886874604309543467fb33d8a2ebca150c256207d2c6b82e2"],"layout":"quantized","combine":true,"rows":2,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2_mode1","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8","7c82bf5185dd94d886874604309543467fb33d8a2ebca150c256207d2c6b82e2"],"layout":"quantized","combine":true,"rows":2,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2_mode2","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8","7c82bf5185dd94d886874604309543467fb33d8a2ebca150c256207d2c6b82e2"],"layout":"quantized","combine":true,"rows":2,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2_mode3","sha256":["c314ef6f565c2420bcdd1dc12a9ae3fe5480a9a6487752398787d1664ca183f8","7c82bf5185dd94d886874604309543467fb33d8a2ebca150c256207d2c6b82e2"],"layout":"quantized","combine":true,"rows":2,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r4_mode0","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f","c628e2f1fec85dfaba97649b9dd606ac78a7f42e0630244c5a149cb36642b86f"],"layout":"quantized","combine":true,"rows":4,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r4_mode1","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f","c628e2f1fec85dfaba97649b9dd606ac78a7f42e0630244c5a149cb36642b86f"],"layout":"quantized","combine":true,"rows":4,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r4_mode2","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f","c628e2f1fec85dfaba97649b9dd606ac78a7f42e0630244c5a149cb36642b86f"],"layout":"quantized","combine":true,"rows":4,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r4_mode3","sha256":["af9bbdc00aa72297f9274be33a0e89255214bf458871a793add665e990b3413f","c628e2f1fec85dfaba97649b9dd606ac78a7f42e0630244c5a149cb36642b86f"],"layout":"quantized","combine":true,"rows":4,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r8_mode0","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b","c587617e7c1b613949bc25ed4291e7ffd94ffa177ed14f6ae4340af82b41b19c"],"layout":"quantized","combine":true,"rows":8,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r8_mode1","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b","c587617e7c1b613949bc25ed4291e7ffd94ffa177ed14f6ae4340af82b41b19c"],"layout":"quantized","combine":true,"rows":8,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r8_mode2","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b","c587617e7c1b613949bc25ed4291e7ffd94ffa177ed14f6ae4340af82b41b19c"],"layout":"quantized","combine":true,"rows":8,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r8_mode3","sha256":["45598e37be6b9e4f24ef6ded0975427986bdfa3bb49d8a1190a51cf914d9cd2b","c587617e7c1b613949bc25ed4291e7ffd94ffa177ed14f6ae4340af82b41b19c"],"layout":"quantized","combine":true,"rows":8,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r15_mode0","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2","85adf94bd89ac83f5c02fdbb3d899c73de941efca772e146a18b0f64660c9cc0"],"layout":"quantized","combine":true,"rows":15,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r15_mode1","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2","85adf94bd89ac83f5c02fdbb3d899c73de941efca772e146a18b0f64660c9cc0"],"layout":"quantized","combine":true,"rows":15,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r15_mode2","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2","85adf94bd89ac83f5c02fdbb3d899c73de941efca772e146a18b0f64660c9cc0"],"layout":"quantized","combine":true,"rows":15,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r15_mode3","sha256":["21af6ba0107833e701dab86f7c2857b1693c15412df2e321e0b6dea95500bca2","85adf94bd89ac83f5c02fdbb3d899c73de941efca772e146a18b0f64660c9cc0"],"layout":"quantized","combine":true,"rows":15,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r16_mode0","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47","ada35a1caa4b94b28a4bcb874b06282c3a0287502113d26028332c0a87c25cd8"],"layout":"quantized","combine":true,"rows":16,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r16_mode1","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47","ada35a1caa4b94b28a4bcb874b06282c3a0287502113d26028332c0a87c25cd8"],"layout":"quantized","combine":true,"rows":16,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r16_mode2","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47","ada35a1caa4b94b28a4bcb874b06282c3a0287502113d26028332c0a87c25cd8"],"layout":"quantized","combine":true,"rows":16,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r16_mode3","sha256":["00eb6171d3253966068a2122d4ee996be4c3eb6281bcecd382aa0bca2c7b6c47","ada35a1caa4b94b28a4bcb874b06282c3a0287502113d26028332c0a87c25cd8"],"layout":"quantized","combine":true,"rows":16,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r32_mode0","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609","6975d8eaab39a220842d64804225be844ff5fda1606743808665f4e4827d5e31"],"layout":"quantized","combine":true,"rows":32,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r32_mode1","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609","6975d8eaab39a220842d64804225be844ff5fda1606743808665f4e4827d5e31"],"layout":"quantized","combine":true,"rows":32,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r32_mode2","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609","6975d8eaab39a220842d64804225be844ff5fda1606743808665f4e4827d5e31"],"layout":"quantized","combine":true,"rows":32,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r32_mode3","sha256":["fe433fb60e97a8e3195c5ed283db1a0d54b4d9b7f89ed1ccca15f175da26e609","6975d8eaab39a220842d64804225be844ff5fda1606743808665f4e4827d5e31"],"layout":"quantized","combine":true,"rows":32,"mode":3,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2048_mode0","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43","e44f9f8fd5b56aa1e05f1e6fe34ca730db5ba4f0c02d16e8b4a0051af8af7fd2"],"layout":"quantized","combine":true,"rows":2048,"mode":0,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2048_mode1","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43","e44f9f8fd5b56aa1e05f1e6fe34ca730db5ba4f0c02d16e8b4a0051af8af7fd2"],"layout":"quantized","combine":true,"rows":2048,"mode":1,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2048_mode2","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43","e44f9f8fd5b56aa1e05f1e6fe34ca730db5ba4f0c02d16e8b4a0051af8af7fd2"],"layout":"quantized","combine":true,"rows":2048,"mode":2,"selected":"eager","pack_exists":false} +{"kernel":"hyper_forward_quantized_combine1_r2048_mode3","sha256":["81e8042c100487394334a0b90b69dcd2f346cc375cae124f4e1d6c07974cbd43","e44f9f8fd5b56aa1e05f1e6fe34ca730db5ba4f0c02d16e8b4a0051af8af7fd2"],"layout":"quantized","combine":true,"rows":2048,"mode":3,"selected":"eager","pack_exists":false} diff --git a/tests/fixtures/mtplx-hyper-graph.jsonl b/tests/fixtures/mtplx-hyper-graph.jsonl new file mode 100644 index 0000000..66f9ebf --- /dev/null +++ b/tests/fixtures/mtplx-hyper-graph.jsonl @@ -0,0 +1,61 @@ +{"kernel":"quantize_bfloat16_g32_b2_plain","sha256":["717778ed01cf2c9e1664f500ab897f8a0a0cdf7d5071b19e800c8b10ffa8469d","1b6a6d5ea0fa096bf448c074adcc46e011a0ef0efccd53aef3a6f58fc387f897","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":2,"layout":"plain"} +{"kernel":"quantize_bfloat16_g32_b3_plain","sha256":["b5a5b4d198263e31171e44bb8674c322ca1f32d400b9c74410bf8a9f9ca6da2a","1f6b41060c47448197366ff69f6e31db28939093015338d02c9728687e4e4a0f","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":3,"layout":"plain"} +{"kernel":"quantize_bfloat16_g32_b4_plain","sha256":["b200d275f40e545840188872e9dce616d2704df9079335c786255c855c5ef70f","cf98d3d588364cff782c947850dc40ca51100abb3a1230e422e40b1264262ef4","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":4,"layout":"plain"} +{"kernel":"quantize_bfloat16_g32_b5_plain","sha256":["7b50073dadcd9cda85704062e89507992361341e66226afe743e17f7d82b8173","c84820908cb5f236cf7d4150490e92705b93fcae8a94fc529f12a5f38bd31912","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":5,"layout":"plain"} +{"kernel":"quantize_bfloat16_g32_b6_plain","sha256":["e39409011fecc0b1eecdb8a6bb19dddc20b567a2494415d76e2c419196e7df4c","c5d1099c7e6c75932ec1e584ec6ac718173cfb8d5d5f76f5291381e9a11f339e","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":6,"layout":"plain"} +{"kernel":"quantize_bfloat16_g32_b8_plain","sha256":["193091d1435de4902e07bae114a957190cbc0b695c6c732271919e49d86c3397","3de341e7f0baf4f2a373e510532b0fab36ec7e3b6bfad120ac1be416cc066852","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"bfloat16","group":32,"bits":8,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b2_plain","sha256":["7c0c41ad2335b91f80246ae110b86dc5c55145c591f27d7c0433bddff056e405","8a889170eee7a91c0396fe820e01ca5172f245618bf6d76ad1d4af2c802d081b","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":2,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b3_plain","sha256":["2e3e9ac64899a91f90b42e0f73bffadf3263c990bcd4cbf855a49e88d02bcf31","1741ad7c600868221bb5f04327a9761ee9d6e0433d52b2fdcbfce213eb572c91","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":3,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b4_plain","sha256":["a97295b2f72b5c02c5ac4e7367ea8d1958dd05b80d8170482b067d7c93febbeb","65156f0d7ba27a76d592b338df104655e0892f06e802201f02878336be296b32","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":4,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b5_plain","sha256":["3074bce5773cfe763796ef8eab8ac86c916b4c7f18c60b6fdb2976253071c3ac","cc2580aa92c1eb84b6b7efa1417b87c42bc03816b10ec52b9029ade8e455247f","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":5,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b6_plain","sha256":["0e87252fc8dc13746042b472de253d4776b457700d14198fd362e30e56641afb","d85358c3e00c39a9279cfa2e634df607ee221563cf519462137bfd61962a8369","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":6,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b8_plain","sha256":["9f53ecdffe33ec940e8522f1a9b6095d7c886d4331d5811daaf84e3c90db3253","f893f71ecea60afe5c7c15d53cd490fcede520eba8a6ea672a7b50f790f937d3","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"bfloat16","group":64,"bits":8,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b2_plain","sha256":["4c8237f739af6fe848f63956ebbf142e06ba30b91ad251dbd675af115364dbd8","6726109c68b59c3cbf49180f2dfce6c812a52731fb3fcfe629a888f2d15f4ecf","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":2,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b3_plain","sha256":["8b6e41805d0a680fe08406369b3fb07a14fbba5da0b1a207d68f702d129a5c60","27d70e0d32dd5628e988acb8b3aac3329ef963b6be2ca529412e50b8fe66351c","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":3,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b4_plain","sha256":["584c4ad6a56ba6572d4f4a681f11e927bb59950642cf80aa3d7b6450ca0f34d7","4bcb5da1268158ba10ea25952cfad890a54b70bb56bb822506880433ef888fca","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":4,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b5_plain","sha256":["369d320fc6cb731d8ad8f8364b2d4a1d0e37cc662a3e98e4e9dd594f61ce794b","a4f40e41520ada1bc5a060473decb059e885a108e84b2f584873505c9c3736df","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":5,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b6_plain","sha256":["b41f437ce6e6c9ed23f66677ac1505fd5458d1530643a638bc49695b6d207d09","8fd867de4858ca3ff8a2458d43e99044287453e1f1464a1b306bcf484830e7b6","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":6,"layout":"plain"} +{"kernel":"quantize_bfloat16_g128_b8_plain","sha256":["bd29fa38e422ef84175e35507aea65a3ad04b676d7622ef5c5ddbde643202649","6a5d25e8d7be6d0599d3b4dc714390f6a6e8844d4c6b3f16531fd5d82146d086","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"bfloat16","group":128,"bits":8,"layout":"plain"} +{"kernel":"quantize_float16_g32_b2_plain","sha256":["717778ed01cf2c9e1664f500ab897f8a0a0cdf7d5071b19e800c8b10ffa8469d","1b6a6d5ea0fa096bf448c074adcc46e011a0ef0efccd53aef3a6f58fc387f897","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":2,"layout":"plain"} +{"kernel":"quantize_float16_g32_b3_plain","sha256":["b5a5b4d198263e31171e44bb8674c322ca1f32d400b9c74410bf8a9f9ca6da2a","adaead5f769c3c44cb15376d498b4357ddd1fde64e28a12f3ade1b1ec4917ea3","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":3,"layout":"plain"} +{"kernel":"quantize_float16_g32_b4_plain","sha256":["b200d275f40e545840188872e9dce616d2704df9079335c786255c855c5ef70f","cf98d3d588364cff782c947850dc40ca51100abb3a1230e422e40b1264262ef4","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":4,"layout":"plain"} +{"kernel":"quantize_float16_g32_b5_plain","sha256":["7b50073dadcd9cda85704062e89507992361341e66226afe743e17f7d82b8173","c84820908cb5f236cf7d4150490e92705b93fcae8a94fc529f12a5f38bd31912","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":5,"layout":"plain"} +{"kernel":"quantize_float16_g32_b6_plain","sha256":["e39409011fecc0b1eecdb8a6bb19dddc20b567a2494415d76e2c419196e7df4c","fbc07d4d41043490925699cde5b25962a59daf959a15ca2a68349f45d450c0f0","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":6,"layout":"plain"} +{"kernel":"quantize_float16_g32_b8_plain","sha256":["193091d1435de4902e07bae114a957190cbc0b695c6c732271919e49d86c3397","1eef6b45f54eb927e9c8491ad71b08d53cdd55d93fed83b0fab8de0b89570ecc","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float16","group":32,"bits":8,"layout":"plain"} +{"kernel":"quantize_float16_g64_b2_plain","sha256":["7c0c41ad2335b91f80246ae110b86dc5c55145c591f27d7c0433bddff056e405","8a889170eee7a91c0396fe820e01ca5172f245618bf6d76ad1d4af2c802d081b","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":2,"layout":"plain"} +{"kernel":"quantize_float16_g64_b3_plain","sha256":["2e3e9ac64899a91f90b42e0f73bffadf3263c990bcd4cbf855a49e88d02bcf31","1741ad7c600868221bb5f04327a9761ee9d6e0433d52b2fdcbfce213eb572c91","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":3,"layout":"plain"} +{"kernel":"quantize_float16_g64_b4_plain","sha256":["a97295b2f72b5c02c5ac4e7367ea8d1958dd05b80d8170482b067d7c93febbeb","65156f0d7ba27a76d592b338df104655e0892f06e802201f02878336be296b32","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":4,"layout":"plain"} +{"kernel":"quantize_float16_g64_b5_plain","sha256":["3074bce5773cfe763796ef8eab8ac86c916b4c7f18c60b6fdb2976253071c3ac","cc2580aa92c1eb84b6b7efa1417b87c42bc03816b10ec52b9029ade8e455247f","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":5,"layout":"plain"} +{"kernel":"quantize_float16_g64_b6_plain","sha256":["0e87252fc8dc13746042b472de253d4776b457700d14198fd362e30e56641afb","d85358c3e00c39a9279cfa2e634df607ee221563cf519462137bfd61962a8369","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":6,"layout":"plain"} +{"kernel":"quantize_float16_g64_b8_plain","sha256":["9f53ecdffe33ec940e8522f1a9b6095d7c886d4331d5811daaf84e3c90db3253","edd59581c2d8a97b6a5959312b458ae5f1e325c7349fe5ba31c76eefd7a3aa4f","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float16","group":64,"bits":8,"layout":"plain"} +{"kernel":"quantize_float16_g128_b2_plain","sha256":["4c8237f739af6fe848f63956ebbf142e06ba30b91ad251dbd675af115364dbd8","6726109c68b59c3cbf49180f2dfce6c812a52731fb3fcfe629a888f2d15f4ecf","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":2,"layout":"plain"} +{"kernel":"quantize_float16_g128_b3_plain","sha256":["8b6e41805d0a680fe08406369b3fb07a14fbba5da0b1a207d68f702d129a5c60","27d70e0d32dd5628e988acb8b3aac3329ef963b6be2ca529412e50b8fe66351c","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":3,"layout":"plain"} +{"kernel":"quantize_float16_g128_b4_plain","sha256":["584c4ad6a56ba6572d4f4a681f11e927bb59950642cf80aa3d7b6450ca0f34d7","4bcb5da1268158ba10ea25952cfad890a54b70bb56bb822506880433ef888fca","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":4,"layout":"plain"} +{"kernel":"quantize_float16_g128_b5_plain","sha256":["369d320fc6cb731d8ad8f8364b2d4a1d0e37cc662a3e98e4e9dd594f61ce794b","a4f40e41520ada1bc5a060473decb059e885a108e84b2f584873505c9c3736df","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":5,"layout":"plain"} +{"kernel":"quantize_float16_g128_b6_plain","sha256":["b41f437ce6e6c9ed23f66677ac1505fd5458d1530643a638bc49695b6d207d09","8fd867de4858ca3ff8a2458d43e99044287453e1f1464a1b306bcf484830e7b6","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":6,"layout":"plain"} +{"kernel":"quantize_float16_g128_b8_plain","sha256":["bd29fa38e422ef84175e35507aea65a3ad04b676d7622ef5c5ddbde643202649","6a5d25e8d7be6d0599d3b4dc714390f6a6e8844d4c6b3f16531fd5d82146d086","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float16","group":128,"bits":8,"layout":"plain"} +{"kernel":"quantize_float32_g32_b2_plain","sha256":["717778ed01cf2c9e1664f500ab897f8a0a0cdf7d5071b19e800c8b10ffa8469d","1b6a6d5ea0fa096bf448c074adcc46e011a0ef0efccd53aef3a6f58fc387f897","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":2,"layout":"plain"} +{"kernel":"quantize_float32_g32_b3_plain","sha256":["b5a5b4d198263e31171e44bb8674c322ca1f32d400b9c74410bf8a9f9ca6da2a","5071bdd53e93fb3eef8d2af1c519207f7b85fdf0a27bc69a1004410a422c75bb","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":3,"layout":"plain"} +{"kernel":"quantize_float32_g32_b4_plain","sha256":["b200d275f40e545840188872e9dce616d2704df9079335c786255c855c5ef70f","cf98d3d588364cff782c947850dc40ca51100abb3a1230e422e40b1264262ef4","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":4,"layout":"plain"} +{"kernel":"quantize_float32_g32_b5_plain","sha256":["7b50073dadcd9cda85704062e89507992361341e66226afe743e17f7d82b8173","c84820908cb5f236cf7d4150490e92705b93fcae8a94fc529f12a5f38bd31912","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":5,"layout":"plain"} +{"kernel":"quantize_float32_g32_b6_plain","sha256":["e39409011fecc0b1eecdb8a6bb19dddc20b567a2494415d76e2c419196e7df4c","4c8109d84a4bb8420220e2aa4d27267c6f8d38f9924aa656c6466c8614c88f82","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":6,"layout":"plain"} +{"kernel":"quantize_float32_g32_b8_plain","sha256":["193091d1435de4902e07bae114a957190cbc0b695c6c732271919e49d86c3397","ac77e0727dea6cc53141981b867bef17a8bd9598766c8013ef6ee9e089b015ea","0473b6fcb4fd3f9d9421de77e27148c7f91265cd007342f4b88a48c6a0baa67b"],"dtype":"float32","group":32,"bits":8,"layout":"plain"} +{"kernel":"quantize_float32_g64_b2_plain","sha256":["7c0c41ad2335b91f80246ae110b86dc5c55145c591f27d7c0433bddff056e405","8a889170eee7a91c0396fe820e01ca5172f245618bf6d76ad1d4af2c802d081b","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":2,"layout":"plain"} +{"kernel":"quantize_float32_g64_b3_plain","sha256":["2e3e9ac64899a91f90b42e0f73bffadf3263c990bcd4cbf855a49e88d02bcf31","1741ad7c600868221bb5f04327a9761ee9d6e0433d52b2fdcbfce213eb572c91","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":3,"layout":"plain"} +{"kernel":"quantize_float32_g64_b4_plain","sha256":["a97295b2f72b5c02c5ac4e7367ea8d1958dd05b80d8170482b067d7c93febbeb","65156f0d7ba27a76d592b338df104655e0892f06e802201f02878336be296b32","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":4,"layout":"plain"} +{"kernel":"quantize_float32_g64_b5_plain","sha256":["3074bce5773cfe763796ef8eab8ac86c916b4c7f18c60b6fdb2976253071c3ac","cc2580aa92c1eb84b6b7efa1417b87c42bc03816b10ec52b9029ade8e455247f","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":5,"layout":"plain"} +{"kernel":"quantize_float32_g64_b6_plain","sha256":["0e87252fc8dc13746042b472de253d4776b457700d14198fd362e30e56641afb","d85358c3e00c39a9279cfa2e634df607ee221563cf519462137bfd61962a8369","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":6,"layout":"plain"} +{"kernel":"quantize_float32_g64_b8_plain","sha256":["9f53ecdffe33ec940e8522f1a9b6095d7c886d4331d5811daaf84e3c90db3253","d877a750d8c9795feb26c3deb11cf81e1a4214220830ae66c58b7962c9055808","e862453676b827c4113adf20ce40a1070bea550d5bf2b7d377361c7bbceffae3"],"dtype":"float32","group":64,"bits":8,"layout":"plain"} +{"kernel":"quantize_float32_g128_b2_plain","sha256":["4c8237f739af6fe848f63956ebbf142e06ba30b91ad251dbd675af115364dbd8","6726109c68b59c3cbf49180f2dfce6c812a52731fb3fcfe629a888f2d15f4ecf","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":2,"layout":"plain"} +{"kernel":"quantize_float32_g128_b3_plain","sha256":["8b6e41805d0a680fe08406369b3fb07a14fbba5da0b1a207d68f702d129a5c60","27d70e0d32dd5628e988acb8b3aac3329ef963b6be2ca529412e50b8fe66351c","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":3,"layout":"plain"} +{"kernel":"quantize_float32_g128_b4_plain","sha256":["584c4ad6a56ba6572d4f4a681f11e927bb59950642cf80aa3d7b6450ca0f34d7","4bcb5da1268158ba10ea25952cfad890a54b70bb56bb822506880433ef888fca","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":4,"layout":"plain"} +{"kernel":"quantize_float32_g128_b5_plain","sha256":["369d320fc6cb731d8ad8f8364b2d4a1d0e37cc662a3e98e4e9dd594f61ce794b","a4f40e41520ada1bc5a060473decb059e885a108e84b2f584873505c9c3736df","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":5,"layout":"plain"} +{"kernel":"quantize_float32_g128_b6_plain","sha256":["b41f437ce6e6c9ed23f66677ac1505fd5458d1530643a638bc49695b6d207d09","8fd867de4858ca3ff8a2458d43e99044287453e1f1464a1b306bcf484830e7b6","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":6,"layout":"plain"} +{"kernel":"quantize_float32_g128_b8_plain","sha256":["bd29fa38e422ef84175e35507aea65a3ad04b676d7622ef5c5ddbde643202649","6a5d25e8d7be6d0599d3b4dc714390f6a6e8844d4c6b3f16531fd5d82146d086","fb6120ba6120f6764dde3ebd4a98b72915045e1f2560ef1ca3e53fe73908673f"],"dtype":"float32","group":128,"bits":8,"layout":"plain"} +{"kernel":"quantize_bfloat16_g64_b8_slice","sha256":["86010ead3a75dd252ba629d4d5acb5505970dc2ca6d03efa8c841fe2a93df068","ea03eadfb980f4a3e057b8ce3d51a367a2c2ae8ab8a352ecef7e2b5c10c9ec9b","c6d9f94a396c45cec6a37f7c27f6a0f38f6dd11429a40758523a71801bb903f0"],"dtype":"bfloat16","group":64,"bits":8,"layout":"slice"} +{"kernel":"quantize_bfloat16_g64_b8_transpose","sha256":["dafc62e24be6d52d00eda7b713ce5a49918b332c8468ab28bd7cf10959d39d93","0233dc65419d7523c1322b3c01e6bfc6319265b747e767abe134d1b6bfd307e5","178ceb32c08ff658834380b0be968608f864091133b2a13fccf47154602725d6"],"dtype":"bfloat16","group":64,"bits":8,"layout":"transpose"} +{"kernel":"quantize_bfloat16_g64_b8_zero","sha256":["ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8","daf095337ca30e05f2436db7f559030b3ac0ab99c4a71db645102582279491fc","17b0761f87b081d5cf10757ccc89f12be355c70e2e29df288b65b30710dcbcd1"],"dtype":"bfloat16","group":64,"bits":8,"layout":"zero"} +{"kernel":"quantize_bfloat16_g64_b8_positive","sha256":["ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8","daf095337ca30e05f2436db7f559030b3ac0ab99c4a71db645102582279491fc","6ea78411bee8a810b9a18819c5a4ac7c827e71678cc4d1db9a0ab8c8d8a9b2e2"],"dtype":"bfloat16","group":64,"bits":8,"layout":"positive"} +{"kernel":"quantize_bfloat16_g64_b8_negative","sha256":["ef115a0e0c15cdc41958ca46b5b14b456115f4baec5e3ca68599d2a8f435e3b8","3b7517c9c7903562efc659b3c54d99cd29da7a4a64c70f16f2f411b0567dab72","81681b33ced1a8f08f6888a042ed160ade67bd948c9a6a0f45f325c25249eec2"],"dtype":"bfloat16","group":64,"bits":8,"layout":"negative"} +{"kernel":"hyper_v3_original_pack","sha256":["9717495f618f11bf5152d06ddeed4fb48ddb97255bffb98bc4f6d98b118b3858","60aa2e73f6c83b6763c078e104d50bf26b8d622ce1b8a9ab75f8b5f83ecc0ff7","b6677a9f787d81445d32e9fb4f4274092b6f4d530952bd951acc7b8af6d71a17","32ee088dceceda188685e5f0b68a5117fbe3d5f6ff022c55ab7bc156bf1c4211","daaf2c5a9cd46fdb87ba508a0b2ceeb06240d58cd686ae56528c93d1cd9eb35f","3da5efb2495b95ce13c5f426da35ce3c952d2a41867222722edab389e30b8c35"]} +{"kernel":"hyper_v3_original_packed_read","sha256":["59264228afb8587ba8d6d5eec11c19ee14c97f963e5986c84b54c0322848e528","7244cfa52fbd8ae983159416fb305465ad37d3ab9d744e3ad75f88b5d3b225d2"]} diff --git a/tests/fixtures/mtplx-installed-weight-fusion.json b/tests/fixtures/mtplx-installed-weight-fusion.json new file mode 100644 index 0000000..e095cea --- /dev/null +++ b/tests/fixtures/mtplx-installed-weight-fusion.json @@ -0,0 +1 @@ +{"before":2466,"after":1782,"fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.1.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.2.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.2.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.2.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.3.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.3.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.3.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.4.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.4.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.4.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.5.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.5.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.5.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.6.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.6.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.6.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.7.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.7.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.7.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.8.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.8.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.8.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.9.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.9.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.9.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.10.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.10.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.10.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.11.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.11.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.11.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.12.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.12.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.12.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.13.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.13.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.13.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.14.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.14.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.14.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.15.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.15.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.15.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.16.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.16.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.16.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.17.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.17.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.17.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.18.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.18.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.18.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.19.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.19.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.19.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.20.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.20.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.20.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.21.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.21.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.21.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.22.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.22.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.22.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.23.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.23.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.23.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.24.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.24.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.24.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.25.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.25.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.25.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.26.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.26.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.26.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.27.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.27.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.27.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.28.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.28.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.28.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.29.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.29.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.29.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.30.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.30.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.30.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.31.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.31.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.31.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.32.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.32.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.32.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.33.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.33.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.33.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.34.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.34.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.34.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.35.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.35.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.35.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.36.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.36.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.36.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.37.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.37.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.37.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.38.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.38.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.38.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.39.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.39.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.39.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.40.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.40.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.40.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.41.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.41.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.41.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.42.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.42.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.42.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.43.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.43.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.43.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]},"language_model.model.layers.44.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.44.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.44.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.45.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.45.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.45.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.46.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.46.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.46.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[10240,16384,16432]},"language_model.model.layers.47.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.47.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.47.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[12288,12800]}},"metadata_sha256":"fb7106c8a24a6dc1073cbc386d57c9e60a9f30858ecf294bd9bba215b1bfa8b8"} diff --git a/tests/fixtures/mtplx-kv-cache-graph.jsonl b/tests/fixtures/mtplx-kv-cache-graph.jsonl new file mode 100644 index 0000000..ced4950 --- /dev/null +++ b/tests/fixtures/mtplx-kv-cache-graph.jsonl @@ -0,0 +1,12 @@ +{"kernel":"kv_cache_graph_0_0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","f6a31b889545a8622442e8bc58d0506ff0481af02439713f9ef0c1a007083eb6","756ae02c3c4a30394212f55fa34f7ea832a3659f13c0d1a71eaf8c9badfb4a79","677302847185c0fea0607f7bf1b32fb3f30b694809a6c3bbb943f38c0678e58d","169ba24b85d5b83ba983216f576fa6a994a916599b49068d41407f8542e294b6","f82094786fd7575af7e5f332f43021a8955eae7b9fa68b494975d45c086c22dc","fafeb64e46475b6493f493fa7a4a927390719447d103acef08fee80272703ef1","677302847185c0fea0607f7bf1b32fb3f30b694809a6c3bbb943f38c0678e58d","169ba24b85d5b83ba983216f576fa6a994a916599b49068d41407f8542e294b6","2034dfcb037c97d4b1a6855df67a491a11329daebbb1942e3431d963b18a5906","5e7a277584521b71d7108bbc1f58c7ebd8fe526d9dd71f2959797a00510ccab3","d7672490110447965b5b44acf182a38f3e33bbb0f53e60741df13bb0c558f3de","eee11c8ce3c07f0a79ec5ad79c5419443594c0441664005ff927f26ab1a1d290","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","d7672490110447965b5b44acf182a38f3e33bbb0f53e60741df13bb0c558f3de","eee11c8ce3c07f0a79ec5ad79c5419443594c0441664005ff927f26ab1a1d290"],"initial":0,"deferred":false,"actions":[{"action":"append","n":0,"offset":0,"capacity":0},{"action":"append","n":3,"offset":3,"capacity":256},{"action":"trim","n":2,"trimmed":2,"offset":1},{"action":"append","n":4,"offset":5,"capacity":256},{"action":"restore","n":0,"offset":0},{"action":"append","n":257,"offset":257,"capacity":512},{"action":"trim","n":999999,"trimmed":257,"offset":0},{"action":"append","n":1,"offset":1,"capacity":512}]} +{"kernel":"kv_cache_graph_0_1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","f6a31b889545a8622442e8bc58d0506ff0481af02439713f9ef0c1a007083eb6","756ae02c3c4a30394212f55fa34f7ea832a3659f13c0d1a71eaf8c9badfb4a79","677302847185c0fea0607f7bf1b32fb3f30b694809a6c3bbb943f38c0678e58d","169ba24b85d5b83ba983216f576fa6a994a916599b49068d41407f8542e294b6","f82094786fd7575af7e5f332f43021a8955eae7b9fa68b494975d45c086c22dc","fafeb64e46475b6493f493fa7a4a927390719447d103acef08fee80272703ef1","677302847185c0fea0607f7bf1b32fb3f30b694809a6c3bbb943f38c0678e58d","169ba24b85d5b83ba983216f576fa6a994a916599b49068d41407f8542e294b6","2034dfcb037c97d4b1a6855df67a491a11329daebbb1942e3431d963b18a5906","5e7a277584521b71d7108bbc1f58c7ebd8fe526d9dd71f2959797a00510ccab3","d7672490110447965b5b44acf182a38f3e33bbb0f53e60741df13bb0c558f3de","eee11c8ce3c07f0a79ec5ad79c5419443594c0441664005ff927f26ab1a1d290","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","d7672490110447965b5b44acf182a38f3e33bbb0f53e60741df13bb0c558f3de","eee11c8ce3c07f0a79ec5ad79c5419443594c0441664005ff927f26ab1a1d290"],"initial":0,"deferred":true,"actions":[{"action":"append","n":0,"offset":0,"capacity":0},{"action":"append","n":3,"offset":3,"capacity":256},{"action":"trim","n":2,"trimmed":2,"offset":1},{"action":"append","n":4,"offset":5,"capacity":256},{"action":"restore","n":0,"offset":0},{"action":"append","n":257,"offset":257,"capacity":512},{"action":"trim","n":999999,"trimmed":257,"offset":0},{"action":"append","n":1,"offset":1,"capacity":512}]} +{"kernel":"kv_cache_graph_1_0","sha256":["405e9e268e5d564534a382f150db9d01e4e4ba7890ab1a711dc0fddfc51ac985","01c52c988b2a6cc667b4106f813da9894bd7531d964e4f025012934d4603f8a5","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","90dfc3949d51e6ce00a834b6e7e30c7725713ee9e61ecf958097f5041b83a1b0","fa92a1f35a37ac364fa58fe889d5c5aa4083a097192c6564f5c7d028022e9adf","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","e33b098ffe7786a45bfcb0f92aeef1a7429e910be79d8e666ab8c13a9c1e28c8","e64f049ef1604f1c94eea305bef286e0a34e72135ba79580f4bb4278edba24c5","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","7fd6257572134f3fc79958aed39f2f34c6d91f2748a97f77a34a16995013cc97","83417146fe3ce869f7aed166c9a07c6dfbd2c15fcc6e803ad6a9ec09abe57fe1","f6a47e8af5ac34fba5cd590d7583632152aaa04d29682bd321b650f0bdfe8d30","05b78883ec9de7f55a0eb30799ed7627ef60314577e7e394beeef9e61d6e1ab8","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","f6a47e8af5ac34fba5cd590d7583632152aaa04d29682bd321b650f0bdfe8d30","05b78883ec9de7f55a0eb30799ed7627ef60314577e7e394beeef9e61d6e1ab8"],"initial":1,"deferred":false,"actions":[{"action":"append","n":1,"offset":1,"capacity":256},{"action":"append","n":3,"offset":4,"capacity":256},{"action":"trim","n":2,"trimmed":2,"offset":2},{"action":"append","n":4,"offset":6,"capacity":256},{"action":"restore","n":0,"offset":1},{"action":"append","n":257,"offset":258,"capacity":513},{"action":"trim","n":999999,"trimmed":258,"offset":0},{"action":"append","n":1,"offset":1,"capacity":513}]} +{"kernel":"kv_cache_graph_1_1","sha256":["405e9e268e5d564534a382f150db9d01e4e4ba7890ab1a711dc0fddfc51ac985","01c52c988b2a6cc667b4106f813da9894bd7531d964e4f025012934d4603f8a5","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","90dfc3949d51e6ce00a834b6e7e30c7725713ee9e61ecf958097f5041b83a1b0","fa92a1f35a37ac364fa58fe889d5c5aa4083a097192c6564f5c7d028022e9adf","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","e33b098ffe7786a45bfcb0f92aeef1a7429e910be79d8e666ab8c13a9c1e28c8","e64f049ef1604f1c94eea305bef286e0a34e72135ba79580f4bb4278edba24c5","8a8ee76ba928990e1178ecce5617dce3d3d07cda0ab2be7178e46489af2b9b67","9ab0936a481f65d86a42f932ae718db369a18575bfdc20c3abe6a34a6afaab41","7fd6257572134f3fc79958aed39f2f34c6d91f2748a97f77a34a16995013cc97","83417146fe3ce869f7aed166c9a07c6dfbd2c15fcc6e803ad6a9ec09abe57fe1","f6a47e8af5ac34fba5cd590d7583632152aaa04d29682bd321b650f0bdfe8d30","05b78883ec9de7f55a0eb30799ed7627ef60314577e7e394beeef9e61d6e1ab8","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","f6a47e8af5ac34fba5cd590d7583632152aaa04d29682bd321b650f0bdfe8d30","05b78883ec9de7f55a0eb30799ed7627ef60314577e7e394beeef9e61d6e1ab8"],"initial":1,"deferred":true,"actions":[{"action":"append","n":1,"offset":1,"capacity":256},{"action":"append","n":3,"offset":4,"capacity":256},{"action":"trim","n":2,"trimmed":2,"offset":2},{"action":"append","n":4,"offset":6,"capacity":256},{"action":"restore","n":0,"offset":1},{"action":"append","n":257,"offset":258,"capacity":513},{"action":"trim","n":999999,"trimmed":258,"offset":0},{"action":"append","n":1,"offset":1,"capacity":513}]} +{"kernel":"kv_cache_graph_255_0","sha256":["8d85db7caca5918fab9c7a7334f17c9541316d2ee4c995d18c95310dc2bc3898","078aad0a633680eec15c38d4e5d3491fb05b86b61e37053dda2881b471d01624","eafad26f3a1d763a87195e3c3f98f1f882491df58fc12d52aecd0bc2494e83e2","6a7411682849b542e3bc2e0856eaacab178425a92e6dbe949c84aa88142a1674","e0ab20d05d95ef6632eb756b1cabc2be6af344d7a0bb78e433b361d65b5e30ae","64fa074b8957ce05034a3ffe383c5f0d1031f35c2fc3599b444150db0bcd08ed","531546cfa8191831513fe79d5ed1e8dd1d0f34a0ea057449ac2c123e32ec437b","a431e03fdda4920b061574b0bc7554c4f12698c72a8d1e1dc95c47531d9bf9b5","44a9667f3755ee2341d7712c0cfd203767846d691fd3067ff408df3e32d6f766","806238702ad45b7ba0f34f6cea45ff7fc1521472f191b043ac528f77a6b8f3c2","531546cfa8191831513fe79d5ed1e8dd1d0f34a0ea057449ac2c123e32ec437b","a431e03fdda4920b061574b0bc7554c4f12698c72a8d1e1dc95c47531d9bf9b5","0daa5a37b1fd42320c69057437da12c2263ac927dd2c1419938e77583c24fa87","6d0339730e8b7af80196488468aa28b97ecd024b31ec9db2b4aa483f2ed50680","dd11e65896dc398cf0209e37f73bd261efcec3fd13b7a6a9f6b78f4b68d9478c","e6ce997e2a41982d03116c8374dab32126446922a1cf954841b319735e3cf0ad","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","dd11e65896dc398cf0209e37f73bd261efcec3fd13b7a6a9f6b78f4b68d9478c","e6ce997e2a41982d03116c8374dab32126446922a1cf954841b319735e3cf0ad"],"initial":255,"deferred":false,"actions":[{"action":"append","n":255,"offset":255,"capacity":256},{"action":"append","n":3,"offset":258,"capacity":511},{"action":"trim","n":2,"trimmed":2,"offset":256},{"action":"append","n":4,"offset":260,"capacity":511},{"action":"restore","n":0,"offset":255},{"action":"append","n":257,"offset":512,"capacity":767},{"action":"trim","n":999999,"trimmed":512,"offset":0},{"action":"append","n":1,"offset":1,"capacity":767}]} +{"kernel":"kv_cache_graph_255_1","sha256":["8d85db7caca5918fab9c7a7334f17c9541316d2ee4c995d18c95310dc2bc3898","078aad0a633680eec15c38d4e5d3491fb05b86b61e37053dda2881b471d01624","eafad26f3a1d763a87195e3c3f98f1f882491df58fc12d52aecd0bc2494e83e2","6a7411682849b542e3bc2e0856eaacab178425a92e6dbe949c84aa88142a1674","e0ab20d05d95ef6632eb756b1cabc2be6af344d7a0bb78e433b361d65b5e30ae","64fa074b8957ce05034a3ffe383c5f0d1031f35c2fc3599b444150db0bcd08ed","531546cfa8191831513fe79d5ed1e8dd1d0f34a0ea057449ac2c123e32ec437b","a431e03fdda4920b061574b0bc7554c4f12698c72a8d1e1dc95c47531d9bf9b5","44a9667f3755ee2341d7712c0cfd203767846d691fd3067ff408df3e32d6f766","806238702ad45b7ba0f34f6cea45ff7fc1521472f191b043ac528f77a6b8f3c2","531546cfa8191831513fe79d5ed1e8dd1d0f34a0ea057449ac2c123e32ec437b","a431e03fdda4920b061574b0bc7554c4f12698c72a8d1e1dc95c47531d9bf9b5","0daa5a37b1fd42320c69057437da12c2263ac927dd2c1419938e77583c24fa87","6d0339730e8b7af80196488468aa28b97ecd024b31ec9db2b4aa483f2ed50680","dd11e65896dc398cf0209e37f73bd261efcec3fd13b7a6a9f6b78f4b68d9478c","e6ce997e2a41982d03116c8374dab32126446922a1cf954841b319735e3cf0ad","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","dd11e65896dc398cf0209e37f73bd261efcec3fd13b7a6a9f6b78f4b68d9478c","e6ce997e2a41982d03116c8374dab32126446922a1cf954841b319735e3cf0ad"],"initial":255,"deferred":true,"actions":[{"action":"append","n":255,"offset":255,"capacity":256},{"action":"append","n":3,"offset":258,"capacity":511},{"action":"trim","n":2,"trimmed":2,"offset":256},{"action":"append","n":4,"offset":260,"capacity":511},{"action":"restore","n":0,"offset":255},{"action":"append","n":257,"offset":512,"capacity":767},{"action":"trim","n":999999,"trimmed":512,"offset":0},{"action":"append","n":1,"offset":1,"capacity":767}]} +{"kernel":"kv_cache_graph_256_0","sha256":["9f53c80d5d4f977ac9485c2ef3a49f82872be6fa497f0fc073c393600dd3e387","659a4a236313c02c0cb23155e13734cfbc2cbcf7d40e7aeee6791c1b49e15c21","9f53c80d5d4f977ac9485c2ef3a49f82872be6fa497f0fc073c393600dd3e387","659a4a236313c02c0cb23155e13734cfbc2cbcf7d40e7aeee6791c1b49e15c21","9d88e68493c563de3c1bdb60128cb4205a41280a9b0a7326944ca2b53af18669","c42440d6b220d08cd4fb9ef3e4b0073fd19c66354d69cc5f5d4752ac14627f00","d1d0075600b709305d9686a4b8e972d99e3e3df73ca8769ee54f4e82db823276","b9ef10aa5a05f2db139012a4bec815f29fb1b54a9e4f11af8b5984e2180d8f82","a5ed83c110b414cc7dda5e89a200be5659682fad6ffc27c00d74fdc47c290712","f1d9cbd07e6fbd749df56b497f2a1356e23d862dc744e8208e3b6d4a990f6bff","d1d0075600b709305d9686a4b8e972d99e3e3df73ca8769ee54f4e82db823276","b9ef10aa5a05f2db139012a4bec815f29fb1b54a9e4f11af8b5984e2180d8f82","f25775f53fe04bbcc57ffab69549b4079c923a412ae1252f16f37ad94b3e15eb","6c1d5cd96068ac0b2eebe92f505f82738a296175f57983fbcfd81a70ccff02b8","31b9c110175cefee7f2c7b7a5a6e348bb19fb1d97876dcba7308a181b9ad819c","1b07a8ab5aa243c51022de8682c8b52a01706dd4c40501f6967b4427d94fbddc","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","31b9c110175cefee7f2c7b7a5a6e348bb19fb1d97876dcba7308a181b9ad819c","1b07a8ab5aa243c51022de8682c8b52a01706dd4c40501f6967b4427d94fbddc"],"initial":256,"deferred":false,"actions":[{"action":"append","n":256,"offset":256,"capacity":256},{"action":"append","n":3,"offset":259,"capacity":512},{"action":"trim","n":2,"trimmed":2,"offset":257},{"action":"append","n":4,"offset":261,"capacity":512},{"action":"restore","n":0,"offset":256},{"action":"append","n":257,"offset":513,"capacity":768},{"action":"trim","n":999999,"trimmed":513,"offset":0},{"action":"append","n":1,"offset":1,"capacity":768}]} +{"kernel":"kv_cache_graph_256_1","sha256":["9f53c80d5d4f977ac9485c2ef3a49f82872be6fa497f0fc073c393600dd3e387","659a4a236313c02c0cb23155e13734cfbc2cbcf7d40e7aeee6791c1b49e15c21","9f53c80d5d4f977ac9485c2ef3a49f82872be6fa497f0fc073c393600dd3e387","659a4a236313c02c0cb23155e13734cfbc2cbcf7d40e7aeee6791c1b49e15c21","9d88e68493c563de3c1bdb60128cb4205a41280a9b0a7326944ca2b53af18669","c42440d6b220d08cd4fb9ef3e4b0073fd19c66354d69cc5f5d4752ac14627f00","d1d0075600b709305d9686a4b8e972d99e3e3df73ca8769ee54f4e82db823276","b9ef10aa5a05f2db139012a4bec815f29fb1b54a9e4f11af8b5984e2180d8f82","a5ed83c110b414cc7dda5e89a200be5659682fad6ffc27c00d74fdc47c290712","f1d9cbd07e6fbd749df56b497f2a1356e23d862dc744e8208e3b6d4a990f6bff","d1d0075600b709305d9686a4b8e972d99e3e3df73ca8769ee54f4e82db823276","b9ef10aa5a05f2db139012a4bec815f29fb1b54a9e4f11af8b5984e2180d8f82","f25775f53fe04bbcc57ffab69549b4079c923a412ae1252f16f37ad94b3e15eb","6c1d5cd96068ac0b2eebe92f505f82738a296175f57983fbcfd81a70ccff02b8","31b9c110175cefee7f2c7b7a5a6e348bb19fb1d97876dcba7308a181b9ad819c","1b07a8ab5aa243c51022de8682c8b52a01706dd4c40501f6967b4427d94fbddc","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","31b9c110175cefee7f2c7b7a5a6e348bb19fb1d97876dcba7308a181b9ad819c","1b07a8ab5aa243c51022de8682c8b52a01706dd4c40501f6967b4427d94fbddc"],"initial":256,"deferred":true,"actions":[{"action":"append","n":256,"offset":256,"capacity":256},{"action":"append","n":3,"offset":259,"capacity":512},{"action":"trim","n":2,"trimmed":2,"offset":257},{"action":"append","n":4,"offset":261,"capacity":512},{"action":"restore","n":0,"offset":256},{"action":"append","n":257,"offset":513,"capacity":768},{"action":"trim","n":999999,"trimmed":513,"offset":0},{"action":"append","n":1,"offset":1,"capacity":768}]} +{"kernel":"kv_cache_graph_257_0","sha256":["92496a27e840e707abd123998dd9e4313305b266e54dd8b3918715a2080a803f","a79e4b5d6d5047e5953b6cfc3348ea2c4abdda63b60d323992659ee12810c290","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","56df36434ae1b337af1af58fd612426c54fca3cf8c4ad7c84bc3ed3fa4f8b330","1d2f4317cb91624c6288853e0415d4d2a0f2e13b905f98a1bbba3ee605eed8a4","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","50699c19902929068088e33f8bc54c4e92d15705e0c214af6c8d03d6fb295036","504c5e1d2cf415ae09b0e6b75176e7850183f17eb2601393ec991c72d82154eb","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","0509e43810da7af672a2f751b795a28fc66df00360a9ec3a864864b50a97a03a","9ac77ee3313bc8867aa6853aa56d62fe14ef787b84134e3b0c68f6d13fae79f3","717b973a097bb12efce0a24c1b402edc95a40418f5db5751c15f5d55631c95e0","71517dad1d9d63fbdc4490390625b4346893030d9f45b8d9d980c383e26d2885","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","717b973a097bb12efce0a24c1b402edc95a40418f5db5751c15f5d55631c95e0","71517dad1d9d63fbdc4490390625b4346893030d9f45b8d9d980c383e26d2885"],"initial":257,"deferred":false,"actions":[{"action":"append","n":257,"offset":257,"capacity":512},{"action":"append","n":3,"offset":260,"capacity":512},{"action":"trim","n":2,"trimmed":2,"offset":258},{"action":"append","n":4,"offset":262,"capacity":512},{"action":"restore","n":0,"offset":257},{"action":"append","n":257,"offset":514,"capacity":769},{"action":"trim","n":999999,"trimmed":514,"offset":0},{"action":"append","n":1,"offset":1,"capacity":769}]} +{"kernel":"kv_cache_graph_257_1","sha256":["92496a27e840e707abd123998dd9e4313305b266e54dd8b3918715a2080a803f","a79e4b5d6d5047e5953b6cfc3348ea2c4abdda63b60d323992659ee12810c290","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","56df36434ae1b337af1af58fd612426c54fca3cf8c4ad7c84bc3ed3fa4f8b330","1d2f4317cb91624c6288853e0415d4d2a0f2e13b905f98a1bbba3ee605eed8a4","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","50699c19902929068088e33f8bc54c4e92d15705e0c214af6c8d03d6fb295036","504c5e1d2cf415ae09b0e6b75176e7850183f17eb2601393ec991c72d82154eb","1b3e39b34d7b0aef601d34934dd804ddc5276503867d687006be78e49f3030ae","a25bbbd8d319f5bdab849a0bc7342ec718139f273ce9fa3075e8b71d309835f2","0509e43810da7af672a2f751b795a28fc66df00360a9ec3a864864b50a97a03a","9ac77ee3313bc8867aa6853aa56d62fe14ef787b84134e3b0c68f6d13fae79f3","717b973a097bb12efce0a24c1b402edc95a40418f5db5751c15f5d55631c95e0","71517dad1d9d63fbdc4490390625b4346893030d9f45b8d9d980c383e26d2885","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","717b973a097bb12efce0a24c1b402edc95a40418f5db5751c15f5d55631c95e0","71517dad1d9d63fbdc4490390625b4346893030d9f45b8d9d980c383e26d2885"],"initial":257,"deferred":true,"actions":[{"action":"append","n":257,"offset":257,"capacity":512},{"action":"append","n":3,"offset":260,"capacity":512},{"action":"trim","n":2,"trimmed":2,"offset":258},{"action":"append","n":4,"offset":262,"capacity":512},{"action":"restore","n":0,"offset":257},{"action":"append","n":257,"offset":514,"capacity":769},{"action":"trim","n":999999,"trimmed":514,"offset":0},{"action":"append","n":1,"offset":1,"capacity":769}]} +{"kernel":"kv_cache_graph_2048_0","sha256":["975e3b71d47d0a6297b46b9abdef23698f751161e9cd2d182af07ac7dd603fa1","b01c4c659750bb4160f40c3b868c1048390ac332b58b1af5646d2ff840442dba","975e3b71d47d0a6297b46b9abdef23698f751161e9cd2d182af07ac7dd603fa1","b01c4c659750bb4160f40c3b868c1048390ac332b58b1af5646d2ff840442dba","0c66cf223f0a819afb660f8f8023c2963073b35441d0c405d1dc80a45c604b77","69fe820f3badb818b37d00f23cb50f9865f8051bf355cc4dfa6ae9eecc2cedc8","5f326fb8958b762c1b8c1e69e6a4d5728b2a0e55cb800e0a7430e1bc28b2b9e5","2e8869fa59574578ae39d360e492060d71b3068261045195c0c1435c2e651057","1066bf227f8df87707eb763d0050fb280ee8dee76ca9985018c852a7982af95f","ed3cf001114f8144701434338f24a9eb82c7fcc5b91dcff639d5568ca3e8e3a5","5f326fb8958b762c1b8c1e69e6a4d5728b2a0e55cb800e0a7430e1bc28b2b9e5","2e8869fa59574578ae39d360e492060d71b3068261045195c0c1435c2e651057","9e47f7eb3c3abca3b69571c20b518fdbce539d44108cefc320e175393c8d8b47","31914beff450d2208455ad4e06b8df1e5387812a1e8e1f1f76bbc6b7fbe2a928","3ceec330874848a8453bd741c9d21f300834f520e23f89785a8d4ea83d005f14","4c88dcad8935226a71a290753b44cc6fd815ccff382448fc3f0ac7ca77d740de","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","3ceec330874848a8453bd741c9d21f300834f520e23f89785a8d4ea83d005f14","4c88dcad8935226a71a290753b44cc6fd815ccff382448fc3f0ac7ca77d740de"],"initial":2048,"deferred":false,"actions":[{"action":"append","n":2048,"offset":2048,"capacity":2048},{"action":"append","n":3,"offset":2051,"capacity":2304},{"action":"trim","n":2,"trimmed":2,"offset":2049},{"action":"append","n":4,"offset":2053,"capacity":2304},{"action":"restore","n":0,"offset":2048},{"action":"append","n":257,"offset":2305,"capacity":2560},{"action":"trim","n":999999,"trimmed":2305,"offset":0},{"action":"append","n":1,"offset":1,"capacity":2560}]} +{"kernel":"kv_cache_graph_2048_1","sha256":["975e3b71d47d0a6297b46b9abdef23698f751161e9cd2d182af07ac7dd603fa1","b01c4c659750bb4160f40c3b868c1048390ac332b58b1af5646d2ff840442dba","975e3b71d47d0a6297b46b9abdef23698f751161e9cd2d182af07ac7dd603fa1","b01c4c659750bb4160f40c3b868c1048390ac332b58b1af5646d2ff840442dba","0c66cf223f0a819afb660f8f8023c2963073b35441d0c405d1dc80a45c604b77","69fe820f3badb818b37d00f23cb50f9865f8051bf355cc4dfa6ae9eecc2cedc8","5f326fb8958b762c1b8c1e69e6a4d5728b2a0e55cb800e0a7430e1bc28b2b9e5","2e8869fa59574578ae39d360e492060d71b3068261045195c0c1435c2e651057","1066bf227f8df87707eb763d0050fb280ee8dee76ca9985018c852a7982af95f","ed3cf001114f8144701434338f24a9eb82c7fcc5b91dcff639d5568ca3e8e3a5","5f326fb8958b762c1b8c1e69e6a4d5728b2a0e55cb800e0a7430e1bc28b2b9e5","2e8869fa59574578ae39d360e492060d71b3068261045195c0c1435c2e651057","9e47f7eb3c3abca3b69571c20b518fdbce539d44108cefc320e175393c8d8b47","31914beff450d2208455ad4e06b8df1e5387812a1e8e1f1f76bbc6b7fbe2a928","3ceec330874848a8453bd741c9d21f300834f520e23f89785a8d4ea83d005f14","4c88dcad8935226a71a290753b44cc6fd815ccff382448fc3f0ac7ca77d740de","0cd5573d256c4e0d9726d2d2f3363ebd1942ac17ea85bb4e610ca663041fa733","4a9ead9b8fc1ed955eaf722554636684a8b50df4f9cec17235bc20d1dda758b0","3ceec330874848a8453bd741c9d21f300834f520e23f89785a8d4ea83d005f14","4c88dcad8935226a71a290753b44cc6fd815ccff382448fc3f0ac7ca77d740de"],"initial":2048,"deferred":true,"actions":[{"action":"append","n":2048,"offset":2048,"capacity":2048},{"action":"append","n":3,"offset":2051,"capacity":2304},{"action":"trim","n":2,"trimmed":2,"offset":2049},{"action":"append","n":4,"offset":2053,"capacity":2304},{"action":"restore","n":0,"offset":2048},{"action":"append","n":257,"offset":2305,"capacity":2560},{"action":"trim","n":999999,"trimmed":2305,"offset":0},{"action":"append","n":1,"offset":1,"capacity":2560}]} diff --git a/tests/fixtures/mtplx-logsumexp-graph.jsonl b/tests/fixtures/mtplx-logsumexp-graph.jsonl new file mode 100644 index 0000000..eb55bbe --- /dev/null +++ b/tests/fixtures/mtplx-logsumexp-graph.jsonl @@ -0,0 +1,150 @@ +{"kernel":"logsumexp_bfloat16_1_plain_0","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"bfloat16","cols":1,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_1_plain_1","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"bfloat16","cols":1,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_1_swapped_0","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"bfloat16","cols":1,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_bfloat16_1_swapped_1","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"bfloat16","cols":1,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_bfloat16_1_strided_0","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"bfloat16","cols":1,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_1_strided_1","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"bfloat16","cols":1,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_1_offset_0","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"bfloat16","cols":1,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_1_offset_1","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"bfloat16","cols":1,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_1_broadcast_0","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"bfloat16","cols":1,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_1_broadcast_1","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"bfloat16","cols":1,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_17_plain_0","sha256":["a5a8ab8e64426a570dbf3867da157f0356b1756ffeafc42f57e79422447cc0f2"],"dtype":"bfloat16","cols":17,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_17_plain_1","sha256":["a5a8ab8e64426a570dbf3867da157f0356b1756ffeafc42f57e79422447cc0f2"],"dtype":"bfloat16","cols":17,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_17_swapped_0","sha256":["420132754b09d95c708e7b3d7d920af096cd82d1fe8f1ae4d89d3349804d5054"],"dtype":"bfloat16","cols":17,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_bfloat16_17_swapped_1","sha256":["420132754b09d95c708e7b3d7d920af096cd82d1fe8f1ae4d89d3349804d5054"],"dtype":"bfloat16","cols":17,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_bfloat16_17_strided_0","sha256":["1cfa3dd5b014d59bf1f2e4640214bbd6986eb56f2e9dcd737d2dd22fc49322cd"],"dtype":"bfloat16","cols":17,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_17_strided_1","sha256":["1cfa3dd5b014d59bf1f2e4640214bbd6986eb56f2e9dcd737d2dd22fc49322cd"],"dtype":"bfloat16","cols":17,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_17_offset_0","sha256":["2dde26028de59929673640190b895b112f1d6ca5c1adcece4755cbf79ff6a9a5"],"dtype":"bfloat16","cols":17,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_17_offset_1","sha256":["2dde26028de59929673640190b895b112f1d6ca5c1adcece4755cbf79ff6a9a5"],"dtype":"bfloat16","cols":17,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_17_broadcast_0","sha256":["aa58f1043be7aff64d3d4228e2aa5c35c26004065c82e098682f560dca872a61"],"dtype":"bfloat16","cols":17,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_17_broadcast_1","sha256":["aa58f1043be7aff64d3d4228e2aa5c35c26004065c82e098682f560dca872a61"],"dtype":"bfloat16","cols":17,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4096_plain_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4096_plain_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4096_swapped_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_bfloat16_4096_swapped_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_bfloat16_4096_strided_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4096_strided_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4096_offset_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4096_offset_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4096_broadcast_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4096_broadcast_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4096,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4097_plain_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4097_plain_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4097_swapped_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_bfloat16_4097_swapped_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_bfloat16_4097_strided_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4097_strided_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4097_offset_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4097_offset_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_4097_broadcast_0","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_4097_broadcast_1","sha256":["10d4c4b27d7c97a0c4810b40350ec5a85a1a60d3b63cea4f163a6b39fb36f0b2"],"dtype":"bfloat16","cols":4097,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_248320_plain_0","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_248320_plain_1","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_248320_swapped_0","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_bfloat16_248320_swapped_1","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_bfloat16_248320_strided_0","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_248320_strided_1","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_248320_offset_0","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_248320_offset_1","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_bfloat16_248320_broadcast_0","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_bfloat16_248320_broadcast_1","sha256":["fb42d9ab5bce81f0a1c3b1bd8de81c449848f64484725499052eaa0f1eb119cb"],"dtype":"bfloat16","cols":248320,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_1_plain_0","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"float16","cols":1,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_1_plain_1","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"float16","cols":1,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_1_swapped_0","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"float16","cols":1,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float16_1_swapped_1","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"float16","cols":1,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float16_1_strided_0","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"float16","cols":1,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_1_strided_1","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"float16","cols":1,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_1_offset_0","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"float16","cols":1,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_1_offset_1","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"float16","cols":1,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_1_broadcast_0","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"float16","cols":1,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_1_broadcast_1","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"float16","cols":1,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_17_plain_0","sha256":["3a203ca61692e073e59741ee1f7cd306c4d777fbc08437f7ccdae37c96b6257b"],"dtype":"float16","cols":17,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_17_plain_1","sha256":["3a203ca61692e073e59741ee1f7cd306c4d777fbc08437f7ccdae37c96b6257b"],"dtype":"float16","cols":17,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_17_swapped_0","sha256":["ac38ef3435b36836df7b12fc1c83aefcbd255b010773a872929467b6f91313a7"],"dtype":"float16","cols":17,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float16_17_swapped_1","sha256":["ac38ef3435b36836df7b12fc1c83aefcbd255b010773a872929467b6f91313a7"],"dtype":"float16","cols":17,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float16_17_strided_0","sha256":["78e2433a18e24b0b6ad29e8239c8a6e8adbbdb1ceecf18738699715ae1bb64e3"],"dtype":"float16","cols":17,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_17_strided_1","sha256":["78e2433a18e24b0b6ad29e8239c8a6e8adbbdb1ceecf18738699715ae1bb64e3"],"dtype":"float16","cols":17,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_17_offset_0","sha256":["e0a12b8512ecddec3348dd42fbace976db33b03b0093c9166bef38ef26255943"],"dtype":"float16","cols":17,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_17_offset_1","sha256":["e0a12b8512ecddec3348dd42fbace976db33b03b0093c9166bef38ef26255943"],"dtype":"float16","cols":17,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_17_broadcast_0","sha256":["3ca57ebb6b8edf668a3fb75f7a41fccb85d172ec38b93f724f58d97e5c869b86"],"dtype":"float16","cols":17,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_17_broadcast_1","sha256":["3ca57ebb6b8edf668a3fb75f7a41fccb85d172ec38b93f724f58d97e5c869b86"],"dtype":"float16","cols":17,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4096_plain_0","sha256":["fe1b2a8563e1c6f98ea18556383ad423506ea49e9b88112a5a02fc64c812bce5"],"dtype":"float16","cols":4096,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4096_plain_1","sha256":["fe1b2a8563e1c6f98ea18556383ad423506ea49e9b88112a5a02fc64c812bce5"],"dtype":"float16","cols":4096,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4096_swapped_0","sha256":["25b034337ef2c5f5cdc6db370b9b3b4454f6e562525c4e56455945ce68d758c4"],"dtype":"float16","cols":4096,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float16_4096_swapped_1","sha256":["25b034337ef2c5f5cdc6db370b9b3b4454f6e562525c4e56455945ce68d758c4"],"dtype":"float16","cols":4096,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float16_4096_strided_0","sha256":["6c2de09ca800c10bc72b194cf58a898dc0a6f9267072a4cbb3604dfa74cd68f4"],"dtype":"float16","cols":4096,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4096_strided_1","sha256":["6c2de09ca800c10bc72b194cf58a898dc0a6f9267072a4cbb3604dfa74cd68f4"],"dtype":"float16","cols":4096,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4096_offset_0","sha256":["b94be7b582055a95ebef0e42bd36703a1a6b0ca94da1e666fef46e555ae3a297"],"dtype":"float16","cols":4096,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4096_offset_1","sha256":["b94be7b582055a95ebef0e42bd36703a1a6b0ca94da1e666fef46e555ae3a297"],"dtype":"float16","cols":4096,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4096_broadcast_0","sha256":["e7a6d28947287c77c0dd57c97a9bf9719f58c5c18cb15df06d4777dc2a06837c"],"dtype":"float16","cols":4096,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4096_broadcast_1","sha256":["e7a6d28947287c77c0dd57c97a9bf9719f58c5c18cb15df06d4777dc2a06837c"],"dtype":"float16","cols":4096,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4097_plain_0","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4097_plain_1","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4097_swapped_0","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float16_4097_swapped_1","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float16_4097_strided_0","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4097_strided_1","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4097_offset_0","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4097_offset_1","sha256":["e1552204905651d3c8db6ddd6c1cb6b5bf23096e0bde7936e2a19d92d53e9f69"],"dtype":"float16","cols":4097,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_4097_broadcast_0","sha256":["e7a6d28947287c77c0dd57c97a9bf9719f58c5c18cb15df06d4777dc2a06837c"],"dtype":"float16","cols":4097,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_4097_broadcast_1","sha256":["e7a6d28947287c77c0dd57c97a9bf9719f58c5c18cb15df06d4777dc2a06837c"],"dtype":"float16","cols":4097,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_248320_plain_0","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_248320_plain_1","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_248320_swapped_0","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float16_248320_swapped_1","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float16_248320_strided_0","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_248320_strided_1","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_248320_offset_0","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_248320_offset_1","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float16_248320_broadcast_0","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float16_248320_broadcast_1","sha256":["676d064180d7fd621ce4a34d24e1ba9f30a511ecdc30f0e165f1dfccbea57c32"],"dtype":"float16","cols":248320,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_1_plain_0","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"float32","cols":1,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_1_plain_1","sha256":["72c3d4bba86787ae57340bc93a9fef22f6340bd09d27fc1a9fd8e6a0fea7d088"],"dtype":"float32","cols":1,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_1_swapped_0","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"float32","cols":1,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float32_1_swapped_1","sha256":["4d549aef1c8bee673571958809de63e406109713872a20fc72e346200304c73b"],"dtype":"float32","cols":1,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float32_1_strided_0","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"float32","cols":1,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_1_strided_1","sha256":["6be1635d597d3827283a200d6709e75f25469682b4b995c990099b43d6fe73b6"],"dtype":"float32","cols":1,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_1_offset_0","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"float32","cols":1,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_1_offset_1","sha256":["ad8fe402b9bc9e1e15b6c7a26ee073fe8dbcb88f49902c4401b0158afbc75e57"],"dtype":"float32","cols":1,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_1_broadcast_0","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"float32","cols":1,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_1_broadcast_1","sha256":["fc5af48a3ab5f82643818f1cfda36adb6961b64b593354dad7f977edd63604e7"],"dtype":"float32","cols":1,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_17_plain_0","sha256":["fa02d4b514350bb2e14c63528525e370a21e553ee80ae5ab94cfd5745fb81874"],"dtype":"float32","cols":17,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_17_plain_1","sha256":["fa02d4b514350bb2e14c63528525e370a21e553ee80ae5ab94cfd5745fb81874"],"dtype":"float32","cols":17,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_17_swapped_0","sha256":["64f960d997af76a557808468dd464a1cb5bf0b5a001f78434142f99645b2c1ec"],"dtype":"float32","cols":17,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float32_17_swapped_1","sha256":["64f960d997af76a557808468dd464a1cb5bf0b5a001f78434142f99645b2c1ec"],"dtype":"float32","cols":17,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float32_17_strided_0","sha256":["d631ce09cca12ef2eb0a1cc6fa8233236c3a7173ea5f480cc1e3c6645a66124d"],"dtype":"float32","cols":17,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_17_strided_1","sha256":["d631ce09cca12ef2eb0a1cc6fa8233236c3a7173ea5f480cc1e3c6645a66124d"],"dtype":"float32","cols":17,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_17_offset_0","sha256":["36faec36392c90668fc57692e2875f0896743c9d102c3f3b78fecc7259f84256"],"dtype":"float32","cols":17,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_17_offset_1","sha256":["36faec36392c90668fc57692e2875f0896743c9d102c3f3b78fecc7259f84256"],"dtype":"float32","cols":17,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_17_broadcast_0","sha256":["a442418447b9fa20417ea679c68eca74aaac0c37315d640087f6fd88a528b51b"],"dtype":"float32","cols":17,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_17_broadcast_1","sha256":["a442418447b9fa20417ea679c68eca74aaac0c37315d640087f6fd88a528b51b"],"dtype":"float32","cols":17,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4096_plain_0","sha256":["86f32a808cd8936a408459a1d5fb112a1313b6ae776d88decfa48f4e416761dd"],"dtype":"float32","cols":4096,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4096_plain_1","sha256":["86f32a808cd8936a408459a1d5fb112a1313b6ae776d88decfa48f4e416761dd"],"dtype":"float32","cols":4096,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4096_swapped_0","sha256":["3ba3403ba298d8a1d19c1feed8a07b80fdec8a07bf3e25dccb3cf5ace0ee6718"],"dtype":"float32","cols":4096,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float32_4096_swapped_1","sha256":["3ba3403ba298d8a1d19c1feed8a07b80fdec8a07bf3e25dccb3cf5ace0ee6718"],"dtype":"float32","cols":4096,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float32_4096_strided_0","sha256":["9924cdd7d0d4a790f8d17dd52e4fcf094143c47a7a441f56ad7cf8a102f133c3"],"dtype":"float32","cols":4096,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4096_strided_1","sha256":["9924cdd7d0d4a790f8d17dd52e4fcf094143c47a7a441f56ad7cf8a102f133c3"],"dtype":"float32","cols":4096,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4096_offset_0","sha256":["7aa471ade5018dabf459c421002be4965d16043b926d8e2364c3f81117b73d2d"],"dtype":"float32","cols":4096,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4096_offset_1","sha256":["7aa471ade5018dabf459c421002be4965d16043b926d8e2364c3f81117b73d2d"],"dtype":"float32","cols":4096,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4096_broadcast_0","sha256":["b29ea90857a65ccac1dc8aa911e4d925be28c5de67c7a95dd650b96f79786450"],"dtype":"float32","cols":4096,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4096_broadcast_1","sha256":["b29ea90857a65ccac1dc8aa911e4d925be28c5de67c7a95dd650b96f79786450"],"dtype":"float32","cols":4096,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4097_plain_0","sha256":["86305ff25b32ded058aa0f264f1b68069ca206b9d17394f48e8e3bf5f13ab88b"],"dtype":"float32","cols":4097,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4097_plain_1","sha256":["86305ff25b32ded058aa0f264f1b68069ca206b9d17394f48e8e3bf5f13ab88b"],"dtype":"float32","cols":4097,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4097_swapped_0","sha256":["fc811ed227e5647e62a1a3c33f836f385a62d0d9d944d678fb0e92d01592f560"],"dtype":"float32","cols":4097,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float32_4097_swapped_1","sha256":["fc811ed227e5647e62a1a3c33f836f385a62d0d9d944d678fb0e92d01592f560"],"dtype":"float32","cols":4097,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float32_4097_strided_0","sha256":["7c4218a93dbe5baf93a30a860806a84b1f415a301da38779f844d4b205d7338d"],"dtype":"float32","cols":4097,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4097_strided_1","sha256":["7c4218a93dbe5baf93a30a860806a84b1f415a301da38779f844d4b205d7338d"],"dtype":"float32","cols":4097,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4097_offset_0","sha256":["d64c896aa286422668aea31c115aa2e010c95c2c837d54e295fae5b4db0d0942"],"dtype":"float32","cols":4097,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4097_offset_1","sha256":["d64c896aa286422668aea31c115aa2e010c95c2c837d54e295fae5b4db0d0942"],"dtype":"float32","cols":4097,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_4097_broadcast_0","sha256":["f21a2260485b07cdf944b6185b482fd986875ae7388698866ed875e4e4c8afa8"],"dtype":"float32","cols":4097,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_4097_broadcast_1","sha256":["f21a2260485b07cdf944b6185b482fd986875ae7388698866ed875e4e4c8afa8"],"dtype":"float32","cols":4097,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_248320_plain_0","sha256":["c5f2cb2c1d9075ef271786fbec94998c32ee57054a4dce887fd46f6c845eafa6"],"dtype":"float32","cols":248320,"layout":"plain","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_248320_plain_1","sha256":["c5f2cb2c1d9075ef271786fbec94998c32ee57054a4dce887fd46f6c845eafa6"],"dtype":"float32","cols":248320,"layout":"plain","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_248320_swapped_0","sha256":["58e338239737628f2d96e5e1b3258459664cf5e7b12dec2d116dc772620b5e2c"],"dtype":"float32","cols":248320,"layout":"swapped","keepdims":false,"shape":[3,2]} +{"kernel":"logsumexp_float32_248320_swapped_1","sha256":["58e338239737628f2d96e5e1b3258459664cf5e7b12dec2d116dc772620b5e2c"],"dtype":"float32","cols":248320,"layout":"swapped","keepdims":true,"shape":[3,2,1]} +{"kernel":"logsumexp_float32_248320_strided_0","sha256":["12de50686b6f10c6479779a575c3eead962ff02a06e5d7de36fb870442a0d683"],"dtype":"float32","cols":248320,"layout":"strided","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_248320_strided_1","sha256":["12de50686b6f10c6479779a575c3eead962ff02a06e5d7de36fb870442a0d683"],"dtype":"float32","cols":248320,"layout":"strided","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_248320_offset_0","sha256":["96e8a3e5235473fee619604d45e561bb997bd28919504dc5e054cc9eb483d873"],"dtype":"float32","cols":248320,"layout":"offset","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_248320_offset_1","sha256":["96e8a3e5235473fee619604d45e561bb997bd28919504dc5e054cc9eb483d873"],"dtype":"float32","cols":248320,"layout":"offset","keepdims":true,"shape":[2,3,1]} +{"kernel":"logsumexp_float32_248320_broadcast_0","sha256":["0ae6a92527a1b2b35286dbe58e74ff0e29c59658d163181f66587c3c8638d415"],"dtype":"float32","cols":248320,"layout":"broadcast","keepdims":false,"shape":[2,3]} +{"kernel":"logsumexp_float32_248320_broadcast_1","sha256":["0ae6a92527a1b2b35286dbe58e74ff0e29c59658d163181f66587c3c8638d415"],"dtype":"float32","cols":248320,"layout":"broadcast","keepdims":true,"shape":[2,3,1]} diff --git a/tests/fixtures/mtplx-mtp-prefill-driver.jsonl b/tests/fixtures/mtplx-mtp-prefill-driver.jsonl new file mode 100644 index 0000000..cbaddad --- /dev/null +++ b/tests/fixtures/mtplx-mtp-prefill-driver.jsonl @@ -0,0 +1,656 @@ +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 0, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": [], "chunks": [], "calls": [], "history": [], "result": {"error": "prompt_ids must not be empty"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 0}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 1, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "check"], "chunks": [], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "history": [], "result": {"logits": {"shape": [1, 1], "values": [0.0]}, "hidden": {"shape": [1, 1, 1], "values": [0.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 8, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": false, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": true, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": null, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 8, "total": 9, "size": 8}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 0}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": null}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}, {"hidden": {"shape": [1, 4, 1], "values": [4.0, 5.0, 6.0, 7.0]}, "ids": [5, 6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 1}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": null, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": true, "emit": false, "keep": 0}], "history": [{"hidden": {"shape": [1, 4, 1], "values": [0.0, 1.0, 2.0, 3.0]}, "ids": [1, 2, 3, 4], "position": 1}], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 7}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 7}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [7.0]}, "ids": [8], "position": 8}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 8}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 0, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 5}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 5}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": false, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "cache", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}, {"tokens": 8, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": true, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 3, 1], "values": [5.0, 6.0, 7.0]}, "ids": [6, 7, 8], "position": 6}], "result": {"logits": {"shape": [1, 1], "values": [8.0]}, "hidden": {"shape": [1, 1, 1], "values": [8.0]}, "base": 6}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 3, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 9, "chunk": 4, "window": 3, "absolute": true, "final_only": true, "route": "discard", "abort_at": 5, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check"], "chunks": [{"tokens": 4, "total": 9, "size": 4}], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "history": [], "result": {"error": "foreground_preempted_postcommit"}} +{"length": 2050, "chunk": 2048, "window": null, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2048, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "position": null}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": null}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 0}} +{"length": 2050, "chunk": 2048, "window": null, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2048, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "position": 1}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2049}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 1}} +{"length": 2050, "chunk": 2048, "window": 1, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2048}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 2048}} +{"length": 2050, "chunk": 2048, "window": 1, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2049}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 2049}} +{"length": 2050, "chunk": 2048, "window": 3, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2, 1], "values": [11.0, 12.0]}, "ids": [12, 13], "position": 2046}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2048}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 2046}} +{"length": 2050, "chunk": 2048, "window": 3, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2, 1], "values": [11.0, 12.0]}, "ids": [12, 13], "position": 2047}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2049}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 2047}} +{"length": 2050, "chunk": 2048, "window": 2049, "absolute": false, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2048, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "position": 0}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2048}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 0}} +{"length": 2050, "chunk": 2048, "window": 2049, "absolute": true, "final_only": true, "route": "normal", "abort_at": 0, "events": ["check", "init", "mtp_init", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "chunk", "callback", "check", "history", "settled", "check", "check", "check", "settled", "check"], "chunks": [{"tokens": 2048, "total": 2050, "size": 2048}, {"tokens": 2049, "total": 2050, "size": 1}], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": true, "emit": false, "keep": 0}, {"ids": [13], "hidden": true, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "history": [{"hidden": {"shape": [1, 2048, 1], "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]}, "ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "position": 1}, {"hidden": {"shape": [1, 1, 1], "values": [13.0]}, "ids": [14], "position": 2049}], "result": {"logits": {"shape": [1, 1], "values": [14.0]}, "hidden": {"shape": [1, 1, 1], "values": [14.0]}, "base": 1}} diff --git a/tests/fixtures/mtplx-ngram-embedding.jsonl b/tests/fixtures/mtplx-ngram-embedding.jsonl new file mode 100644 index 0000000..7633941 --- /dev/null +++ b/tests/fixtures/mtplx-ngram-embedding.jsonl @@ -0,0 +1,24 @@ +{"kernel":"ngram_embedding_b0_batch1_r1_step0","bits":0,"batch":1,"rows":1,"step":0,"sha256":["71a57537a349e42302ff73830ea4ad7027344235d35ad321a9731c5777d85052","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_embedding_b0_batch1_r1_step1","bits":0,"batch":1,"rows":1,"step":1,"sha256":["f6b9630202f6937946da85b405001e51c891e5e0548c39e8b1d6ce169db8a75c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_embedding_b0_batch1_r4_step0","bits":0,"batch":1,"rows":4,"step":0,"sha256":["f6759e0ed536818e47b7960ebc04b6c3f45dfa1441882c154373d9f43398b834","3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65"]} +{"kernel":"ngram_embedding_b0_batch1_r4_step1","bits":0,"batch":1,"rows":4,"step":1,"sha256":["fbe0ef7811e225300af12eeaa8c9c75426a7d7683e6455d352f85808af9c9a4d","eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35"]} +{"kernel":"ngram_embedding_b0_batch1_r2048_step0","bits":0,"batch":1,"rows":2048,"step":0,"sha256":["5a774f7548e4fb0bc4702b3299e8c0b0fb0437217c2ba164449038bddf57a9a1","524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"]} +{"kernel":"ngram_embedding_b0_batch1_r2048_step1","bits":0,"batch":1,"rows":2048,"step":1,"sha256":["65da84d510d5f7bf9a062ab8c0e1fa447c954d1392d8936019537f6338301e97","eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4"]} +{"kernel":"ngram_embedding_b0_batch2_r1_step0","bits":0,"batch":2,"rows":1,"step":0,"sha256":["7ff53f8ba4326e5433a88f5ba8577367b75af3134d3edb1cc917b8a373832aa7","b404159d21847ead03ca51eed2d10af789bf9b5af67633ba84eef1b26df82689"]} +{"kernel":"ngram_embedding_b0_batch2_r1_step1","bits":0,"batch":2,"rows":1,"step":1,"sha256":["7b3276922e07f554dff2466563a355bcc6a1ac4cb75d2c0045f70be4cdf21af7","4c993b8fe9d46745718ca57c1d710358e67038891a90f78fd76edcd435bdbc41"]} +{"kernel":"ngram_embedding_b0_batch2_r4_step0","bits":0,"batch":2,"rows":4,"step":0,"sha256":["8cab0a6e77ad94ed237e437df49f891d9329b9b17182af15408b9fc58ae8bd49","fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad"]} +{"kernel":"ngram_embedding_b0_batch2_r4_step1","bits":0,"batch":2,"rows":4,"step":1,"sha256":["9fdd154f54313a56fd634e18513dff5166d18fa52be028cf79ae44498e3eee7f","1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792"]} +{"kernel":"ngram_embedding_b0_batch2_r2048_step0","bits":0,"batch":2,"rows":2048,"step":0,"sha256":["a8f68a15ebcc26b012494c3925de56fbfc3eb2973763625190fea82a2946219b","100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7"]} +{"kernel":"ngram_embedding_b0_batch2_r2048_step1","bits":0,"batch":2,"rows":2048,"step":1,"sha256":["c4c0b3a634ac9e701f082f71bf1cbb2c477910e2a262c56b250ef1f1bc6c7e8d","16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e"]} +{"kernel":"ngram_embedding_b4_batch1_r1_step0","bits":4,"batch":1,"rows":1,"step":0,"sha256":["ee27fd5db960f6ad081fc688f3d8043265a77748b6d1ba5e11c2f383e75c46d8","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_embedding_b4_batch1_r1_step1","bits":4,"batch":1,"rows":1,"step":1,"sha256":["e7b2985cd76db071b57278a20d66d4331a78465a5de78d32f3fb6425e6364ef0","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_embedding_b4_batch1_r4_step0","bits":4,"batch":1,"rows":4,"step":0,"sha256":["8a9ed0e7ffbdffb954a04aade721d168190fde932848c4cd4ddf9f57b50f1f81","3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65"]} +{"kernel":"ngram_embedding_b4_batch1_r4_step1","bits":4,"batch":1,"rows":4,"step":1,"sha256":["7fc7d74cf06f9ed438405a36f25772022bb65f2e4f14f97f432ce08c3b0b2d84","eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35"]} +{"kernel":"ngram_embedding_b4_batch1_r2048_step0","bits":4,"batch":1,"rows":2048,"step":0,"sha256":["4db847b5a1df5f919fa42db16e69b1e9e44232f6a584fee13b0c88ad339216cb","524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"]} +{"kernel":"ngram_embedding_b4_batch1_r2048_step1","bits":4,"batch":1,"rows":2048,"step":1,"sha256":["d2ad6683df0daa34beee679b1bbce2a197ab4175027ae1f021aeb22570ca80f8","eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4"]} +{"kernel":"ngram_embedding_b4_batch2_r1_step0","bits":4,"batch":2,"rows":1,"step":0,"sha256":["2d1c48a4260aa9e1237a0e6c322044a0f684959f2e43dec22e85586a80650020","b404159d21847ead03ca51eed2d10af789bf9b5af67633ba84eef1b26df82689"]} +{"kernel":"ngram_embedding_b4_batch2_r1_step1","bits":4,"batch":2,"rows":1,"step":1,"sha256":["d0707a8ba8e1c374fa9407789d12ab39a339ecfb9f4434a96eb34ab67e733211","4c993b8fe9d46745718ca57c1d710358e67038891a90f78fd76edcd435bdbc41"]} +{"kernel":"ngram_embedding_b4_batch2_r4_step0","bits":4,"batch":2,"rows":4,"step":0,"sha256":["8af3c3a5898e47fe03c6b90b5824de3ebbbca6d2bcf6cf841f4306c66bdd4be4","fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad"]} +{"kernel":"ngram_embedding_b4_batch2_r4_step1","bits":4,"batch":2,"rows":4,"step":1,"sha256":["edf196fba5350d34b5d5b3b9735b87902d2adc9a89e223bdf3e135f2cb720e3d","1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792"]} +{"kernel":"ngram_embedding_b4_batch2_r2048_step0","bits":4,"batch":2,"rows":2048,"step":0,"sha256":["8fa632573422707862ce75c479d2efd4003c7007076e4d7d8b17a8a9f68e157f","100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7"]} +{"kernel":"ngram_embedding_b4_batch2_r2048_step1","bits":4,"batch":2,"rows":2048,"step":1,"sha256":["9330315b751cb38355cd10378255b091940f499f3c0eef69fbfdd8c37eef837a","16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e"]} diff --git a/tests/fixtures/mtplx-ngram-gpu.jsonl b/tests/fixtures/mtplx-ngram-gpu.jsonl new file mode 100644 index 0000000..d0e16df --- /dev/null +++ b/tests/fixtures/mtplx-ngram-gpu.jsonl @@ -0,0 +1,60 @@ +{"kernel":"ngram_gpu_b1_r1_p-1_step0","batch":1,"rows":1,"prev_len":-1,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["7ac2610ed30647a49322284bb2c41477ade4031cbb59ccfde7cf6e29e5891216","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_gpu_b1_r1_p-1_step1","batch":1,"rows":1,"prev_len":-1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_gpu_b1_r1_p0_step0","batch":1,"rows":1,"prev_len":0,"step":0,"result_shape":[1,1,16],"history_shape":[1,1],"sha256":["7ac2610ed30647a49322284bb2c41477ade4031cbb59ccfde7cf6e29e5891216","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"]} +{"kernel":"ngram_gpu_b1_r1_p0_step1","batch":1,"rows":1,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_gpu_b1_r1_p1_step0","batch":1,"rows":1,"prev_len":1,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["7ac2610ed30647a49322284bb2c41477ade4031cbb59ccfde7cf6e29e5891216","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_gpu_b1_r1_p1_step1","batch":1,"rows":1,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_gpu_b1_r1_p2_step0","batch":1,"rows":1,"prev_len":2,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["5263594c39b7a6899fe3e81e5d1f23f550767852283820c622137f9c82431505","374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb"]} +{"kernel":"ngram_gpu_b1_r1_p2_step1","batch":1,"rows":1,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["0faf07026317d5f4651b6004395e6c5d77514f0c205cae7f6588001d40e2884c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_gpu_b1_r1_p5_step0","batch":1,"rows":1,"prev_len":5,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["f2900e78ed163c6ab6729ce7ac3e9619a11414125800d2b1829506e65a177f1e","4cbbd8ca5215b8d161aec181a74b694f4e24b001d5b081dc0030ed797a8973e0"]} +{"kernel":"ngram_gpu_b1_r1_p5_step1","batch":1,"rows":1,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["6d13a5d55668595536f344e2cedbb163c583734515c7ffd2eed4a387b0171f44","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_gpu_b1_r4_p-1_step0","batch":1,"rows":4,"prev_len":-1,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["63b6df3c75a1274c47362483c9a8535a0bad9cfa900d8cd37f0416c1e3ae69ae","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_gpu_b1_r4_p-1_step1","batch":1,"rows":4,"prev_len":-1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_gpu_b1_r4_p0_step0","batch":1,"rows":4,"prev_len":0,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["63b6df3c75a1274c47362483c9a8535a0bad9cfa900d8cd37f0416c1e3ae69ae","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_gpu_b1_r4_p0_step1","batch":1,"rows":4,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_gpu_b1_r4_p1_step0","batch":1,"rows":4,"prev_len":1,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["63b6df3c75a1274c47362483c9a8535a0bad9cfa900d8cd37f0416c1e3ae69ae","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_gpu_b1_r4_p1_step1","batch":1,"rows":4,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_gpu_b1_r4_p2_step0","batch":1,"rows":4,"prev_len":2,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["556147ba93f649fc043a9311fd651a0794cea6b24bdfbd23680f6f3f9fbd9178","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_gpu_b1_r4_p2_step1","batch":1,"rows":4,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_gpu_b1_r4_p5_step0","batch":1,"rows":4,"prev_len":5,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["97139a1a642b17d106f6e8fe664bf1c78797624aaa20c24decac72fc897abe0c","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_gpu_b1_r4_p5_step1","batch":1,"rows":4,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_gpu_b1_r2048_p-1_step0","batch":1,"rows":2048,"prev_len":-1,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["72f162ba679435c38e7264de6a9d138df82d137d1a0f52cf21a701985a09ce0d","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_gpu_b1_r2048_p-1_step1","batch":1,"rows":2048,"prev_len":-1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_gpu_b1_r2048_p0_step0","batch":1,"rows":2048,"prev_len":0,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["72f162ba679435c38e7264de6a9d138df82d137d1a0f52cf21a701985a09ce0d","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_gpu_b1_r2048_p0_step1","batch":1,"rows":2048,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_gpu_b1_r2048_p1_step0","batch":1,"rows":2048,"prev_len":1,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["72f162ba679435c38e7264de6a9d138df82d137d1a0f52cf21a701985a09ce0d","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_gpu_b1_r2048_p1_step1","batch":1,"rows":2048,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_gpu_b1_r2048_p2_step0","batch":1,"rows":2048,"prev_len":2,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["e2cb22f8665c981212f58db1fd3ec055783585a0b44fdff60efa82ab362bef80","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_gpu_b1_r2048_p2_step1","batch":1,"rows":2048,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_gpu_b1_r2048_p5_step0","batch":1,"rows":2048,"prev_len":5,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["227439da6df390ddbc38d72e4f5aa202ffe8deb84f2a9efd977c2e1a5d14a259","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_gpu_b1_r2048_p5_step1","batch":1,"rows":2048,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_gpu_b2_r1_p-1_step0","batch":2,"rows":1,"prev_len":-1,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["6dca8a63f1d3e944e395bbaf0e10a5afd383babad891865d6b271b3e554ad4e2","1b7ce98622b07bea26907fa316c8b00f10d7c54ee5f0c6199d22374411872b87"]} +{"kernel":"ngram_gpu_b2_r1_p-1_step1","batch":2,"rows":1,"prev_len":-1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["c28843ac4c8638edac1d1dd38f4acd4784bf1b764c65e38c3e4f3fa73318d787","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_gpu_b2_r1_p0_step0","batch":2,"rows":1,"prev_len":0,"step":0,"result_shape":[2,1,16],"history_shape":[2,1],"sha256":["6dca8a63f1d3e944e395bbaf0e10a5afd383babad891865d6b271b3e554ad4e2","3154b6f19758af6332a6f5e769b0691b63f701fc87da887ae957b24c42934fe1"]} +{"kernel":"ngram_gpu_b2_r1_p0_step1","batch":2,"rows":1,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["c28843ac4c8638edac1d1dd38f4acd4784bf1b764c65e38c3e4f3fa73318d787","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_gpu_b2_r1_p1_step0","batch":2,"rows":1,"prev_len":1,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["f9c06d9c62b6c17338769e5e01c1678af2263ffd7d0cafae05c0703c27f3c54b","d1b5ee7cb9c74876f2b52d9c750b59c999535da404af7c50eb10c061ffc23f6f"]} +{"kernel":"ngram_gpu_b2_r1_p1_step1","batch":2,"rows":1,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["cb494a465e5fd30a674cfaedb71addfda6651fca39fe948f93ee497ca5087a98","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_gpu_b2_r1_p2_step0","batch":2,"rows":1,"prev_len":2,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["928dd5314454141f1479606234c7ba455f238292c83ae5b636cdaf53ebab5c59","c8a634f1be973d9ec859fa3c48248ca4e4f5f5cbaebb674f996c8e9d8b8ce969"]} +{"kernel":"ngram_gpu_b2_r1_p2_step1","batch":2,"rows":1,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["474c86948cce7237a1e0e449013fce1dc8767cca6970d09fae9fc2f541d02ca0","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_gpu_b2_r1_p5_step0","batch":2,"rows":1,"prev_len":5,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b19bba3d058f6cb8b70e036ebc88996d89ae1dcd721840ff23a7c02a02fa174","2e1fbb7d4fea43b2cbe39a005f0c420ca0b8dc0996a2501e6a880e705c8c5fa7"]} +{"kernel":"ngram_gpu_b2_r1_p5_step1","batch":2,"rows":1,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["81b895067bf679f152d15c5f008160fd1897bb4fe73a3387f16653c2423e30ee","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_gpu_b2_r4_p-1_step0","batch":2,"rows":4,"prev_len":-1,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["299bba4d3c333b3014cc79d4f474aac806329a973d4112c418bc34fb42422885","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_gpu_b2_r4_p-1_step1","batch":2,"rows":4,"prev_len":-1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_gpu_b2_r4_p0_step0","batch":2,"rows":4,"prev_len":0,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["299bba4d3c333b3014cc79d4f474aac806329a973d4112c418bc34fb42422885","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_gpu_b2_r4_p0_step1","batch":2,"rows":4,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_gpu_b2_r4_p1_step0","batch":2,"rows":4,"prev_len":1,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["28a92555953841c46e879394a622206f6ee9a4227111259d5162c9a714d78e1a","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_gpu_b2_r4_p1_step1","batch":2,"rows":4,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_gpu_b2_r4_p2_step0","batch":2,"rows":4,"prev_len":2,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["b782645ea64caea9749343241cd1f7f422691d40db406456fad5eb1db9c860be","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_gpu_b2_r4_p2_step1","batch":2,"rows":4,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_gpu_b2_r4_p5_step0","batch":2,"rows":4,"prev_len":5,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["475d177e69d563709ac7c163772b1f0f7a841f617c02c5f8165fe9ae7d53302d","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_gpu_b2_r4_p5_step1","batch":2,"rows":4,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_gpu_b2_r2048_p-1_step0","batch":2,"rows":2048,"prev_len":-1,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["22e58d7be3001b58fb98b1a675502b637eab8ff64c03a3a4256e24abcb60455e","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_gpu_b2_r2048_p-1_step1","batch":2,"rows":2048,"prev_len":-1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_gpu_b2_r2048_p0_step0","batch":2,"rows":2048,"prev_len":0,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["22e58d7be3001b58fb98b1a675502b637eab8ff64c03a3a4256e24abcb60455e","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_gpu_b2_r2048_p0_step1","batch":2,"rows":2048,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_gpu_b2_r2048_p1_step0","batch":2,"rows":2048,"prev_len":1,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["9bbf94df85365d9513a72961c270b05fe4669d0d5b66e8cebcd79f9f54659aa6","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_gpu_b2_r2048_p1_step1","batch":2,"rows":2048,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_gpu_b2_r2048_p2_step0","batch":2,"rows":2048,"prev_len":2,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["a20ce0558d54bc424f982d7e0be341f0b63a8b72d21ff5615b8ff89a5b30e35e","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_gpu_b2_r2048_p2_step1","batch":2,"rows":2048,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_gpu_b2_r2048_p5_step0","batch":2,"rows":2048,"prev_len":5,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["1fb0d777cf4a85cae8eeab041126f70aae7b806d80010b37a8aa8f0e4e17d007","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_gpu_b2_r2048_p5_step1","batch":2,"rows":2048,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} diff --git a/tests/fixtures/mtplx-ngram-resident.jsonl b/tests/fixtures/mtplx-ngram-resident.jsonl new file mode 100644 index 0000000..249d8fe --- /dev/null +++ b/tests/fixtures/mtplx-ngram-resident.jsonl @@ -0,0 +1,162 @@ +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_vector","sha256":["25423662d2ae806cee9416dde75047188c8566199c703d8615157a0d123a4e58"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_scalar","sha256":["dd1e52fca50e5073d9f6d2879e78962c585182cdc5cfbcf65b7ee045b67e5e96"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_matrix","sha256":["8e371af151c5bdf9439a8fe6f7f873fc166b73c36708a06c3282efa28ab135bd"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_head3","sha256":["f82e96151929d0afef0bfeb79d5549673f8c64cf621938f975c8c40c80a954fd"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_head4","sha256":["76030cdd80c0927b268413913b6058f9b4c4dea24ed373019669fe0e1c6fb7f6"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_slice","sha256":["025c7d89d6d6bb74688e9545c1334d09fdf9b2c2a352e7dd3f48a2043b198518"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w8_plain_broadcast","sha256":["840571856d797666e7c064cae6a2ed58897fd02c88fd2a3f8ee2360fcbe77612"],"dtype":"bfloat16","bits":0,"width":8,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_vector","sha256":["9f711e87c748479e4c170326fec4f073aa3f40886b0944ef635e6143fd066d03"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_scalar","sha256":["65271aa438079fb2782b73c0b20e0d122a9ee6535222542768ffab377aa4e62e"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_matrix","sha256":["51c1e7cd2df2aad00d4f0795cf6ec42aa9d9752e2ef5259003951faf68c164b1"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_head3","sha256":["00706365c2ce3039543723dd438d7261d2cde0aabcb3a6f54f99a0e6cf2bbee6"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_head4","sha256":["5e216cde18c99cce2de3852dcd4d9aed8e4ef50b02650c06b4e2c29bec925901"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_slice","sha256":["9eea59e2458c2887349a414b8e4c1ef7984929642f1128080f647faff081a22f"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w8_transpose_broadcast","sha256":["51e514f1c3de3da41db29dcd459d7fca6c0c8ad4d14e3137a45aba6958602381"],"dtype":"bfloat16","bits":0,"width":8,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_vector","sha256":["996e7c1084f85d642f708c0240a4f16f9118336fe45f18b3bb3ece064c0376c1"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_scalar","sha256":["2837e1a703e366c5c42bab538a1ac1c906788f69fde96ae6b0516a7d816f0980"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_matrix","sha256":["cb71416a3474e45166c3e93d7d0b96a6756c9ecfd352f6a2ed7a062e82ecbce9"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_head3","sha256":["2f0e29992276002b7d094c3eb6f8089a0d3bc7ad58796e577b04bd5810ac74be"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_head4","sha256":["a464b789325617be77aba2d5ed9ce7e3f85824708cdf2273724df4a1d6491930"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_slice","sha256":["d70274ac3a93e5bcbaeb36b82fd4b02045920cda0503f9f08266ea34a8a176ed"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w8_offset_broadcast","sha256":["05e77f058b90de20e1f77e904bd2129cc768c777994f9abd04292cc9365868c6"],"dtype":"bfloat16","bits":0,"width":8,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_vector","sha256":["d63123952214e89b8508012c3f906ed5a93efb31d3a3955216b94bb813aa7785"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_scalar","sha256":["5c17b322dbb9bebc42b3186b4e5d8b35b695602aae4d86345ea55714b7adbdac"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_matrix","sha256":["12dfa1d6cd1ecd6c5fa86b4f7cadb599549689beed0176cce3cecbc892812e0d"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_head3","sha256":["c305df589c23287ef043a124e66d975005afaafd026c65ce4827844f0633998c"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_head4","sha256":["9534418438125a96289ac22dbb79cfced4022fec1e61c1818501053bda3210cc"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_slice","sha256":["d95ccf0440114a48a74e7f364ba1182b5cfc228b979369bb038040f27ba1adba"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w9_plain_broadcast","sha256":["7d3d8bbfda1f89c28d58d7e5ec945ec7408debd2c01e2b9788a0d31f45d8e7bc"],"dtype":"bfloat16","bits":0,"width":9,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_vector","sha256":["0a6f5c9d75d435cdf20b7c009fdc7f73a7e97d9c32032700f6e2877fdc17e6de"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_scalar","sha256":["aa4741339faf8770c076f3585ff3b6b1bbfd52642a8b7fa86353b6ec2a2899df"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_matrix","sha256":["5b820ae7aecb266ea8d5af67a1b65602c10f774fc1758134a78307ccbadd61f1"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_head3","sha256":["41aa2c0bb5783343ec5791af4adaa980b8a7bac3db2224b6ab518ce03733bde1"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_head4","sha256":["89b9ccb30f6ea0b75689f180b7c74c3b7ff5b0503d9d124ce2baa2da45fb75cc"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_slice","sha256":["3b15e23b19eec4778b935eb326752312207c3530dfb2640d51eff7afcca55d00"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w9_transpose_broadcast","sha256":["aedc48089a7a032185419ed14322e99cec917fc9c1ccc1feb62b012725f0a782"],"dtype":"bfloat16","bits":0,"width":9,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_vector","sha256":["1be447dab57458bb083d2f0623755da4358a756919421cb70c9d6b3d9ab23e81"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_scalar","sha256":["7118131f83cb9151b16643728ac3567622792fa5e4f53d2cccc21c3059338c8e"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_matrix","sha256":["b2bd5b281ac753f346ff1f6ae5fef4938fab202fba8cbb7a7274630b8bb081ea"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_head3","sha256":["9280f4cae04e14440b130ff03bfd82a8cfe4d864056f1be53ada18035ed54f0a"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_head4","sha256":["891cef70a5bdbd7fb18be373c4d1bf2c3e1d13317b1b295eb628e66c64798c99"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_slice","sha256":["a1104b1900a286140fa7daf28242cfe1f63d6b354ad92f9fc698567a5bb43fde"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w9_offset_broadcast","sha256":["6b8d52130ff1dd2a3f2e304fe4cd430327b791fb1b7e205cec2aa8f0187346d9"],"dtype":"bfloat16","bits":0,"width":9,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_vector","sha256":["9909a875cbc01a08ed0ba9ea3e4c885c757279a9397c4462787b1fab5ef7a529"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_scalar","sha256":["c86894453b4a78dddd39047e8a0d03571bf5c63736cc811a026f2e1e733334ef"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_matrix","sha256":["90baa2277b7ab239d9049162b6760c112d4b0842756f9476de9fe3286ec5c2da"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_head3","sha256":["17a8ef915e4105f4f2d055990532c904dd257185ee6a8ca926bba6635893994c"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_head4","sha256":["56f8f59d88efd2ceeead4791da73e0f3d869609c617c6557ff98020725bde646"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_slice","sha256":["052fa3c626c32b920f355b0218accc8d858d4b40c2817454066bca5c1577de10"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w160_plain_broadcast","sha256":["95ab40399b3fb7a0eae5940830950f1d87aaad01d9722d6bd4bfbeeac3aa9e02"],"dtype":"bfloat16","bits":0,"width":160,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_vector","sha256":["3a131814d98c7c8c6c1182c2ac4fb4aa518b16127c7b1437dee4be406f12c5da"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_scalar","sha256":["a149ef7190cc75fe00c722d2724647ab7c53dd2c4a0fa741b77682af8b3f99cb"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_matrix","sha256":["8e26433e6d4b7b8fa04f3a5c877fe9379ebe05bdf8b92979e8d6cc7642052dc6"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_head3","sha256":["3dde23998d3ddc256dc3f12485313b94d743cdf19f7f306acde056e01206f12d"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_head4","sha256":["cccde31ad54135b877da158b14644ed9b746765add04542d30d866ce631419bf"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_slice","sha256":["a4a531440b4b3455090a9e8444c235283ad876e13c4bd69beacc1fa4e7ee3609"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w160_transpose_broadcast","sha256":["73f755ae0ffaaafaffc0fa9f2c58c7438cc7402d55110f0688d0c8dd3080a9ee"],"dtype":"bfloat16","bits":0,"width":160,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_vector","sha256":["91d86de474fcd66e8f23f93deb0f444ccd9976663580c31dc57199295f6a135f"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_scalar","sha256":["dcc00f9688df63b884319ceb85590f9daf2268fbf26efade5f0e18cd82dc8261"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_matrix","sha256":["45494cec757c080fae9d7dc2e08e08dfbff073699aaed5f9c4efa057c5868318"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_head3","sha256":["4b5876a90d9e852e1fb54b16938f128e013453fe77a3bc5a3d312c553c4162a6"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_head4","sha256":["05ff255e194532dd3d036cdbecc9d20a0a8522058164479c2d2b6c58e03ee9ab"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_slice","sha256":["285447c45508461487273b4abff1576baef913299fe6806b1e2efe685c12dddc"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b0_w160_offset_broadcast","sha256":["da6df6fd251b35ae96fa8e28b910f8fbfa8206f08a5d9d8e9d3c8c1fc2fce1ec"],"dtype":"bfloat16","bits":0,"width":160,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_vector","sha256":["2689bd4578b622091e095d908ba26224500dd938335b8f26bacd75bc4aadb3ba"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_matrix","sha256":["2641a41fff58af08fbd59a8288bf2ad04e45facf9633b7313edee029ec130aac"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_head3","sha256":["31a7e98d81e6c0864c3b835d5cc3fbd90676d426d0c77fe5e9bca04b6959d126"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_head4","sha256":["bccec2758b384add9d68f6e58af0356eae7560e0576a1623f99362b3071e248b"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_slice","sha256":["24e9c4a5bc3355edff088345362338da4372363573239bed457995a12c5412d0"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b4_w160_plain_broadcast","sha256":["8de4260ed78da6c994fccc9a7d339962ce294dc558cfb5b1ec21fc2d7b2b25c8"],"dtype":"bfloat16","bits":4,"width":160,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_vector","sha256":["ea2aa22854f7f076b0b4545c8a4123129451fe9948a3dd39724cde22606fc8dc"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_matrix","sha256":["3fbacb5cdc7f22f24b741da1832d5a4f810f95432d9b377e14d993eac16d4c9b"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_head3","sha256":["8058fda7dc449c5c290591521fb5e240588f4e2b0a5f7a5e1b8900924688b426"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_head4","sha256":["b0e03da23bac3b13d25c3d11000ca08104086981980d76e108d6996d1fb25425"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_slice","sha256":["d613fe2af74c718fedbda477cf2dc41abffc8638040ac5946ebf4f997c6dca9c"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b4_w160_transpose_broadcast","sha256":["375f2f58b8426b3136121492973846435704645d116c4014e10f56ed116fef88"],"dtype":"bfloat16","bits":4,"width":160,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_vector","sha256":["f8ac2dce0802671ed965b377e74f42e90529510e4a21230ecdd2a06777df74cf"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_matrix","sha256":["7ab70893263724d043aa6aaae37db3aa0e097b81eded6a83f457dc48d5806516"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_head3","sha256":["76b15736a5a3dc514e1e934260518049dd3c78515396ebc5a0e4b6e1bb756938"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_head4","sha256":["403503e7a9a00e48d386759edff433b735aa38bb04e9fb962a4a280228c6ddcb"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_slice","sha256":["e971f19ee02b2c1df9475b57b90794a4b5c6c2af43032710fe9ed40abb102f80"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_bfloat16_b4_w160_offset_broadcast","sha256":["f6de808d76e8b467300345a53204c8d60ed43b2e1723fa1ba26158da9bf0fe97"],"dtype":"bfloat16","bits":4,"width":160,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w8_plain_vector","sha256":["25423662d2ae806cee9416dde75047188c8566199c703d8615157a0d123a4e58"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w8_plain_scalar","sha256":["dd1e52fca50e5073d9f6d2879e78962c585182cdc5cfbcf65b7ee045b67e5e96"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w8_plain_matrix","sha256":["8e371af151c5bdf9439a8fe6f7f873fc166b73c36708a06c3282efa28ab135bd"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w8_plain_head3","sha256":["f82e96151929d0afef0bfeb79d5549673f8c64cf621938f975c8c40c80a954fd"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w8_plain_head4","sha256":["76030cdd80c0927b268413913b6058f9b4c4dea24ed373019669fe0e1c6fb7f6"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w8_plain_slice","sha256":["025c7d89d6d6bb74688e9545c1334d09fdf9b2c2a352e7dd3f48a2043b198518"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w8_plain_broadcast","sha256":["840571856d797666e7c064cae6a2ed58897fd02c88fd2a3f8ee2360fcbe77612"],"dtype":"float16","bits":0,"width":8,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_vector","sha256":["9f711e87c748479e4c170326fec4f073aa3f40886b0944ef635e6143fd066d03"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_scalar","sha256":["65271aa438079fb2782b73c0b20e0d122a9ee6535222542768ffab377aa4e62e"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_matrix","sha256":["51c1e7cd2df2aad00d4f0795cf6ec42aa9d9752e2ef5259003951faf68c164b1"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_head3","sha256":["00706365c2ce3039543723dd438d7261d2cde0aabcb3a6f54f99a0e6cf2bbee6"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_head4","sha256":["5e216cde18c99cce2de3852dcd4d9aed8e4ef50b02650c06b4e2c29bec925901"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_slice","sha256":["9eea59e2458c2887349a414b8e4c1ef7984929642f1128080f647faff081a22f"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w8_transpose_broadcast","sha256":["51e514f1c3de3da41db29dcd459d7fca6c0c8ad4d14e3137a45aba6958602381"],"dtype":"float16","bits":0,"width":8,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w8_offset_vector","sha256":["996e7c1084f85d642f708c0240a4f16f9118336fe45f18b3bb3ece064c0376c1"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w8_offset_scalar","sha256":["2837e1a703e366c5c42bab538a1ac1c906788f69fde96ae6b0516a7d816f0980"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w8_offset_matrix","sha256":["cb71416a3474e45166c3e93d7d0b96a6756c9ecfd352f6a2ed7a062e82ecbce9"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w8_offset_head3","sha256":["2f0e29992276002b7d094c3eb6f8089a0d3bc7ad58796e577b04bd5810ac74be"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w8_offset_head4","sha256":["a464b789325617be77aba2d5ed9ce7e3f85824708cdf2273724df4a1d6491930"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w8_offset_slice","sha256":["d70274ac3a93e5bcbaeb36b82fd4b02045920cda0503f9f08266ea34a8a176ed"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w8_offset_broadcast","sha256":["05e77f058b90de20e1f77e904bd2129cc768c777994f9abd04292cc9365868c6"],"dtype":"float16","bits":0,"width":8,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w9_plain_vector","sha256":["d63123952214e89b8508012c3f906ed5a93efb31d3a3955216b94bb813aa7785"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w9_plain_scalar","sha256":["5c17b322dbb9bebc42b3186b4e5d8b35b695602aae4d86345ea55714b7adbdac"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w9_plain_matrix","sha256":["12dfa1d6cd1ecd6c5fa86b4f7cadb599549689beed0176cce3cecbc892812e0d"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w9_plain_head3","sha256":["c305df589c23287ef043a124e66d975005afaafd026c65ce4827844f0633998c"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w9_plain_head4","sha256":["9534418438125a96289ac22dbb79cfced4022fec1e61c1818501053bda3210cc"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w9_plain_slice","sha256":["d95ccf0440114a48a74e7f364ba1182b5cfc228b979369bb038040f27ba1adba"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w9_plain_broadcast","sha256":["7d3d8bbfda1f89c28d58d7e5ec945ec7408debd2c01e2b9788a0d31f45d8e7bc"],"dtype":"float16","bits":0,"width":9,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_vector","sha256":["0a6f5c9d75d435cdf20b7c009fdc7f73a7e97d9c32032700f6e2877fdc17e6de"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_scalar","sha256":["aa4741339faf8770c076f3585ff3b6b1bbfd52642a8b7fa86353b6ec2a2899df"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_matrix","sha256":["5b820ae7aecb266ea8d5af67a1b65602c10f774fc1758134a78307ccbadd61f1"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_head3","sha256":["41aa2c0bb5783343ec5791af4adaa980b8a7bac3db2224b6ab518ce03733bde1"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_head4","sha256":["89b9ccb30f6ea0b75689f180b7c74c3b7ff5b0503d9d124ce2baa2da45fb75cc"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_slice","sha256":["3b15e23b19eec4778b935eb326752312207c3530dfb2640d51eff7afcca55d00"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w9_transpose_broadcast","sha256":["aedc48089a7a032185419ed14322e99cec917fc9c1ccc1feb62b012725f0a782"],"dtype":"float16","bits":0,"width":9,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w9_offset_vector","sha256":["1be447dab57458bb083d2f0623755da4358a756919421cb70c9d6b3d9ab23e81"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w9_offset_scalar","sha256":["7118131f83cb9151b16643728ac3567622792fa5e4f53d2cccc21c3059338c8e"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w9_offset_matrix","sha256":["b2bd5b281ac753f346ff1f6ae5fef4938fab202fba8cbb7a7274630b8bb081ea"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w9_offset_head3","sha256":["9280f4cae04e14440b130ff03bfd82a8cfe4d864056f1be53ada18035ed54f0a"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w9_offset_head4","sha256":["891cef70a5bdbd7fb18be373c4d1bf2c3e1d13317b1b295eb628e66c64798c99"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w9_offset_slice","sha256":["a1104b1900a286140fa7daf28242cfe1f63d6b354ad92f9fc698567a5bb43fde"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w9_offset_broadcast","sha256":["6b8d52130ff1dd2a3f2e304fe4cd430327b791fb1b7e205cec2aa8f0187346d9"],"dtype":"float16","bits":0,"width":9,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w160_plain_vector","sha256":["9909a875cbc01a08ed0ba9ea3e4c885c757279a9397c4462787b1fab5ef7a529"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w160_plain_scalar","sha256":["c86894453b4a78dddd39047e8a0d03571bf5c63736cc811a026f2e1e733334ef"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w160_plain_matrix","sha256":["90baa2277b7ab239d9049162b6760c112d4b0842756f9476de9fe3286ec5c2da"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w160_plain_head3","sha256":["17a8ef915e4105f4f2d055990532c904dd257185ee6a8ca926bba6635893994c"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w160_plain_head4","sha256":["56f8f59d88efd2ceeead4791da73e0f3d869609c617c6557ff98020725bde646"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w160_plain_slice","sha256":["052fa3c626c32b920f355b0218accc8d858d4b40c2817454066bca5c1577de10"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w160_plain_broadcast","sha256":["95ab40399b3fb7a0eae5940830950f1d87aaad01d9722d6bd4bfbeeac3aa9e02"],"dtype":"float16","bits":0,"width":160,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_vector","sha256":["3a131814d98c7c8c6c1182c2ac4fb4aa518b16127c7b1437dee4be406f12c5da"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_scalar","sha256":["a149ef7190cc75fe00c722d2724647ab7c53dd2c4a0fa741b77682af8b3f99cb"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_matrix","sha256":["8e26433e6d4b7b8fa04f3a5c877fe9379ebe05bdf8b92979e8d6cc7642052dc6"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_head3","sha256":["3dde23998d3ddc256dc3f12485313b94d743cdf19f7f306acde056e01206f12d"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_head4","sha256":["cccde31ad54135b877da158b14644ed9b746765add04542d30d866ce631419bf"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_slice","sha256":["a4a531440b4b3455090a9e8444c235283ad876e13c4bd69beacc1fa4e7ee3609"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w160_transpose_broadcast","sha256":["73f755ae0ffaaafaffc0fa9f2c58c7438cc7402d55110f0688d0c8dd3080a9ee"],"dtype":"float16","bits":0,"width":160,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b0_w160_offset_vector","sha256":["91d86de474fcd66e8f23f93deb0f444ccd9976663580c31dc57199295f6a135f"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b0_w160_offset_scalar","sha256":["dcc00f9688df63b884319ceb85590f9daf2268fbf26efade5f0e18cd82dc8261"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"scalar"} +{"kernel":"ngram_resident_float16_b0_w160_offset_matrix","sha256":["45494cec757c080fae9d7dc2e08e08dfbff073699aaed5f9c4efa057c5868318"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b0_w160_offset_head3","sha256":["4b5876a90d9e852e1fb54b16938f128e013453fe77a3bc5a3d312c553c4162a6"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b0_w160_offset_head4","sha256":["05ff255e194532dd3d036cdbecc9d20a0a8522058164479c2d2b6c58e03ee9ab"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b0_w160_offset_slice","sha256":["285447c45508461487273b4abff1576baef913299fe6806b1e2efe685c12dddc"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b0_w160_offset_broadcast","sha256":["da6df6fd251b35ae96fa8e28b910f8fbfa8206f08a5d9d8e9d3c8c1fc2fce1ec"],"dtype":"float16","bits":0,"width":160,"layout":"offset","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b4_w160_plain_vector","sha256":["776f9ecf1eaf1e61c26b4bbda42c887fb8a9bc75886095a976494a1d35ff2684"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b4_w160_plain_matrix","sha256":["2738fa1a643bd9735a9a913f18c93904c6695f706f0d59d97d40f607f603cc6e"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b4_w160_plain_head3","sha256":["2c5ae90d4f54ae4421b0d6946ca6e18408d57baa3f35fbfe8c23c6af8d45d7c7"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b4_w160_plain_head4","sha256":["a7e2f91ab90fe35aa470828033368559f96f59bcd323eac80e94fb24876b7de0"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b4_w160_plain_slice","sha256":["1a2bd724ab1aa614168bb5c7d6f913700233b476f0ad8131f2d003988ed52ba6"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b4_w160_plain_broadcast","sha256":["ab21ffaf30a940c282167600cd0f651aaf35cf45ecfafd2046381baeacaac455"],"dtype":"float16","bits":4,"width":160,"layout":"plain","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_vector","sha256":["3bf1281eed51e1ae67c6e021f128f26a85d941bb2dfe03f0baf036b45b9f5fdf"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_matrix","sha256":["5996ce872226ca51662e39206b0792b16e50a3e0209408d9ed06bc8e42ecf134"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_head3","sha256":["bee30f973477e75cbc139b587bab9cc4ef31d75d91974311ad41749543ab4762"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_head4","sha256":["b3d539194d9765df9cb6a8b16adb08ddd077eda37b35c129fde13f5daf179c66"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_slice","sha256":["63446ac7786f7e340b6b980a08aea8a3829217921ebc5fb9c93bc465f8ea1eca"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b4_w160_transpose_broadcast","sha256":["a23a8e2d94b293733d4d0b8b1fd30b1d5de9b47cc4ec890760bfa2dc6287a1d5"],"dtype":"float16","bits":4,"width":160,"layout":"transpose","ids_layout":"broadcast"} +{"kernel":"ngram_resident_float16_b4_w160_offset_vector","sha256":["d11d29643a216703afa7b5d002ef8e61d559a5f2b09c2f132f871976c172af8c"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"vector"} +{"kernel":"ngram_resident_float16_b4_w160_offset_matrix","sha256":["e4894d358b1ec3b77c15caff3e5e9ae6de62ada4b75a91de8061a54e451a9751"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"matrix"} +{"kernel":"ngram_resident_float16_b4_w160_offset_head3","sha256":["f15036207caec1f96d3a84ed0e0767d280b66005d577b41bdbe42dd295a03da8"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"head3"} +{"kernel":"ngram_resident_float16_b4_w160_offset_head4","sha256":["53fe0e824c89e20df6348bd7034b6be10cba392d04a0188a2654b3e28efdf7d7"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"head4"} +{"kernel":"ngram_resident_float16_b4_w160_offset_slice","sha256":["740e8eac8c24f9ac7885188c018079495e0628c4b7a4e8dab1bdaca63b43a364"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"slice"} +{"kernel":"ngram_resident_float16_b4_w160_offset_broadcast","sha256":["0fd29b693f2ca43e94ccf4079a359d2b14bff444b79cf60e2e3b6e315664ed18"],"dtype":"float16","bits":4,"width":160,"layout":"offset","ids_layout":"broadcast"} diff --git a/tests/fixtures/mtplx-ngram-rows.jsonl b/tests/fixtures/mtplx-ngram-rows.jsonl new file mode 100644 index 0000000..09d27ed --- /dev/null +++ b/tests/fixtures/mtplx-ngram-rows.jsonl @@ -0,0 +1,65 @@ +{"contract": true, "multipliers": [23703573157769, 20109073645365, 8052911324071], "sizes": [20000003, 20000023, 20000033, 20000047, 20000059, 20000063, 20000069, 20000077, 20000081, 20000093, 20000107, 20000147, 20000153, 20000159, 20000161, 20000171], "offsets": [0, 20000003, 40000026, 60000059, 80000106, 100000165, 120000228, 140000297, 160000374, 180000455, 200000548, 220000655, 240000802, 260000955, 280001114, 300001275], "eos": 248044} +{"kernel":"ngram_rows_b1_r0_p0_step0","batch":1,"rows":0,"prev_len":0,"step":0,"result_shape":[1,0,16],"history_shape":[1,0],"sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]} +{"kernel":"ngram_rows_b1_r0_p0_step1","batch":1,"rows":0,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,1],"sha256":["284939c9569a8439894096e3060751bc61b0f2c0753e8ba3743bf2c1cbbed50a","7c9fa136d4413fa6173637e883b6998d32e1d675f88cddff9dcbcf331820f4b8"]} +{"kernel":"ngram_rows_b1_r0_p1_step0","batch":1,"rows":0,"prev_len":1,"step":0,"result_shape":[1,1,16],"history_shape":[1,1],"sha256":["f5a106fc7206725a40ab945059c7d7f98b281732786916711e93eaac8eba53f1","d3548f352d73bb073982b4fd168508d299ec939469f22b2030b2b4a5a449cef1"]} +{"kernel":"ngram_rows_b1_r0_p1_step1","batch":1,"rows":0,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["284939c9569a8439894096e3060751bc61b0f2c0753e8ba3743bf2c1cbbed50a","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r0_p2_step0","batch":1,"rows":0,"prev_len":2,"step":0,"result_shape":[1,2,16],"history_shape":[1,2],"sha256":["6828ae362163e8fc1e352ed84481a65cc63bf4e62bf0288674fac3845bd246cc","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_rows_b1_r0_p2_step1","batch":1,"rows":0,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_rows_b1_r0_p5_step0","batch":1,"rows":0,"prev_len":5,"step":0,"result_shape":[1,5,16],"history_shape":[1,2],"sha256":["77ea0c2220dfce3f996b7ce597ddb2297ad61ddc5d50ec2aa88a78bc2fa56df0","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r0_p5_step1","batch":1,"rows":0,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_rows_b1_r1_p0_step0","batch":1,"rows":1,"prev_len":0,"step":0,"result_shape":[1,1,16],"history_shape":[1,1],"sha256":["7ac2610ed30647a49322284bb2c41477ade4031cbb59ccfde7cf6e29e5891216","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"]} +{"kernel":"ngram_rows_b1_r1_p0_step1","batch":1,"rows":1,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_rows_b1_r1_p1_step0","batch":1,"rows":1,"prev_len":1,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["7ac2610ed30647a49322284bb2c41477ade4031cbb59ccfde7cf6e29e5891216","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_rows_b1_r1_p1_step1","batch":1,"rows":1,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["9966730947a51bb7c16701df43e4025d9ac7bf1ef01c30b07b4ab70f5301aa1c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_rows_b1_r1_p2_step0","batch":1,"rows":1,"prev_len":2,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["5263594c39b7a6899fe3e81e5d1f23f550767852283820c622137f9c82431505","374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb"]} +{"kernel":"ngram_rows_b1_r1_p2_step1","batch":1,"rows":1,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["0faf07026317d5f4651b6004395e6c5d77514f0c205cae7f6588001d40e2884c","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_rows_b1_r1_p5_step0","batch":1,"rows":1,"prev_len":5,"step":0,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["f2900e78ed163c6ab6729ce7ac3e9619a11414125800d2b1829506e65a177f1e","4cbbd8ca5215b8d161aec181a74b694f4e24b001d5b081dc0030ed797a8973e0"]} +{"kernel":"ngram_rows_b1_r1_p5_step1","batch":1,"rows":1,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["6d13a5d55668595536f344e2cedbb163c583734515c7ffd2eed4a387b0171f44","9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db"]} +{"kernel":"ngram_rows_b1_r4_p0_step0","batch":1,"rows":4,"prev_len":0,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["63b6df3c75a1274c47362483c9a8535a0bad9cfa900d8cd37f0416c1e3ae69ae","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r4_p0_step1","batch":1,"rows":4,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_rows_b1_r4_p1_step0","batch":1,"rows":4,"prev_len":1,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["63b6df3c75a1274c47362483c9a8535a0bad9cfa900d8cd37f0416c1e3ae69ae","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r4_p1_step1","batch":1,"rows":4,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_rows_b1_r4_p2_step0","batch":1,"rows":4,"prev_len":2,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["556147ba93f649fc043a9311fd651a0794cea6b24bdfbd23680f6f3f9fbd9178","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r4_p2_step1","batch":1,"rows":4,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_rows_b1_r4_p5_step0","batch":1,"rows":4,"prev_len":5,"step":0,"result_shape":[1,4,16],"history_shape":[1,2],"sha256":["97139a1a642b17d106f6e8fe664bf1c78797624aaa20c24decac72fc897abe0c","b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91"]} +{"kernel":"ngram_rows_b1_r4_p5_step1","batch":1,"rows":4,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["cad1ad13b63379bc8e224397c597b24276ba465590c69974b2e4a455439908b8","814dd7b9784d57c15b9c2972e9b4fd6cf7e164f8162a934bdb2452a413dab1f7"]} +{"kernel":"ngram_rows_b1_r2048_p0_step0","batch":1,"rows":2048,"prev_len":0,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["72f162ba679435c38e7264de6a9d138df82d137d1a0f52cf21a701985a09ce0d","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_rows_b1_r2048_p0_step1","batch":1,"rows":2048,"prev_len":0,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_rows_b1_r2048_p1_step0","batch":1,"rows":2048,"prev_len":1,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["72f162ba679435c38e7264de6a9d138df82d137d1a0f52cf21a701985a09ce0d","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_rows_b1_r2048_p1_step1","batch":1,"rows":2048,"prev_len":1,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_rows_b1_r2048_p2_step0","batch":1,"rows":2048,"prev_len":2,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["e2cb22f8665c981212f58db1fd3ec055783585a0b44fdff60efa82ab362bef80","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_rows_b1_r2048_p2_step1","batch":1,"rows":2048,"prev_len":2,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_rows_b1_r2048_p5_step0","batch":1,"rows":2048,"prev_len":5,"step":0,"result_shape":[1,2048,16],"history_shape":[1,2],"sha256":["227439da6df390ddbc38d72e4f5aa202ffe8deb84f2a9efd977c2e1a5d14a259","8af46ca4f0af8149129d63ddc7679f8d5056d9b2afe3d68eaea417bdd8826ecb"]} +{"kernel":"ngram_rows_b1_r2048_p5_step1","batch":1,"rows":2048,"prev_len":5,"step":1,"result_shape":[1,1,16],"history_shape":[1,2],"sha256":["b912e3cc1525085469bce9816e8887bbacd0ae5dc9cfb23688cacab120348b34","3bda9b96a3f3219d68e17d843912e8abc3d0176c11216e841a0cddf086c91c48"]} +{"kernel":"ngram_rows_b2_r0_p0_step0","batch":2,"rows":0,"prev_len":0,"step":0,"result_shape":[2,0,16],"history_shape":[2,0],"sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]} +{"kernel":"ngram_rows_b2_r0_p0_step1","batch":2,"rows":0,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,1],"sha256":["b8cdc130f1cd00f70d9002eba10233aca7c334c83777550f7bcc432e9e4fdd6c","8bfd453c13278f5fe3040b806e4234aa6aea3377f3abf6ca19ab74dad908b7ae"]} +{"kernel":"ngram_rows_b2_r0_p1_step0","batch":2,"rows":0,"prev_len":1,"step":0,"result_shape":[2,1,16],"history_shape":[2,1],"sha256":["6828ae362163e8fc1e352ed84481a65cc63bf4e62bf0288674fac3845bd246cc","2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb"]} +{"kernel":"ngram_rows_b2_r0_p1_step1","batch":2,"rows":0,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["77e669d2d0591788b20293b9e3d7e84ee389fdff86489c24d828c44190433c6d","abda7adf505b93be6222da6d475cc4c055db55fd04206d79ac7950f45f80b68f"]} +{"kernel":"ngram_rows_b2_r0_p2_step0","batch":2,"rows":0,"prev_len":2,"step":0,"result_shape":[2,2,16],"history_shape":[2,2],"sha256":["9d5361cc42f2d29a4c135ec5f93aa86f8410bf87c4b9cf32fe5214a481247709","5ec9bb1c66c9f4e6c32a3a45e76bce230240ce9be7a1f02d655aef89a522ad09"]} +{"kernel":"ngram_rows_b2_r0_p2_step1","batch":2,"rows":0,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["5ec2ee6e5323b7a580929255a55af6dbfa97d90aff2a0d862609668d4c6d0445","7a17cdd4902fcfbb4dc46f7b6609aec590b364353c0fd36e542cf1457b3db0a2"]} +{"kernel":"ngram_rows_b2_r0_p5_step0","batch":2,"rows":0,"prev_len":5,"step":0,"result_shape":[2,5,16],"history_shape":[2,2],"sha256":["3b6fb4a9fe437033d1bb5b37c81bcdfa068df6425ef5de9a73417c750e8c15b1","1051719efe2009c87b3485d41462c83b3813aa1475fcd171a0ccf2d668793544"]} +{"kernel":"ngram_rows_b2_r0_p5_step1","batch":2,"rows":0,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["43cfa550ea37cbec5c83ddfbe8dd06f616e0e110b07bc0b4d0bff3b16ff16bce","8a6c59cae5c63cbcd3272601e5e952778fe4cd462ddcc7f01831c060cdfeb216"]} +{"kernel":"ngram_rows_b2_r1_p0_step0","batch":2,"rows":1,"prev_len":0,"step":0,"result_shape":[2,1,16],"history_shape":[2,1],"sha256":["6dca8a63f1d3e944e395bbaf0e10a5afd383babad891865d6b271b3e554ad4e2","3154b6f19758af6332a6f5e769b0691b63f701fc87da887ae957b24c42934fe1"]} +{"kernel":"ngram_rows_b2_r1_p0_step1","batch":2,"rows":1,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["c28843ac4c8638edac1d1dd38f4acd4784bf1b764c65e38c3e4f3fa73318d787","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_rows_b2_r1_p1_step0","batch":2,"rows":1,"prev_len":1,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["f9c06d9c62b6c17338769e5e01c1678af2263ffd7d0cafae05c0703c27f3c54b","d1b5ee7cb9c74876f2b52d9c750b59c999535da404af7c50eb10c061ffc23f6f"]} +{"kernel":"ngram_rows_b2_r1_p1_step1","batch":2,"rows":1,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["cb494a465e5fd30a674cfaedb71addfda6651fca39fe948f93ee497ca5087a98","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_rows_b2_r1_p2_step0","batch":2,"rows":1,"prev_len":2,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["928dd5314454141f1479606234c7ba455f238292c83ae5b636cdaf53ebab5c59","c8a634f1be973d9ec859fa3c48248ca4e4f5f5cbaebb674f996c8e9d8b8ce969"]} +{"kernel":"ngram_rows_b2_r1_p2_step1","batch":2,"rows":1,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["474c86948cce7237a1e0e449013fce1dc8767cca6970d09fae9fc2f541d02ca0","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_rows_b2_r1_p5_step0","batch":2,"rows":1,"prev_len":5,"step":0,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b19bba3d058f6cb8b70e036ebc88996d89ae1dcd721840ff23a7c02a02fa174","2e1fbb7d4fea43b2cbe39a005f0c420ca0b8dc0996a2501e6a880e705c8c5fa7"]} +{"kernel":"ngram_rows_b2_r1_p5_step1","batch":2,"rows":1,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["81b895067bf679f152d15c5f008160fd1897bb4fe73a3387f16653c2423e30ee","6f41122b8c136817b57e087bd72b39c40daa3b7fa3c1efcd7c2deff8e0e4ec2c"]} +{"kernel":"ngram_rows_b2_r4_p0_step0","batch":2,"rows":4,"prev_len":0,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["299bba4d3c333b3014cc79d4f474aac806329a973d4112c418bc34fb42422885","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_rows_b2_r4_p0_step1","batch":2,"rows":4,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_rows_b2_r4_p1_step0","batch":2,"rows":4,"prev_len":1,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["28a92555953841c46e879394a622206f6ee9a4227111259d5162c9a714d78e1a","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_rows_b2_r4_p1_step1","batch":2,"rows":4,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_rows_b2_r4_p2_step0","batch":2,"rows":4,"prev_len":2,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["b782645ea64caea9749343241cd1f7f422691d40db406456fad5eb1db9c860be","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_rows_b2_r4_p2_step1","batch":2,"rows":4,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_rows_b2_r4_p5_step0","batch":2,"rows":4,"prev_len":5,"step":0,"result_shape":[2,4,16],"history_shape":[2,2],"sha256":["475d177e69d563709ac7c163772b1f0f7a841f617c02c5f8165fe9ae7d53302d","c714f3accd3608667839b1f17af3c2a27c1d88f2ce4aff021d4c822799caf6af"]} +{"kernel":"ngram_rows_b2_r4_p5_step1","batch":2,"rows":4,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["532453208bee30ab2cd4770b757fc5cf73a376d09b7cef90e92e44dc8bb288bb","341b6fe41cc4faf92f3a5d445802d9f2c56d6ae70c853afe0ed8b30cea63a801"]} +{"kernel":"ngram_rows_b2_r2048_p0_step0","batch":2,"rows":2048,"prev_len":0,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["22e58d7be3001b58fb98b1a675502b637eab8ff64c03a3a4256e24abcb60455e","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_rows_b2_r2048_p0_step1","batch":2,"rows":2048,"prev_len":0,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_rows_b2_r2048_p1_step0","batch":2,"rows":2048,"prev_len":1,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["9bbf94df85365d9513a72961c270b05fe4669d0d5b66e8cebcd79f9f54659aa6","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_rows_b2_r2048_p1_step1","batch":2,"rows":2048,"prev_len":1,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_rows_b2_r2048_p2_step0","batch":2,"rows":2048,"prev_len":2,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["a20ce0558d54bc424f982d7e0be341f0b63a8b72d21ff5615b8ff89a5b30e35e","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_rows_b2_r2048_p2_step1","batch":2,"rows":2048,"prev_len":2,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} +{"kernel":"ngram_rows_b2_r2048_p5_step0","batch":2,"rows":2048,"prev_len":5,"step":0,"result_shape":[2,2048,16],"history_shape":[2,2],"sha256":["1fb0d777cf4a85cae8eeab041126f70aae7b806d80010b37a8aa8f0e4e17d007","64c74f51dc814eae14212666daebec25ffee6ab70ba318ef5e04ef216073d21d"]} +{"kernel":"ngram_rows_b2_r2048_p5_step1","batch":2,"rows":2048,"prev_len":5,"step":1,"result_shape":[2,1,16],"history_shape":[2,2],"sha256":["8b0112a3963477aa7ab3be8382062ed3d7a39f40f9a45e39acf9f58b4eb0f293","55518c37f05f5a1598fc170d813daf78a0724177937bc22d94672fe23af7681d"]} diff --git a/tests/fixtures/mtplx-ngram-sidecar.jsonl b/tests/fixtures/mtplx-ngram-sidecar.jsonl new file mode 100644 index 0000000..00a11e8 --- /dev/null +++ b/tests/fixtures/mtplx-ngram-sidecar.jsonl @@ -0,0 +1,192 @@ +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s0","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s1","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s2","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s3","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s4","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s5","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s6","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c0_s7","dtype":"BF16","bits":0,"prefetch":false,"capacity":0,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s0","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s1","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s2","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s3","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s4","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s5","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s6","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c3_s7","dtype":"BF16","bits":0,"prefetch":false,"capacity":3,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s0","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s1","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s2","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s3","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s4","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s5","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s6","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p0_c4096_s7","dtype":"BF16","bits":0,"prefetch":false,"capacity":4096,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s0","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s1","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s2","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s3","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s4","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s5","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s6","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b0_p1_c0_s7","dtype":"BF16","bits":0,"prefetch":true,"capacity":0,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":7} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s0","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s1","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s2","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s3","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s4","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s5","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s6","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b0_p1_c3_s7","dtype":"BF16","bits":0,"prefetch":true,"capacity":3,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":7} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s0","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":0,"sha256":"13e26e97322cd08932c5dc981f5833aadfd3ba17284c8ae9e2cf4885f747e320","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s1","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":1,"sha256":"9f0ba228de8699efb89817954ddd9efef30b4116dfe6229edf4dba1b4d631ae2","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s2","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":2,"sha256":"dd08cdb87d205597adc8625d1ab8c90994b72a6e2205fcfd16af4961ced321c3","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s3","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s4","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":4,"sha256":"5002d1ad5afef559dca87d2648b0ad736949ded07c37f390b18fa7cd5441d7a7","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s5","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":5,"sha256":"18e9f659765906b1eacb53c9cc52a58a79f79c7855fbc6e4e4ee8fccdf2d807e","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s6","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":6,"sha256":"ba8158a83c5e5ba8bddd49e8e63c399150dc3691c706a09928ff5912d21a70e1","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b0_p1_c4096_s7","dtype":"BF16","bits":0,"prefetch":true,"capacity":4096,"step":7,"sha256":"f9e7d4f70b8947661becb0dfffd85575e8bc61b9e47321ec03a0fab2962b2485","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":7} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s0","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s1","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s2","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s3","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s4","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s5","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s6","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c0_s7","dtype":"BF16","bits":4,"prefetch":false,"capacity":0,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s0","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s1","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s2","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s3","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s4","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s5","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s6","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c3_s7","dtype":"BF16","bits":4,"prefetch":false,"capacity":3,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s0","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s1","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s2","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s3","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s4","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s5","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s6","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p0_c4096_s7","dtype":"BF16","bits":4,"prefetch":false,"capacity":4096,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":0} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s0","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s1","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s2","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s3","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s4","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s5","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s6","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b4_p1_c0_s7","dtype":"BF16","bits":4,"prefetch":true,"capacity":0,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":7} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s0","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s1","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s2","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s3","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s4","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s5","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s6","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b4_p1_c3_s7","dtype":"BF16","bits":4,"prefetch":true,"capacity":3,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":7} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s0","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":0,"sha256":"a34a022682eed693e5d76c50e2c213506d007be5b5a6986fd18da539ae150110","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s1","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":1,"sha256":"664aa53f884b2633c50e5ef8e3935b4d6cc73f259843af0cc1d407d8cd900a01","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s2","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":2,"sha256":"47300a3e1030f6a3b984b4f19aa6a4d03c80f4d2931d915f1045828b4c763cd9","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s3","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s4","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":4,"sha256":"a899a7ae368be813948757067a801fb3beb0f00b898f250861615500032b02f7","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":4} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s5","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":5,"sha256":"a73d9b9a3a140706f9d52d0404707fb5a749b1b0a3874792b4fa9a65b663ee09","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":5} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s6","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":6,"sha256":"099edd93ff39bf36b7bca7db64923058440f6ab292a8a1c1fd651464f4a2a025","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":6} +{"kernel":"ngram_sidecar_BF16_b4_p1_c4096_s7","dtype":"BF16","bits":4,"prefetch":true,"capacity":4096,"step":7,"sha256":"98e057c969a0ba5194cf8cd3b5785ad904f9f9f2b4beaf84c6677c49161eaec3","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s0","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s1","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s2","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s3","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s4","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s5","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s6","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c0_s7","dtype":"F16","bits":0,"prefetch":false,"capacity":0,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s0","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s1","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s2","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s3","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s4","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s5","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s6","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c3_s7","dtype":"F16","bits":0,"prefetch":false,"capacity":3,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s0","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s1","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s2","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s3","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s4","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s5","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s6","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p0_c4096_s7","dtype":"F16","bits":0,"prefetch":false,"capacity":4096,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s0","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s1","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s2","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s3","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s4","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s5","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s6","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b0_p1_c0_s7","dtype":"F16","bits":0,"prefetch":true,"capacity":0,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s0","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s1","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s2","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s3","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s4","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s5","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s6","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b0_p1_c3_s7","dtype":"F16","bits":0,"prefetch":true,"capacity":3,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s0","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":0,"sha256":"4346d36dd18442b35187a773bd8cdf50493f7bdebaefff604e9e90e9e42b0b5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s1","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":1,"sha256":"9530b0b48332ce1122233b3cf4a21fab346a76686723b362dbeb6ef8fb26d7f1","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s2","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":2,"sha256":"18243cf5d98c52358a9d78b83db895be6baa1bca58ee19b399ad250ebc0b726d","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s3","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s4","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":4,"sha256":"7914247f20ea821ac1b4d9b32c56f91ba1ef603cc4d439de58647e073ce85693","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s5","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":5,"sha256":"b31e8a112bbf896be455d4840f7ae66a390fb1cd045a1feee8682d3e87b980ae","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s6","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":6,"sha256":"21dfc373e9529683a48df1586835eeacc6a7d45c316e319cdc274d2308fe7143","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b0_p1_c4096_s7","dtype":"F16","bits":0,"prefetch":true,"capacity":4096,"step":7,"sha256":"815d2676237b6b1de881c0b10e831ade5db75e244643b2f82f49d8f865fc411c","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s0","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s1","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s2","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s3","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s4","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s5","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s6","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c0_s7","dtype":"F16","bits":4,"prefetch":false,"capacity":0,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s0","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s1","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s2","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s3","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s4","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s5","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s6","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c3_s7","dtype":"F16","bits":4,"prefetch":false,"capacity":3,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s0","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s1","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s2","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s3","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s4","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s5","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s6","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p0_c4096_s7","dtype":"F16","bits":4,"prefetch":false,"capacity":4096,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":0} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s0","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s1","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s2","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s3","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s4","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s5","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s6","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b4_p1_c0_s7","dtype":"F16","bits":4,"prefetch":true,"capacity":0,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","entries":0,"hits":0,"misses":0,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s0","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s1","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"9d5f34e429acb9cc4f46c83e81b6d446954b411e81285216496e50491550c9c4","entries":3,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s2","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s3","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"5a64774144e259ab35af9db7b6b42cd370866d0972b1081f60e388030babbd82","entries":3,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s4","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s5","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"d47dd1fd55f69c9c59639493804606c1bdd35e762da454f9e5b543504a2d59f3","entries":3,"hits":7,"misses":4099,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s6","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"5d16fb992eefcbaef41969b21a724c132614356f5718a92c4e3e91e7acb2cf69","entries":3,"hits":7,"misses":4102,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b4_p1_c3_s7","dtype":"F16","bits":4,"prefetch":true,"capacity":3,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":7,"misses":4105,"prefetch_batches":7} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s0","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":0,"sha256":"1c216faf271c5538d7a60ecd190afe1055ca62c1c43eba48c1da1ab60d9cdc5d","order_sha256":"a5e64abb5dacf3e7febe111383d2f1935cebbcb6ae50465e134a2ba1c26e6e0d","entries":3,"hits":0,"misses":3,"prefetch_batches":1} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s1","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":1,"sha256":"23c66fa6767872a15372d8a84eb111016bdf3b1661c726f93a6c518fe0a1df48","order_sha256":"68c727f811ffade31b9d4c4dd021a21b6115ebd1744710769aa60d617b0be766","entries":4,"hits":3,"misses":4,"prefetch_batches":2} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s2","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":2,"sha256":"f38045a49389c0bfc2030cb87f910d86490c181ac63426e958b1f0692a274f14","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s3","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":3,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","order_sha256":"b9061997bf375d66c7e25af8ead2e615a5af86749af90cf2b847813d68aa1675","entries":6,"hits":4,"misses":6,"prefetch_batches":3} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s4","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":4,"sha256":"3c70bc060d5aab28ebe1192c88c288cdcc4918524ff5eb61fcc78101a6d12ace","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":4} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s5","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":5,"sha256":"0520e80218271198416053b661c0cd6b0f7c3023999bc0ddf1f18cdecf0c4253","order_sha256":"b83e23eb1db808bf694ae4894d62b50c9840bcd869ba7ac2456f40ddf0530bf3","entries":4096,"hits":10,"misses":4096,"prefetch_batches":5} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s6","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":6,"sha256":"b976751a138422890ad970cbbd385e89d007bc2ef190854c31d0f1db31adbe3e","order_sha256":"ab250048312d304de14326a6bcf3d36a53c23ebb028d91a0033db8b582355fde","entries":4096,"hits":10,"misses":4099,"prefetch_batches":6} +{"kernel":"ngram_sidecar_F16_b4_p1_c4096_s7","dtype":"F16","bits":4,"prefetch":true,"capacity":4096,"step":7,"sha256":"cdff590bfe2991e561d5cfe1cc9da920e4a0feb246442517c2857d7bcc9f14c3","order_sha256":"c59c974c12572c204f751c5026807a8b317ef9bcda141681e57f9c7f231f0985","entries":4096,"hits":12,"misses":4100,"prefetch_batches":7} diff --git a/tests/fixtures/mtplx-ngram-stage-verification.jsonl b/tests/fixtures/mtplx-ngram-stage-verification.jsonl new file mode 100644 index 0000000..88152b2 --- /dev/null +++ b/tests/fixtures/mtplx-ngram-stage-verification.jsonl @@ -0,0 +1,38 @@ +{"kernel":"stage_allclose_0_0","value":true} +{"kernel":"stage_allclose_0_1","value":true} +{"kernel":"stage_allclose_0_2","value":true} +{"kernel":"stage_allclose_0_3","value":true} +{"kernel":"stage_allclose_0_4","value":true} +{"kernel":"stage_allclose_0_5","value":true} +{"kernel":"stage_allclose_1_0","value":true} +{"kernel":"stage_allclose_1_1","value":false} +{"kernel":"stage_allclose_1_2","value":true} +{"kernel":"stage_allclose_1_3","value":true} +{"kernel":"stage_allclose_1_4","value":false} +{"kernel":"stage_allclose_1_5","value":false} +{"kernel":"stage_allclose_2_0","value":true} +{"kernel":"stage_allclose_2_1","value":false} +{"kernel":"stage_allclose_2_2","value":true} +{"kernel":"stage_allclose_2_3","value":true} +{"kernel":"stage_allclose_2_4","value":false} +{"kernel":"stage_allclose_2_5","value":false} +{"kernel":"stage_allclose_4096_0","value":true} +{"kernel":"stage_allclose_4096_1","value":false} +{"kernel":"stage_allclose_4096_2","value":true} +{"kernel":"stage_allclose_4096_3","value":true} +{"kernel":"stage_allclose_4096_4","value":false} +{"kernel":"stage_allclose_4096_5","value":false} +{"kernel":"stage_allclose_4097_0","value":true} +{"kernel":"stage_allclose_4097_1","value":false} +{"kernel":"stage_allclose_4097_2","value":true} +{"kernel":"stage_allclose_4097_3","value":true} +{"kernel":"stage_allclose_4097_4","value":false} +{"kernel":"stage_allclose_4097_5","value":false} +{"kernel":"stage_allclose_1048576_0","value":true} +{"kernel":"stage_allclose_1048576_1","value":false} +{"kernel":"stage_allclose_1048576_2","value":true} +{"kernel":"stage_allclose_1048576_3","value":true} +{"kernel":"stage_allclose_1048576_4","value":false} +{"kernel":"stage_allclose_1048576_5","value":false} +{"kernel":"stage_all_67108864","value":true} +{"kernel":"stage_all_67108865","value":true} diff --git a/tests/fixtures/mtplx-ngram-stage.jsonl b/tests/fixtures/mtplx-ngram-stage.jsonl new file mode 100644 index 0000000..2c050af --- /dev/null +++ b/tests/fixtures/mtplx-ngram-stage.jsonl @@ -0,0 +1,136 @@ +{"kernel":"ngram_stage_b0_normal_B1_r4_s0","bits":0,"scenario":"normal","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B1_r4_s1","bits":0,"scenario":"normal","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B2_r4_s0","bits":0,"scenario":"normal","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B2_r4_s1","bits":0,"scenario":"normal","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B1_r2048_s0","bits":0,"scenario":"normal","batch":1,"rows":2048,"step":0,"error":false,"sha256":"d8d157dcda3f52e4ca0f7c572d9e8b5669fd4dc3028714b72cb7e6c8aae8ff42","history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B1_r2048_s1","bits":0,"scenario":"normal","batch":1,"rows":2048,"step":1,"error":false,"sha256":"97c97807eb4b59320c1cbee2e5b897c28fdb4ccdb431d421e0b401e6067a56ba","history":"eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4","prehistory":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B2_r2048_s0","bits":0,"scenario":"normal","batch":2,"rows":2048,"step":0,"error":false,"sha256":"22f3b7e3a0bef4a0a9fd37fd741901c3267f068a25c775c1c1fe974e1afc1aee","history":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_normal_B2_r2048_s1","bits":0,"scenario":"normal","batch":2,"rows":2048,"step":1,"error":false,"sha256":"51cef11e2e0705d4fce8f3b3f98b83d6bd53ef7b5796de4e6edde87653d202f3","history":"16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e","prehistory":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B1_r4_s0","bits":0,"scenario":"verify","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B1_r4_s1","bits":0,"scenario":"verify","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B2_r4_s0","bits":0,"scenario":"verify","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B2_r4_s1","bits":0,"scenario":"verify","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B1_r2048_s0","bits":0,"scenario":"verify","batch":1,"rows":2048,"step":0,"error":false,"sha256":"d8d157dcda3f52e4ca0f7c572d9e8b5669fd4dc3028714b72cb7e6c8aae8ff42","history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B1_r2048_s1","bits":0,"scenario":"verify","batch":1,"rows":2048,"step":1,"error":false,"sha256":"97c97807eb4b59320c1cbee2e5b897c28fdb4ccdb431d421e0b401e6067a56ba","history":"eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4","prehistory":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B2_r2048_s0","bits":0,"scenario":"verify","batch":2,"rows":2048,"step":0,"error":false,"sha256":"22f3b7e3a0bef4a0a9fd37fd741901c3267f068a25c775c1c1fe974e1afc1aee","history":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_verify_B2_r2048_s1","bits":0,"scenario":"verify","batch":2,"rows":2048,"step":1,"error":false,"sha256":"51cef11e2e0705d4fce8f3b3f98b83d6bd53ef7b5796de4e6edde87653d202f3","history":"16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e","prehistory":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_B1_r4_s0","bits":0,"scenario":"graph","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_B1_r4_s1","bits":0,"scenario":"graph","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_B2_r4_s0","bits":0,"scenario":"graph","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_B2_r4_s1","bits":0,"scenario":"graph","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_disabled_B1_r4_s0","bits":0,"scenario":"disabled","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_disabled_B1_r4_s1","bits":0,"scenario":"disabled","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_disabled_B2_r4_s0","bits":0,"scenario":"disabled","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_disabled_B2_r4_s1","bits":0,"scenario":"disabled","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_stale_B1_r4_s0","bits":0,"scenario":"stale","batch":1,"rows":4,"step":0,"error":false,"sha256":"d702440d9d7e6f2331a16f3d704266153a3bbc06c5d152dd90067af34965ed0e","history":"2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb","prehistory":null,"consumed":0,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_stale_B1_r4_s1","bits":0,"scenario":"stale","batch":1,"rows":4,"step":1,"error":false,"sha256":"57a735c40f3394d881ec5e70918534b59e7eb28c3e731692553662959223f134","history":"9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db","prehistory":"2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb","consumed":1,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_stale_B2_r4_s0","bits":0,"scenario":"stale","batch":2,"rows":4,"step":0,"error":false,"sha256":"0e462ce17df90de0faffbb3f61e5e6aae2c6089707b845a6452e8534e818f320","history":"646323e4e034a967b274cb0a9cbf7b8667ec696cdc8966d2a67214fe8efa7fc8","prehistory":null,"consumed":0,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_stale_B2_r4_s1","bits":0,"scenario":"stale","batch":2,"rows":4,"step":1,"error":false,"sha256":"b918331daafa56ad03ea64dfcc83cbddd2c1b8fa216c9e0b9e0864fd655dbfd8","history":"b8e846fdf95075ff6aaf8fb0bcc34f497347417a5af1a6256afb107327ac74b7","prehistory":"646323e4e034a967b274cb0a9cbf7b8667ec696cdc8966d2a67214fe8efa7fc8","consumed":1,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_different_B1_r4_s0","bits":0,"scenario":"different","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_different_B1_r4_s1","bits":0,"scenario":"different","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_different_B2_r4_s0","bits":0,"scenario":"different","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_different_B2_r4_s1","bits":0,"scenario":"different","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_mismatch_B1_r4_s0","bits":0,"scenario":"mismatch","batch":1,"rows":4,"step":0,"error":true,"sha256":null,"history":null,"prehistory":null,"consumed":0,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_mismatch_B1_r4_s1","bits":0,"scenario":"mismatch","batch":1,"rows":4,"step":1,"error":false,"sha256":"4fbbc30af5e3f7270b428a92ce5466883660adbd1ebf7fb103f584818757fcd7","history":"b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_mismatch_B2_r4_s0","bits":0,"scenario":"mismatch","batch":2,"rows":4,"step":0,"error":true,"sha256":null,"history":null,"prehistory":null,"consumed":0,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_mismatch_B2_r4_s1","bits":0,"scenario":"mismatch","batch":2,"rows":4,"step":1,"error":false,"sha256":"84777124a6939d622a2660d6916b28be0b94ef6436024c621f6fbc08d68b93a7","history":"859d0c017236898b4bdd37b427cb2efa707f18aec944f5103e7ef2c6a1d0f3b3","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_pending_B1_r4_s0","bits":0,"scenario":"skip_pending","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_pending_B1_r4_s1","bits":0,"scenario":"skip_pending","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_pending_B2_r4_s0","bits":0,"scenario":"skip_pending","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_pending_B2_r4_s1","bits":0,"scenario":"skip_pending","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_error_B1_r4_s0","bits":0,"scenario":"error","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b0_error_B1_r4_s1","bits":0,"scenario":"error","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":1,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b0_error_B2_r4_s0","bits":0,"scenario":"error","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b0_error_B2_r4_s1","bits":0,"scenario":"error","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":1,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b0_no_cache_B1_r4_s0","bits":0,"scenario":"no_cache","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":null,"prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_no_cache_B1_r4_s1","bits":0,"scenario":"no_cache","batch":1,"rows":4,"step":1,"error":false,"sha256":"4fbbc30af5e3f7270b428a92ce5466883660adbd1ebf7fb103f584818757fcd7","history":null,"prehistory":null,"consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_no_cache_B2_r4_s0","bits":0,"scenario":"no_cache","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":null,"prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_no_cache_B2_r4_s1","bits":0,"scenario":"no_cache","batch":2,"rows":4,"step":1,"error":false,"sha256":"84777124a6939d622a2660d6916b28be0b94ef6436024c621f6fbc08d68b93a7","history":null,"prehistory":null,"consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_seeded_B1_r4_s0","bits":0,"scenario":"seeded","batch":1,"rows":4,"step":0,"error":false,"sha256":"b5d859a5673ea38a6a001ee414c9c1faae884d646babac0edc55cb55a86dd5ea","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":"281b02b10f5f4997e5bf8c93343e6f2aa8bc81ffad6d6813c593181ebceda12a","consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_seeded_B1_r4_s1","bits":0,"scenario":"seeded","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_seeded_B2_r4_s0","bits":0,"scenario":"seeded","batch":2,"rows":4,"step":0,"error":false,"sha256":"80b816e94e4f7809a87a8c0af3eae9a36754a85b4389172104a69a17ba3c4e32","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":"23c379d6c0f22ef64cdef873fd530df1f1419b4a3935e9323d5f1d82ca697b6a","consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_seeded_B2_r4_s1","bits":0,"scenario":"seeded","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_overwrite_B1_r4_s0","bits":0,"scenario":"overwrite","batch":1,"rows":4,"step":0,"error":false,"sha256":"89bf173fdb8ab7b0e78b4b2180014f840086dc6025d836eb93c5ed659eca3832","history":"d16813653005178745aaa71880813203c34513b6fa8a8e96b5df505dc1611fbe","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_overwrite_B1_r4_s1","bits":0,"scenario":"overwrite","batch":1,"rows":4,"step":1,"error":false,"sha256":"ebe6e802f5dcebd824428ddea493f1a8d71dd01204c5ba4f40be4f347746c0af","history":"cf5970b1b1c9569786646bcf73906786d908d096d0cbfac85edf5b67f7da3007","prehistory":"d16813653005178745aaa71880813203c34513b6fa8a8e96b5df505dc1611fbe","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_overwrite_B2_r4_s0","bits":0,"scenario":"overwrite","batch":2,"rows":4,"step":0,"error":false,"sha256":"fb0c86c3cd4315edd6a1633c1540199fbd072dcd8d874d752c35e018e5de3b4b","history":"d063bc880abe7b53b295f6d4010e8b18104feab1f0988601be00bc1b3f0a81b7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_overwrite_B2_r4_s1","bits":0,"scenario":"overwrite","batch":2,"rows":4,"step":1,"error":false,"sha256":"c4b09c05fad1831705ec0e4eaca7986fed50a4a0a5d3cf9d255e135ed37f44b1","history":"a39d61467bea0ab59af058e580c3a317ed997e721475b0b793582842cc45191f","prehistory":"d063bc880abe7b53b295f6d4010e8b18104feab1f0988601be00bc1b3f0a81b7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_error_B1_r4_s0","bits":0,"scenario":"graph_error","batch":1,"rows":4,"step":0,"error":true,"sha256":null,"history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_error_B1_r4_s1","bits":0,"scenario":"graph_error","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_error_B2_r4_s0","bits":0,"scenario":"graph_error","batch":2,"rows":4,"step":0,"error":true,"sha256":null,"history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_graph_error_B2_r4_s1","bits":0,"scenario":"graph_error","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_missing_skip_B1_r4_s0","bits":0,"scenario":"missing_skip","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_missing_skip_B1_r4_s1","bits":0,"scenario":"missing_skip","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_missing_skip_B2_r4_s0","bits":0,"scenario":"missing_skip","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_missing_skip_B2_r4_s1","bits":0,"scenario":"missing_skip","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_policy_B1_r4_s0","bits":0,"scenario":"skip_policy","batch":1,"rows":4,"step":0,"error":false,"sha256":"294e4cd7bfa48bd562e880410ea520791df245271b38d54b82eee6141e023d82","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_policy_B1_r4_s1","bits":0,"scenario":"skip_policy","batch":1,"rows":4,"step":1,"error":false,"sha256":"6a63e853602ceaa44459a571744f72baf8eb36b8a5476aa2e9735bf3f1ed55b0","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_policy_B2_r4_s0","bits":0,"scenario":"skip_policy","batch":2,"rows":4,"step":0,"error":false,"sha256":"101d4bce8afc21858e41e99498780c5f8e60b03840b3bd2e232bb4d817aaf302","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b0_skip_policy_B2_r4_s1","bits":0,"scenario":"skip_policy","batch":2,"rows":4,"step":1,"error":false,"sha256":"b956480d47f5043e3928eb472ad7bf923d2943dc49441633bd3c9d17b9732ffc","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B1_r4_s0","bits":4,"scenario":"normal","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B1_r4_s1","bits":4,"scenario":"normal","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B2_r4_s0","bits":4,"scenario":"normal","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B2_r4_s1","bits":4,"scenario":"normal","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B1_r2048_s0","bits":4,"scenario":"normal","batch":1,"rows":2048,"step":0,"error":false,"sha256":"1d1948fdc7b799af94b58ab172429d8ffb395687b1c54137198eb1520acf6707","history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B1_r2048_s1","bits":4,"scenario":"normal","batch":1,"rows":2048,"step":1,"error":false,"sha256":"83a9afdd9554b3cef0856f1ff425a383d87c0fba03ebf83d1b7dbddf033f6f1b","history":"eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4","prehistory":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B2_r2048_s0","bits":4,"scenario":"normal","batch":2,"rows":2048,"step":0,"error":false,"sha256":"eeb81789a912e1fcbf9485124e9bddf650077e7faa1dfedf4a73dbb3adfa1b9b","history":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_normal_B2_r2048_s1","bits":4,"scenario":"normal","batch":2,"rows":2048,"step":1,"error":false,"sha256":"e6b1a4872b7dc8d43c96f67790c2257f563b146c96340558c906bcb2d1639b46","history":"16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e","prehistory":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B1_r4_s0","bits":4,"scenario":"verify","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B1_r4_s1","bits":4,"scenario":"verify","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B2_r4_s0","bits":4,"scenario":"verify","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B2_r4_s1","bits":4,"scenario":"verify","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B1_r2048_s0","bits":4,"scenario":"verify","batch":1,"rows":2048,"step":0,"error":false,"sha256":"1d1948fdc7b799af94b58ab172429d8ffb395687b1c54137198eb1520acf6707","history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B1_r2048_s1","bits":4,"scenario":"verify","batch":1,"rows":2048,"step":1,"error":false,"sha256":"83a9afdd9554b3cef0856f1ff425a383d87c0fba03ebf83d1b7dbddf033f6f1b","history":"eaf64e206dfd42bc0b5d97923ffa40fd61da95e97d9347c66ce1de36bfda40b4","prehistory":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B2_r2048_s0","bits":4,"scenario":"verify","batch":2,"rows":2048,"step":0,"error":false,"sha256":"eeb81789a912e1fcbf9485124e9bddf650077e7faa1dfedf4a73dbb3adfa1b9b","history":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_verify_B2_r2048_s1","bits":4,"scenario":"verify","batch":2,"rows":2048,"step":1,"error":false,"sha256":"e6b1a4872b7dc8d43c96f67790c2257f563b146c96340558c906bcb2d1639b46","history":"16486f9b7f2c06cefe2c7af5d8ebc5bd6c1bab04614094d8aef402a96948311e","prehistory":"100f8a81b8152b0f49ead36c5f3f53020a89a91f305c84a69da7e9346f77eae7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_B1_r4_s0","bits":4,"scenario":"graph","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_B1_r4_s1","bits":4,"scenario":"graph","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_B2_r4_s0","bits":4,"scenario":"graph","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_B2_r4_s1","bits":4,"scenario":"graph","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_disabled_B1_r4_s0","bits":4,"scenario":"disabled","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_disabled_B1_r4_s1","bits":4,"scenario":"disabled","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_disabled_B2_r4_s0","bits":4,"scenario":"disabled","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_disabled_B2_r4_s1","bits":4,"scenario":"disabled","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_stale_B1_r4_s0","bits":4,"scenario":"stale","batch":1,"rows":4,"step":0,"error":false,"sha256":"42bdefbc4504992f01415d575dd2b73292d6e07fcacbea04e5cd1aa1523e80ac","history":"2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb","prehistory":null,"consumed":0,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_stale_B1_r4_s1","bits":4,"scenario":"stale","batch":1,"rows":4,"step":1,"error":false,"sha256":"bd0902d1c3ab26de8841de7021694b48464846cc4d70d3651991b8140a425250","history":"9d34149fbd1fe777eb238799054c8cbfbce372255f219f8740838def9bfd02db","prehistory":"2e0c713a3f83ea279a72f55a8dbda8c81aed05940d515bcae025cafa0daf66bb","consumed":1,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_stale_B2_r4_s0","bits":4,"scenario":"stale","batch":2,"rows":4,"step":0,"error":false,"sha256":"bce51030f4e1b526b0ed68254a260db64cd5444ed845c66d45b947991deb3896","history":"646323e4e034a967b274cb0a9cbf7b8667ec696cdc8966d2a67214fe8efa7fc8","prehistory":null,"consumed":0,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_stale_B2_r4_s1","bits":4,"scenario":"stale","batch":2,"rows":4,"step":1,"error":false,"sha256":"2d2b85ea7b5c7c5c629f981f9b7ef5a6075b0bb25cb019cd425f97988d260e7d","history":"b8e846fdf95075ff6aaf8fb0bcc34f497347417a5af1a6256afb107327ac74b7","prehistory":"646323e4e034a967b274cb0a9cbf7b8667ec696cdc8966d2a67214fe8efa7fc8","consumed":1,"bypassed":1,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_different_B1_r4_s0","bits":4,"scenario":"different","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_different_B1_r4_s1","bits":4,"scenario":"different","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_different_B2_r4_s0","bits":4,"scenario":"different","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_different_B2_r4_s1","bits":4,"scenario":"different","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_mismatch_B1_r4_s0","bits":4,"scenario":"mismatch","batch":1,"rows":4,"step":0,"error":true,"sha256":null,"history":null,"prehistory":null,"consumed":0,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_mismatch_B1_r4_s1","bits":4,"scenario":"mismatch","batch":1,"rows":4,"step":1,"error":false,"sha256":"72a908eab511115c7997da9d98588f86b2afea3bd8ea697e8e04a1328282d965","history":"b7db3be3cf05013d305777fb2b2a01b79b67de63f4e60e2166d4631d921a9a91","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_mismatch_B2_r4_s0","bits":4,"scenario":"mismatch","batch":2,"rows":4,"step":0,"error":true,"sha256":null,"history":null,"prehistory":null,"consumed":0,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_mismatch_B2_r4_s1","bits":4,"scenario":"mismatch","batch":2,"rows":4,"step":1,"error":false,"sha256":"a51a130267e0f3e9a1bcf7a18d3a010fdfea26f56a15973fed5a07b5ba7e7ce3","history":"859d0c017236898b4bdd37b427cb2efa707f18aec944f5103e7ef2c6a1d0f3b3","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_pending_B1_r4_s0","bits":4,"scenario":"skip_pending","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_pending_B1_r4_s1","bits":4,"scenario":"skip_pending","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_pending_B2_r4_s0","bits":4,"scenario":"skip_pending","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_pending_B2_r4_s1","bits":4,"scenario":"skip_pending","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_error_B1_r4_s0","bits":4,"scenario":"error","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b4_error_B1_r4_s1","bits":4,"scenario":"error","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":1,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b4_error_B2_r4_s0","bits":4,"scenario":"error","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b4_error_B2_r4_s1","bits":4,"scenario":"error","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":1,"bypassed":0,"graph_calls":1,"warned":true,"pending":false} +{"kernel":"ngram_stage_b4_no_cache_B1_r4_s0","bits":4,"scenario":"no_cache","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":null,"prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_no_cache_B1_r4_s1","bits":4,"scenario":"no_cache","batch":1,"rows":4,"step":1,"error":false,"sha256":"72a908eab511115c7997da9d98588f86b2afea3bd8ea697e8e04a1328282d965","history":null,"prehistory":null,"consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_no_cache_B2_r4_s0","bits":4,"scenario":"no_cache","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":null,"prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_no_cache_B2_r4_s1","bits":4,"scenario":"no_cache","batch":2,"rows":4,"step":1,"error":false,"sha256":"a51a130267e0f3e9a1bcf7a18d3a010fdfea26f56a15973fed5a07b5ba7e7ce3","history":null,"prehistory":null,"consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_seeded_B1_r4_s0","bits":4,"scenario":"seeded","batch":1,"rows":4,"step":0,"error":false,"sha256":"3c8915653d4cdd335f3d1a83bf01993ce18221aa99e249eeb88035f70702432b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":"281b02b10f5f4997e5bf8c93343e6f2aa8bc81ffad6d6813c593181ebceda12a","consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_seeded_B1_r4_s1","bits":4,"scenario":"seeded","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_seeded_B2_r4_s0","bits":4,"scenario":"seeded","batch":2,"rows":4,"step":0,"error":false,"sha256":"de4e9dc14a9ea94e09bbb85d79a47908d63e608dfd04f3a1654ce30237546921","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":"23c379d6c0f22ef64cdef873fd530df1f1419b4a3935e9323d5f1d82ca697b6a","consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_seeded_B2_r4_s1","bits":4,"scenario":"seeded","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_overwrite_B1_r4_s0","bits":4,"scenario":"overwrite","batch":1,"rows":4,"step":0,"error":false,"sha256":"5fc77054bce2ef030d93d6f94c973107c451d31d158827a452bbf1b4724f6b6f","history":"d16813653005178745aaa71880813203c34513b6fa8a8e96b5df505dc1611fbe","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_overwrite_B1_r4_s1","bits":4,"scenario":"overwrite","batch":1,"rows":4,"step":1,"error":false,"sha256":"0caef53cd8c3fbe51a7f15320c01a3aa31964523c71bf390fc65f9d26f2045ac","history":"cf5970b1b1c9569786646bcf73906786d908d096d0cbfac85edf5b67f7da3007","prehistory":"d16813653005178745aaa71880813203c34513b6fa8a8e96b5df505dc1611fbe","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_overwrite_B2_r4_s0","bits":4,"scenario":"overwrite","batch":2,"rows":4,"step":0,"error":false,"sha256":"6ff5d81064cb5139fa22e78ad49bde636c296cbf64d9de1960d6a3db3d3c8a94","history":"d063bc880abe7b53b295f6d4010e8b18104feab1f0988601be00bc1b3f0a81b7","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_overwrite_B2_r4_s1","bits":4,"scenario":"overwrite","batch":2,"rows":4,"step":1,"error":false,"sha256":"c1aaa9792ce1c8bbbf4db9a3cbdd7e96d31d3e3432dbc0ba3b0d1f26d085b0d8","history":"a39d61467bea0ab59af058e580c3a317ed997e721475b0b793582842cc45191f","prehistory":"d063bc880abe7b53b295f6d4010e8b18104feab1f0988601be00bc1b3f0a81b7","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_error_B1_r4_s0","bits":4,"scenario":"graph_error","batch":1,"rows":4,"step":0,"error":true,"sha256":null,"history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_error_B1_r4_s1","bits":4,"scenario":"graph_error","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_error_B2_r4_s0","bits":4,"scenario":"graph_error","batch":2,"rows":4,"step":0,"error":true,"sha256":null,"history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":0,"bypassed":0,"graph_calls":1,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_graph_error_B2_r4_s1","bits":4,"scenario":"graph_error","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":0,"bypassed":0,"graph_calls":2,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_missing_skip_B1_r4_s0","bits":4,"scenario":"missing_skip","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_missing_skip_B1_r4_s1","bits":4,"scenario":"missing_skip","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_missing_skip_B2_r4_s0","bits":4,"scenario":"missing_skip","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_missing_skip_B2_r4_s1","bits":4,"scenario":"missing_skip","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_policy_B1_r4_s0","bits":4,"scenario":"skip_policy","batch":1,"rows":4,"step":0,"error":false,"sha256":"e57f3cbe38f043ef31e4e7b1e5a1bdd201af9091bd8fab66eaefd8ddbad4d07b","history":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_policy_B1_r4_s1","bits":4,"scenario":"skip_policy","batch":1,"rows":4,"step":1,"error":false,"sha256":"b4fdd2a1cff6262e32933b2e13e4e91d2b210b3716293c00aefd525680fe4292","history":"eebcd770b6410582f0c2a1a3aeb4387c46056b240ae158d7046411fec9ef7c35","prehistory":"3d41f42b50cef75d2f0d6a30c55ee277b43f8619bcaed1ad6e38103c4b57ab65","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_policy_B2_r4_s0","bits":4,"scenario":"skip_policy","batch":2,"rows":4,"step":0,"error":false,"sha256":"af807b8e2bcac1afff83ae5a822f4c5797d32ca7af1b4f22fa1839184a43ab53","history":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","prehistory":null,"consumed":1,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} +{"kernel":"ngram_stage_b4_skip_policy_B2_r4_s1","bits":4,"scenario":"skip_policy","batch":2,"rows":4,"step":1,"error":false,"sha256":"f9168061fa6334cf3da08e615f0e9dd5771570745458e6beec2f588c82b7b6e3","history":"1c791c631d3f70650610fb45debaf4303a2ebe069a1160c957f87b7d88d45792","prehistory":"fe1fd86e75d1f9126deae2c04fb01f4f6f04ac4a03ea9188900c2b839bb101ad","consumed":2,"bypassed":0,"graph_calls":0,"warned":false,"pending":false} diff --git a/tests/fixtures/mtplx-ple-connected.jsonl b/tests/fixtures/mtplx-ple-connected.jsonl new file mode 100644 index 0000000..05cd764 --- /dev/null +++ b/tests/fixtures/mtplx-ple-connected.jsonl @@ -0,0 +1,144 @@ +{"kernel":"ple_connected_b0_stage_B1_r7_none_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_stage_B1_r7_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_stage_B1_r7_empty_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478","020e2e205e3dd49ec358c2c2f50f47f5695ff6f5ee212314f9d8ab150a4b59f3"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_stage_B1_r7_empty_s1","sha256":["e7782b94b44b25ad878778da14d05a66cbbd835ed08240d866698bd818c38d63","dfa3ebd84e6bc1a667400cd94be8dfe70c168a4b5bf27ed73e32c3631486d34c"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_stage_B1_r7_seeded_s0","sha256":["25a10adf179299ff25a3e17d874d3536dac664db5ceb17751b84e5eafd4f1ada","c1187d26337e0e2bee04d9ecdadacc223f53a651d8bee77b711cf8a3f31ecbfa"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_stage_B1_r7_seeded_s1","sha256":["3733d8b800635f6c7f368b3ff5390d852299b786922b70fa3e8a66ac27f37396","3abd71ff87af512dc01bc6daa3502a7aacd2ca4984a6cc3675d5fa249c13884a"],"bits":0,"mode":"stage","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_stage_B1_r2048_none_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_stage_B1_r2048_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_stage_B1_r2048_empty_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_stage_B1_r2048_empty_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_stage_B1_r2048_seeded_s0","sha256":["de7f2b06e9f60ae0c965405b71e2a5e8ad836e477b6db805690ba3eb66fb3716","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_stage_B1_r2048_seeded_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"stage","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_stage_B2_r7_none_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_stage_B2_r7_none_s1","sha256":["7bfb0dbc09e2ecaecf02ca88fa93b91ac9d8301d2f3996fcc27ee31fdfa464be"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_stage_B2_r7_empty_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010","c55f270306ec4852eaae0651c08e850c1ad29f2924755a08e3db15c2539c1599"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_stage_B2_r7_empty_s1","sha256":["23d4ff8cb5999f4ea31dfd98f425980a65373286067c394845a213a6c2e94444","127e40d71034b6dcae6cfa1ce3f9246ec9dbadb4c5e7a528eb2424b9181712ed"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_stage_B2_r7_seeded_s0","sha256":["ef417431a760f7930981ca2653ff50e88885d233c81fb81e4cb2ee2cf1a51a41","4ea700dd52bd3bfdc5a91923523e7e9095b5f8ae9a09911e888da3c8c8a3dcb9"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_stage_B2_r7_seeded_s1","sha256":["ff01b440a67181407cd03b060fa8cb104854e64908cfe14f0cfa7c0dcac587b6","fe4825b71ad4ba1442fbafd98d41ec34a991797c99120fc991c99941a162061a"],"bits":0,"mode":"stage","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_verify_B1_r7_none_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_verify_B1_r7_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_verify_B1_r7_empty_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478","020e2e205e3dd49ec358c2c2f50f47f5695ff6f5ee212314f9d8ab150a4b59f3"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_verify_B1_r7_empty_s1","sha256":["e7782b94b44b25ad878778da14d05a66cbbd835ed08240d866698bd818c38d63","dfa3ebd84e6bc1a667400cd94be8dfe70c168a4b5bf27ed73e32c3631486d34c"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_verify_B1_r7_seeded_s0","sha256":["25a10adf179299ff25a3e17d874d3536dac664db5ceb17751b84e5eafd4f1ada","c1187d26337e0e2bee04d9ecdadacc223f53a651d8bee77b711cf8a3f31ecbfa"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_verify_B1_r7_seeded_s1","sha256":["3733d8b800635f6c7f368b3ff5390d852299b786922b70fa3e8a66ac27f37396","3abd71ff87af512dc01bc6daa3502a7aacd2ca4984a6cc3675d5fa249c13884a"],"bits":0,"mode":"verify","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_verify_B1_r2048_none_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_verify_B1_r2048_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_verify_B1_r2048_empty_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_verify_B1_r2048_empty_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_verify_B1_r2048_seeded_s0","sha256":["de7f2b06e9f60ae0c965405b71e2a5e8ad836e477b6db805690ba3eb66fb3716","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_verify_B1_r2048_seeded_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"verify","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_verify_B2_r7_none_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_verify_B2_r7_none_s1","sha256":["7bfb0dbc09e2ecaecf02ca88fa93b91ac9d8301d2f3996fcc27ee31fdfa464be"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_verify_B2_r7_empty_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010","c55f270306ec4852eaae0651c08e850c1ad29f2924755a08e3db15c2539c1599"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_verify_B2_r7_empty_s1","sha256":["23d4ff8cb5999f4ea31dfd98f425980a65373286067c394845a213a6c2e94444","127e40d71034b6dcae6cfa1ce3f9246ec9dbadb4c5e7a528eb2424b9181712ed"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_verify_B2_r7_seeded_s0","sha256":["ef417431a760f7930981ca2653ff50e88885d233c81fb81e4cb2ee2cf1a51a41","4ea700dd52bd3bfdc5a91923523e7e9095b5f8ae9a09911e888da3c8c8a3dcb9"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_verify_B2_r7_seeded_s1","sha256":["ff01b440a67181407cd03b060fa8cb104854e64908cfe14f0cfa7c0dcac587b6","fe4825b71ad4ba1442fbafd98d41ec34a991797c99120fc991c99941a162061a"],"bits":0,"mode":"verify","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_graph_B1_r7_none_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_graph_B1_r7_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_graph_B1_r7_empty_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478","020e2e205e3dd49ec358c2c2f50f47f5695ff6f5ee212314f9d8ab150a4b59f3"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_graph_B1_r7_empty_s1","sha256":["e7782b94b44b25ad878778da14d05a66cbbd835ed08240d866698bd818c38d63","dfa3ebd84e6bc1a667400cd94be8dfe70c168a4b5bf27ed73e32c3631486d34c"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_graph_B1_r7_seeded_s0","sha256":["25a10adf179299ff25a3e17d874d3536dac664db5ceb17751b84e5eafd4f1ada","c1187d26337e0e2bee04d9ecdadacc223f53a651d8bee77b711cf8a3f31ecbfa"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_graph_B1_r7_seeded_s1","sha256":["3733d8b800635f6c7f368b3ff5390d852299b786922b70fa3e8a66ac27f37396","3abd71ff87af512dc01bc6daa3502a7aacd2ca4984a6cc3675d5fa249c13884a"],"bits":0,"mode":"graph","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_graph_B1_r2048_none_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_graph_B1_r2048_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_graph_B1_r2048_empty_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_graph_B1_r2048_empty_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_graph_B1_r2048_seeded_s0","sha256":["de7f2b06e9f60ae0c965405b71e2a5e8ad836e477b6db805690ba3eb66fb3716","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_graph_B1_r2048_seeded_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"graph","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_graph_B2_r7_none_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_graph_B2_r7_none_s1","sha256":["7bfb0dbc09e2ecaecf02ca88fa93b91ac9d8301d2f3996fcc27ee31fdfa464be"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_graph_B2_r7_empty_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010","c55f270306ec4852eaae0651c08e850c1ad29f2924755a08e3db15c2539c1599"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_graph_B2_r7_empty_s1","sha256":["23d4ff8cb5999f4ea31dfd98f425980a65373286067c394845a213a6c2e94444","127e40d71034b6dcae6cfa1ce3f9246ec9dbadb4c5e7a528eb2424b9181712ed"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_graph_B2_r7_seeded_s0","sha256":["ef417431a760f7930981ca2653ff50e88885d233c81fb81e4cb2ee2cf1a51a41","4ea700dd52bd3bfdc5a91923523e7e9095b5f8ae9a09911e888da3c8c8a3dcb9"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_graph_B2_r7_seeded_s1","sha256":["ff01b440a67181407cd03b060fa8cb104854e64908cfe14f0cfa7c0dcac587b6","fe4825b71ad4ba1442fbafd98d41ec34a991797c99120fc991c99941a162061a"],"bits":0,"mode":"graph","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_resident_B1_r7_none_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_resident_B1_r7_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_resident_B1_r7_empty_s0","sha256":["012e971286b87e6bf91f6de3b10d6c4124d7617c429cfee0114f0884daa8d478","020e2e205e3dd49ec358c2c2f50f47f5695ff6f5ee212314f9d8ab150a4b59f3"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_resident_B1_r7_empty_s1","sha256":["e7782b94b44b25ad878778da14d05a66cbbd835ed08240d866698bd818c38d63","dfa3ebd84e6bc1a667400cd94be8dfe70c168a4b5bf27ed73e32c3631486d34c"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_resident_B1_r7_seeded_s0","sha256":["25a10adf179299ff25a3e17d874d3536dac664db5ceb17751b84e5eafd4f1ada","c1187d26337e0e2bee04d9ecdadacc223f53a651d8bee77b711cf8a3f31ecbfa"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b0_resident_B1_r7_seeded_s1","sha256":["3733d8b800635f6c7f368b3ff5390d852299b786922b70fa3e8a66ac27f37396","3abd71ff87af512dc01bc6daa3502a7aacd2ca4984a6cc3675d5fa249c13884a"],"bits":0,"mode":"resident","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b0_resident_B1_r2048_none_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_resident_B1_r2048_none_s1","sha256":["643d3f8b1245fb63c47268123f9ae3084f41196fd30a68d1246338ffc6fdd666"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_resident_B1_r2048_empty_s0","sha256":["3d3578cfe266465afef2ff6fa552c827d69befaf88ad041c54585419493c2b85","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_resident_B1_r2048_empty_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_resident_B1_r2048_seeded_s0","sha256":["de7f2b06e9f60ae0c965405b71e2a5e8ad836e477b6db805690ba3eb66fb3716","d8e285410d6c7f7ee655096fedca53fe51cfc83bf88bc9f81afb5935ed3e0e44"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b0_resident_B1_r2048_seeded_s1","sha256":["92d7ccd9f78d01b7b61e18906fb79fbe035b4e577b18f48c67bda5b951928d4f","0da9afb1a94cb4902d30226c3ff984f2a85e316f90be0b5482fe190345d8c51f"],"bits":0,"mode":"resident","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b0_resident_B2_r7_none_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b0_resident_B2_r7_none_s1","sha256":["7bfb0dbc09e2ecaecf02ca88fa93b91ac9d8301d2f3996fcc27ee31fdfa464be"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b0_resident_B2_r7_empty_s0","sha256":["2cece9064aa41bce0781f4ee6b26af98535d6dd9053d739a38dd7ab17932a010","c55f270306ec4852eaae0651c08e850c1ad29f2924755a08e3db15c2539c1599"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_resident_B2_r7_empty_s1","sha256":["23d4ff8cb5999f4ea31dfd98f425980a65373286067c394845a213a6c2e94444","127e40d71034b6dcae6cfa1ce3f9246ec9dbadb4c5e7a528eb2424b9181712ed"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b0_resident_B2_r7_seeded_s0","sha256":["ef417431a760f7930981ca2653ff50e88885d233c81fb81e4cb2ee2cf1a51a41","4ea700dd52bd3bfdc5a91923523e7e9095b5f8ae9a09911e888da3c8c8a3dcb9"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b0_resident_B2_r7_seeded_s1","sha256":["ff01b440a67181407cd03b060fa8cb104854e64908cfe14f0cfa7c0dcac587b6","fe4825b71ad4ba1442fbafd98d41ec34a991797c99120fc991c99941a162061a"],"bits":0,"mode":"resident","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_stage_B1_r7_none_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_stage_B1_r7_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_stage_B1_r7_empty_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948","ce41fd36945befed840f2afb7452a7380ba8acda370852821f9746f4eac039b1"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_stage_B1_r7_empty_s1","sha256":["ef71b1700cc248675a6d78e3e042829910f93918d29864136c225372214519a3","6a8cae867ecc728f54217557dac0af8facf8aac9120c96525bae1dfa1e3707e2"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_stage_B1_r7_seeded_s0","sha256":["d8a2b30f60cd942eb671e95fc95c8d80ccb2be1c1b9f8b05fb13a335e24f7928","cbd76544e1716586df3129dd57200caa0308a35a926ec175721dd26f343c963e"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_stage_B1_r7_seeded_s1","sha256":["d326cf77cc8e0378b3613f275dc9f37273c61cd66e07c2706c051a269f1024f7","7983fe18de8067c1aeda5c36be0765efe55eb1cbc166fe8aa65331dd3a53b8cb"],"bits":4,"mode":"stage","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_stage_B1_r2048_none_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_stage_B1_r2048_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_stage_B1_r2048_empty_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_stage_B1_r2048_empty_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_stage_B1_r2048_seeded_s0","sha256":["4daebe6d7d303a17246849efffd5432b05051072136a760f106420cf412f18a4","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_stage_B1_r2048_seeded_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"stage","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_stage_B2_r7_none_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_stage_B2_r7_none_s1","sha256":["c14e1d9776480c69756ee16f2f1a30ebbd23cac7134c9e6f1db9cb27f05073a9"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_stage_B2_r7_empty_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c","7613b9f62915ee2a365cfd5a7494ad285060bb34ffbec8dc5d715105d7a937ed"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_stage_B2_r7_empty_s1","sha256":["3b45fd23a2764d43b43e363184253a4429225b8a38d5cbd07b05ba6efe59e472","ba35e0f5bea26d6adcf5bf26bacc533af107a9677d86b9695b09c8162c467b45"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_stage_B2_r7_seeded_s0","sha256":["3eb872ede0f179d7080f8f169c819c337bd08b2b7c6ec0b23b637b68142f8b9b","d7e71e3327105c7ec09f1404db30d03cc18200717e0c5d18ab11334a143e9f4e"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_stage_B2_r7_seeded_s1","sha256":["eb0fb186c7c40ffae42b1033b8b21921d394a371bbb47e8c385dced53c6d23e5","a8160a76f43c3dced7e0a4c5d663a0946b7671f1b1d3857ba3fff4095c1b5db5"],"bits":4,"mode":"stage","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_verify_B1_r7_none_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_verify_B1_r7_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_verify_B1_r7_empty_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948","ce41fd36945befed840f2afb7452a7380ba8acda370852821f9746f4eac039b1"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_verify_B1_r7_empty_s1","sha256":["ef71b1700cc248675a6d78e3e042829910f93918d29864136c225372214519a3","6a8cae867ecc728f54217557dac0af8facf8aac9120c96525bae1dfa1e3707e2"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_verify_B1_r7_seeded_s0","sha256":["d8a2b30f60cd942eb671e95fc95c8d80ccb2be1c1b9f8b05fb13a335e24f7928","cbd76544e1716586df3129dd57200caa0308a35a926ec175721dd26f343c963e"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_verify_B1_r7_seeded_s1","sha256":["d326cf77cc8e0378b3613f275dc9f37273c61cd66e07c2706c051a269f1024f7","7983fe18de8067c1aeda5c36be0765efe55eb1cbc166fe8aa65331dd3a53b8cb"],"bits":4,"mode":"verify","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_verify_B1_r2048_none_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_verify_B1_r2048_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_verify_B1_r2048_empty_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_verify_B1_r2048_empty_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_verify_B1_r2048_seeded_s0","sha256":["4daebe6d7d303a17246849efffd5432b05051072136a760f106420cf412f18a4","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_verify_B1_r2048_seeded_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"verify","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_verify_B2_r7_none_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_verify_B2_r7_none_s1","sha256":["c14e1d9776480c69756ee16f2f1a30ebbd23cac7134c9e6f1db9cb27f05073a9"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_verify_B2_r7_empty_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c","7613b9f62915ee2a365cfd5a7494ad285060bb34ffbec8dc5d715105d7a937ed"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_verify_B2_r7_empty_s1","sha256":["3b45fd23a2764d43b43e363184253a4429225b8a38d5cbd07b05ba6efe59e472","ba35e0f5bea26d6adcf5bf26bacc533af107a9677d86b9695b09c8162c467b45"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_verify_B2_r7_seeded_s0","sha256":["3eb872ede0f179d7080f8f169c819c337bd08b2b7c6ec0b23b637b68142f8b9b","d7e71e3327105c7ec09f1404db30d03cc18200717e0c5d18ab11334a143e9f4e"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_verify_B2_r7_seeded_s1","sha256":["eb0fb186c7c40ffae42b1033b8b21921d394a371bbb47e8c385dced53c6d23e5","a8160a76f43c3dced7e0a4c5d663a0946b7671f1b1d3857ba3fff4095c1b5db5"],"bits":4,"mode":"verify","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_graph_B1_r7_none_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_graph_B1_r7_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_graph_B1_r7_empty_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948","ce41fd36945befed840f2afb7452a7380ba8acda370852821f9746f4eac039b1"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_graph_B1_r7_empty_s1","sha256":["ef71b1700cc248675a6d78e3e042829910f93918d29864136c225372214519a3","6a8cae867ecc728f54217557dac0af8facf8aac9120c96525bae1dfa1e3707e2"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_graph_B1_r7_seeded_s0","sha256":["d8a2b30f60cd942eb671e95fc95c8d80ccb2be1c1b9f8b05fb13a335e24f7928","cbd76544e1716586df3129dd57200caa0308a35a926ec175721dd26f343c963e"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_graph_B1_r7_seeded_s1","sha256":["d326cf77cc8e0378b3613f275dc9f37273c61cd66e07c2706c051a269f1024f7","7983fe18de8067c1aeda5c36be0765efe55eb1cbc166fe8aa65331dd3a53b8cb"],"bits":4,"mode":"graph","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_graph_B1_r2048_none_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_graph_B1_r2048_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_graph_B1_r2048_empty_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_graph_B1_r2048_empty_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_graph_B1_r2048_seeded_s0","sha256":["4daebe6d7d303a17246849efffd5432b05051072136a760f106420cf412f18a4","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_graph_B1_r2048_seeded_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"graph","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_graph_B2_r7_none_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_graph_B2_r7_none_s1","sha256":["c14e1d9776480c69756ee16f2f1a30ebbd23cac7134c9e6f1db9cb27f05073a9"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_graph_B2_r7_empty_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c","7613b9f62915ee2a365cfd5a7494ad285060bb34ffbec8dc5d715105d7a937ed"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_graph_B2_r7_empty_s1","sha256":["3b45fd23a2764d43b43e363184253a4429225b8a38d5cbd07b05ba6efe59e472","ba35e0f5bea26d6adcf5bf26bacc533af107a9677d86b9695b09c8162c467b45"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_graph_B2_r7_seeded_s0","sha256":["3eb872ede0f179d7080f8f169c819c337bd08b2b7c6ec0b23b637b68142f8b9b","d7e71e3327105c7ec09f1404db30d03cc18200717e0c5d18ab11334a143e9f4e"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_graph_B2_r7_seeded_s1","sha256":["eb0fb186c7c40ffae42b1033b8b21921d394a371bbb47e8c385dced53c6d23e5","a8160a76f43c3dced7e0a4c5d663a0946b7671f1b1d3857ba3fff4095c1b5db5"],"bits":4,"mode":"graph","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_resident_B1_r7_none_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_resident_B1_r7_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_resident_B1_r7_empty_s0","sha256":["cfe172a640f6138f996255a44ac3145cacf6cf70a9a11db7726598419c66f948","ce41fd36945befed840f2afb7452a7380ba8acda370852821f9746f4eac039b1"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"empty","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_resident_B1_r7_empty_s1","sha256":["ef71b1700cc248675a6d78e3e042829910f93918d29864136c225372214519a3","6a8cae867ecc728f54217557dac0af8facf8aac9120c96525bae1dfa1e3707e2"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"empty","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_resident_B1_r7_seeded_s0","sha256":["d8a2b30f60cd942eb671e95fc95c8d80ccb2be1c1b9f8b05fb13a335e24f7928","cbd76544e1716586df3129dd57200caa0308a35a926ec175721dd26f343c963e"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"seeded","step":0,"history":"b9f3d6a620f118fc1dff72047d5a7e1593dabeb1b54f0d1d3da323710a077431"} +{"kernel":"ple_connected_b4_resident_B1_r7_seeded_s1","sha256":["d326cf77cc8e0378b3613f275dc9f37273c61cd66e07c2706c051a269f1024f7","7983fe18de8067c1aeda5c36be0765efe55eb1cbc166fe8aa65331dd3a53b8cb"],"bits":4,"mode":"resident","batch":1,"rows":7,"state":"seeded","step":1,"history":"f6cc203a0fbc7bd66b25f696f08d2c4b3a90c5261cf1fee4e179750e4f1473ca"} +{"kernel":"ple_connected_b4_resident_B1_r2048_none_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_resident_B1_r2048_none_s1","sha256":["c47ab337257f3d4f69d2266874c2e8f3f41a57b611aafbce3e28f273a4368e39"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_resident_B1_r2048_empty_s0","sha256":["5ac42e485320b63e76c01c66f69f8a9693b07598271c0b1c4324123043db71c6","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"empty","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_resident_B1_r2048_empty_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"empty","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_resident_B1_r2048_seeded_s0","sha256":["4daebe6d7d303a17246849efffd5432b05051072136a760f106420cf412f18a4","15fb9d65e3459e8a940b19c29eae234f71b3240b715d73e6b32ab49aa157f03e"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"seeded","step":0,"history":"524ee6f697441ba0d6f4f5379926cd76b87f317eedd8f3d6166e075c5524ffd4"} +{"kernel":"ple_connected_b4_resident_B1_r2048_seeded_s1","sha256":["9c716ef76ae6b9b68ca70ea64770dd721a25e97d59b4fa65fbe37e40a7b17702","269762df3eeae7e52eba02b47dfc35780c0733bdd3e1b95f665c1b8dd4bd28e3"],"bits":4,"mode":"resident","batch":1,"rows":2048,"state":"seeded","step":1,"history":"007d9cef5b685645cbbf1bc7762bae0879913ec9ff91a9a7700901022d8bbbca"} +{"kernel":"ple_connected_b4_resident_B2_r7_none_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"none","step":0,"history":null} +{"kernel":"ple_connected_b4_resident_B2_r7_none_s1","sha256":["c14e1d9776480c69756ee16f2f1a30ebbd23cac7134c9e6f1db9cb27f05073a9"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"none","step":1,"history":null} +{"kernel":"ple_connected_b4_resident_B2_r7_empty_s0","sha256":["dcd7af12738a0f5c502310b4b021a9b06fe97a85025483f0ef10c7960b5c497c","7613b9f62915ee2a365cfd5a7494ad285060bb34ffbec8dc5d715105d7a937ed"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"empty","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_resident_B2_r7_empty_s1","sha256":["3b45fd23a2764d43b43e363184253a4429225b8a38d5cbd07b05ba6efe59e472","ba35e0f5bea26d6adcf5bf26bacc533af107a9677d86b9695b09c8162c467b45"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"empty","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} +{"kernel":"ple_connected_b4_resident_B2_r7_seeded_s0","sha256":["3eb872ede0f179d7080f8f169c819c337bd08b2b7c6ec0b23b637b68142f8b9b","d7e71e3327105c7ec09f1404db30d03cc18200717e0c5d18ab11334a143e9f4e"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"seeded","step":0,"history":"c841ec4679673dd8d0e6ae749f338afcdc6a6a1c52906131298e2c184c70fa45"} +{"kernel":"ple_connected_b4_resident_B2_r7_seeded_s1","sha256":["eb0fb186c7c40ffae42b1033b8b21921d394a371bbb47e8c385dced53c6d23e5","a8160a76f43c3dced7e0a4c5d663a0946b7671f1b1d3857ba3fff4095c1b5db5"],"bits":4,"mode":"resident","batch":2,"rows":7,"state":"seeded","step":1,"history":"12e7508e09a95b4cf401ddffa080f62b60ae0c309539c327af9a69ea80143230"} diff --git a/tests/fixtures/mtplx-ple-projection.jsonl b/tests/fixtures/mtplx-ple-projection.jsonl new file mode 100644 index 0000000..970b0b6 --- /dev/null +++ b/tests/fixtures/mtplx-ple-projection.jsonl @@ -0,0 +1,84 @@ +{"kernel":"ple_projection_dense_b1_r1_none_step0","sha256":["468dd0da07cca6ce10c0c127631d2e2db9f22e153ca778e00c1574ebdd449999"],"layout":"dense","batch":1,"rows":1,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r1_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":1,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r1_empty_step0","sha256":["468dd0da07cca6ce10c0c127631d2e2db9f22e153ca778e00c1574ebdd449999","423a056dee331c9ee1a2e8f93249576d85ec22a331d1e48534509cfe6b570a9c"],"layout":"dense","batch":1,"rows":1,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r1_empty_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64","2640c19bbaf32f30f73f9aa85141c3e6275b1f01ffbd69ce04fe1b63df228d64"],"layout":"dense","batch":1,"rows":1,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r1_seeded_step0","sha256":["16a95dafc3e7ea861ae7c257599391b3f2ccbea017d6827c86872b91feedc34f","8c9aa291910c418325fcae8000b698786ba19daf1b2d234970c0855bac8b1c71"],"layout":"dense","batch":1,"rows":1,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r1_seeded_step1","sha256":["80ffb19c10990a3c7079eab5a3802e4eb8568bcc1b2b8a60ebae8b325189863d","2326ca587637d28d9f3578122857481335b9012dc5fc06575eb2d85bef2d1954"],"layout":"dense","batch":1,"rows":1,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b1_r4_none_step0","sha256":["b871a4d3fa4934b827d77d4dd1a666bb961c14b4e19b9d271e2bbeb4889913a8"],"layout":"dense","batch":1,"rows":4,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r4_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":4,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r4_empty_step0","sha256":["b871a4d3fa4934b827d77d4dd1a666bb961c14b4e19b9d271e2bbeb4889913a8","0de3f2589be5b81ccc8fe7b453a1ac2c4b4fe7d59846514504c5d6e9794c6df8"],"layout":"dense","batch":1,"rows":4,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r4_empty_step1","sha256":["ddf6f5bb779f7774c9ef42655132b918e8af3e6aed01384ed469ed48fe0064d4","26a95767721579fbda9948f30d86b4d22d954701c4d7b8bf9206e9a6e422693f"],"layout":"dense","batch":1,"rows":4,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r4_seeded_step0","sha256":["d041f7d973d9d9093c6afa0896605cc80888fd117667b694c8feee12bf8f2c29","77dcc76ddf0b40d47c3a733d507313402af926f26ebcd3feabb96c158f8122fb"],"layout":"dense","batch":1,"rows":4,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r4_seeded_step1","sha256":["cec03f9062e9c83435563fc0b37b709b25ffdd07e1a44c70696d7e240945816c","859acd4966fbf820934700449d3e15ad4aec2f8240b5563390c9ff144ab1d6ed"],"layout":"dense","batch":1,"rows":4,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b1_r7_none_step0","sha256":["572599e47b9efe157d083c8bc41ab843f9128f7a537001acf89bda70b73c1591"],"layout":"dense","batch":1,"rows":7,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r7_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":7,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r7_empty_step0","sha256":["572599e47b9efe157d083c8bc41ab843f9128f7a537001acf89bda70b73c1591","6900b09d9125338038b75295ce5af3bbe0af3ee54ad53971ee3dd2b8d57246d5"],"layout":"dense","batch":1,"rows":7,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r7_empty_step1","sha256":["4dc8b7a7dca3f6d67d22f701af08cc84ba4be1ade97be74f7d89bd011e2003ef","123276601518ce621f63039be138788504e0dca958ac0be74a97d9dce29e0c3b"],"layout":"dense","batch":1,"rows":7,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r7_seeded_step0","sha256":["32b1b39786a9811790f445b15cd2c8e178d1c04017324b877221ec0c1a66d81d","19f7324ec8e94bd26c12de54700d19227f548e33b8a089b84850faaae75d2768"],"layout":"dense","batch":1,"rows":7,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r7_seeded_step1","sha256":["b51c1eb8db3165a7329de3f1920d66b9f31195dca251677a644a0debba3dbf81","7873182c83c4a54278da58b193c1f107a0c8403e4a67f592c03cb3c0eb0178d2"],"layout":"dense","batch":1,"rows":7,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b1_r8_none_step0","sha256":["bd3d2790f0dfb323a1c6f0df4674d9026b626f301128b9642703ff5eb0f98776"],"layout":"dense","batch":1,"rows":8,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r8_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":8,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r8_empty_step0","sha256":["bd3d2790f0dfb323a1c6f0df4674d9026b626f301128b9642703ff5eb0f98776","913f39fa4cd15e1c83873cf18443f74184429addc5945f7994398558b1303191"],"layout":"dense","batch":1,"rows":8,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r8_empty_step1","sha256":["5f127a5ee826a9aae26e4770037c605c9d10d7f46bdb62648059d62e9526f477","6017f8724deeb94b4e35421b5d9afc79fb8e3fd4790054fda6ab46ca580e8289"],"layout":"dense","batch":1,"rows":8,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r8_seeded_step0","sha256":["68e605394a61de2edef7fdf6e5d41734f05458f120c3b5968e54c54a1a0468f7","895427954ae91d9722015ec8c1f8b00b056dcdcc6fb5dca60ffb73f7f5f11700"],"layout":"dense","batch":1,"rows":8,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r8_seeded_step1","sha256":["5ced34e3413bd7f66e41a31c6539c5f0c7e6dc874f437111a6e441f427b17e38","6017f8724deeb94b4e35421b5d9afc79fb8e3fd4790054fda6ab46ca580e8289"],"layout":"dense","batch":1,"rows":8,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b1_r32_none_step0","sha256":["21d811de68f422336b998f8e2fea31bc20098c282889266bc17b46f7cfedf4e3"],"layout":"dense","batch":1,"rows":32,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r32_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":32,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r32_empty_step0","sha256":["21d811de68f422336b998f8e2fea31bc20098c282889266bc17b46f7cfedf4e3","13f167c024c241e3bda800cdd4a1d0b4c90f1edb7f8299de14400563179fca91"],"layout":"dense","batch":1,"rows":32,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r32_empty_step1","sha256":["ce6eb004bb234207a40dc5fbec2b497f12c40c65c9e36f1e39a118d3137946c6","2c29e287da0638366a9531f2543b072dc004dbb0df734de5acf09b7ebcfe114a"],"layout":"dense","batch":1,"rows":32,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r32_seeded_step0","sha256":["1ca867a4f7a622f0dcb316b5f95b596b76b0814eff8563707c1d2d47ba004730","13f167c024c241e3bda800cdd4a1d0b4c90f1edb7f8299de14400563179fca91"],"layout":"dense","batch":1,"rows":32,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r32_seeded_step1","sha256":["ce6eb004bb234207a40dc5fbec2b497f12c40c65c9e36f1e39a118d3137946c6","2c29e287da0638366a9531f2543b072dc004dbb0df734de5acf09b7ebcfe114a"],"layout":"dense","batch":1,"rows":32,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b1_r2048_none_step0","sha256":["f3e6ea86b3821bf9a17d49bc13a0d90d499c96fed921dda469a5aefb166d1dd0"],"layout":"dense","batch":1,"rows":2048,"state":"none","step":0} +{"kernel":"ple_projection_dense_b1_r2048_none_step1","sha256":["2c7fd2aa072e1b70762f0bc12f42ad36267d054e7ccd4937eef051045dde6c64"],"layout":"dense","batch":1,"rows":2048,"state":"none","step":1} +{"kernel":"ple_projection_dense_b1_r2048_empty_step0","sha256":["f3e6ea86b3821bf9a17d49bc13a0d90d499c96fed921dda469a5aefb166d1dd0","bdb63b82d8e216e976dd92d8256e846bcc470f44f77173fc65e115bc2d9ec92e"],"layout":"dense","batch":1,"rows":2048,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b1_r2048_empty_step1","sha256":["0bdafbbc3f027345dc76ad86f14567a122ec964621060c66c7d21a0d50aaa7aa","0f08e37f37b9b725674cb1eb37adc3b326ba42577b242686c77e1f86524baa91"],"layout":"dense","batch":1,"rows":2048,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b1_r2048_seeded_step0","sha256":["cb14eb2f784d45ccaf40451d70b40af0eea007f6172ffb7669f245d65049d448","bdb63b82d8e216e976dd92d8256e846bcc470f44f77173fc65e115bc2d9ec92e"],"layout":"dense","batch":1,"rows":2048,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b1_r2048_seeded_step1","sha256":["0bdafbbc3f027345dc76ad86f14567a122ec964621060c66c7d21a0d50aaa7aa","0f08e37f37b9b725674cb1eb37adc3b326ba42577b242686c77e1f86524baa91"],"layout":"dense","batch":1,"rows":2048,"state":"seeded","step":1} +{"kernel":"ple_projection_dense_b2_r7_none_step0","sha256":["c18a8f2488069f9e0be481085495b36f22650424ab57069d5386ad9b6e8c4064"],"layout":"dense","batch":2,"rows":7,"state":"none","step":0} +{"kernel":"ple_projection_dense_b2_r7_none_step1","sha256":["28339f2882659480e9e8f5ed6faa1ed6dc8d93713ca1ae5f8d42f8df12cdfecf"],"layout":"dense","batch":2,"rows":7,"state":"none","step":1} +{"kernel":"ple_projection_dense_b2_r7_empty_step0","sha256":["c18a8f2488069f9e0be481085495b36f22650424ab57069d5386ad9b6e8c4064","41056636019a2a99713050408b901a76a3026c3f87aabc08e4cc0e43063ceefb"],"layout":"dense","batch":2,"rows":7,"state":"empty","step":0} +{"kernel":"ple_projection_dense_b2_r7_empty_step1","sha256":["8106b899683b400f6d992a937b84c13d5da0b7923e32dd5af25eee23ab925a8e","116bf2bf612c9e16ad61b56792b0079d040f92ae695085060921a4c76d559aa6"],"layout":"dense","batch":2,"rows":7,"state":"empty","step":1} +{"kernel":"ple_projection_dense_b2_r7_seeded_step0","sha256":["b13f10b325a57acc4c6bc259ee48d52b21aead898d8f9f1d2c47b0bb47a0ea10","d3f35c833c6d3b891ef78e1a4079ec53f0b09e7b8868fd3ae5729e31c029fc3e"],"layout":"dense","batch":2,"rows":7,"state":"seeded","step":0} +{"kernel":"ple_projection_dense_b2_r7_seeded_step1","sha256":["53cf04949dfe13bbfc4796926a38db9c01f05f2787a48c8e754be620437e9a25","22ba346482e7f576fb27f8b69e9ef3b73214d29e5698a631135b66858d33149b"],"layout":"dense","batch":2,"rows":7,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r1_none_step0","sha256":["ac3406bead6410c4021a85a68faa73bc60363b9db1c86f49e31cf33bec690e67"],"layout":"quantized","batch":1,"rows":1,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r1_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":1,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r1_empty_step0","sha256":["ac3406bead6410c4021a85a68faa73bc60363b9db1c86f49e31cf33bec690e67","21de56114634a306d6a8f06b553d7ccc9c094fb2ce7c4cd8c83ff59dc51facce"],"layout":"quantized","batch":1,"rows":1,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r1_empty_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116","8b16e9f1bdcaca63dc5d3e3bdb45894c6baadb524f0cb98a714d6db71d6f357f"],"layout":"quantized","batch":1,"rows":1,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r1_seeded_step0","sha256":["0f976c8e9620afdc184d7d3fbbc9b220b8ac375f7926a26c968e9e7b97a7e1a1","2f2aaf10fa735d2dfcf383e138df04f239f391eb6c18f53d544a31a5299873ba"],"layout":"quantized","batch":1,"rows":1,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r1_seeded_step1","sha256":["a2bafe59cf721ed20b5d257c08b27d7f2eeb725272867dd974faf49a9e18402b","51d7e0ec8fbe3d7877ecf90eaee9497da9eec7157955594cbe1199e940dfa0f7"],"layout":"quantized","batch":1,"rows":1,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r4_none_step0","sha256":["0c158f1c04b43bcf8fb81ac5d2bbdfcb930abcfd3da41f5f58aba887608fe07b"],"layout":"quantized","batch":1,"rows":4,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r4_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":4,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r4_empty_step0","sha256":["0c158f1c04b43bcf8fb81ac5d2bbdfcb930abcfd3da41f5f58aba887608fe07b","af58101e57d48e0896970bee7867667a9f5ce8bc9f18af37514cba531200ba34"],"layout":"quantized","batch":1,"rows":4,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r4_empty_step1","sha256":["4d70d26961e6904f4cefcf8dbccce9b5f9fc948510c68a848f5a7952a6bc749e","e806310ae7ba7b617d14cacc446a5c1704c77eb36d4e277d822fe88ee3a3aa89"],"layout":"quantized","batch":1,"rows":4,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r4_seeded_step0","sha256":["ef48753d062fa26d710253b3d328bfcc4379397fd14c54ed2c2d6b3100abe49a","35242220138e5f453344688eb68c273bf197ff73ee83e234dca626667f8c2dbe"],"layout":"quantized","batch":1,"rows":4,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r4_seeded_step1","sha256":["12d60b3fbf09f1c24fc940af7d152285cf7f4f7852e8b20510857274a57a9ab6","437d9ffeb2a9d5fd5c193a2d5706f4ccc76d8aef7d1f5ee834d3f75047aea357"],"layout":"quantized","batch":1,"rows":4,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r7_none_step0","sha256":["059b3a3b0fbfff4589b7c3a0169cef945efb8778cd1d348dd1658467122dcd18"],"layout":"quantized","batch":1,"rows":7,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r7_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":7,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r7_empty_step0","sha256":["059b3a3b0fbfff4589b7c3a0169cef945efb8778cd1d348dd1658467122dcd18","e62732fe7f9b83051896ea5917c8f394a4c87ef5542e3e3fe5dd89a2e5382a10"],"layout":"quantized","batch":1,"rows":7,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r7_empty_step1","sha256":["bd845028e38281dd6cbcc8eb8e4847963dd8698ecedf13acdde74bbfc77006a0","15c26794045428776ae6ea9ca34acc3685f2fec2420c3ad29c589918f0e141d9"],"layout":"quantized","batch":1,"rows":7,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r7_seeded_step0","sha256":["0ff5c862646dab6830ecfe1e62c92d3aba6f0ef0bb3736c1af16e995b772f0c6","a7489bed89a0d25abddba8a483e3c30b1d71e11e94aa1d6a55c38aa26b9a0999"],"layout":"quantized","batch":1,"rows":7,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r7_seeded_step1","sha256":["70e7cc76818c5c0a9341a2c26c914efd00adc5fa8a23537920b6fa1291e0bff1","73c786f47cc170b05658a44dd999469e177885db2cd2a01dbbab252c87830930"],"layout":"quantized","batch":1,"rows":7,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r8_none_step0","sha256":["b3ff24bbbeb602c956d65e58a0c8ab151ea09d7d0a964dc2209b2921ca633cf9"],"layout":"quantized","batch":1,"rows":8,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r8_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":8,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r8_empty_step0","sha256":["b3ff24bbbeb602c956d65e58a0c8ab151ea09d7d0a964dc2209b2921ca633cf9","9fa7373af6bb922c82d81bd5de32fe01ac605a5df80d32b37cc5a2cf12a524ac"],"layout":"quantized","batch":1,"rows":8,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r8_empty_step1","sha256":["8e7eb7646fc7484351fd58800cb41a09cccc07c9a544f8070ddac218d1289c61","bb453e6dd4ee96416deb273bcd66c4e9922af4e5acdf6124f0742bb291cca527"],"layout":"quantized","batch":1,"rows":8,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r8_seeded_step0","sha256":["2faf01f023782a774664161171539e28d26d62896406dc54fde0cda240482a5d","e55fb4a51aa864081ca7cea8a3a7885b8310f836d3420cfebb0466734fcb7e99"],"layout":"quantized","batch":1,"rows":8,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r8_seeded_step1","sha256":["a4fcf67d9496499f36ca44468750e67d3d248b098cfb0f7bd2606adeebf406e8","bb453e6dd4ee96416deb273bcd66c4e9922af4e5acdf6124f0742bb291cca527"],"layout":"quantized","batch":1,"rows":8,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r32_none_step0","sha256":["ef0e218abbb913ef9e55ef8f326f2f114bb2805d3584959d2d6a74c80c013afb"],"layout":"quantized","batch":1,"rows":32,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r32_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":32,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r32_empty_step0","sha256":["ef0e218abbb913ef9e55ef8f326f2f114bb2805d3584959d2d6a74c80c013afb","fa057caae710430ebe81316806f25b1b36ea21d393219999b2dd6c9f65eda76f"],"layout":"quantized","batch":1,"rows":32,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r32_empty_step1","sha256":["ab60085dd3635be977f4acd3f8f0496be73cac69ab48a8caf9c5cbc3930bbca4","e0317cb3e0c0a1680183b67668d7b62920250c67e313685f61551bba1910daf4"],"layout":"quantized","batch":1,"rows":32,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r32_seeded_step0","sha256":["8c4f8156c7cdac42a62226aebf1b5bb816ed64bc8b0d67e6e20c14b4e3c60b58","fa057caae710430ebe81316806f25b1b36ea21d393219999b2dd6c9f65eda76f"],"layout":"quantized","batch":1,"rows":32,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r32_seeded_step1","sha256":["ab60085dd3635be977f4acd3f8f0496be73cac69ab48a8caf9c5cbc3930bbca4","e0317cb3e0c0a1680183b67668d7b62920250c67e313685f61551bba1910daf4"],"layout":"quantized","batch":1,"rows":32,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b1_r2048_none_step0","sha256":["d3ac20d8b00e705359793c7a239f08241396f3daeadedb0d13d8a4a05ef7e90b"],"layout":"quantized","batch":1,"rows":2048,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b1_r2048_none_step1","sha256":["684f40da9fadbea095211f37e0b6c38dfd198f52b7e926434f873b0388b73116"],"layout":"quantized","batch":1,"rows":2048,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b1_r2048_empty_step0","sha256":["d3ac20d8b00e705359793c7a239f08241396f3daeadedb0d13d8a4a05ef7e90b","51e81a7e0653e7406d2105e561f52fc626cddea7927b1c7cf5be5922b5980527"],"layout":"quantized","batch":1,"rows":2048,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b1_r2048_empty_step1","sha256":["8edae8e78c1dcbdba74a2372416eb3e6edee318963d89b27c020d7695d855aaf","0183ef6e7f911c7839563b33c56e007c8b982b1dacdaa8b48fb09257fc1895c3"],"layout":"quantized","batch":1,"rows":2048,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b1_r2048_seeded_step0","sha256":["1db514360d018141c18edd42de6813c07f160ec23e790ec1ca5fecf4fb37e0be","51e81a7e0653e7406d2105e561f52fc626cddea7927b1c7cf5be5922b5980527"],"layout":"quantized","batch":1,"rows":2048,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b1_r2048_seeded_step1","sha256":["8edae8e78c1dcbdba74a2372416eb3e6edee318963d89b27c020d7695d855aaf","0183ef6e7f911c7839563b33c56e007c8b982b1dacdaa8b48fb09257fc1895c3"],"layout":"quantized","batch":1,"rows":2048,"state":"seeded","step":1} +{"kernel":"ple_projection_quantized_b2_r7_none_step0","sha256":["45dd84843b0c8f751be17af1806bd63f69f320f6a6ebb7e94391da88ad500080"],"layout":"quantized","batch":2,"rows":7,"state":"none","step":0} +{"kernel":"ple_projection_quantized_b2_r7_none_step1","sha256":["8a74e19792aa630ffa123d02accd5ba7179af35edf1a6ad243334788dafdb4a0"],"layout":"quantized","batch":2,"rows":7,"state":"none","step":1} +{"kernel":"ple_projection_quantized_b2_r7_empty_step0","sha256":["45dd84843b0c8f751be17af1806bd63f69f320f6a6ebb7e94391da88ad500080","26db721bb88c8b669f4a9b7eeb94bc40e6392627eac25fde55f1aac103e1d75c"],"layout":"quantized","batch":2,"rows":7,"state":"empty","step":0} +{"kernel":"ple_projection_quantized_b2_r7_empty_step1","sha256":["a28cf2f5da746ce713a06478a1f9eb78da9dda9f619258b75af508f2e1f74392","fc18bd6b482836028b77a7b0b9a07f3660e5f38f676b7f4f78f351446dc4ac69"],"layout":"quantized","batch":2,"rows":7,"state":"empty","step":1} +{"kernel":"ple_projection_quantized_b2_r7_seeded_step0","sha256":["b69008bdb5c81787d201e848db0113a92e3e35f86cb5aa4babc14bfac0b7a725","8bdf0390b3ec4e73db595a66965c364601a107df0ec388ccbd07f5b34e81b886"],"layout":"quantized","batch":2,"rows":7,"state":"seeded","step":0} +{"kernel":"ple_projection_quantized_b2_r7_seeded_step1","sha256":["5b6461dfb85707e6aa54305d90798c36813511928f00202ef9f00931f3a03fa9","927eca4b5436b06e18d4d62e65b1696a6fe84a9cc9ae9a3f9fea8a2cbc3366d6"],"layout":"quantized","batch":2,"rows":7,"state":"seeded","step":1} diff --git a/tests/fixtures/mtplx-prefill-driver.jsonl b/tests/fixtures/mtplx-prefill-driver.jsonl new file mode 100644 index 0000000..9a76ace --- /dev/null +++ b/tests/fixtures/mtplx-prefill-driver.jsonl @@ -0,0 +1,505 @@ +{"kind": "roots", "tags": [0, 1, 2, 3, 4, 5, 17, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "shapes": [[1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1], [1, 1, 256, 1]]} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 0, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": [], "calls": [], "chunks": 0, "result": {"error": "prompt_ids must not be empty"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 0}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"logits": [0.0], "shape": [1, 1], "hidden": {"values": [0.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 1, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": true, "emit": true, "keep": 1}], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [1.0], "shape": [1, 1], "hidden": {"values": [1.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}, {"ids": [2], "hidden": false, "emit": true, "keep": 0}, {"ids": [3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4], "hidden": false, "emit": true, "keep": 0}, {"ids": [5], "hidden": false, "emit": true, "keep": 0}, {"ids": [6], "hidden": false, "emit": true, "keep": 0}, {"ids": [7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}, {"ids": [2], "hidden": false, "emit": true, "keep": 0}, {"ids": [3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4], "hidden": false, "emit": true, "keep": 0}, {"ids": [5], "hidden": false, "emit": true, "keep": 0}, {"ids": [6], "hidden": false, "emit": true, "keep": 0}, {"ids": [7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}, {"ids": [1], "hidden": false, "emit": false, "keep": 0}, {"ids": [2], "hidden": false, "emit": false, "keep": 0}, {"ids": [3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4], "hidden": false, "emit": false, "keep": 0}, {"ids": [5], "hidden": false, "emit": false, "keep": 0}, {"ids": [6], "hidden": false, "emit": false, "keep": 0}, {"ids": [7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}, {"ids": [2], "hidden": false, "emit": true, "keep": 0}, {"ids": [3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4], "hidden": false, "emit": true, "keep": 0}, {"ids": [5], "hidden": false, "emit": true, "keep": 0}, {"ids": [6], "hidden": false, "emit": true, "keep": 0}, {"ids": [7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}, {"ids": [1], "hidden": false, "emit": true, "keep": 0}, {"ids": [2], "hidden": false, "emit": true, "keep": 0}, {"ids": [3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4], "hidden": false, "emit": true, "keep": 0}, {"ids": [5], "hidden": false, "emit": true, "keep": 0}, {"ids": [6], "hidden": false, "emit": true, "keep": 0}, {"ids": [7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 8, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 1, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": false, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}, {"ids": [4, 5, 6, 7], "hidden": false, "emit": true, "keep": 0}, {"ids": [8], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [8.0], "shape": [1, 1], "hidden": {"values": [8.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 9, "chunk": 4, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 0}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": false, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 1, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": null, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}, {"ids": [13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}, {"ids": [13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "normal", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}, {"ids": [13], "hidden": false, "emit": false, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "cache", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": false, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}, {"ids": [13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": false, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": null}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": false, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 0, "events": ["check", "init", "check", "settled", "chunk", "check", "check", "settled", "chunk", "check", "check", "settled", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}, {"ids": [13], "hidden": false, "emit": true, "keep": 0}, {"ids": [14], "hidden": true, "emit": true, "keep": 1}], "chunks": 2, "result": {"logits": [14.0], "shape": [1, 1], "hidden": {"values": [14.0], "shape": [1, 1, 1]}}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 1, "events": ["check"], "calls": [], "chunks": 0, "result": {"error": "foreground_preempted_postcommit"}} +{"kind": "prefill", "length": 2050, "chunk": 2048, "final_only": true, "route": "discard", "hidden": true, "abort_at": 3, "events": ["check", "init", "check", "settled", "chunk", "check"], "calls": [{"ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "hidden": false, "emit": true, "keep": 0}], "chunks": 1, "result": {"error": "foreground_preempted_postcommit"}} diff --git a/tests/fixtures/mtplx-qsa-attention-module.jsonl b/tests/fixtures/mtplx-qsa-attention-module.jsonl new file mode 100644 index 0000000..2393f1f --- /dev/null +++ b/tests/fixtures/mtplx-qsa-attention-module.jsonl @@ -0,0 +1,56 @@ +{"kernel":"qsa_attention_p0_s0","sha256":["81cabd974019bcd738e4db77d9d7b089042d747910700154be3cc3da1ce986e7","316ed43e666fc6fb252dda7a8003ecb4be8da621d37db522985096db50465844","b4f1ff4375d0b1de7607bef982261bc0c7eba872a69ddc7b7dad6fbfdd3e1859","39b0f22d255932aefce0fff5850e71c764d11fd9e48c34b05fdbe22de04e7d44","b895415c8e478aff1ca87a13b4a553231b475db7a3969586a3b3d9b0d4291cd7"],"profile":0,"step":0,"rows":1,"pos":0,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":1,"pooled_len":0,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,256,128],[1,256,128],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p0_s1","sha256":["305e99a624ec1ef7144f43fad916352118cde06382377139cb606a09e5079bc9","8a6f35d3a8d1a938887f03baf9718fa9af582d121d1bed815dc68cb0482db7b1","46fe8ab534bd3d133ca7aa24d80a2f771907107ecac4f4f2496bc6501da6b855","847fb2445590d5b14c84e8a3afa037193a54e60aa9ab935f11815c0c237582c3","4152bdd42eacde7f856bace140740cc1b118fc0626c091daf2bbb7abaef2bc2d","cdb4f72a8a977ed2805ee125111ac4561a05997924610cb127d456aedb868553"],"profile":0,"step":1,"rows":4,"pos":1,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":5,"pooled_len":1,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,256,128],[1,256,128],[1,1,128,256],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p0_s2","sha256":["0db2e98676e803665a722901a32da71a553b2c589a9108e3b1f79a5be93c9992","75b526cbdc562be1855bd78936eb74132ac9e8c92186a06a517106e48544f312","d9b5b65fe3b0ac1e201e710f39f49c2d7a87f97dfb34cbdd71d1598d8b7d037d","fdfd8846b635f94a215516ccbca6b106a13d69c99a088893020fe5a1f27c110e","b456ba45bb69d6aec6338b8fc22e4bdb1e463a084966b8c33ed381c43d5579a3","ebc3501a599b08fc6c3f880049f7a5b4158343195f100e0afd4b769436043880"],"profile":0,"step":2,"rows":33,"pos":5,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":38,"pooled_len":9,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,256,128],[1,256,128],[1,1,128,256],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p1_s0","sha256":["b289b91fea8c3fd8a53aa342c1da50dd7587630e9231c2c633ed74801bc4abd4","34c31204eb0bd933118de0b814d76a47fbbdce3ddaf94682cc01313d6a1f24d1","b15ed8f5de02b368db84a18f8a0d8812a0fd22f284bb79d845b18813e431c9f8","494ec69e380077148c769831a4bd535099fbe38f2fd297b2b26a015bee36d8bd","e1213d239372c8ffcd6687e26b02afc91ed801a4cfdca844611219fecf6a1ef2","3f1135ef46d69e9fa8c0e820a6fdc050291f66cc09e659af6b95d5cf89ecf09e"],"profile":1,"step":0,"rows":2048,"pos":0,"prefix":0,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2048,"pooled_len":512,"state_present":[true,true,true,true,true],"shapes":[[1,2048,64],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,2048,256],[1,2,2048,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p1_s1","sha256":["6149e7a89e32d1cafad0376e10cf1f92b9f3e0074545796de85a97afe5b6d8ed","84bf8d357182689a89ee8bf7923745849f4f65b7c33b9f06d4fdb704bb77ac60","b15ed8f5de02b368db84a18f8a0d8812a0fd22f284bb79d845b18813e431c9f8","eb40cbf14cea87403eab8af0b6f7ac1e0de2ab16a02e6f4ae56eb07103328fda","bf3ceb2ec376ca32aac53f53b827aeac49263964d80f1096d7ee4f27cf4ed18d"],"profile":1,"step":1,"rows":1,"pos":2048,"prefix":0,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2049,"pooled_len":512,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,512,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw4096:pool512:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s1:raw4096:pool512:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s0","sha256":["6fd06b68b7059ae0220c03d7afada76bdadc86001123c4180f1a16380a89bece","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":2,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["flash"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s1","sha256":["d8762135183d3a85dfd8713c2fda95cf6397f495329ee3f626a0fc56f3cb8e2d","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":2,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["rows_gather"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s2","sha256":["c0c24b34e78eabd893b8544868251fab1fd74a69cdb1d630efb577c842e55a02","b42c170d3f1fec609e9a738c23c487abd2a077ff9388be681bc8c0cc379ff371","f4ca3b22c9e88f65bed7610cd42d95078f8e4f43970b7b16d118ba591f58e0b2","e33599284c79d0f860edcdb70dc02835a8733d7fda9d50defa972230e4041ad8","97c4109ace14bb8dc4866b6c25580417b242bda431e47042edf4249097740605","f9cc4bbe3e1f0f2aaba18810c8366a52b3313787e1006dafe856e6bb85589768"],"profile":2,"step":2,"rows":33,"pos":2054,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["prefill_flash"],"counts":{"metal_selector":1,"flash_kernel":1},"offset":2087,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,4096,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s0","sha256":["26d4ec3dbadefcb990143a3cf8cc2af26867e506dac63720c75cff06680a3d97","428ec41f2bdfcea8e057bba1ea44da6fac4e69c4f242a7f73711835c074c04e7","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","adb7727eddc9ad309c20eb0f7acec9bd719368a2595d27104c26dae858bf270a","61a8a82c84245f6c87412f9388762173caaec389cda858ce7d422397b3cb8fd8"],"profile":3,"step":0,"rows":33,"pos":2051,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["prefill_gather","rows_gather"],"counts":{"metal_selector":1,"gather_tier":1},"offset":2084,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s1","sha256":["d8a73036e3548fd3e3b3afd9ad977d5ac59b5e49be1e7a8bc88a41511df23d77","e2040b98728e05e64270299ad27af9c1de4652251829a973758632808d21460e","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","2aa561111b116ecc28875f2e94eceb07202efc872eba7532e56388754ce1688b","7473b8485505c80d398549755d4fb3c0c9afb8f87ed28caf73515bc8a9d4dfdf"],"profile":3,"step":1,"rows":1,"pos":2084,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2085,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,1,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s2","sha256":["897abdc6117f9c0c5e5d18e1af45c7f43405e5d1a1e5a9aeccd910ac7f5cddea","980d39a86221b9830ed506624b77d0a52e1dadfafd7e251e6e857d85704ebe5f","21627edfbbd9051a5d651d42c8c11b96a7a05ac05f17cc78383546dcc6b66ace","ea10900d4ed471d0c691b98b53b0405e5419af7e4684a8359b50e1ac3e8a51b6","36a3e49b1e0afec074c5f87d0f6d21725db577311b140cf14b9526d9fca93878","e5518c1d91ef3fe869a82878cd98ebfb2c54d960c8789d7fab13e5e9ac573c78"],"profile":3,"step":2,"rows":4,"pos":2085,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2089,"pooled_len":522,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s0","sha256":["5ad34efb9c409202f9d46ec96b5ea0cc2eb9f784b8bb60ae68bc09b49d1d0cbc","428ec41f2bdfcea8e057bba1ea44da6fac4e69c4f242a7f73711835c074c04e7","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","adb7727eddc9ad309c20eb0f7acec9bd719368a2595d27104c26dae858bf270a","61a8a82c84245f6c87412f9388762173caaec389cda858ce7d422397b3cb8fd8"],"profile":4,"step":0,"rows":33,"pos":2051,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["dense_mask","sdpa"],"counts":{"metal_selector":1,"dense_fallback":1},"offset":2084,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s1","sha256":["127fa8802d9961e55c15f4525f545123f5c7a2c7eb10209e6c96a56d7e16ff11","86106e47dc909eabeaaf563a53490f65c764b7074d2ceb55126f5fff308063a5","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","2aa561111b116ecc28875f2e94eceb07202efc872eba7532e56388754ce1688b","7473b8485505c80d398549755d4fb3c0c9afb8f87ed28caf73515bc8a9d4dfdf"],"profile":4,"step":1,"rows":1,"pos":2084,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["flash"],"counts":{},"offset":2085,"pooled_len":521,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s2","sha256":["aa15fe8333e27eaa3b4f88ad5a6f23291776970a91dff4c09cf809d53672046f","384b957fe162e9969db5f9653a742934f71c7d5a3d885f5217c2244d7cee48d0","21627edfbbd9051a5d651d42c8c11b96a7a05ac05f17cc78383546dcc6b66ace","36a3e49b1e0afec074c5f87d0f6d21725db577311b140cf14b9526d9fca93878","e5518c1d91ef3fe869a82878cd98ebfb2c54d960c8789d7fab13e5e9ac573c78"],"profile":4,"step":2,"rows":4,"pos":2085,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["rows_gather"],"counts":{},"offset":2089,"pooled_len":522,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":2,"qk_rows_calls":0,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"row_tokens","input_shape":[1,4,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p5_s0","sha256":["ab99c9574f8b240786bc94b5df47da3e9a094d5ef5df2cf0964c09553f8db578","48e48f96c54776ebd1a034cdfcf93ae5e027038346bff0b1cc4f6600a73bdbd4","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","e306e83c8d627a6f049a19bc517a7e51799e9a0eaed12206ada6acdb56692404","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":5,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":false,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{"decode_gather":1},"offset":2052,"pooled_len":513,"state_present":[true,true,true,true,true],"shapes":[[1,1,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p5_s1","sha256":["d8762135183d3a85dfd8713c2fda95cf6397f495329ee3f626a0fc56f3cb8e2d","1ceca1a52f5057c1aaee04689fc8026d3df9e1b657d718d75b9a72aeb8a88b25","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","3e7868fee9012a7381fe661c802858b96a6d7bc55d1076b87cb20d2a15285e77","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":5,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":false,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["rows_gather"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s0","sha256":["068422304f4191e74610562e007ffa7ec0d4b2ff5ed619997442ca1d254073b1","6f49058a22d7c62bbf4ffba4542b7aa32a130076b07537ac5605b2c85bb97162","158b3b53061c6d3d089049f9fdb47064a8c4f3d2f3fdb0ef5089afcaeba7cc5d","d4bc3f9184f206d1c86876a7ce98f086cf94f7912b460f7dc8c809b5b78d579b","011cc9bf7a9b2f86548e46728a9013e24273ca27ee50f9ee3f5509ecbc7c851f"],"profile":6,"step":0,"rows":2048,"pos":32768,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["prefill_flash"],"counts":{"flash_kernel":1,"compiled_selector":1},"offset":34816,"pooled_len":8704,"state_present":[true,true,false,true,true],"shapes":[[1,2048,64],[1,65536,128],[1,16384,128],[1,2,34816,256],[1,2,34816,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw65536:pool16384:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s1","sha256":["bcbfcd4ff8d59b123b6ba9e84c2d621b9982c5e7430c84b82240f2b4416e48af","d50916defa6c9151ffeb706a7e0d6b8c04b861eaa94ed2b637f82fce79c8f2c9","158b3b53061c6d3d089049f9fdb47064a8c4f3d2f3fdb0ef5089afcaeba7cc5d","7c9ca3c2fd81b2f4749ce1f575a963b7054f004b91879a64212ecda5b0c34463","773fdcd29060aa9a94684db395aeccdbe1af803e191f3d0b938abc109d715fbb"],"profile":6,"step":1,"rows":1,"pos":34816,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["flash"],"counts":{},"offset":34817,"pooled_len":8704,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,65536,128],[1,16384,128],[1,2,35072,256],[1,2,35072,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw65536:pool16384:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw65536:pool16384:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s2","sha256":["e5f8b59d40e7e1c579d22d66af242e2882d1ab57727f17c7b9eeea894a5368e7","3b29542bd05bd5525466ad6c5951dd2d59759bed880564b8e07058d8feed1d42","9bc8c466e0a3164a6f4e22c0ffe23a895126f57945d4e7f0d5a07e79c63778ad","a41386c0de5defa3cc2eb26fe6005bab14865f573f9380f998d35e324abdbb43","270285c24ae2ea32e45240ada590a6cc1c9e7b14adfc23b270c7d7440c7372d4"],"profile":6,"step":2,"rows":4,"pos":34817,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["rows_gather"],"counts":{},"offset":34821,"pooled_len":8705,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,65536,128],[1,16384,128],[1,2,35072,256],[1,2,35072,256]],"core":{"calls":3,"compiled_calls":3,"hidden_calls":0,"qk_rows_calls":3,"traces":3,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw65536:pool16384:out0":3},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw65536:pool16384:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw65536:pool16384:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s0","sha256":["f9c3c5622d5d7c346d6c2881634894e60f030654828e74d96041317d5d1b99e5","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","f583e84d01f4e3bfb152b8855f8520d25c5fd1639c20961343d44d3b494ee18f","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":7,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s1","sha256":["96067951d1aa0a433bcc85d4c51f0dbbf8f142f2f97b0e4aa1f0396ce6af89de","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","4af7a650ea8717de842e55d3691237c8e2af5c5c8ac78868e1323773e1a792f1","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":7,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s2","sha256":["5c48c9fcdb884b10fecce90489b58457a977528d3732d9ceb90d202f9a8bcabf","0962884629f0854f29ed23c253f65f1d44fcb8bfde142e948411c9e0ed65faf9","5b6ab0a7cc9a3a122481547531253bcba5f039fc507718fc85bef86dd8dc56ea","57eb1075e3ed3fe889a40c34bd1e59974119725a3a9ef009646a3427b3be9dd6","7fe9f3c5a939bb7dd64a147ea63354dc92c40828f2cc4d1cf8b3be331b86f4e5"],"profile":7,"step":2,"rows":2,"pos":2054,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,2,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":3,"compiled_calls":3,"hidden_calls":0,"qk_rows_calls":3,"traces":3,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw4096:pool1024:out0":3},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,2,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":2,"label":"qk_rows:row_tokens:s2:raw4096:pool1024:out0:scorenone:chunk2:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s3","sha256":["554527077cad0087f4b548f1cf28dfbf186762ce6e3e12982922b97eec865e1d","9424991712e6561268208093dc9c9df018591b376554ac208eab7f242bdba4e4","5b6ab0a7cc9a3a122481547531253bcba5f039fc507718fc85bef86dd8dc56ea","28b0c2bfcc8486f5c6daafec65e013f6d2efbf99b24cdf75ba25372716d828d9","6d3d7b11ac7cff92650bdc798b862cbd21b383cd0154f53eee439af721d3c55f"],"profile":7,"step":3,"rows":1,"pos":2056,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2057,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":4,"compiled_calls":4,"hidden_calls":0,"qk_rows_calls":4,"traces":3,"selector_dispatches":4,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw4096:pool1024:out0":4},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,2,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":2,"label":"qk_rows:row_tokens:s2:raw4096:pool1024:out0:scorenone:chunk2:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s0","sha256":["2f2d1534efe9754560b2d2289f6c9756da611928c8c9e2321786ab03dd447111","84e64cfc1690832a3a6ed516b577d1001b89b382254c08b2663f493691330f2e","7da3f843c044b333d43259efd0a68f1c0a8f5230707898663f9ce096dd1f294a"],"profile":8,"step":0,"rows":3,"pos":0,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":3,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,3,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s1","sha256":["dbe815a17715596ea030903a6800bba50c5ed74b9e03a3d29826e42acd57377b","50d2e91a257e44f7554a3ba6b1e0b0c0bef2a3f9ec4f1c4b6904e150f9b7b48c","a79deff710fa918973e19986ced87ae13347fbd66972c79fd4241d299f4472dc"],"profile":8,"step":1,"rows":1,"pos":3,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":4,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,1,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s2","sha256":["faeacdecf2a8829ff7c7c5751858003e0931435cae65c610e5c362a3997ba050","d4c84ff24f73effb7d50f227eb1248f997cc7ea466b6a15e6fa2876cf9481ea0","af7554d1b0575d27146ecc0b2d3755a89a645e42231c214b62cbecfaf6d81402"],"profile":8,"step":2,"rows":4,"pos":4,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":8,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,4,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p9_s0","sha256":["91fd57e3f97be79622b57e34ed7e80b9934f65ce650592a6a619f0c88b322bd9","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":9,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":3,"vision":"no_axes","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p9_s1","sha256":["893d7f0e21dc6a1c5099fa172b86630a0b694dc90ea7c6db4ae928c2151e9b00","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":9,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":3,"vision":"no_axes","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":2,"qk_rows_calls":0,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"row_tokens","input_shape":[1,4,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p0_s0","sha256":["81cabd974019bcd738e4db77d9d7b089042d747910700154be3cc3da1ce986e7","316ed43e666fc6fb252dda7a8003ecb4be8da621d37db522985096db50465844","b4f1ff4375d0b1de7607bef982261bc0c7eba872a69ddc7b7dad6fbfdd3e1859","39b0f22d255932aefce0fff5850e71c764d11fd9e48c34b05fdbe22de04e7d44","b895415c8e478aff1ca87a13b4a553231b475db7a3969586a3b3d9b0d4291cd7"],"profile":0,"step":0,"rows":1,"pos":0,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":1,"pooled_len":0,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,256,128],[1,256,128],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p0_s1","sha256":["305e99a624ec1ef7144f43fad916352118cde06382377139cb606a09e5079bc9","8a6f35d3a8d1a938887f03baf9718fa9af582d121d1bed815dc68cb0482db7b1","46fe8ab534bd3d133ca7aa24d80a2f771907107ecac4f4f2496bc6501da6b855","847fb2445590d5b14c84e8a3afa037193a54e60aa9ab935f11815c0c237582c3","4152bdd42eacde7f856bace140740cc1b118fc0626c091daf2bbb7abaef2bc2d","cdb4f72a8a977ed2805ee125111ac4561a05997924610cb127d456aedb868553"],"profile":0,"step":1,"rows":4,"pos":1,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":5,"pooled_len":1,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,256,128],[1,256,128],[1,1,128,256],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p0_s2","sha256":["0db2e98676e803665a722901a32da71a553b2c589a9108e3b1f79a5be93c9992","75b526cbdc562be1855bd78936eb74132ac9e8c92186a06a517106e48544f312","d9b5b65fe3b0ac1e201e710f39f49c2d7a87f97dfb34cbdd71d1598d8b7d037d","fdfd8846b635f94a215516ccbca6b106a13d69c99a088893020fe5a1f27c110e","b456ba45bb69d6aec6338b8fc22e4bdb1e463a084966b8c33ed381c43d5579a3","ebc3501a599b08fc6c3f880049f7a5b4158343195f100e0afd4b769436043880"],"profile":0,"step":2,"rows":33,"pos":5,"prefix":0,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":38,"pooled_len":9,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,256,128],[1,256,128],[1,1,128,256],[1,2,256,256],[1,2,256,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p1_s0","sha256":["b289b91fea8c3fd8a53aa342c1da50dd7587630e9231c2c633ed74801bc4abd4","34c31204eb0bd933118de0b814d76a47fbbdce3ddaf94682cc01313d6a1f24d1","b15ed8f5de02b368db84a18f8a0d8812a0fd22f284bb79d845b18813e431c9f8","494ec69e380077148c769831a4bd535099fbe38f2fd297b2b26a015bee36d8bd","e1213d239372c8ffcd6687e26b02afc91ed801a4cfdca844611219fecf6a1ef2","3f1135ef46d69e9fa8c0e820a6fdc050291f66cc09e659af6b95d5cf89ecf09e"],"profile":1,"step":0,"rows":2048,"pos":0,"prefix":0,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2048,"pooled_len":512,"state_present":[true,true,true,true,true],"shapes":[[1,2048,64],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,2048,256],[1,2,2048,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p1_s1","sha256":["6149e7a89e32d1cafad0376e10cf1f92b9f3e0074545796de85a97afe5b6d8ed","84bf8d357182689a89ee8bf7923745849f4f65b7c33b9f06d4fdb704bb77ac60","b15ed8f5de02b368db84a18f8a0d8812a0fd22f284bb79d845b18813e431c9f8","eb40cbf14cea87403eab8af0b6f7ac1e0de2ab16a02e6f4ae56eb07103328fda","bf3ceb2ec376ca32aac53f53b827aeac49263964d80f1096d7ee4f27cf4ed18d"],"profile":1,"step":1,"rows":1,"pos":2048,"prefix":0,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2049,"pooled_len":512,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,512,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw4096:pool512:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s1:raw4096:pool512:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s0","sha256":["6fd06b68b7059ae0220c03d7afada76bdadc86001123c4180f1a16380a89bece","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":2,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["flash"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s1","sha256":["d8762135183d3a85dfd8713c2fda95cf6397f495329ee3f626a0fc56f3cb8e2d","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":2,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["rows_gather"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p2_s2","sha256":["c0c24b34e78eabd893b8544868251fab1fd74a69cdb1d630efb577c842e55a02","b42c170d3f1fec609e9a738c23c487abd2a077ff9388be681bc8c0cc379ff371","f4ca3b22c9e88f65bed7610cd42d95078f8e4f43970b7b16d118ba591f58e0b2","e33599284c79d0f860edcdb70dc02835a8733d7fda9d50defa972230e4041ad8","97c4109ace14bb8dc4866b6c25580417b242bda431e47042edf4249097740605","f9cc4bbe3e1f0f2aaba18810c8366a52b3313787e1006dafe856e6bb85589768"],"profile":2,"step":2,"rows":33,"pos":2054,"prefix":2051,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["prefill_flash"],"counts":{"metal_selector":1,"flash_kernel":1},"offset":2087,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,4096,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s0","sha256":["26d4ec3dbadefcb990143a3cf8cc2af26867e506dac63720c75cff06680a3d97","428ec41f2bdfcea8e057bba1ea44da6fac4e69c4f242a7f73711835c074c04e7","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","adb7727eddc9ad309c20eb0f7acec9bd719368a2595d27104c26dae858bf270a","61a8a82c84245f6c87412f9388762173caaec389cda858ce7d422397b3cb8fd8"],"profile":3,"step":0,"rows":33,"pos":2051,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["prefill_gather","rows_gather"],"counts":{"metal_selector":1,"gather_tier":1},"offset":2084,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s1","sha256":["d8a73036e3548fd3e3b3afd9ad977d5ac59b5e49be1e7a8bc88a41511df23d77","e2040b98728e05e64270299ad27af9c1de4652251829a973758632808d21460e","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","2aa561111b116ecc28875f2e94eceb07202efc872eba7532e56388754ce1688b","7473b8485505c80d398549755d4fb3c0c9afb8f87ed28caf73515bc8a9d4dfdf"],"profile":3,"step":1,"rows":1,"pos":2084,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2085,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,1,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p3_s2","sha256":["897abdc6117f9c0c5e5d18e1af45c7f43405e5d1a1e5a9aeccd910ac7f5cddea","980d39a86221b9830ed506624b77d0a52e1dadfafd7e251e6e857d85704ebe5f","21627edfbbd9051a5d651d42c8c11b96a7a05ac05f17cc78383546dcc6b66ace","ea10900d4ed471d0c691b98b53b0405e5419af7e4684a8359b50e1ac3e8a51b6","36a3e49b1e0afec074c5f87d0f6d21725db577311b140cf14b9526d9fca93878","e5518c1d91ef3fe869a82878cd98ebfb2c54d960c8789d7fab13e5e9ac573c78"],"profile":3,"step":2,"rows":4,"pos":2085,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2089,"pooled_len":522,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s0","sha256":["5ad34efb9c409202f9d46ec96b5ea0cc2eb9f784b8bb60ae68bc09b49d1d0cbc","428ec41f2bdfcea8e057bba1ea44da6fac4e69c4f242a7f73711835c074c04e7","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","e92a652299b0a800db3bcfb876d3ae8afa82c1d8121e75f0b04e3750702215e0","adb7727eddc9ad309c20eb0f7acec9bd719368a2595d27104c26dae858bf270a","61a8a82c84245f6c87412f9388762173caaec389cda858ce7d422397b3cb8fd8"],"profile":4,"step":0,"rows":33,"pos":2051,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["dense_mask","sdpa"],"counts":{"metal_selector":1,"dense_fallback":1},"offset":2084,"pooled_len":521,"state_present":[true,true,true,true,true],"shapes":[[1,33,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s1","sha256":["127fa8802d9961e55c15f4525f545123f5c7a2c7eb10209e6c96a56d7e16ff11","86106e47dc909eabeaaf563a53490f65c764b7074d2ceb55126f5fff308063a5","e24764cd3d03b99496b5878ab1983e84677b1c0e5a33d79fa7054f79befa4ba0","2aa561111b116ecc28875f2e94eceb07202efc872eba7532e56388754ce1688b","7473b8485505c80d398549755d4fb3c0c9afb8f87ed28caf73515bc8a9d4dfdf"],"profile":4,"step":1,"rows":1,"pos":2084,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["flash"],"counts":{},"offset":2085,"pooled_len":521,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p4_s2","sha256":["aa15fe8333e27eaa3b4f88ad5a6f23291776970a91dff4c09cf809d53672046f","384b957fe162e9969db5f9653a742934f71c7d5a3d885f5217c2244d7cee48d0","21627edfbbd9051a5d651d42c8c11b96a7a05ac05f17cc78383546dcc6b66ace","36a3e49b1e0afec074c5f87d0f6d21725db577311b140cf14b9526d9fca93878","e5518c1d91ef3fe869a82878cd98ebfb2c54d960c8789d7fab13e5e9ac573c78"],"profile":4,"step":2,"rows":4,"pos":2085,"prefix":2051,"fused":3,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":false,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["rows_gather"],"counts":{},"offset":2089,"pooled_len":522,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":2,"qk_rows_calls":0,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"row_tokens","input_shape":[1,4,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p5_s0","sha256":["ab99c9574f8b240786bc94b5df47da3e9a094d5ef5df2cf0964c09553f8db578","48e48f96c54776ebd1a034cdfcf93ae5e027038346bff0b1cc4f6600a73bdbd4","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","e306e83c8d627a6f049a19bc517a7e51799e9a0eaed12206ada6acdb56692404","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":5,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":false,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{"decode_gather":1},"offset":2052,"pooled_len":513,"state_present":[true,true,true,true,true],"shapes":[[1,1,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p5_s1","sha256":["d8762135183d3a85dfd8713c2fda95cf6397f495329ee3f626a0fc56f3cb8e2d","1ceca1a52f5057c1aaee04689fc8026d3df9e1b657d718d75b9a72aeb8a88b25","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","3e7868fee9012a7381fe661c802858b96a6d7bc55d1076b87cb20d2a15285e77","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":5,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":0,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":false,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["rows_gather"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,true,true,true],"shapes":[[1,4,64],[1,2304,128],[1,1024,128],[1,1,128,1024],[1,2,2304,256],[1,2,2304,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s0","sha256":["068422304f4191e74610562e007ffa7ec0d4b2ff5ed619997442ca1d254073b1","6f49058a22d7c62bbf4ffba4542b7aa32a130076b07537ac5605b2c85bb97162","158b3b53061c6d3d089049f9fdb47064a8c4f3d2f3fdb0ef5089afcaeba7cc5d","d4bc3f9184f206d1c86876a7ce98f086cf94f7912b460f7dc8c809b5b78d579b","011cc9bf7a9b2f86548e46728a9013e24273ca27ee50f9ee3f5509ecbc7c851f"],"profile":6,"step":0,"rows":2048,"pos":32768,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["prefill_flash"],"counts":{"flash_kernel":1,"compiled_selector":1},"offset":34816,"pooled_len":8704,"state_present":[true,true,false,true,true],"shapes":[[1,2048,64],[1,65536,128],[1,16384,128],[1,2,34816,256],[1,2,34816,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw65536:pool16384:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s1","sha256":["bcbfcd4ff8d59b123b6ba9e84c2d621b9982c5e7430c84b82240f2b4416e48af","d50916defa6c9151ffeb706a7e0d6b8c04b861eaa94ed2b637f82fce79c8f2c9","158b3b53061c6d3d089049f9fdb47064a8c4f3d2f3fdb0ef5089afcaeba7cc5d","7c9ca3c2fd81b2f4749ce1f575a963b7054f004b91879a64212ecda5b0c34463","773fdcd29060aa9a94684db395aeccdbe1af803e191f3d0b938abc109d715fbb"],"profile":6,"step":1,"rows":1,"pos":34816,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["flash"],"counts":{},"offset":34817,"pooled_len":8704,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,65536,128],[1,16384,128],[1,2,35072,256],[1,2,35072,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw65536:pool16384:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw65536:pool16384:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p6_s2","sha256":["e5f8b59d40e7e1c579d22d66af242e2882d1ab57727f17c7b9eeea894a5368e7","3b29542bd05bd5525466ad6c5951dd2d59759bed880564b8e07058d8feed1d42","9bc8c466e0a3164a6f4e22c0ffe23a895126f57945d4e7f0d5a07e79c63778ad","a41386c0de5defa3cc2eb26fe6005bab14865f573f9380f998d35e324abdbb43","270285c24ae2ea32e45240ada590a6cc1c9e7b14adfc23b270c7d7440c7372d4"],"profile":6,"step":2,"rows":4,"pos":34817,"prefix":32768,"fused":4,"vision":"none","no_indexer":false,"biased":false,"flash_min":32768,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["rows_gather"],"counts":{},"offset":34821,"pooled_len":8705,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,65536,128],[1,16384,128],[1,2,35072,256],[1,2,35072,256]],"core":{"calls":3,"compiled_calls":3,"hidden_calls":0,"qk_rows_calls":3,"traces":3,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw65536:pool16384:out0":3},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw65536:pool16384:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,2048,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":2048,"label":"qk_rows:prefill_blocks:s2048:raw65536:pool16384:out0:scorempp:chunk2048:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,65536,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,16384,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw65536:pool16384:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s0","sha256":["f9c3c5622d5d7c346d6c2881634894e60f030654828e74d96041317d5d1b99e5","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","f583e84d01f4e3bfb152b8855f8520d25c5fd1639c20961343d44d3b494ee18f","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":7,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s1","sha256":["96067951d1aa0a433bcc85d4c51f0dbbf8f142f2f97b0e4aa1f0396ce6af89de","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","4af7a650ea8717de842e55d3691237c8e2af5c5c8ac78868e1323773e1a792f1","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":7,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s2","sha256":["5c48c9fcdb884b10fecce90489b58457a977528d3732d9ceb90d202f9a8bcabf","0962884629f0854f29ed23c253f65f1d44fcb8bfde142e948411c9e0ed65faf9","5b6ab0a7cc9a3a122481547531253bcba5f039fc507718fc85bef86dd8dc56ea","57eb1075e3ed3fe889a40c34bd1e59974119725a3a9ef009646a3427b3be9dd6","7fe9f3c5a939bb7dd64a147ea63354dc92c40828f2cc4d1cf8b3be331b86f4e5"],"profile":7,"step":2,"rows":2,"pos":2054,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,2,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":3,"compiled_calls":3,"hidden_calls":0,"qk_rows_calls":3,"traces":3,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw4096:pool1024:out0":3},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,2,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":2,"label":"qk_rows:row_tokens:s2:raw4096:pool1024:out0:scorenone:chunk2:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p7_s3","sha256":["554527077cad0087f4b548f1cf28dfbf186762ce6e3e12982922b97eec865e1d","9424991712e6561268208093dc9c9df018591b376554ac208eab7f242bdba4e4","5b6ab0a7cc9a3a122481547531253bcba5f039fc507718fc85bef86dd8dc56ea","28b0c2bfcc8486f5c6daafec65e013f6d2efbf99b24cdf75ba25372716d828d9","6d3d7b11ac7cff92650bdc798b862cbd21b383cd0154f53eee439af721d3c55f"],"profile":7,"step":3,"rows":1,"pos":2056,"prefix":2051,"fused":4,"vision":"table","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2057,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":4,"compiled_calls":4,"hidden_calls":0,"qk_rows_calls":4,"traces":3,"selector_dispatches":4,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw4096:pool1024:out0":4},"entry_count":3,"compiled_keys":[{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,2,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":2,"label":"qk_rows:row_tokens:s2:raw4096:pool1024:out0:scorenone:chunk2:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s0","sha256":["2f2d1534efe9754560b2d2289f6c9756da611928c8c9e2321786ab03dd447111","84e64cfc1690832a3a6ed516b577d1001b89b382254c08b2663f493691330f2e","7da3f843c044b333d43259efd0a68f1c0a8f5230707898663f9ce096dd1f294a"],"profile":8,"step":0,"rows":3,"pos":0,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":3,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,3,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s1","sha256":["dbe815a17715596ea030903a6800bba50c5ed74b9e03a3d29826e42acd57377b","50d2e91a257e44f7554a3ba6b1e0b0c0bef2a3f9ec4f1c4b6904e150f9b7b48c","a79deff710fa918973e19986ced87ae13347fbd66972c79fd4241d299f4472dc"],"profile":8,"step":1,"rows":1,"pos":3,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":4,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,1,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p8_s2","sha256":["faeacdecf2a8829ff7c7c5751858003e0931435cae65c610e5c362a3997ba050","d4c84ff24f73effb7d50f227eb1248f997cc7ea466b6a15e6fa2876cf9481ea0","af7554d1b0575d27146ecc0b2d3755a89a645e42231c214b62cbecfaf6d81402"],"profile":8,"step":2,"rows":4,"pos":4,"prefix":0,"fused":0,"vision":"none","no_indexer":true,"biased":true,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":8,"pooled_len":0,"state_present":[false,false,false,true,true],"shapes":[[1,4,64],[1,2,256,256],[1,2,256,256]],"core":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p9_s0","sha256":["91fd57e3f97be79622b57e34ed7e80b9934f65ce650592a6a619f0c88b322bd9","fa52f9dff396320af135c22c25b328674b3c44b6c768df9ed2d54d31bbecc71f","5385335d390b6950b06db2bd3a3e86efe8b4ca7d48d7458828f6891d0815be26","0823d3bc139c67f69911c8970fb2c1bcf5f757971e9191f8b98d56f6689840ae","ea3bda4b6f89e3552003b8afb307a5d04a67cb8d024ea18b7a7df90a172f7342"],"profile":9,"step":0,"rows":1,"pos":2051,"prefix":2051,"fused":3,"vision":"no_axes","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2052,"pooled_len":513,"state_present":[true,true,false,true,true],"shapes":[[1,1,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw4096:pool1024:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_attention_p9_s1","sha256":["893d7f0e21dc6a1c5099fa172b86630a0b694dc90ea7c6db4ae928c2151e9b00","c7e437185225097e4ce2bb012fb9dea74124314e3858db5b2d3f89d175628f8e","99fb41883cf58e2cec92897b8486a4b20b6817dc32c1b98d320280e2984756b4","e38b573ffab0799d27fcadc08d1e6a6aa31e40b4e6a61c5e9c98073a7012ba24","f54917b64b4e33520dd53be4677edb0d92a41e62d868d44eff6fdbc030530df8"],"profile":9,"step":1,"rows":4,"pos":2052,"prefix":2051,"fused":3,"vision":"no_axes","no_indexer":false,"biased":false,"flash_min":2049,"prefill_gather":true,"options":{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":false},"consumers":["sdpa"],"counts":{},"offset":2056,"pooled_len":514,"state_present":[true,true,false,true,true],"shapes":[[1,4,64],[1,4096,128],[1,1024,128],[1,2,2304,256],[1,2,2304,256]],"core":{"calls":2,"compiled_calls":2,"hidden_calls":2,"qk_rows_calls":0,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw4096:pool1024:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw4096:pool1024:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"row_tokens","input_shape":[1,4,64],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,4096,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,1024,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":512,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:row_tokens:s4:raw4096:pool1024:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} diff --git a/tests/fixtures/mtplx-qsa-cache-graph.jsonl b/tests/fixtures/mtplx-qsa-cache-graph.jsonl new file mode 100644 index 0000000..55bf895 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-cache-graph.jsonl @@ -0,0 +1,16 @@ +{"kernel":"qsa_cache_graph_0_4_128_bfloat16_0","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a6619f482fee91a315f76cdcd8705d39b6ce11077c435ccc696142e130c27762","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a6619f482fee91a315f76cdcd8705d39b6ce11077c435ccc696142e130c27762","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","d770c0d5fca9a56ab8beea2a78bed451cbadc9200804289c25fd87cffe8dc07a","6d28485c07aabd3a51ddf2c2fa152643031bdd0e9f3be16038b99ca177124195","2b692ff8955f448ae7136dc01c62a7be0e22f495fdff31dc19daa7bb02fa5e8e","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","99bf4739298aea266cd2ebece16b118c857f00bfac80d1081f3c73e386d5d049","f19f44f22f3c549d6a2b60ffb95c2afd9781f35ffa6b35f7e0566ca5028938f5","75022eb429fa747a0bca029bfdf4aefbef9ac8e8a8ae31c843fb7665d60b2e5c","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","cd207a1d33f4667acb160581988df2687925f7aaa543f2fce56f0fa0be73b034","789ab2db7bda54858e45e10626ad83572590be139a73ac74d7ca60e4447d4ae4","5e3e2143bd865267bface871dd1c6aab40476cd8aa2ba872eb352b58f6cbe40c","9d138f2a1449859d5ec5b423dbf53be59d3347dd8a33ebbb20c1471298430aad","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","2d049f1c277e57227bac647133d95e37a75005eb56cb0103dcaa9351d6359516","919094fdc28c39d4b59da36c09d0b5d0d55c1e755b992926a4119814fa917c3a","856774f2f81f4d9f8de04eaa2de47e60fde206733ad475c23e3b876fea76fc55","7f41f4d80a89d74e04c0c45320458c83ed53d7b2bcb38c1d0d307a51263b6ee0","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","5af6b2393b343349ea09e9b88cddd58e98e70f1a1322aed3c2a15e2a2332eb80","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","5af6b2393b343349ea09e9b88cddd58e98e70f1a1322aed3c2a15e2a2332eb80","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","2e7810253cd6942d78a83d7dd38db23859ee95c4ee3f85346446c5fea3f703ab","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":0,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,768,0,0],"reserved":[768,320],"nbytes":196608},{"action":"snapshot","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,768,0,0],"reserved":[768,320],"nbytes":196608},{"action":"reserve","a":2049,"b":769,"offset":0,"pooled_len":0,"capacities":[0,0,2049,0,0],"reserved":[2049,769],"nbytes":524544},{"action":"view","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,2049,0,0],"reserved":[2049,769],"nbytes":524544},{"action":"append","a":3,"b":0,"offset":3,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"trim","a":2,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832,"trimmed":2},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"restore","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[0,0],"nbytes":0},{"action":"view","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[0,0],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184,"trimmed":257},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[512,512,2048,512,256],"reserved":[2048,512],"nbytes":1703936},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[512,512,2048,512,512],"reserved":[2048,512],"nbytes":1703936}],"shapes":[[1,2,0,256],[1,2,0,256],[1,768,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,768,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,2049,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,2049,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,3,256],[1,2,3,256],[1,3,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,512,256],[1,2,512,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,512,256],[1,2,512,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_0_4_128_bfloat16_1","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a6619f482fee91a315f76cdcd8705d39b6ce11077c435ccc696142e130c27762","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","a6619f482fee91a315f76cdcd8705d39b6ce11077c435ccc696142e130c27762","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","d770c0d5fca9a56ab8beea2a78bed451cbadc9200804289c25fd87cffe8dc07a","6d28485c07aabd3a51ddf2c2fa152643031bdd0e9f3be16038b99ca177124195","2b692ff8955f448ae7136dc01c62a7be0e22f495fdff31dc19daa7bb02fa5e8e","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","99bf4739298aea266cd2ebece16b118c857f00bfac80d1081f3c73e386d5d049","f19f44f22f3c549d6a2b60ffb95c2afd9781f35ffa6b35f7e0566ca5028938f5","75022eb429fa747a0bca029bfdf4aefbef9ac8e8a8ae31c843fb7665d60b2e5c","4e640e83b7111398050e2b8ca7807b21abef76f69035468d5949df39c9638806","be087c4cae57dc3ef3da86951933a5db430296d589525ab3f200b8fcda0d1be8","db23aee21a04551284babfe5cd3794c33d029ecc8df733a0a447c31cd2e87b1f","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","cd207a1d33f4667acb160581988df2687925f7aaa543f2fce56f0fa0be73b034","789ab2db7bda54858e45e10626ad83572590be139a73ac74d7ca60e4447d4ae4","5e3e2143bd865267bface871dd1c6aab40476cd8aa2ba872eb352b58f6cbe40c","9d138f2a1449859d5ec5b423dbf53be59d3347dd8a33ebbb20c1471298430aad","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","2d049f1c277e57227bac647133d95e37a75005eb56cb0103dcaa9351d6359516","919094fdc28c39d4b59da36c09d0b5d0d55c1e755b992926a4119814fa917c3a","856774f2f81f4d9f8de04eaa2de47e60fde206733ad475c23e3b876fea76fc55","7f41f4d80a89d74e04c0c45320458c83ed53d7b2bcb38c1d0d307a51263b6ee0","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","c41cc774596b26f08d55718a8d06288fb50de7c553fac77f972b4e4313293ec6","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","5af6b2393b343349ea09e9b88cddd58e98e70f1a1322aed3c2a15e2a2332eb80","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","1b4ed12c58e87b04504a6eb9ff095c32a223de16ec4c342c6a62034bd7a04198","cf6dbe8d5f0d83307e43f4971eb78fadbd8a3d1b545371164bb95c79c161cbe2","5af6b2393b343349ea09e9b88cddd58e98e70f1a1322aed3c2a15e2a2332eb80","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","2e7810253cd6942d78a83d7dd38db23859ee95c4ee3f85346446c5fea3f703ab","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":0,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,768,0,0],"reserved":[768,320],"nbytes":196608},{"action":"snapshot","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,768,0,0],"reserved":[768,320],"nbytes":196608},{"action":"reserve","a":2049,"b":769,"offset":0,"pooled_len":0,"capacities":[0,0,2049,0,0],"reserved":[2049,769],"nbytes":524544},{"action":"view","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,2049,0,0],"reserved":[2049,769],"nbytes":524544},{"action":"append","a":3,"b":0,"offset":3,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"trim","a":2,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832,"trimmed":2},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"restore","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[0,0],"nbytes":0},{"action":"view","a":0,"b":0,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[0,0],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184,"trimmed":257},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[512,512,512,256,256],"reserved":[0,0],"nbytes":1245184},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[512,512,2048,512,256],"reserved":[2048,512],"nbytes":1703936},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[512,512,2048,512,512],"reserved":[2048,512],"nbytes":1703936}],"shapes":[[1,2,0,256],[1,2,0,256],[1,768,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,768,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,2049,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,2049,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,3,256],[1,2,3,256],[1,3,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,512,256],[1,2,512,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,512,256],[1,2,512,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,512,256],[1,2,512,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_1_4_128_bfloat16_0","sha256":["69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","05cec199035f62279296ab7cb5930aff83d0bdfbb5c6f84a3c3806dff29029bd","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","05cec199035f62279296ab7cb5930aff83d0bdfbb5c6f84a3c3806dff29029bd","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","9ef420180d536a60c2ad6a9a8c89639259cb031c6a2330759c638cc72354a45d","33d9b5aea4c22fe8960ff96e9b52949e44725fe74643ecef1522698bb3f6a21e","bf097b26c288e5dec50f8a1b84a53c6a1e2b0bd24d549c8b5040880625331105","511b03e448a9a8ba1b3c020d2b116409e3d4d4935be2c34cbc298ca2f466744c","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","964c850bb6f3ef159e69c839889259f7188b7412ca742b61894ece264ef24aab","5fe2a3cf118018ee6f64ddd6b7739b287323063ec77c4e3c862a0c0f17b365cc","94971635929041171197b11c95f6aa44f7ad4fdf2eb33ba8ab75e28985633cd8","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","15ee44a21abddf904b39765e0dc0210f2a491bbaa3577fe804ee1ada35a56204","9ca0d2e9d3ac6060d12d954d0d537a237e4ce1527895089c2e72afe8f407cc05","72398b5d0327de515b6e96d6e2f7e8d22630c9f695d754926da3213b59af4067","9d138f2a1449859d5ec5b423dbf53be59d3347dd8a33ebbb20c1471298430aad","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","2e27a8aeb2a7244fd3af365420f84fe525637bdbc75fc2e53455dd1ec7d45a3b","e8c76681a76c40a11aff97919292db74a1c666c19e1ea34af9a09bac2da7d1d5","15cb50ee0955fd41cdf85996a472379ee8bcfd835be0d7a2a50dd38209aa0b7c","7f41f4d80a89d74e04c0c45320458c83ed53d7b2bcb38c1d0d307a51263b6ee0","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","170ef811ba045f4579fb43af4bf29f7301efd12c33484ac785e8cf6a88d0d53a","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","170ef811ba045f4579fb43af4bf29f7301efd12c33484ac785e8cf6a88d0d53a","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","2e7810253cd6942d78a83d7dd38db23859ee95c4ee3f85346446c5fea3f703ab","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":1,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,768,0,0],"reserved":[768,320],"nbytes":720896},{"action":"snapshot","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,768,0,0],"reserved":[768,320],"nbytes":720896},{"action":"reserve","a":2049,"b":769,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"view","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"append","a":3,"b":0,"offset":4,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"trim","a":2,"b":0,"offset":2,"pooled_len":0,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696,"trimmed":2},{"action":"append","a":4,"b":0,"offset":6,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"restore","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[1,1,1,0,0],"reserved":[1,0],"nbytes":2304},{"action":"view","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[1,1,1,0,0],"reserved":[1,0],"nbytes":2304},{"action":"append","a":257,"b":0,"offset":258,"pooled_len":64,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232,"trimmed":258},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[513,513,2048,512,256],"reserved":[2048,512],"nbytes":1705984},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[513,513,2048,512,512],"reserved":[2048,512],"nbytes":1705984}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,4,256],[1,2,4,256],[1,4,128],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,2,256],[1,2,2,256],[1,2,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,6,256],[1,2,6,256],[1,6,128],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_1_4_128_bfloat16_1","sha256":["69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","05cec199035f62279296ab7cb5930aff83d0bdfbb5c6f84a3c3806dff29029bd","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","05cec199035f62279296ab7cb5930aff83d0bdfbb5c6f84a3c3806dff29029bd","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","9ef420180d536a60c2ad6a9a8c89639259cb031c6a2330759c638cc72354a45d","33d9b5aea4c22fe8960ff96e9b52949e44725fe74643ecef1522698bb3f6a21e","bf097b26c288e5dec50f8a1b84a53c6a1e2b0bd24d549c8b5040880625331105","511b03e448a9a8ba1b3c020d2b116409e3d4d4935be2c34cbc298ca2f466744c","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","964c850bb6f3ef159e69c839889259f7188b7412ca742b61894ece264ef24aab","5fe2a3cf118018ee6f64ddd6b7739b287323063ec77c4e3c862a0c0f17b365cc","94971635929041171197b11c95f6aa44f7ad4fdf2eb33ba8ab75e28985633cd8","69c4599b04dbb46a561b19b1b7d797b99235b3fa12cdd6eb6b71da4613235540","a0e2638c0a6dbb611c0240c592a65daa68fe1f74e8d37ba2a5921f3ba3d72483","b3f58fa978440e5644e8ca150cca542bebc729f78c8b50c7ea70e5d9a86f6cd0","0c912f2d617c1cbc02945f7583d5d5a101a98658415a33fbaf7619b08db18268","4effbcf5cd3ec095687f98c74d9498eafbf582f93d85c910aa7fe9c4ef136e73","15ee44a21abddf904b39765e0dc0210f2a491bbaa3577fe804ee1ada35a56204","9ca0d2e9d3ac6060d12d954d0d537a237e4ce1527895089c2e72afe8f407cc05","72398b5d0327de515b6e96d6e2f7e8d22630c9f695d754926da3213b59af4067","9d138f2a1449859d5ec5b423dbf53be59d3347dd8a33ebbb20c1471298430aad","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","da33f4b21b47986ea98e818141aa5199dcdabac0ee3149804495496728f16d89","5f159e27000004242ebaed086075d46d1ed175b829fcce066817126358ba5369","d5d19fb1df84592188bab8456f259b5e823f0f016a1cab230e608b08ae34a6b1","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","2e27a8aeb2a7244fd3af365420f84fe525637bdbc75fc2e53455dd1ec7d45a3b","e8c76681a76c40a11aff97919292db74a1c666c19e1ea34af9a09bac2da7d1d5","15cb50ee0955fd41cdf85996a472379ee8bcfd835be0d7a2a50dd38209aa0b7c","7f41f4d80a89d74e04c0c45320458c83ed53d7b2bcb38c1d0d307a51263b6ee0","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","ea2a63fe71a4abc6acd5604c3e64db8fd42bf3c0e48c17992397057c67a07201","0fe7178f349bd71ea62b3003f46ac24f3ab8b2a3516c05e43f8e2f5ca3f01592","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","170ef811ba045f4579fb43af4bf29f7301efd12c33484ac785e8cf6a88d0d53a","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","43ee38ea07c1bb99c6612f5ce0aadd5a5769ec54725a29281bf6295c88a57bcb","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","c15f013151f3ce8487f80a86a73477095d497af09f2cf3dfd37436f807de0297","cef1b8e7632a7b2df0d8d83f6f4ef23d6d76ecb9c7cfd03b080d247b55801825","170ef811ba045f4579fb43af4bf29f7301efd12c33484ac785e8cf6a88d0d53a","742832cb28dd07e1f78d72d17b6c1ce8f329897a70412c8d38d2158ef1411485","2e7810253cd6942d78a83d7dd38db23859ee95c4ee3f85346446c5fea3f703ab","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":1,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,768,0,0],"reserved":[768,320],"nbytes":720896},{"action":"snapshot","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,768,0,0],"reserved":[768,320],"nbytes":720896},{"action":"reserve","a":2049,"b":769,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"view","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[256,256,2049,0,0],"reserved":[2049,769],"nbytes":1048832},{"action":"append","a":3,"b":0,"offset":4,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"trim","a":2,"b":0,"offset":2,"pooled_len":0,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696,"trimmed":2},{"action":"append","a":4,"b":0,"offset":6,"pooled_len":1,"capacities":[256,256,2049,769,769],"reserved":[2049,769],"nbytes":1245696},{"action":"restore","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[1,1,1,0,0],"reserved":[1,0],"nbytes":2304},{"action":"view","a":0,"b":0,"offset":1,"pooled_len":0,"capacities":[1,1,1,0,0],"reserved":[1,0],"nbytes":2304},{"action":"append","a":257,"b":0,"offset":258,"pooled_len":64,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232,"trimmed":258},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[513,513,512,256,256],"reserved":[1,0],"nbytes":1247232},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[513,513,2048,512,256],"reserved":[2048,512],"nbytes":1705984},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[513,513,2048,512,512],"reserved":[2048,512],"nbytes":1705984}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,4,256],[1,2,4,256],[1,4,128],[1,1,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,2,256],[1,2,2,256],[1,2,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,6,256],[1,2,6,256],[1,6,128],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,513,256],[1,2,513,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,513,256],[1,2,513,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_255_4_128_bfloat16_0","sha256":["545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","38ff65eec5d02d281c4c26e72a0cbb9384e143f9b1fe9adacd3c06ab5c90dabd","03ce2b739a14355cf82c46c790d2d62144c655423382937c276628fdd74bc246","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","38ff65eec5d02d281c4c26e72a0cbb9384e143f9b1fe9adacd3c06ab5c90dabd","03ce2b739a14355cf82c46c790d2d62144c655423382937c276628fdd74bc246","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","2a93dc4f08500c5c8adaf733f3f698ee6ab2d64878ccdb4014b6a135be985413","24ff7284776b7ddff903e41c37a5cb6b60e684b1490dcec73c77f3d4dcb408bd","616b05f53bfe67050bcdcd69d395f30ef600f053ab8eaffc52221373fb99eff0","da7184bb19356b5c4f57f8df3a741a9f969e7c77f0aa35134f28d7203b57d44b","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","269b38c39af957f54fd5b86edec3954aabc25bcb1d267d2a650184f808c07ce5","0bb09e045826d5d916c76e7edcee8b99a90fbcde5aeb2e7e112ee50e16d014ff","732ff5c028d8cefb40c31feb41b582f178762e451035ac090f6df4923062f1c7","da7184bb19356b5c4f57f8df3a741a9f969e7c77f0aa35134f28d7203b57d44b","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","abe527407d95532fdabbb5bad479a06fd2a79b52c355842fd07c78bb7652638e","e376226ba634120237cb69ee82cd85a2f67afac629dffd7b5833ca2f35a319b4","0b147bf9f47a8eab52cd721a33b37bf5de3e5d8ad624427358dc2a45e6504d7e","644344c9147e5549bbc08a186fbd4a5ec82ac7e71b50b64c160cfc66d3629b4f","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","9733d54974da2c961886a3399d52a0a168b838c28715fb3d83ce4b226161c8f1","3e9e2441ff58e3b3f1e6ea20e6df926f705add9833333c15a2d889dbdf258818","64dccd376046a08eb23fbd2265db4f35d79556b04dc007a323bc0c31f6dd2cac","83df027e9ade9b2294d9ac9cf1f8077bed2f8247e9d824f4eb7e7dbf5eed6507","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","778562e21c344a38c5ba6b0536d7b7d39f06bf0e6452b35b772fc0fb75dca19c","bdc6a85644cdd642735def7bcc2cae1760abd5a2d870cd82258c80400fdfb166","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","778562e21c344a38c5ba6b0536d7b7d39f06bf0e6452b35b772fc0fb75dca19c","bdc6a85644cdd642735def7bcc2cae1760abd5a2d870cd82258c80400fdfb166","37aa1e55799f957de7066ed929a3c07b67d961b35ab4a8945957db212f4cea86","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":255,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":255,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"snapshot","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"reserve","a":2049,"b":769,"offset":255,"pooled_len":63,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"view","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"append","a":3,"b":0,"offset":258,"pooled_len":64,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936},{"action":"trim","a":2,"b":0,"offset":256,"pooled_len":64,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936,"trimmed":2},{"action":"append","a":4,"b":0,"offset":260,"pooled_len":65,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936},{"action":"restore","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[255,255,255,63,0],"reserved":[255,63],"nbytes":603648},{"action":"view","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[255,255,255,63,63],"reserved":[255,63],"nbytes":603648},{"action":"append","a":257,"b":0,"offset":512,"pooled_len":128,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424,"trimmed":512},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[767,767,2048,512,256],"reserved":[2048,512],"nbytes":2226176},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[767,767,2048,512,512],"reserved":[2048,512],"nbytes":2226176}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,260,256],[1,2,260,256],[1,260,128],[1,65,128],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,512,256],[1,2,512,256],[1,512,128],[1,128,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,767,256],[1,2,767,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,767,256],[1,2,767,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_255_4_128_bfloat16_1","sha256":["545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","38ff65eec5d02d281c4c26e72a0cbb9384e143f9b1fe9adacd3c06ab5c90dabd","03ce2b739a14355cf82c46c790d2d62144c655423382937c276628fdd74bc246","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","38ff65eec5d02d281c4c26e72a0cbb9384e143f9b1fe9adacd3c06ab5c90dabd","03ce2b739a14355cf82c46c790d2d62144c655423382937c276628fdd74bc246","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","545d9b2a6794b648def10295b26d301ba2fef685b7bda9d08af1e15d67fb85f5","cce2d3184216137a74f948118a910d2c535435bd8ba819a3bcb719fbeb51e8c0","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","b5bdda5a6dc767a988d5143af286cdc4b89cefbecc5f0fd38edfa0ad4506c0a3","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","2a93dc4f08500c5c8adaf733f3f698ee6ab2d64878ccdb4014b6a135be985413","24ff7284776b7ddff903e41c37a5cb6b60e684b1490dcec73c77f3d4dcb408bd","616b05f53bfe67050bcdcd69d395f30ef600f053ab8eaffc52221373fb99eff0","da7184bb19356b5c4f57f8df3a741a9f969e7c77f0aa35134f28d7203b57d44b","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","269b38c39af957f54fd5b86edec3954aabc25bcb1d267d2a650184f808c07ce5","0bb09e045826d5d916c76e7edcee8b99a90fbcde5aeb2e7e112ee50e16d014ff","732ff5c028d8cefb40c31feb41b582f178762e451035ac090f6df4923062f1c7","da7184bb19356b5c4f57f8df3a741a9f969e7c77f0aa35134f28d7203b57d44b","f62b880eb4aebbbaa25a0cb910536d7adc7aa95a36af6641ff78c9e3f7f8eae8","7933efb61b447046c1e689376a6909fef83e730f6015694be7e96b7c9830ae17","4418975a56c610bd414ec6fb5daee55ba381394346edca2115ebc802603ed020","5db19b9dffda6759e72107a34d2b36835a4d18618086c1d8f4cb946d75d4b18b","6b7ed7a25bcfe2c1d118209ed0c7dfcd277378fdbbef4af69748b960a95d5593","abe527407d95532fdabbb5bad479a06fd2a79b52c355842fd07c78bb7652638e","e376226ba634120237cb69ee82cd85a2f67afac629dffd7b5833ca2f35a319b4","0b147bf9f47a8eab52cd721a33b37bf5de3e5d8ad624427358dc2a45e6504d7e","644344c9147e5549bbc08a186fbd4a5ec82ac7e71b50b64c160cfc66d3629b4f","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","aadb171d2b6d7217403dcd8bf3a9a5b40879cd2ad6f843824b7474fe57ec5633","e0bfd24665b722360e0f74c89182654aa0a8e26cf3f3c72e32e9c6ebad5a8c18","de864248a22d0d19d349ccac99be307547b10f8e3a2c38ecf5c14d1a6e185d4b","bc8a5b41360fe82e1d6f4604110319318d21b5cd1707883ebe75190c510db7c0","14a55b6ca27902c5e48d3a3e6bd29fe26c29c360fda7be8d7fd96396a228079c","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","9733d54974da2c961886a3399d52a0a168b838c28715fb3d83ce4b226161c8f1","3e9e2441ff58e3b3f1e6ea20e6df926f705add9833333c15a2d889dbdf258818","64dccd376046a08eb23fbd2265db4f35d79556b04dc007a323bc0c31f6dd2cac","83df027e9ade9b2294d9ac9cf1f8077bed2f8247e9d824f4eb7e7dbf5eed6507","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","462c1c5d3e7a114063d4562bd18f75984606f26d9a5277eba1441f6eb87a1018","907448674740b07639bd0b882cdb5ce3800ff77529756f998347961ef2adbd6e","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","778562e21c344a38c5ba6b0536d7b7d39f06bf0e6452b35b772fc0fb75dca19c","bdc6a85644cdd642735def7bcc2cae1760abd5a2d870cd82258c80400fdfb166","88862623be4bf55c22b3cb4bdbf341ded757f1932144df95e19b7f07a15cd8f2","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","5a0744f64291d7657ad28c4d8e38d4033034752022be6285a50465fc058eaa80","3b800e97dfcdb7d7de38e4f09ed029296c07fe448f97809e4c19b6cd598db0ef","778562e21c344a38c5ba6b0536d7b7d39f06bf0e6452b35b772fc0fb75dca19c","bdc6a85644cdd642735def7bcc2cae1760abd5a2d870cd82258c80400fdfb166","37aa1e55799f957de7066ed929a3c07b67d961b35ab4a8945957db212f4cea86","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":255,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":255,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"snapshot","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"reserve","a":2049,"b":769,"offset":255,"pooled_len":63,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"view","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"append","a":3,"b":0,"offset":258,"pooled_len":64,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936},{"action":"trim","a":2,"b":0,"offset":256,"pooled_len":64,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936,"trimmed":2},{"action":"append","a":4,"b":0,"offset":260,"pooled_len":65,"capacities":[511,511,2049,769,769],"reserved":[2049,769],"nbytes":1767936},{"action":"restore","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[255,255,255,63,0],"reserved":[255,63],"nbytes":603648},{"action":"view","a":0,"b":0,"offset":255,"pooled_len":63,"capacities":[255,255,255,63,63],"reserved":[255,63],"nbytes":603648},{"action":"append","a":257,"b":0,"offset":512,"pooled_len":128,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424,"trimmed":512},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[767,767,512,256,256],"reserved":[255,63],"nbytes":1767424},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[767,767,2048,512,256],"reserved":[2048,512],"nbytes":2226176},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[767,767,2048,512,512],"reserved":[2048,512],"nbytes":2226176}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,511,256],[1,2,511,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,260,256],[1,2,260,256],[1,260,128],[1,65,128],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,1,128,63],[1,2,255,256],[1,2,255,256],[1,255,128],[1,63,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,512,256],[1,2,512,256],[1,512,128],[1,128,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,767,256],[1,2,767,256],[1,512,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,767,256],[1,2,767,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,767,256],[1,2,767,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_256_4_128_bfloat16_0","sha256":["6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","358164c2cc05abcc487869c997c3b686ced0fd6c79395b418cbc35be76d8030b","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","358164c2cc05abcc487869c997c3b686ced0fd6c79395b418cbc35be76d8030b","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","750377fd96537e425aa5e7e4c5370d9e28c435554c9f169bafb41de8edd3f49b","589eac07346fc6b6daf2a3303defc12def3e26e974d8b7c9ca2fd3eaee534e7c","ad306abea04a79c7dccdefdd30220c83989924028c7dee8fb1f1d31b57230477","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","08ca97add49ef615a7e0816b414a10378c93a0ed74250ad5f9d332bb71989c6d","753572ebc1df0a2d3bd7d0ec161deb9563ceba031856e087bc3ecfcbd883a068","272fa73f072935c7700e5d40533e375c88030310a6c70c1b2b067f18d6574ec6","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","c2ec972b377c4a2e26e69993d45440ff5c1f82c4722b14943e727d853e98e794","3202ccb457341e3198a51ace56721e25636f0c1414280d7697a708689998c13a","31d9b57112a3856d79d58caa5a290aeeeeffa1a801dca6b15a9c7c7502286499","6fea888c83677fde1d938e04957c4d0850aba85560c7696039ad14d13e028c8a","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","17be3cef7f00967981df7784991950293f574c5a21e24a39e881d96aa0c7c98f","63a2af8ab1bbac0f84efbd4e3594d963a2cc46095e60d43519259f2ef26d0b30","74e89ea26aea34c80bf8eb8b29f85a258c099f207a2ed92d35b385693fbebff0","0453ea885851a28135ffc1015b6e2f42f147ef7757724e2607962de8a7035d9c","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","73e2a789eb15df0911bc8fbe76c75549600b69e921372c0b810380ee3e0de1bf","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","73e2a789eb15df0911bc8fbe76c75549600b69e921372c0b810380ee3e0de1bf","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","493b82fab07e3c1bc1ca682c8ccfd5ef1844b08ab8a1f3f62f07e94e651eef88","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":256,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":256,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"snapshot","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"reserve","a":2049,"b":769,"offset":256,"pooled_len":64,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"view","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"append","a":3,"b":0,"offset":259,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"trim","a":2,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984,"trimmed":2},{"action":"append","a":4,"b":0,"offset":261,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"restore","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,256,64,0],"reserved":[256,64],"nbytes":606208},{"action":"view","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,256,64,64],"reserved":[256,64],"nbytes":606208},{"action":"append","a":257,"b":0,"offset":513,"pooled_len":128,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008,"trimmed":513},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[768,768,2048,512,256],"reserved":[2048,512],"nbytes":2228224},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[768,768,2048,512,512],"reserved":[2048,512],"nbytes":2228224}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,259,256],[1,2,259,256],[1,259,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,261,256],[1,2,261,256],[1,261,128],[1,65,128],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,513,256],[1,2,513,256],[1,513,128],[1,128,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,768,256],[1,2,768,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,768,256],[1,2,768,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_256_4_128_bfloat16_1","sha256":["6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","358164c2cc05abcc487869c997c3b686ced0fd6c79395b418cbc35be76d8030b","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","358164c2cc05abcc487869c997c3b686ced0fd6c79395b418cbc35be76d8030b","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","750377fd96537e425aa5e7e4c5370d9e28c435554c9f169bafb41de8edd3f49b","589eac07346fc6b6daf2a3303defc12def3e26e974d8b7c9ca2fd3eaee534e7c","ad306abea04a79c7dccdefdd30220c83989924028c7dee8fb1f1d31b57230477","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","08ca97add49ef615a7e0816b414a10378c93a0ed74250ad5f9d332bb71989c6d","753572ebc1df0a2d3bd7d0ec161deb9563ceba031856e087bc3ecfcbd883a068","272fa73f072935c7700e5d40533e375c88030310a6c70c1b2b067f18d6574ec6","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","f80db528586ed44233bc32a78fab57b39e9bf2e32cdb82a756cf984cb0a9863b","f8d82b9368dda33b2e7fc59583e15ac37481e9884cb567324532452b4e76dd6b","0012c1df7b175fced853545fb442c357c464ea2e5b77cde793cf3170469c47ca","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","c2ec972b377c4a2e26e69993d45440ff5c1f82c4722b14943e727d853e98e794","3202ccb457341e3198a51ace56721e25636f0c1414280d7697a708689998c13a","31d9b57112a3856d79d58caa5a290aeeeeffa1a801dca6b15a9c7c7502286499","6fea888c83677fde1d938e04957c4d0850aba85560c7696039ad14d13e028c8a","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","6665788922ba0fc356e7213a0ea21528306791eb3c2849f9e10ec64b1c09a30c","febee449cd7c6662055768ed8373cc3c11c270b61e4f46c69fa637a7533704f6","00b571a5974cfdca10a39886365a12053ad803694e500f81864e893d513f6b04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","17be3cef7f00967981df7784991950293f574c5a21e24a39e881d96aa0c7c98f","63a2af8ab1bbac0f84efbd4e3594d963a2cc46095e60d43519259f2ef26d0b30","74e89ea26aea34c80bf8eb8b29f85a258c099f207a2ed92d35b385693fbebff0","0453ea885851a28135ffc1015b6e2f42f147ef7757724e2607962de8a7035d9c","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","a0830895317be47ecbd0a78d243a22b99049e16735fbe6a7511cffe99543a1a3","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","73e2a789eb15df0911bc8fbe76c75549600b69e921372c0b810380ee3e0de1bf","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","248fba79691433ce7148c301cb437a284b425a177279b797568e2d643f27a3f0","e7c2997181c2be6ff120b9e26601311410a7c9f62e531d7963af284077559f53","73e2a789eb15df0911bc8fbe76c75549600b69e921372c0b810380ee3e0de1bf","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","493b82fab07e3c1bc1ca682c8ccfd5ef1844b08ab8a1f3f62f07e94e651eef88","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":256,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":256,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"snapshot","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,768,320,320],"reserved":[768,320],"nbytes":802816},{"action":"reserve","a":2049,"b":769,"offset":256,"pooled_len":64,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"view","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,2049,769,320],"reserved":[2049,769],"nbytes":1245696},{"action":"append","a":3,"b":0,"offset":259,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"trim","a":2,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984,"trimmed":2},{"action":"append","a":4,"b":0,"offset":261,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"restore","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,256,64,0],"reserved":[256,64],"nbytes":606208},{"action":"view","a":0,"b":0,"offset":256,"pooled_len":64,"capacities":[256,256,256,64,64],"reserved":[256,64],"nbytes":606208},{"action":"append","a":257,"b":0,"offset":513,"pooled_len":128,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008,"trimmed":513},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[768,768,768,256,256],"reserved":[256,64],"nbytes":1835008},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[768,768,2048,512,256],"reserved":[2048,512],"nbytes":2228224},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[768,768,2048,512,512],"reserved":[2048,512],"nbytes":2228224}],"shapes":[[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,259,256],[1,2,259,256],[1,259,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,261,256],[1,2,261,256],[1,261,128],[1,65,128],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,1,128,64],[1,2,256,256],[1,2,256,256],[1,256,128],[1,64,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,513,256],[1,2,513,256],[1,513,128],[1,128,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,768,256],[1,2,768,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,768,256],[1,2,768,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,768,256],[1,2,768,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_257_1_17_float16_0","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","3fc24d7a07bc22fd6723aecd4a84472c9289ea5f808fef2bd59010e237b20e2e","36ef31541fe1a7c5fc777942769e8568d15539f97ea53bc0a78197b3846a02b7","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","3fc24d7a07bc22fd6723aecd4a84472c9289ea5f808fef2bd59010e237b20e2e","36ef31541fe1a7c5fc777942769e8568d15539f97ea53bc0a78197b3846a02b7","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","372ac79fe3da4e97656f5148fc1719b398ea7c25cbb1aa1af46b6681a705f19e","de1e7c9bbe7fc48811850a7aa68c8357f873fee01101bb71be3f7a07873f67c9","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","f38ec1bb65ccb46ae63c097b6e976a8c4bc4bbdced42df7abaf932c3968495bd","4a30c9c64da3a187ae7175901d7fcea938a788e3e400ceaaf630e957726e77c7","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","cb8a1383c2e26d4b49506a9e19317ff7f88cb3d3f8d22f5faa92f6a76e683770","89f2258a37fd79634d84efa72e15447ffa9379aec50756e5cbc4009053ae59c4","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","0d2f048e2c79d295e4d9d40748ed07adc7b7c08b43698a08d1da84ac32832706","cb726b79e69c43827e3d1ae4e3ed077d369f521d0229c3e2a5eadb209b0f3b38","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","46e3cf39a0e81d97a5a4bde6701eef0d38cff5f00eb778ce66ee204d80670d14","e9d293851d587b1093b7528d68e18ca00e2db6819db67e29ed564f8d0b4c3aec","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","61a22c4d0ce0aef6baaa30007e08b51e5421e529505f983c3403a16f8b95477c","9ba5ea78eebbe30d2384a90ca5338a0afca21cf60b3b58917aae0f80aa30078f","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","46e3cf39a0e81d97a5a4bde6701eef0d38cff5f00eb778ce66ee204d80670d14","e9d293851d587b1093b7528d68e18ca00e2db6819db67e29ed564f8d0b4c3aec","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","61a22c4d0ce0aef6baaa30007e08b51e5421e529505f983c3403a16f8b95477c","9ba5ea78eebbe30d2384a90ca5338a0afca21cf60b3b58917aae0f80aa30078f","35edc4671142788f1566f17f4016df9cbdafc3915e5b96730711a09963a5cdb7","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","7d19e149eb8915060662b1f7668357940dcb5402f605132549bfd78fb1c1a1b0","1fc77690d7e5baca0ffb0ce360b711245ad5bf4d5de0039753936ebfc0d5a114"],"initial":257,"ratio":1,"dim":17,"dtype":"float16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,768,512,512],"reserved":[768,320],"nbytes":1092096},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,768,512,512],"reserved":[768,320],"nbytes":1092096},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":257,"capacities":[512,512,2049,769,512],"reserved":[2049,769],"nbytes":1144388},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,2049,769,512],"reserved":[2049,769],"nbytes":1144388},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":260,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":258,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":262,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[257,257,257,257,0],"reserved":[257,257],"nbytes":543812},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[257,257,257,257,257],"reserved":[257,257],"nbytes":543812},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":514,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":1,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":1,"capacities":[769,769,2048,2048,768],"reserved":[2048,2048],"nbytes":1714176},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":5,"capacities":[769,769,2048,2048,2048],"reserved":[2048,2048],"nbytes":1714176}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,17],[1,512,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,768,17],[1,512,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,260,256],[1,2,260,256],[1,260,17],[1,260,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,258,256],[1,2,258,256],[1,258,17],[1,258,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,262,256],[1,2,262,256],[1,262,17],[1,262,17],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,514,256],[1,2,514,256],[1,514,17],[1,514,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,0,256],[1,2,0,256],[1,0,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,1,256],[1,2,1,256],[1,1,17],[1,1,17],[1,2,769,256],[1,2,769,256],[1,2048,17],[1,2048,17],[1,1,17,768],[1,2,1,256],[1,2,1,256],[1,1,17],[1,1,17],[1,2,769,256],[1,2,769,256],[1,2048,17],[1,2048,17],[1,1,17,2048],[1,2,5,256],[1,2,5,256],[1,5,17],[1,5,17]]} +{"kernel":"qsa_cache_graph_257_1_17_float16_1","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","3fc24d7a07bc22fd6723aecd4a84472c9289ea5f808fef2bd59010e237b20e2e","36ef31541fe1a7c5fc777942769e8568d15539f97ea53bc0a78197b3846a02b7","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","3fc24d7a07bc22fd6723aecd4a84472c9289ea5f808fef2bd59010e237b20e2e","36ef31541fe1a7c5fc777942769e8568d15539f97ea53bc0a78197b3846a02b7","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","18fe1e197098b6a28c26af5430c82390fe33d6b049f75af17a170ac47660686d","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","372ac79fe3da4e97656f5148fc1719b398ea7c25cbb1aa1af46b6681a705f19e","de1e7c9bbe7fc48811850a7aa68c8357f873fee01101bb71be3f7a07873f67c9","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","f38ec1bb65ccb46ae63c097b6e976a8c4bc4bbdced42df7abaf932c3968495bd","4a30c9c64da3a187ae7175901d7fcea938a788e3e400ceaaf630e957726e77c7","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","c1e6a9ec05cf22add3d3f4c6ce7575ba201c8ba5cd0902f84aa591f9a8edf254","a3f627b52262c23463edd786a0c9b72709bab7cc04834710f45d30476fb38a9d","d65e3f57fa20a8f52dfbbe94b5b9e07d5df5fabb935668d28d137942571e3f64","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","cb8a1383c2e26d4b49506a9e19317ff7f88cb3d3f8d22f5faa92f6a76e683770","89f2258a37fd79634d84efa72e15447ffa9379aec50756e5cbc4009053ae59c4","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","384f45920522d0b3b981c42997d921450bcff765721e611b1556639983e43491","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","4936464cb2e64b94424624aa69c91bdf65e4898fd976e0fc5866fc119e1c0c41","2bd657e9cdd5aa8b1338596a74ea89f3d6de2a61bb7f56d584f4939c580cb5bb","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","0d2f048e2c79d295e4d9d40748ed07adc7b7c08b43698a08d1da84ac32832706","cb726b79e69c43827e3d1ae4e3ed077d369f521d0229c3e2a5eadb209b0f3b38","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","d535ecd2960e6207251fc54fc14d17a4bb5780b7799d4a2b4f15eaa5eab14c1a","e131ff4992655b598e0deeee87b3d132c66d57f0b4121e56cb5eb29bced609b1","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","46e3cf39a0e81d97a5a4bde6701eef0d38cff5f00eb778ce66ee204d80670d14","e9d293851d587b1093b7528d68e18ca00e2db6819db67e29ed564f8d0b4c3aec","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","61a22c4d0ce0aef6baaa30007e08b51e5421e529505f983c3403a16f8b95477c","9ba5ea78eebbe30d2384a90ca5338a0afca21cf60b3b58917aae0f80aa30078f","6dcad059e5fecdff71e986903d813ed68cfbfb464e109392e2573af91685a26b","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","46e3cf39a0e81d97a5a4bde6701eef0d38cff5f00eb778ce66ee204d80670d14","e9d293851d587b1093b7528d68e18ca00e2db6819db67e29ed564f8d0b4c3aec","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","61a22c4d0ce0aef6baaa30007e08b51e5421e529505f983c3403a16f8b95477c","9ba5ea78eebbe30d2384a90ca5338a0afca21cf60b3b58917aae0f80aa30078f","35edc4671142788f1566f17f4016df9cbdafc3915e5b96730711a09963a5cdb7","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","7d19e149eb8915060662b1f7668357940dcb5402f605132549bfd78fb1c1a1b0","1fc77690d7e5baca0ffb0ce360b711245ad5bf4d5de0039753936ebfc0d5a114"],"initial":257,"ratio":1,"dim":17,"dtype":"float16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,768,512,512],"reserved":[768,320],"nbytes":1092096},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,768,512,512],"reserved":[768,320],"nbytes":1092096},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":257,"capacities":[512,512,2049,769,512],"reserved":[2049,769],"nbytes":1144388},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[512,512,2049,769,512],"reserved":[2049,769],"nbytes":1144388},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":260,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":258,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":262,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1144388},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[257,257,257,257,0],"reserved":[257,257],"nbytes":543812},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":257,"capacities":[257,257,257,257,257],"reserved":[257,257],"nbytes":543812},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":514,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":1,"capacities":[769,769,768,768,768],"reserved":[257,257],"nbytes":1627136},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":1,"capacities":[769,769,2048,2048,768],"reserved":[2048,2048],"nbytes":1714176},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":5,"capacities":[769,769,2048,2048,2048],"reserved":[2048,2048],"nbytes":1714176}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,17],[1,512,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,768,17],[1,512,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,512],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,260,256],[1,2,260,256],[1,260,17],[1,260,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,258,256],[1,2,258,256],[1,258,17],[1,258,17],[1,2,512,256],[1,2,512,256],[1,2049,17],[1,769,17],[1,1,17,769],[1,2,262,256],[1,2,262,256],[1,262,17],[1,262,17],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,1,17,257],[1,2,257,256],[1,2,257,256],[1,257,17],[1,257,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,514,256],[1,2,514,256],[1,514,17],[1,514,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,0,256],[1,2,0,256],[1,0,17],[1,2,769,256],[1,2,769,256],[1,768,17],[1,768,17],[1,1,17,768],[1,2,1,256],[1,2,1,256],[1,1,17],[1,1,17],[1,2,769,256],[1,2,769,256],[1,2048,17],[1,2048,17],[1,1,17,768],[1,2,1,256],[1,2,1,256],[1,1,17],[1,1,17],[1,2,769,256],[1,2,769,256],[1,2048,17],[1,2048,17],[1,1,17,2048],[1,2,5,256],[1,2,5,256],[1,5,17],[1,5,17]]} +{"kernel":"qsa_cache_graph_257_4_128_bfloat16_0","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","79650d8a846262ae46a1b6b9cacc8276208b9c9341600e7057c320ec96af2f98","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","79650d8a846262ae46a1b6b9cacc8276208b9c9341600e7057c320ec96af2f98","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","ffc10501f352d4b1854a3c253136e6b1df1ced07d2b2f88df6316591daaa5f0c","6ac072a5d9ff4edfd7127448d0dd9beb63658261aeeaba4d3e2ef05a1d5f0c2d","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","d05397dbf67360d71e91b90dfefa1522d5a99749d0df0262f896715d3a3e0c31","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","bfe7ca7ba62a7140ad6fae1933f1087a4e66a41dc2efcdfb7ead33d0138966ae","6fea888c83677fde1d938e04957c4d0850aba85560c7696039ad14d13e028c8a","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","bfb1e9433608966df67c2ff2f04aff67efb2469b0f8075a324b5de0eff5c22f5","0453ea885851a28135ffc1015b6e2f42f147ef7757724e2607962de8a7035d9c","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","0bf0aecbd49124f8628122f143d2bd040667fcd08213beddba3089e575af2f00","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","0bf0aecbd49124f8628122f143d2bd040667fcd08213beddba3089e575af2f00","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","493b82fab07e3c1bc1ca682c8ccfd5ef1844b08ab8a1f3f62f07e94e651eef88","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":257,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":1327104},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":1327104},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":64,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[257,257,257,64,0],"reserved":[257,64],"nbytes":608512},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[257,257,257,64,64],"reserved":[257,64],"nbytes":608512},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":128,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,2048,512,256],"reserved":[2048,512],"nbytes":2230272},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[769,769,2048,512,512],"reserved":[2048,512],"nbytes":2230272}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,260,256],[1,2,260,256],[1,260,128],[1,65,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,262,256],[1,2,262,256],[1,262,128],[1,65,128],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,514,256],[1,2,514,256],[1,514,128],[1,128,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,769,256],[1,2,769,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,769,256],[1,2,769,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_257_4_128_bfloat16_1","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","79650d8a846262ae46a1b6b9cacc8276208b9c9341600e7057c320ec96af2f98","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","79650d8a846262ae46a1b6b9cacc8276208b9c9341600e7057c320ec96af2f98","2266ba362375d649057be713120a5cdd9b55178b63ba277415d43b370497ce05","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","fb1715a3a8a95eeff24e6be653feee69907c83bea667b91127f0ef1b1d98f53e","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","ffc10501f352d4b1854a3c253136e6b1df1ced07d2b2f88df6316591daaa5f0c","6ac072a5d9ff4edfd7127448d0dd9beb63658261aeeaba4d3e2ef05a1d5f0c2d","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","d05397dbf67360d71e91b90dfefa1522d5a99749d0df0262f896715d3a3e0c31","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e48ffe1cc6cb3bbdaf78fb8f1be1ec3e168af396315fab1fd98d3a342bcaada9","2c121ed002e159fd889ab29b6819a2e198b8104fe7a17d270e08de9f050c5c62","69e2274f13c51f11f9aa09ceb94b42e6603bf2127683fedc20fbe9b3de34e2ee","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","bfe7ca7ba62a7140ad6fae1933f1087a4e66a41dc2efcdfb7ead33d0138966ae","6fea888c83677fde1d938e04957c4d0850aba85560c7696039ad14d13e028c8a","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","7f21c1fbbac79a65f9474bfd2c1b355a3c23b68039e3ebbae6af2727e995e493","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","f6f578d710a3830a414f60907332008f457716336eeb26066a76dbc10786ae04","4085c46deceb0caf8fad25df044da8cb3af71fc1c04434f154778d86eeb51d76","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","bfb1e9433608966df67c2ff2f04aff67efb2469b0f8075a324b5de0eff5c22f5","0453ea885851a28135ffc1015b6e2f42f147ef7757724e2607962de8a7035d9c","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e44580573d45a7cd94fb28f3749d8bc30482fc06b0be971bf94333ad589a5bfc","41c19ae733888e2f8e2bd648357152e94bff24d2100a70cf151f3fc125446992","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","0bf0aecbd49124f8628122f143d2bd040667fcd08213beddba3089e575af2f00","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","6cf879b413226df9850d133cfe41c290143d7b3cbf5ee7298d97545338e9e614","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","0bf0aecbd49124f8628122f143d2bd040667fcd08213beddba3089e575af2f00","3f5e21a873aff65536daefffb58df9031ce28d7aa6edc92de53b5613fa78e4d1","493b82fab07e3c1bc1ca682c8ccfd5ef1844b08ab8a1f3f62f07e94e651eef88","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":257,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":1327104},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":1327104},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":1769984},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":64,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":65,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":1769984},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[257,257,257,64,0],"reserved":[257,64],"nbytes":608512},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":64,"capacities":[257,257,257,64,64],"reserved":[257,64],"nbytes":608512},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":128,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,64],"nbytes":1837056},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,2048,512,256],"reserved":[2048,512],"nbytes":2230272},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[769,769,2048,512,512],"reserved":[2048,512],"nbytes":2230272}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,768,128],[1,320,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,260,256],[1,2,260,256],[1,260,128],[1,65,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,258,256],[1,2,258,256],[1,258,128],[1,64,128],[1,2,512,256],[1,2,512,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,262,256],[1,2,262,256],[1,262,128],[1,65,128],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,1,128,64],[1,2,257,256],[1,2,257,256],[1,257,128],[1,64,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,514,256],[1,2,514,256],[1,514,128],[1,128,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,769,256],[1,2,769,256],[1,768,128],[1,256,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,769,256],[1,2,769,256],[1,2048,128],[1,512,128],[1,1,128,256],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,769,256],[1,2,769,256],[1,2048,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_257_7_32_float32_0","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e5edbc85804fd487caa9286b809c8bc741a2d771ddb4c7f5620337c43e8c9a17","d520f3ef562a12ab856f3141907fa6a06a3a4693da1480284fd05d83930e4fa2","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e5edbc85804fd487caa9286b809c8bc741a2d771ddb4c7f5620337c43e8c9a17","d520f3ef562a12ab856f3141907fa6a06a3a4693da1480284fd05d83930e4fa2","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","76a3328a238b56ffde3bac8d7c3ad3a5da199941be9bb27c616d6f403800b8ae","0e4aa808fa54c65e21820d4655df9645a3a96ab9a93b1bd447573b792edfa84a","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","4003701711ab40133c9914125452cb52cc3440dcb75a75a354e95e243e629995","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","beecc3aa42061110e53d9fa5d4ce43a82bb83aa738e06d221fed5f54cd88d53f","483134a203c0f73587df89c4414a9b052ac9cbe9ea01dedc9b5549d9203d52fc","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","a4b1e482c00814f5fccaf5f133e3ed707d9a130556194a79ff9f4b63427b8171","ba34be9aa2940bf30adaf582428898cd9237276efaa3b0abd9259e71e9c9d47a","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","ce5bfeecf485a7ec712e4af83f59df716afdcc2508a2fd3299dcea98e8c7fd34","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","758778a1d2994e6175cdea001f5de5ffab38789b6d684052cb6814bde5bdc061","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","ce5bfeecf485a7ec712e4af83f59df716afdcc2508a2fd3299dcea98e8c7fd34","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","758778a1d2994e6175cdea001f5de5ffab38789b6d684052cb6814bde5bdc061","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","44bf74d3b566f461b8d427520e196b0450890e5d7bc2a15880dafe993c19c008"],"initial":257,"ratio":7,"dim":32,"dtype":"float32","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":2236416},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":2236416},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":36,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":2457856},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":2457856},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":37,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":36,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":37,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[257,257,257,36,0],"reserved":[257,36],"nbytes":1090176},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[257,257,257,36,36],"reserved":[257,36],"nbytes":1090176},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":73,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,2048,256,256],"reserved":[2048,256],"nbytes":3444736},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":0,"capacities":[769,769,2048,256,256],"reserved":[2048,256],"nbytes":3444736}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,32],[1,320,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,768,32],[1,320,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,260,256],[1,2,260,256],[1,260,32],[1,37,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,258,256],[1,2,258,256],[1,258,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,262,256],[1,2,262,256],[1,262,32],[1,37,32],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,514,256],[1,2,514,256],[1,514,32],[1,73,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,0,256],[1,2,0,256],[1,0,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,1,256],[1,2,1,256],[1,1,32],[1,2,769,256],[1,2,769,256],[1,2048,32],[1,256,32],[1,1,32,256],[1,2,1,256],[1,2,1,256],[1,1,32],[1,2,769,256],[1,2,769,256],[1,2048,32],[1,256,32],[1,1,32,256],[1,2,5,256],[1,2,5,256],[1,5,32]]} +{"kernel":"qsa_cache_graph_257_7_32_float32_1","sha256":["66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e5edbc85804fd487caa9286b809c8bc741a2d771ddb4c7f5620337c43e8c9a17","d520f3ef562a12ab856f3141907fa6a06a3a4693da1480284fd05d83930e4fa2","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","e5edbc85804fd487caa9286b809c8bc741a2d771ddb4c7f5620337c43e8c9a17","d520f3ef562a12ab856f3141907fa6a06a3a4693da1480284fd05d83930e4fa2","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","3df269098efd0ba5181b15aa164aaae275f2de7f70e9d6ea644f41faa3d59661","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","572d4afb97b344e93e6101a4bc6bf7d01de3aa69123954f36789cfc187945513","a6d66f0ef25a0dfc225a8b5d3e5947dd1f09f39abd12787bd502d93473850abe","76a3328a238b56ffde3bac8d7c3ad3a5da199941be9bb27c616d6f403800b8ae","0e4aa808fa54c65e21820d4655df9645a3a96ab9a93b1bd447573b792edfa84a","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","859d223d2de45ca2c3a23d90968e148b7411f4c5d46d5ce441fa214e7c10a1ab","ccbf46353f450b55bc591a1ff96f01051cb9da0c6802a10b687fe598fe2886e4","4003701711ab40133c9914125452cb52cc3440dcb75a75a354e95e243e629995","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","66eed52ac0a2aca196bdc3165e5710f89be0db4855a20a575c93a260c57186b2","0409261360be7316d5607dd79fc97b4f0354238d7d155d127849585a3f6e469f","a717bd18f98d7e036af24c234bfaf5d94f3a5e58d190eda7700cc1e1f82e5f77","74e65a2e1885b10339e3fcff0d3ae66836fa75e9a1a775f7e3434f58a0ccf9fc","efb4fcaa886d9c9ec9241f9ac2d0e0f70ca4072a2aee2bf9242a2870be681c0b","283e2a475037a272022423e65a69a0fdd1da0eacb810d4f269b2affd15fbd0a8","c46fec66cf13463e6176c24277e3f8e61c95fcc61e5489fe0df5cc0f477b648b","beecc3aa42061110e53d9fa5d4ce43a82bb83aa738e06d221fed5f54cd88d53f","483134a203c0f73587df89c4414a9b052ac9cbe9ea01dedc9b5549d9203d52fc","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","48edc937878eb3a8749a009d7e1eb6edf0d02f960fc86c13a344248f5d9c8fda","70787a5869010cd40b9f6c86db0fe8fc3e8a65c86a9c534c87267283ab427fac","f643a1b651b3b775cd1aa19ad7f122f17e5ba9dc09cbbbc293c23416535e3bf4","fbbbb2287245e7e513e211a8daba1fec7b38ff1d6e811055e4791622cc71b93d","d15dacdaf416fb2b90bcab73435c60031f8f5686e99a2194ed140a61401c01c6","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","6f96ea4c5e6412350fbd1bd4bea100c465eaebc1759f63edbbe693b8ead100b9","30a6bba4a495c9f693e68c1b1163132c2c8367bf00ff97e30dfe23994fdf78dd","a4b1e482c00814f5fccaf5f133e3ed707d9a130556194a79ff9f4b63427b8171","ba34be9aa2940bf30adaf582428898cd9237276efaa3b0abd9259e71e9c9d47a","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","e1288236cb1136b03fb9b69d207714ed4577cff339ae5b8a56479a871d4015c4","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","ce5bfeecf485a7ec712e4af83f59df716afdcc2508a2fd3299dcea98e8c7fd34","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","758778a1d2994e6175cdea001f5de5ffab38789b6d684052cb6814bde5bdc061","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","ce5bfeecf485a7ec712e4af83f59df716afdcc2508a2fd3299dcea98e8c7fd34","adac9419679a5b6a10a91cd8e4bafebdb9186f9e759b56fd06b6019044b21647","6fa9b7035cd65773543e3b88ec03b2c60b41b44f66af1ea21b29c171c1fdaae9","758778a1d2994e6175cdea001f5de5ffab38789b6d684052cb6814bde5bdc061","e09fbc5cbd8b149158f338ce5e5b85f50e946918aab500cb646d20eb06488e64","6b2c95ec3f2f82f56addc8c01dadf37c82dce6c7b9195dfcedf145de7f19d19d","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","44bf74d3b566f461b8d427520e196b0450890e5d7bc2a15880dafe993c19c008"],"initial":257,"ratio":7,"dim":32,"dtype":"float32","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":257,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":2236416},{"action":"snapshot","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,768,320,320],"reserved":[768,320],"nbytes":2236416},{"action":"reserve","a":2049,"b":769,"offset":257,"pooled_len":36,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":2457856},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[512,512,2049,769,320],"reserved":[2049,769],"nbytes":2457856},{"action":"append","a":3,"b":0,"offset":260,"pooled_len":37,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856},{"action":"trim","a":2,"b":0,"offset":258,"pooled_len":36,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856,"trimmed":2},{"action":"append","a":4,"b":0,"offset":262,"pooled_len":37,"capacities":[512,512,2049,769,769],"reserved":[2049,769],"nbytes":2457856},{"action":"restore","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[257,257,257,36,0],"reserved":[257,36],"nbytes":1090176},{"action":"view","a":0,"b":0,"offset":257,"pooled_len":36,"capacities":[257,257,257,36,36],"reserved":[257,36],"nbytes":1090176},{"action":"append","a":257,"b":0,"offset":514,"pooled_len":73,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896,"trimmed":514},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,768,256,256],"reserved":[257,36],"nbytes":3280896},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[769,769,2048,256,256],"reserved":[2048,256],"nbytes":3444736},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":0,"capacities":[769,769,2048,256,256],"reserved":[2048,256],"nbytes":3444736}],"shapes":[[1,2,512,256],[1,2,512,256],[1,768,32],[1,320,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,768,32],[1,320,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,320],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,260,256],[1,2,260,256],[1,260,32],[1,37,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,258,256],[1,2,258,256],[1,258,32],[1,36,32],[1,2,512,256],[1,2,512,256],[1,2049,32],[1,769,32],[1,1,32,769],[1,2,262,256],[1,2,262,256],[1,262,32],[1,37,32],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,1,32,36],[1,2,257,256],[1,2,257,256],[1,257,32],[1,36,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,514,256],[1,2,514,256],[1,514,32],[1,73,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,0,256],[1,2,0,256],[1,0,32],[1,2,769,256],[1,2,769,256],[1,768,32],[1,256,32],[1,1,32,256],[1,2,1,256],[1,2,1,256],[1,1,32],[1,2,769,256],[1,2,769,256],[1,2048,32],[1,256,32],[1,1,32,256],[1,2,1,256],[1,2,1,256],[1,1,32],[1,2,769,256],[1,2,769,256],[1,2048,32],[1,256,32],[1,1,32,256],[1,2,5,256],[1,2,5,256],[1,5,32]]} +{"kernel":"qsa_cache_graph_1025_4_128_bfloat16_0","sha256":["0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","09275bf11c5b528fb49d94d4e6b0b2773a19a5c69df838755ef580151ecbfe14","fa6a4fadd563bbf21e237a66fdcfc196e1eb4ce19579b40ad7609106892f187f","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","09275bf11c5b528fb49d94d4e6b0b2773a19a5c69df838755ef580151ecbfe14","fa6a4fadd563bbf21e237a66fdcfc196e1eb4ce19579b40ad7609106892f187f","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","9ad6f69863b9d89a627e745b8b717a6d14c6731ff798e0d3901a8984cd533738","054e48605d26c4d43951cdc5c4f267793a6e272eca76c30eb2c5c497c5259080","5b850392430ca13471631e3deaf421706e127529614e9e5ae85388760d5a11f0","851c3cbb506999a0b95f78da4ae749a8c06f086baeb82707a3bfd8e147855532","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","057c9e4ffe4dec14b35e8bd29cd32e69bbadb51d00a6d50e0066ba0cdf104465","f909f3c574fedc1dd85904f856a5cd0ccefdb1b842391b24e6599abbb9cde3b7","1bd084243df5c991a86e11f4b4513944cdab5572ab4babfa83c9cdeaa3394984","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","c4de2cc676febe48781f532c3c9d21637fb1436c5a549f5fd51b0e0d75bf0972","e428151e0c263c891e81cd21c06533b2543fa40a55f74d0177c71e747eda1399","2a29fbc3e44c264b2e42146022a4b028ea52656861decf62ad4bc47215d944dc","6379b43765a17b1a0a202bd14b6c650c2e95a070f2ac8f0ab977d255d763e718","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","56bc07c8e9cb2aa19b7b2522deceb4d4d68789c39d0268a8c0b213f76cdf46e1","af0b61e1370ad6781f2126282b691ddccd242e26953a0443de495f5a552dc983","a214c2971f8e119e5bbf9b7b2bf79f61eec88d099c4db0429fcc0f34307e571d","823b4b70def21bbd3a9a5112215a4f9dfcf4931816d327a878ac5cb9c6afcfab","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","717213874d37fe1d92a4862f7ff2264d5654838156aaba3470c3b188f904ffa9","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","717213874d37fe1d92a4862f7ff2264d5654838156aaba3470c3b188f904ffa9","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":1025,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":false,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":1025,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,1280,320,320],"reserved":[768,320],"nbytes":3031040},{"action":"snapshot","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,1280,320,320],"reserved":[768,320],"nbytes":3031040},{"action":"reserve","a":2049,"b":769,"offset":1025,"pooled_len":256,"capacities":[1280,1280,2049,769,320],"reserved":[2049,769],"nbytes":3342848},{"action":"view","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,2049,769,320],"reserved":[2049,769],"nbytes":3342848},{"action":"append","a":3,"b":0,"offset":1028,"pooled_len":257,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848},{"action":"trim","a":2,"b":0,"offset":1026,"pooled_len":256,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848,"trimmed":2},{"action":"append","a":4,"b":0,"offset":1030,"pooled_len":257,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848},{"action":"restore","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1025,1025,1025,256,0],"reserved":[1025,256],"nbytes":2427136},{"action":"view","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1025,1025,1025,256,256],"reserved":[1025,256],"nbytes":2427136},{"action":"append","a":257,"b":0,"offset":1282,"pooled_len":320,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648,"trimmed":1282},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[1537,1537,4096,512,512],"reserved":[4096,512],"nbytes":4327424},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[1537,1537,4096,512,512],"reserved":[4096,512],"nbytes":4327424}],"shapes":[[1,2,1280,256],[1,2,1280,256],[1,1280,128],[1,320,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,1280,128],[1,320,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1028,256],[1,2,1028,256],[1,1028,128],[1,257,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1026,256],[1,2,1026,256],[1,1026,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1030,256],[1,2,1030,256],[1,1030,128],[1,257,128],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,1282,256],[1,2,1282,256],[1,1282,128],[1,320,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1537,256],[1,2,1537,256],[1,4096,128],[1,512,128],[1,1,128,512],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1537,256],[1,2,1537,256],[1,4096,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} +{"kernel":"qsa_cache_graph_1025_4_128_bfloat16_1","sha256":["0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","09275bf11c5b528fb49d94d4e6b0b2773a19a5c69df838755ef580151ecbfe14","fa6a4fadd563bbf21e237a66fdcfc196e1eb4ce19579b40ad7609106892f187f","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","09275bf11c5b528fb49d94d4e6b0b2773a19a5c69df838755ef580151ecbfe14","fa6a4fadd563bbf21e237a66fdcfc196e1eb4ce19579b40ad7609106892f187f","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","82ad788fc670c5c7de6fd4c894b86d9c3acc306adac0a890517bc540fa431adb","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","9ad6f69863b9d89a627e745b8b717a6d14c6731ff798e0d3901a8984cd533738","054e48605d26c4d43951cdc5c4f267793a6e272eca76c30eb2c5c497c5259080","5b850392430ca13471631e3deaf421706e127529614e9e5ae85388760d5a11f0","851c3cbb506999a0b95f78da4ae749a8c06f086baeb82707a3bfd8e147855532","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","057c9e4ffe4dec14b35e8bd29cd32e69bbadb51d00a6d50e0066ba0cdf104465","f909f3c574fedc1dd85904f856a5cd0ccefdb1b842391b24e6599abbb9cde3b7","1bd084243df5c991a86e11f4b4513944cdab5572ab4babfa83c9cdeaa3394984","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","0ee7f7152026e1f0741c3118d9da6a9395334e0509972ec98d62c54a3f4aa887","000a181ddacfc565824ab420b9d36bf326fcb8e878be647bde7e28b5cb60b0d8","fb8007138e1b22792927966861a48556642fa188757b0f467186fc5f6584e47f","29e605b8d366d6e4d88b795fe58f86494104f2ec78273a8b094fed0602a9b5a4","f9e995e0d501bbce1d3d194fe16361b81e9507a2255e13be405f59a734c0a88d","c4de2cc676febe48781f532c3c9d21637fb1436c5a549f5fd51b0e0d75bf0972","e428151e0c263c891e81cd21c06533b2543fa40a55f74d0177c71e747eda1399","2a29fbc3e44c264b2e42146022a4b028ea52656861decf62ad4bc47215d944dc","6379b43765a17b1a0a202bd14b6c650c2e95a070f2ac8f0ab977d255d763e718","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","69a31f2af121318c79f6cfa3cc87554e4dae406254d1e04b172c9d4edc333316","86d18742562df742db4c69fe141de16e997e96e40e062a6ac341c9e810ad7d47","1e7aeea77316ee0cf03de51d379248ab92b13e2e8344baf6a943602e620cc420","8da0f6f78125bd5bdffe9bac517c846eba70f6e0c1857aedbb60b4f2e5601095","5613f32c3d47e2c08431d570a797f99de2454a1b88e43a080a3e7853b19112d3","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","56bc07c8e9cb2aa19b7b2522deceb4d4d68789c39d0268a8c0b213f76cdf46e1","af0b61e1370ad6781f2126282b691ddccd242e26953a0443de495f5a552dc983","a214c2971f8e119e5bbf9b7b2bf79f61eec88d099c4db0429fcc0f34307e571d","823b4b70def21bbd3a9a5112215a4f9dfcf4931816d327a878ac5cb9c6afcfab","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","7776d5c4ad88ae567985e9a3662a13cc176b777df2116a900884ea5010288460","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","717213874d37fe1d92a4862f7ff2264d5654838156aaba3470c3b188f904ffa9","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","06bbf2ba28d13a960a9ebd0dccc7e77d30486fd640a8ec9f7440c19399dad94a","6d57a0548c29ddebda4172b06f9945f2ebf79850656d5264efbc464814644bfb","11141769618813b80a3b392cc7be4f4857a50be64cb9b3f21a2aabba96e8e5ad","75246be08fc05063c4cd792ab1b7f22582023363f976f6de9767533891b9b80e","d809c7b257e8333527b6028efbfb2526a724becee57ab60b73de8ab76f7483a8","717213874d37fe1d92a4862f7ff2264d5654838156aaba3470c3b188f904ffa9","f903e27f568b9ceef59ade7c585005453e5b16fee20f000672de10e12f3c1c8f","8081ed9f52d0f7c0df4be53e6e76c6e5bd7f1a299d8a34cfa09a51f196539027","0582fcad48c860d173a5a6863f8fcf9409947d52671dcecde0b0e21a318404b5","6970a9ad4816732d9ae774e018b85e34a453c764ef9ddd047f8f3818205b4c2c","ea223a2831e1bce5a41213a83bd9c02608c465540f57c6c78208d3ea7ebee54b","797716f70210cd0197e402b2fba006fb3ca14478ce309a0291bd14111633c174"],"initial":1025,"ratio":4,"dim":128,"dtype":"bfloat16","deferred":true,"actions":[{"action":"reserve","a":768,"b":320,"offset":0,"pooled_len":0,"capacities":[0,0,0,0,0],"reserved":[768,320],"nbytes":0},{"action":"append","a":1025,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,1280,320,320],"reserved":[768,320],"nbytes":3031040},{"action":"snapshot","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,1280,320,320],"reserved":[768,320],"nbytes":3031040},{"action":"reserve","a":2049,"b":769,"offset":1025,"pooled_len":256,"capacities":[1280,1280,2049,769,320],"reserved":[2049,769],"nbytes":3342848},{"action":"view","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1280,1280,2049,769,320],"reserved":[2049,769],"nbytes":3342848},{"action":"append","a":3,"b":0,"offset":1028,"pooled_len":257,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848},{"action":"trim","a":2,"b":0,"offset":1026,"pooled_len":256,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848,"trimmed":2},{"action":"append","a":4,"b":0,"offset":1030,"pooled_len":257,"capacities":[1280,1280,2049,769,769],"reserved":[2049,769],"nbytes":3342848},{"action":"restore","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1025,1025,1025,256,0],"reserved":[1025,256],"nbytes":2427136},{"action":"view","a":0,"b":0,"offset":1025,"pooled_len":256,"capacities":[1025,1025,1025,256,256],"reserved":[1025,256],"nbytes":2427136},{"action":"append","a":257,"b":0,"offset":1282,"pooled_len":320,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648},{"action":"trim","a":999999,"b":0,"offset":0,"pooled_len":0,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648,"trimmed":1282},{"action":"append","a":1,"b":0,"offset":1,"pooled_len":0,"capacities":[1537,1537,2050,512,512],"reserved":[1025,256],"nbytes":3803648},{"action":"ensure","a":1025,"b":0,"offset":1,"pooled_len":0,"capacities":[1537,1537,4096,512,512],"reserved":[4096,512],"nbytes":4327424},{"action":"append","a":4,"b":0,"offset":5,"pooled_len":1,"capacities":[1537,1537,4096,512,512],"reserved":[4096,512],"nbytes":4327424}],"shapes":[[1,2,1280,256],[1,2,1280,256],[1,1280,128],[1,320,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,1280,128],[1,320,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,320],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1028,256],[1,2,1028,256],[1,1028,128],[1,257,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1026,256],[1,2,1026,256],[1,1026,128],[1,256,128],[1,2,1280,256],[1,2,1280,256],[1,2049,128],[1,769,128],[1,1,128,769],[1,2,1030,256],[1,2,1030,256],[1,1030,128],[1,257,128],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,1,128,256],[1,2,1025,256],[1,2,1025,256],[1,1025,128],[1,256,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,1282,256],[1,2,1282,256],[1,1282,128],[1,320,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,0,256],[1,2,0,256],[1,0,128],[1,2,1537,256],[1,2,1537,256],[1,2050,128],[1,512,128],[1,1,128,512],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1537,256],[1,2,1537,256],[1,4096,128],[1,512,128],[1,1,128,512],[1,2,1,256],[1,2,1,256],[1,1,128],[1,2,1537,256],[1,2,1537,256],[1,4096,128],[1,512,128],[1,1,128,512],[1,2,5,256],[1,2,5,256],[1,5,128],[1,1,128]]} diff --git a/tests/fixtures/mtplx-qsa-compiled-graphs.jsonl b/tests/fixtures/mtplx-qsa-compiled-graphs.jsonl new file mode 100644 index 0000000..3c26e4f --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-graphs.jsonl @@ -0,0 +1,99 @@ +{"case":0,"hidden":false,"rows":1,"stride":640,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":0,"hidden":false,"rows":1,"stride":704,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":1,"hidden":false,"rows":1,"stride":640,"mode":"blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":1,"hidden":false,"rows":1,"stride":704,"mode":"blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":2,"hidden":false,"rows":1,"stride":640,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":2,"hidden":false,"rows":1,"stride":704,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":3,"hidden":false,"rows":1,"stride":640,"mode":"row_tokens","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":3,"hidden":false,"rows":1,"stride":704,"mode":"row_tokens","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":4,"hidden":false,"rows":1,"stride":640,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":4,"hidden":false,"rows":1,"stride":704,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":5,"hidden":false,"rows":1,"stride":640,"mode":"dense_mask","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":5,"hidden":false,"rows":1,"stride":704,"mode":"dense_mask","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":6,"hidden":false,"rows":4,"stride":640,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":6,"hidden":false,"rows":4,"stride":704,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":7,"hidden":false,"rows":4,"stride":640,"mode":"blocks","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":7,"hidden":false,"rows":4,"stride":704,"mode":"blocks","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":8,"hidden":false,"rows":4,"stride":640,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":8,"hidden":false,"rows":4,"stride":704,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":9,"hidden":false,"rows":4,"stride":640,"mode":"row_tokens","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":9,"hidden":false,"rows":4,"stride":704,"mode":"row_tokens","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":10,"hidden":false,"rows":4,"stride":640,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":10,"hidden":false,"rows":4,"stride":704,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":11,"hidden":false,"rows":4,"stride":640,"mode":"dense_mask","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":11,"hidden":false,"rows":4,"stride":704,"mode":"dense_mask","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":12,"hidden":false,"rows":5,"stride":640,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":12,"hidden":false,"rows":5,"stride":704,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":13,"hidden":false,"rows":5,"stride":640,"mode":"blocks","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":13,"hidden":false,"rows":5,"stride":704,"mode":"blocks","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","8fbc266ece213b8d3b7626512a36c6e795c8a044a6210654463af49f828bd409:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":14,"hidden":false,"rows":5,"stride":640,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":14,"hidden":false,"rows":5,"stride":704,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":15,"hidden":false,"rows":5,"stride":640,"mode":"row_tokens","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":15,"hidden":false,"rows":5,"stride":704,"mode":"row_tokens","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","8ab8b9d50ffacf9113a6fd5db6c3604cb40989e66928ec05768ec7d254c8ffad:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":16,"hidden":false,"rows":5,"stride":640,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":16,"hidden":false,"rows":5,"stride":704,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":17,"hidden":false,"rows":5,"stride":640,"mode":"dense_mask","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":17,"hidden":false,"rows":5,"stride":704,"mode":"dense_mask","budget":12288,"contract":[["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["00074cafcd5123ccd6a0cf00dc8fa81fc71aa0a1d6588bd1c0914366b8e75850:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":18,"hidden":false,"rows":33,"stride":640,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":18,"hidden":false,"rows":33,"stride":704,"mode":"blocks","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":19,"hidden":false,"rows":33,"stride":640,"mode":"blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","1da9fdd58eed1e9e029b517b41ef94432ceedc26a229e52e37d27bcbefcf115c","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6:0","1da9fdd58eed1e9e029b517b41ef94432ceedc26a229e52e37d27bcbefcf115c:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":19,"hidden":false,"rows":33,"stride":704,"mode":"blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","1da9fdd58eed1e9e029b517b41ef94432ceedc26a229e52e37d27bcbefcf115c","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6:0","1da9fdd58eed1e9e029b517b41ef94432ceedc26a229e52e37d27bcbefcf115c:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":20,"hidden":false,"rows":33,"stride":640,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":20,"hidden":false,"rows":33,"stride":704,"mode":"row_tokens","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:1","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":21,"hidden":false,"rows":33,"stride":640,"mode":"row_tokens","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":21,"hidden":false,"rows":33,"stride":704,"mode":"row_tokens","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","78c6d7ad976320cbdd13142cc57d9bdab3b40f1b6a896fcd1c7515c7443887b6:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":22,"hidden":false,"rows":33,"stride":640,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":22,"hidden":false,"rows":33,"stride":704,"mode":"dense_mask","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["444dca65a3260225e522b3c22e026f88f91765d54a3472fb0c583ba0f2a7be25:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":23,"hidden":false,"rows":33,"stride":640,"mode":"dense_mask","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":23,"hidden":false,"rows":33,"stride":704,"mode":"dense_mask","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","a043e34f07d8b3785111f03b16d0f65e3b5046c98efb73c684fcd438db627c2b","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8a72c26bf7adf963a8e8caf62406530e5b735b3d97b7c51a6abf9ed3846dc537:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":24,"hidden":false,"rows":4,"stride":640,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":24,"hidden":false,"rows":4,"stride":704,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":25,"hidden":false,"rows":4,"stride":640,"mode":"prefill_blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","54a43b7ed9048977411466f9387386b4fd081744468b9d4144cab6fe50ca8354","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a547fc51c78523a927592fa52667f62a37057ae2ebcfdecc2668526b87b10bc7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","dd0a40ea5db818ab5fd167c8a491268ea0f3a65eb8a1da2f213a1df49a4031f9","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a547fc51c78523a927592fa52667f62a37057ae2ebcfdecc2668526b87b10bc7:0","54a43b7ed9048977411466f9387386b4fd081744468b9d4144cab6fe50ca8354:0","dd0a40ea5db818ab5fd167c8a491268ea0f3a65eb8a1da2f213a1df49a4031f9:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":25,"hidden":false,"rows":4,"stride":704,"mode":"prefill_blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","54a43b7ed9048977411466f9387386b4fd081744468b9d4144cab6fe50ca8354","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a547fc51c78523a927592fa52667f62a37057ae2ebcfdecc2668526b87b10bc7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","dd0a40ea5db818ab5fd167c8a491268ea0f3a65eb8a1da2f213a1df49a4031f9","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a547fc51c78523a927592fa52667f62a37057ae2ebcfdecc2668526b87b10bc7:0","54a43b7ed9048977411466f9387386b4fd081744468b9d4144cab6fe50ca8354:0","dd0a40ea5db818ab5fd167c8a491268ea0f3a65eb8a1da2f213a1df49a4031f9:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":26,"hidden":false,"rows":33,"stride":640,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":26,"hidden":false,"rows":33,"stride":704,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":27,"hidden":false,"rows":33,"stride":640,"mode":"prefill_blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","1afde0af7b8daee7f8ec62b76e7b3ef77a5258956d053e079b9059469b484dad","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","791a2147d6580faefc94166370057f3760f57953fd61ba954b3cb165b779e4a8","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a52ba2fadf4dda7fecfe61e8f101fb4591dff97eacc1387fdf5473067b2a3d95","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a52ba2fadf4dda7fecfe61e8f101fb4591dff97eacc1387fdf5473067b2a3d95:0","1afde0af7b8daee7f8ec62b76e7b3ef77a5258956d053e079b9059469b484dad:0","791a2147d6580faefc94166370057f3760f57953fd61ba954b3cb165b779e4a8:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":27,"hidden":false,"rows":33,"stride":704,"mode":"prefill_blocks","budget":12288,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","1afde0af7b8daee7f8ec62b76e7b3ef77a5258956d053e079b9059469b484dad","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","791a2147d6580faefc94166370057f3760f57953fd61ba954b3cb165b779e4a8","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a52ba2fadf4dda7fecfe61e8f101fb4591dff97eacc1387fdf5473067b2a3d95","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a52ba2fadf4dda7fecfe61e8f101fb4591dff97eacc1387fdf5473067b2a3d95:0","1afde0af7b8daee7f8ec62b76e7b3ef77a5258956d053e079b9059469b484dad:0","791a2147d6580faefc94166370057f3760f57953fd61ba954b3cb165b779e4a8:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":28,"hidden":false,"rows":65,"stride":640,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":28,"hidden":false,"rows":65,"stride":704,"mode":"prefill_blocks","budget":134217728,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","dc5d00c0adda1d07dac7fad7d3d5bc1aee5f8c94136d09e5b3379f4bf2fdc5e4","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:0","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:1","a9626c446398fe848fc2f8f51f1e58d56ce02a29cf050e0a562f92fe50557864:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":29,"hidden":false,"rows":65,"stride":640,"mode":"prefill_blocks","budget":196608,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","26fe806c2a6be50c66a32630142935e8412df68f9ba316612f5329f9e0f163d4","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b5ea1a803d1400a76f3a1b7ed43b9ce5d65e1b1484c4e2755beffb8c0353ae38","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","c292ab6fff5dad4836cdf1523f0e5f1b2fff447fb70c46a37c4df47336165e42","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["26fe806c2a6be50c66a32630142935e8412df68f9ba316612f5329f9e0f163d4:0","b5ea1a803d1400a76f3a1b7ed43b9ce5d65e1b1484c4e2755beffb8c0353ae38:0","c292ab6fff5dad4836cdf1523f0e5f1b2fff447fb70c46a37c4df47336165e42:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":29,"hidden":false,"rows":65,"stride":704,"mode":"prefill_blocks","budget":196608,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","26fe806c2a6be50c66a32630142935e8412df68f9ba316612f5329f9e0f163d4","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","87b2567b386177d6c2096d091712f398e0675e6e3b720a2ad10d08135f0ecf7a","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b5ea1a803d1400a76f3a1b7ed43b9ce5d65e1b1484c4e2755beffb8c0353ae38","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","c292ab6fff5dad4836cdf1523f0e5f1b2fff447fb70c46a37c4df47336165e42","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f36fe3ff1604a87aa51c4ccd6ecb42a80b25e76760eb6dc901e646bf6d89e73a","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["26fe806c2a6be50c66a32630142935e8412df68f9ba316612f5329f9e0f163d4:0","b5ea1a803d1400a76f3a1b7ed43b9ce5d65e1b1484c4e2755beffb8c0353ae38:0","c292ab6fff5dad4836cdf1523f0e5f1b2fff447fb70c46a37c4df47336165e42:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":30,"hidden":false,"rows":2048,"stride":640,"mode":"prefill_blocks","budget":134217728,"contract":[["012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","37cea07163a148e32a71ccc88ba854978e10323724397ee1b891bcb9304ce963","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","742d75fbcc4057be322d4b9cfb6bb65ef0e1799f2dd398445b87fa337dc9b338","7e9c011c89a9001b76d8baa1d30a3b1d41f1b0892c2901164ad43c4eadceaace","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:0","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:1","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3:0"]]} +{"case":30,"hidden":false,"rows":2048,"stride":704,"mode":"prefill_blocks","budget":134217728,"contract":[["012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","37cea07163a148e32a71ccc88ba854978e10323724397ee1b891bcb9304ce963","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","742d75fbcc4057be322d4b9cfb6bb65ef0e1799f2dd398445b87fa337dc9b338","7e9c011c89a9001b76d8baa1d30a3b1d41f1b0892c2901164ad43c4eadceaace","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:0","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:1","997c3cbc3f490418f7c00d8c61c02540c3d40f2b504e3342f1ece4b912237938:2","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3:0"]]} +{"case":31,"hidden":false,"rows":2048,"stride":640,"mode":"prefill_blocks","budget":524288,"contract":[["012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","37cea07163a148e32a71ccc88ba854978e10323724397ee1b891bcb9304ce963","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","40f9b28ded8e32d9ec1a0c6c7172cd1242ae36e12d768f7e0a66fa6514632eed","56760df1c507c958d862a9027b6dc37a65a28afb292d4b03d1161dea264cbf59","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7e9c011c89a9001b76d8baa1d30a3b1d41f1b0892c2901164ad43c4eadceaace","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","ee2e90f205224103b3737c494f8ffde7b6b1c69564e1e0078b7ecace1f0a4e87","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["56760df1c507c958d862a9027b6dc37a65a28afb292d4b03d1161dea264cbf59:0","ee2e90f205224103b3737c494f8ffde7b6b1c69564e1e0078b7ecace1f0a4e87:0","40f9b28ded8e32d9ec1a0c6c7172cd1242ae36e12d768f7e0a66fa6514632eed:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3:0"]]} +{"case":31,"hidden":false,"rows":2048,"stride":704,"mode":"prefill_blocks","budget":524288,"contract":[["012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","157200c29fc3291bc96af6f68c9646fb78a30bbaad656b44d24d9f7b2f0dc20b","37cea07163a148e32a71ccc88ba854978e10323724397ee1b891bcb9304ce963","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","40f9b28ded8e32d9ec1a0c6c7172cd1242ae36e12d768f7e0a66fa6514632eed","56760df1c507c958d862a9027b6dc37a65a28afb292d4b03d1161dea264cbf59","71d6db21fac7796da63940af2ab78dfb992907fcc612e7d322deccf41ee5818b","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7368d77777f40de2d2156e036f219c7f86bb30a7aed274aedad62aa803e311cc","7e9c011c89a9001b76d8baa1d30a3b1d41f1b0892c2901164ad43c4eadceaace","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","bfca2ead6f9e1417922d6a212bed8176031a5b3d8a1f1bec9dc466792d243033","e2947d993b4de6a90f15614516ee00d1de075cddb9c18dcea46a505c0455b269","ee2e90f205224103b3737c494f8ffde7b6b1c69564e1e0078b7ecace1f0a4e87","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["56760df1c507c958d862a9027b6dc37a65a28afb292d4b03d1161dea264cbf59:0","ee2e90f205224103b3737c494f8ffde7b6b1c69564e1e0078b7ecace1f0a4e87:0","40f9b28ded8e32d9ec1a0c6c7172cd1242ae36e12d768f7e0a66fa6514632eed:0","108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","012dec36638aa3f6542fb2a750f828b4a99b345897cc381bd62524e1222524e3:0"]]} +{"case":32,"hidden":false,"rows":4,"stride":640,"mode":"update_only","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f"],["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":32,"hidden":false,"rows":4,"stride":704,"mode":"update_only","budget":33554432,"contract":[["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7","864760f4795035c6fa72756a35bb03a9691807077969f2bd2ffa8af02c408a39","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7","b803a279e98f7171cf5a36728dad1effd076920869f845367b40b6e846f2a5e3","e5d98fd9d447b461cadd1705f81a810de43aff11ce8762c57d93a6cd6ee7a82f"],["108325720ff8696357e38da59a6f7fd9ba48f5a560001a83e09071238af664e7:0","9de0ddfda06c853baf88be39128f5e86ccf7b989e1fe3488a3f0eb423126fae7:0"]]} +{"case":0,"hidden":true,"rows":1,"stride":2560,"mode":"blocks","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":1,"hidden":true,"rows":1,"stride":2560,"mode":"blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":2,"hidden":true,"rows":1,"stride":2560,"mode":"row_tokens","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":3,"hidden":true,"rows":1,"stride":2560,"mode":"row_tokens","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":4,"hidden":true,"rows":1,"stride":2560,"mode":"dense_mask","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":5,"hidden":true,"rows":1,"stride":2560,"mode":"dense_mask","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":6,"hidden":true,"rows":4,"stride":2560,"mode":"blocks","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":7,"hidden":true,"rows":4,"stride":2560,"mode":"blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","fb247a4ea966f1dce0415fa086e97b87558bef312cc7e280823dd3f1a88469d9"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0:0","fb247a4ea966f1dce0415fa086e97b87558bef312cc7e280823dd3f1a88469d9:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":8,"hidden":true,"rows":4,"stride":2560,"mode":"row_tokens","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":9,"hidden":true,"rows":4,"stride":2560,"mode":"row_tokens","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":10,"hidden":true,"rows":4,"stride":2560,"mode":"dense_mask","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":11,"hidden":true,"rows":4,"stride":2560,"mode":"dense_mask","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":12,"hidden":true,"rows":5,"stride":2560,"mode":"blocks","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":13,"hidden":true,"rows":5,"stride":2560,"mode":"blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","fb247a4ea966f1dce0415fa086e97b87558bef312cc7e280823dd3f1a88469d9"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0:0","fb247a4ea966f1dce0415fa086e97b87558bef312cc7e280823dd3f1a88469d9:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":14,"hidden":true,"rows":5,"stride":2560,"mode":"row_tokens","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":15,"hidden":true,"rows":5,"stride":2560,"mode":"row_tokens","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","83fb354b745886778c5936115e383f1ab4c4fae8fd61b68b8be1246465b545f0:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":16,"hidden":true,"rows":5,"stride":2560,"mode":"dense_mask","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":17,"hidden":true,"rows":5,"stride":2560,"mode":"dense_mask","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["66bc1f4be96d1ac4eb4ce8e908e3d2697745aa368a8e5dc59349135ecab55c19:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":18,"hidden":true,"rows":33,"stride":2560,"mode":"blocks","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":19,"hidden":true,"rows":33,"stride":2560,"mode":"blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","903a7c159c1402158c8d88ebbef509480a9ebf293156ccdd09625769fe36e0f4","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","ad3049af6113796d69259962496c4d8445ffcf5b81601bd6bc898903d1bea43a","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce:0","903a7c159c1402158c8d88ebbef509480a9ebf293156ccdd09625769fe36e0f4:0","ad3049af6113796d69259962496c4d8445ffcf5b81601bd6bc898903d1bea43a:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":20,"hidden":true,"rows":33,"stride":2560,"mode":"row_tokens","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:1","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":21,"hidden":true,"rows":33,"stride":2560,"mode":"row_tokens","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","903a7c159c1402158c8d88ebbef509480a9ebf293156ccdd09625769fe36e0f4","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce:0","903a7c159c1402158c8d88ebbef509480a9ebf293156ccdd09625769fe36e0f4:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":22,"hidden":true,"rows":33,"stride":2560,"mode":"dense_mask","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["a8dccd3d4805209d700c3af139e9e4aa6e4147c47a356157f6108b795d943429:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":23,"hidden":true,"rows":33,"stride":2560,"mode":"dense_mask","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","593de57e81514baf2eda960d9b9216c0179d24cb9743bc04c11ba4b277586915","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["0a62f7a763faf7d16fa34cfbd764fcfe7afc8cbce436471cc6847599c60039ce:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":24,"hidden":true,"rows":4,"stride":2560,"mode":"prefill_blocks","budget":134217728,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","d662851aa38b4a7e428dc0905972cb2ad10295b16d7c3d4421fd6e2a709fdf9d","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:0","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:1","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":25,"hidden":true,"rows":4,"stride":2560,"mode":"prefill_blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","767dceb44222d27c5cb6a6b2468400bb2d3813cd703d3e187ce15d8504d396b5","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","7c51ea7b73793c2c7fdf3849ee47c9081b6c55eb52139ef8bbb9c0454c46fd27","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","9c65d2c7184ab2a91fb72a79a836344fb923cf57d8f6aa19969e1d83a9a46f89","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["767dceb44222d27c5cb6a6b2468400bb2d3813cd703d3e187ce15d8504d396b5:0","7c51ea7b73793c2c7fdf3849ee47c9081b6c55eb52139ef8bbb9c0454c46fd27:0","9c65d2c7184ab2a91fb72a79a836344fb923cf57d8f6aa19969e1d83a9a46f89:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":26,"hidden":true,"rows":33,"stride":2560,"mode":"prefill_blocks","budget":134217728,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","d662851aa38b4a7e428dc0905972cb2ad10295b16d7c3d4421fd6e2a709fdf9d","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:0","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:1","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":27,"hidden":true,"rows":33,"stride":2560,"mode":"prefill_blocks","budget":12288,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","314e3eec85388b8be8ca06a8da2670563b833719b014ee3995723ef8fdd8e97d","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","8f0f65e4772c45240a374fe76fe19ebf2dd4a4da6a952919e7ce827c76168dfe","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e9f2dc2326b4c8f8a2b65d87144359c3f5c6d334b7e660ec51fef7a1b1ff0e90","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8f0f65e4772c45240a374fe76fe19ebf2dd4a4da6a952919e7ce827c76168dfe:0","314e3eec85388b8be8ca06a8da2670563b833719b014ee3995723ef8fdd8e97d:0","e9f2dc2326b4c8f8a2b65d87144359c3f5c6d334b7e660ec51fef7a1b1ff0e90:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":28,"hidden":true,"rows":65,"stride":2560,"mode":"prefill_blocks","budget":134217728,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","d662851aa38b4a7e428dc0905972cb2ad10295b16d7c3d4421fd6e2a709fdf9d","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:0","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:1","52e437fce8f4bc7de2f40fc98cc9728dc63fd7b3ec84dc74a8cd395bc3f10a72:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":29,"hidden":true,"rows":65,"stride":2560,"mode":"prefill_blocks","budget":196608,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","7c691469c078f131d2c4f1442530a07b050f7392d766d8ed166967ea6852dfb5","8d2d9466de5d185cec54285bd62e23021277d927f6d4fcd684056c53fbe3c11f","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4","cec8f1da7d7d32db81f802c031c0fff4c4fc85baa11763b88b32e803a63dcf93","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","e1e520656fda11dda968859e358a7ad78ec85032b9300aa8b1eb762ddc0fdef0","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f1bdab35ed74adf5b1d348a00d751f731a0ac18daa539a654a26530216c553db","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df"],["8d2d9466de5d185cec54285bd62e23021277d927f6d4fcd684056c53fbe3c11f:0","cec8f1da7d7d32db81f802c031c0fff4c4fc85baa11763b88b32e803a63dcf93:0","7c691469c078f131d2c4f1442530a07b050f7392d766d8ed166967ea6852dfb5:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} +{"case":30,"hidden":true,"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":134217728,"contract":[["152d1756a5f34e049545d6ab5298ef7ccab7d5bde98008664ba8054e3ad04ec6","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","337d3e2a09fe986e61d773aa578fb500042f3b7730331c705e70fc6ef4170e24","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","779c9005057e0ec241f4079e73625c40128346fc0cf5f3f90ec0bf46fec0be7b","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","7e2161b35142dc10022cd9902ce536f5edc90e1d1f94cd7f69161f4e6d4c0df7","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","fbb2dbb2acefd2cbb8b66b2d9c1e6d2fa6113c40927ad6c5a4e44d4ff7485eb9"],["fbb2dbb2acefd2cbb8b66b2d9c1e6d2fa6113c40927ad6c5a4e44d4ff7485eb9:0","fbb2dbb2acefd2cbb8b66b2d9c1e6d2fa6113c40927ad6c5a4e44d4ff7485eb9:1","fbb2dbb2acefd2cbb8b66b2d9c1e6d2fa6113c40927ad6c5a4e44d4ff7485eb9:2","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","7e2161b35142dc10022cd9902ce536f5edc90e1d1f94cd7f69161f4e6d4c0df7:0"]]} +{"case":31,"hidden":true,"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":524288,"contract":[["152d1756a5f34e049545d6ab5298ef7ccab7d5bde98008664ba8054e3ad04ec6","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","337d3e2a09fe986e61d773aa578fb500042f3b7730331c705e70fc6ef4170e24","3f58534d41b6d536dae29214208c6336bbe32db17f43a79a4fafb4ff963ff276","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","481c770605eedb1cddf0ea06773b6d8efb8f40e999ef315ba9706d527d35fe2d","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","50b5c322596bc31253dcc87ae841e35e9e5c61ef37aefd12b3b200b60fd92774","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","64699c6acef5098fa9bb1e6f2a8a07b43015a78c954c93a1410220ad4ff26164","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","7744f760d3362b706de42663935a9228c80033d7c80218b41123e4d1c459b669","7a4e21ea590910dd037c7225c267377adbcb8fd3557777952b770407e77b28b0","7e2161b35142dc10022cd9902ce536f5edc90e1d1f94cd7f69161f4e6d4c0df7","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","9c128b3f30b401b9765e6c84ab11cbd42c9ce261110daf753ce7ebe25fc0baed","ba2b303c814bc66591112a77729c7752f8593b8bb008eb3a02fd2ae1a09c08ab","cc47324c7dc95740f35d9a0ef4b31ea1eca596b92fd1871943708123a3df33ea","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","f807772765a3f159048eae79240547c183e529961e7abcb6a96c8344ac5700df","ff7b8853804f657d3d328488f2440a3c8a960e4d7503726d7ef1976299532a05"],["ff7b8853804f657d3d328488f2440a3c8a960e4d7503726d7ef1976299532a05:0","9c128b3f30b401b9765e6c84ab11cbd42c9ce261110daf753ce7ebe25fc0baed:0","cc47324c7dc95740f35d9a0ef4b31ea1eca596b92fd1871943708123a3df33ea:0","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","7e2161b35142dc10022cd9902ce536f5edc90e1d1f94cd7f69161f4e6d4c0df7:0"]]} +{"case":32,"hidden":true,"rows":4,"stride":2560,"mode":"update_only","budget":33554432,"contract":[["024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60","31487cfd739719ea93fa187d759dd7e76003d86c6dd4b99d30272541a3c3f21c","6724d8dd87061fed177f55f87452312f2a3c6fcca9b07e42789a9da3a070377b","7313c7487c8e5b46d5416b3d75a35a2dd0fd40633d0acff6c540367efb92c3c6","939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c","93bdf49a8fdabf5e5a9997b70ee6b94a26cb03dc5099529ef5e67ed26ab848c0","98ae02081b465cabfa1781689a514a7e65fd186d14c99cd280ee427de714803b","c33f3db0268f638183b3ae3e1fa397aa193336e5927d83baea7772fa487c18f4"],["939b1a73070125673043cb9d9df7fc42287420738b029ee96dd5e7e0b061085c:0","024af94cef2275268fc4872ba7cc012d1d6f2521d0376f18b2d26ebc65f7ec60:0"]]} diff --git a/tests/fixtures/mtplx-qsa-compiled-hidden.jsonl b/tests/fixtures/mtplx-qsa-compiled-hidden.jsonl new file mode 100644 index 0000000..d0991f2 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-hidden.jsonl @@ -0,0 +1,132 @@ +{"kernel":"qsa_compile_hidden_b4_g32_c0_stride2560","sha256":["72dceb9a80a9dc7efe94ce6f41feeafa89f3e5db611c39fd1954a5a0443a0cb1","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","9f67c19ed6c2058a414cf824a93e51b7823c5b40909dac42192198c86d5cae2b"],"rows":1,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c1_stride2560","sha256":["72dceb9a80a9dc7efe94ce6f41feeafa89f3e5db611c39fd1954a5a0443a0cb1","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","9f67c19ed6c2058a414cf824a93e51b7823c5b40909dac42192198c86d5cae2b"],"rows":1,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c2_stride2560","sha256":["578fc75adcc9cef18f1c91b66a9584195cb11ffd3518ebf632b8e6e297e11a80","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c3_stride2560","sha256":["578fc75adcc9cef18f1c91b66a9584195cb11ffd3518ebf632b8e6e297e11a80","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c4_stride2560","sha256":["4c656c27e98230bb07d6cc6374facf969f8bdca8b5177a88e5995ac453abd75d"],"rows":1,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c5_stride2560","sha256":["4c656c27e98230bb07d6cc6374facf969f8bdca8b5177a88e5995ac453abd75d"],"rows":1,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"585320012e069af8b338a80f6c31688fccf525b431be038163787617c2bbcb10","pool_next":"5bdfb5d23c1e1eacd298e1beba5f1af83c311a3ee771c420fee62f9c60597587","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c6_stride2560","sha256":["8e0ec93cc5aec1ca4ff9bc77cc42760e6b4ac9ecd53794dd80ffa2908c1cf900","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","637b5a189fe37795c6086a6055a3d72fb8fef7f02f18829b92c852eb9a5d279f"],"rows":4,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c7_stride2560","sha256":["8e0ec93cc5aec1ca4ff9bc77cc42760e6b4ac9ecd53794dd80ffa2908c1cf900","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","637b5a189fe37795c6086a6055a3d72fb8fef7f02f18829b92c852eb9a5d279f"],"rows":4,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c8_stride2560","sha256":["9fb7e7f901e0b44d7237864df55ea7452a8f4553a83bee2206749b2e35a822d4","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c9_stride2560","sha256":["9fb7e7f901e0b44d7237864df55ea7452a8f4553a83bee2206749b2e35a822d4","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c10_stride2560","sha256":["0907eb69b4db4768af8adb8b52577dc4fc05e0fd27455be6da698c7e51db1c12"],"rows":4,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c11_stride2560","sha256":["0907eb69b4db4768af8adb8b52577dc4fc05e0fd27455be6da698c7e51db1c12"],"rows":4,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c12_stride2560","sha256":["7cacfaf62939e8206aaab7025e26be249f033486aa9d42f34b1a9d17234932ae","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","ece088fc0dc33f82c9e037f22a6c053731547a04aac70ccd892b81cc5ffd78b2"],"rows":5,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c13_stride2560","sha256":["7cacfaf62939e8206aaab7025e26be249f033486aa9d42f34b1a9d17234932ae","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","ece088fc0dc33f82c9e037f22a6c053731547a04aac70ccd892b81cc5ffd78b2"],"rows":5,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c14_stride2560","sha256":["2e5f4478fcf4d5c79b1f18f1be7e69f6892186abcd1e9f272266286d1beb32ef","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c15_stride2560","sha256":["2e5f4478fcf4d5c79b1f18f1be7e69f6892186abcd1e9f272266286d1beb32ef","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c16_stride2560","sha256":["492725abdea6b949b346226768589725155da9b591b7c6b9776dd3fb11d12b1e"],"rows":5,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c17_stride2560","sha256":["492725abdea6b949b346226768589725155da9b591b7c6b9776dd3fb11d12b1e"],"rows":5,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"1315c3a286a91f8edc3a97994f2b4da3a4556a49b3281e52e29a1173fa1da001","pool_next":"ba604e60961661e1d45ec6380dde3a00303b61798e96507a96959a984727c6b6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c18_stride2560","sha256":["11ea12b9d6de5d1032b2d4118163c2b59318327611fd3e4253be3e0801bbc988","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","51ccdb67e9e2014e2a57546ac0d5b7f7c83575c17cefb496a49e01ff46aeebdc"],"rows":33,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c19_stride2560","sha256":["11ea12b9d6de5d1032b2d4118163c2b59318327611fd3e4253be3e0801bbc988","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","51ccdb67e9e2014e2a57546ac0d5b7f7c83575c17cefb496a49e01ff46aeebdc"],"rows":33,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c20_stride2560","sha256":["c8fbbb0fb99e55f553d4ec9206efbc2999965420584087e38fa3f6565671479b","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c21_stride2560","sha256":["c8fbbb0fb99e55f553d4ec9206efbc2999965420584087e38fa3f6565671479b","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c22_stride2560","sha256":["76336c43ac32da0b77b91dd6794fe182fedf8a0c4aa3dae29c43f2e640244907"],"rows":33,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c23_stride2560","sha256":["76336c43ac32da0b77b91dd6794fe182fedf8a0c4aa3dae29c43f2e640244907"],"rows":33,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c24_stride2560","sha256":["8e0ec93cc5aec1ca4ff9bc77cc42760e6b4ac9ecd53794dd80ffa2908c1cf900","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","d9f4b7936e3c4d601d153e65de050bf179651de998b003aacc8aa52aa9cc259a"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c25_stride2560","sha256":["8e0ec93cc5aec1ca4ff9bc77cc42760e6b4ac9ecd53794dd80ffa2908c1cf900","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","d9f4b7936e3c4d601d153e65de050bf179651de998b003aacc8aa52aa9cc259a"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c26_stride2560","sha256":["11ea12b9d6de5d1032b2d4118163c2b59318327611fd3e4253be3e0801bbc988","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","75911b663de65e12829c688a604b0965fab21b6ad354780cf1967d2ef90544d4"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c27_stride2560","sha256":["11ea12b9d6de5d1032b2d4118163c2b59318327611fd3e4253be3e0801bbc988","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","75911b663de65e12829c688a604b0965fab21b6ad354780cf1967d2ef90544d4"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"9c01728470b45556c83b316bb63dfd71fcbdff220f57201fd0df4bfd93267c43","pool_next":"1b5a940c2748cb2a5e1ebc210b696738b87e0585d63cd3bdc521830fc7d6fb5a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c28_stride2560","sha256":["775dbad5d129aba895e68425435b1f14ab6ba6bc001e1a5f745b6b3116d595e8","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","437218605604eb05f3a67f9dd4c790ebfc401b6e2a38c01cdcffb021df2f0eeb"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"7931b6046f7a2d031cafaf2fba048e92246299688709550ce90d829823c95179","pool_next":"578f81f80feb799ad3a1182617b523588341d3efad396ed0313201a33f1ebe9a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c29_stride2560","sha256":["775dbad5d129aba895e68425435b1f14ab6ba6bc001e1a5f745b6b3116d595e8","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","437218605604eb05f3a67f9dd4c790ebfc401b6e2a38c01cdcffb021df2f0eeb"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"7931b6046f7a2d031cafaf2fba048e92246299688709550ce90d829823c95179","pool_next":"578f81f80feb799ad3a1182617b523588341d3efad396ed0313201a33f1ebe9a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c30_stride2560","sha256":["4ac750b11bedbd3bd6b627224ec6aedc611a2634a92ec43865fb0f5b93f4e8fb","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","2620a7ba1d5fda650c29ac391c24fec61e5508972326f5fc45f415397406af49"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c9777e5522d7e56888a05f668f4f5e823747d44650229260d599ba76158f5ace","pool_next":"c961285ab638945910b4c95abe38e1367aac5fbc59e7e8fe3ff8f9f51fe39a9d","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c31_stride2560","sha256":["4ac750b11bedbd3bd6b627224ec6aedc611a2634a92ec43865fb0f5b93f4e8fb","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","2620a7ba1d5fda650c29ac391c24fec61e5508972326f5fc45f415397406af49"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c9777e5522d7e56888a05f668f4f5e823747d44650229260d599ba76158f5ace","pool_next":"c961285ab638945910b4c95abe38e1367aac5fbc59e7e8fe3ff8f9f51fe39a9d","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g32_c32_stride2560","sha256":[],"rows":4,"stride":2560,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"c296f8f89394d588b965bb2a525975a73bcecb6315adc272bc3a6530a180f563","pool_next":"851244420593d0df98235c75c9b02b43d042bd1e347becfbf1d5b824a0ab0acf","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":32} +{"kernel":"qsa_compile_hidden_b4_g64_c0_stride2560","sha256":["133ec4275088b6dd4a974a0aaf378f0cc46640602210df505015613384bd054f","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","58f688489694074d3feac67c42e91fb2cfe0e31c14d9f1698872b87e03baffa9"],"rows":1,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c1_stride2560","sha256":["133ec4275088b6dd4a974a0aaf378f0cc46640602210df505015613384bd054f","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","58f688489694074d3feac67c42e91fb2cfe0e31c14d9f1698872b87e03baffa9"],"rows":1,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c2_stride2560","sha256":["99a08c32c98fa25a340730f1d0910573ed64151f59981690ed9105935fbd5acc","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c3_stride2560","sha256":["99a08c32c98fa25a340730f1d0910573ed64151f59981690ed9105935fbd5acc","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c4_stride2560","sha256":["8f5df8434df408f70eed730bde0267f122efab319142b9af3c2392b2ceb4184a"],"rows":1,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c5_stride2560","sha256":["8f5df8434df408f70eed730bde0267f122efab319142b9af3c2392b2ceb4184a"],"rows":1,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d05f99b480bd2c985d186e558d95d041bb25ff4a88e262ed667e786f04471537","pool_next":"411b57462a57dafc7adf77b40ed2f2bc5efa523ecd201081c9e843f2fe80eb36","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c6_stride2560","sha256":["707f9209229027650e8c9afe18143173af82288057f23cf05f6bbb093b9c3270","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","ed2a87fc2d9280f75e2f2cd96b313b548957c414557241694086a065e479f6c7"],"rows":4,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c7_stride2560","sha256":["707f9209229027650e8c9afe18143173af82288057f23cf05f6bbb093b9c3270","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","ed2a87fc2d9280f75e2f2cd96b313b548957c414557241694086a065e479f6c7"],"rows":4,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c8_stride2560","sha256":["58c38fd80a8aa0c9a2ec00031c691663200af49a1eed79163c59046c308af579","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c9_stride2560","sha256":["58c38fd80a8aa0c9a2ec00031c691663200af49a1eed79163c59046c308af579","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c10_stride2560","sha256":["783846725017612d4b8fbd065cd3ac033071a29fc03838875668d8a9cd9d5c7f"],"rows":4,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c11_stride2560","sha256":["783846725017612d4b8fbd065cd3ac033071a29fc03838875668d8a9cd9d5c7f"],"rows":4,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c12_stride2560","sha256":["9a7356099072a004fd6b80862c63f887e0283f6617782f0e3c1b513714b94635","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","30121de97a060e816bf3f7b351f64b57b889ff682ac6316b33001c85b434dce7"],"rows":5,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c13_stride2560","sha256":["9a7356099072a004fd6b80862c63f887e0283f6617782f0e3c1b513714b94635","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","30121de97a060e816bf3f7b351f64b57b889ff682ac6316b33001c85b434dce7"],"rows":5,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c14_stride2560","sha256":["eedd852608b648ee38714e17859cc56a1eedce6a49f389c4be844ea044b01a7a","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c15_stride2560","sha256":["eedd852608b648ee38714e17859cc56a1eedce6a49f389c4be844ea044b01a7a","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c16_stride2560","sha256":["3c098faa7b4dbd80eada3bac809ca11fdadf12569de9141315648020cd759c98"],"rows":5,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c17_stride2560","sha256":["3c098faa7b4dbd80eada3bac809ca11fdadf12569de9141315648020cd759c98"],"rows":5,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d0eda84d6d5762234d1c6295dda94c7ef056da70d7e9fed39f39414604943382","pool_next":"e5f89e5ebc98394a4778f7b6a8f2d577d84cd145737ba074238d73151bd501da","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c18_stride2560","sha256":["a7cf7bae18169732cce04383bf590cbcce8b2d3c3ceb103fc1408b72202510dc","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","220fc3052ef7f731a89c4da49a08a552574a54a2d6279759f96031ea019a4b49"],"rows":33,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c19_stride2560","sha256":["a7cf7bae18169732cce04383bf590cbcce8b2d3c3ceb103fc1408b72202510dc","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","220fc3052ef7f731a89c4da49a08a552574a54a2d6279759f96031ea019a4b49"],"rows":33,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c20_stride2560","sha256":["501010f2669c1de3aba2ecc645cfb2c1c472f1b2cf07623bc94bbcc709caa5bd","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c21_stride2560","sha256":["501010f2669c1de3aba2ecc645cfb2c1c472f1b2cf07623bc94bbcc709caa5bd","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c22_stride2560","sha256":["a52b88e4c9d99940e38963a406bd9330f105dabef868f2abe8f0a7d852db4d07"],"rows":33,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c23_stride2560","sha256":["a52b88e4c9d99940e38963a406bd9330f105dabef868f2abe8f0a7d852db4d07"],"rows":33,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c24_stride2560","sha256":["707f9209229027650e8c9afe18143173af82288057f23cf05f6bbb093b9c3270","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","ef428846ca721cdbc23582cb364d8784ce949786972d7c7c8812f1d40672d9cc"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c25_stride2560","sha256":["707f9209229027650e8c9afe18143173af82288057f23cf05f6bbb093b9c3270","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","ef428846ca721cdbc23582cb364d8784ce949786972d7c7c8812f1d40672d9cc"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c26_stride2560","sha256":["a7cf7bae18169732cce04383bf590cbcce8b2d3c3ceb103fc1408b72202510dc","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","e0a2331179c80f0286fed985720c9749d4cb33d1f7daeeedc5d9fb10f917c7ac"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c27_stride2560","sha256":["a7cf7bae18169732cce04383bf590cbcce8b2d3c3ceb103fc1408b72202510dc","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","e0a2331179c80f0286fed985720c9749d4cb33d1f7daeeedc5d9fb10f917c7ac"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"a2eb5b71a9e84f44553811dfc5177d0277b5399747f658db2e9d0c8417f3d70d","pool_next":"bcbf79c45d59d4f211f3ae69028d868b3b468f1ed9c07b34c9084a60b92805a0","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c28_stride2560","sha256":["60d90c5dc3fc5ecccd080f2378ef856010c57fbdc52ac39ad84856b13ea9da94","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","72961bb72718c38a19a36778090fd8f3e0c23db9f27d7828416c2b16786acf23"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"302bc482cf0a8c9f3b352e23e7ec5b20e07dd31251b55964f4dc0ad5862f40bb","pool_next":"52822f9afc4a79be987d0367f9e5cc61b0644d836f233c62a7c556b02f0151ec","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c29_stride2560","sha256":["60d90c5dc3fc5ecccd080f2378ef856010c57fbdc52ac39ad84856b13ea9da94","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","72961bb72718c38a19a36778090fd8f3e0c23db9f27d7828416c2b16786acf23"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"302bc482cf0a8c9f3b352e23e7ec5b20e07dd31251b55964f4dc0ad5862f40bb","pool_next":"52822f9afc4a79be987d0367f9e5cc61b0644d836f233c62a7c556b02f0151ec","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c30_stride2560","sha256":["e38462277e63f536456b36d60e09e0724d6a9459f9f2b4db50603deb3e95f35b","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","1170db48287c5924c21c63e2dbaa373db3406f09e3dcb9e1240a993e9b56bd1a"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"30b009cc9cc00f29e1535aab9709527679719670e59300d3023039b975f67627","pool_next":"f8376198a19ce8321f3584f9549765927ccf9110faf0b8fdf7ed094e93fe5dd8","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c31_stride2560","sha256":["e38462277e63f536456b36d60e09e0724d6a9459f9f2b4db50603deb3e95f35b","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","1170db48287c5924c21c63e2dbaa373db3406f09e3dcb9e1240a993e9b56bd1a"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"30b009cc9cc00f29e1535aab9709527679719670e59300d3023039b975f67627","pool_next":"f8376198a19ce8321f3584f9549765927ccf9110faf0b8fdf7ed094e93fe5dd8","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b4_g64_c32_stride2560","sha256":[],"rows":4,"stride":2560,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"6ac028a82fb61f7102e98b804d7da946ae60cd1dde14f76f21039f23fbcef11b","pool_next":"e0703bd15c0d3ca39f7f65b2c457d79a306fdf686f1f27d57dc218eea7f3e3ea","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":4,"group":64} +{"kernel":"qsa_compile_hidden_b8_g32_c0_stride2560","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","f8dd058ab0682a7695407e013a64f5f3d94f920c63de35d246974b563cb6324a"],"rows":1,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c1_stride2560","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","f8dd058ab0682a7695407e013a64f5f3d94f920c63de35d246974b563cb6324a"],"rows":1,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c2_stride2560","sha256":["72a141c99fc51e5cdca7033484bdbc8c3a37cdecd97afe7856465cd73754f7ac","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c3_stride2560","sha256":["72a141c99fc51e5cdca7033484bdbc8c3a37cdecd97afe7856465cd73754f7ac","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c4_stride2560","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c5_stride2560","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"56a0ca6849baeb4779ab8a13057e09cce6fd1375aa9df5154a65793bf92e5453","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c6_stride2560","sha256":["6f06b84ab7171a6f84bc98974570a00fd665ee9aa05e757952028be229300a65","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","486b64ea7b6557c8a73d060806ac050dd816680b912a933466ae0dd9a00396f9"],"rows":4,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c7_stride2560","sha256":["6f06b84ab7171a6f84bc98974570a00fd665ee9aa05e757952028be229300a65","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","486b64ea7b6557c8a73d060806ac050dd816680b912a933466ae0dd9a00396f9"],"rows":4,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c8_stride2560","sha256":["6acd3a60f8444ace05bc36edf10a0a3502d4db4f32b6e9d6bd4b3cc7432ca23f","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c9_stride2560","sha256":["6acd3a60f8444ace05bc36edf10a0a3502d4db4f32b6e9d6bd4b3cc7432ca23f","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c10_stride2560","sha256":["a8940d4b65d1a3674e8fcce6485454ea68ce3c9693423bf13f73dfc050a9f4ed"],"rows":4,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c11_stride2560","sha256":["a8940d4b65d1a3674e8fcce6485454ea68ce3c9693423bf13f73dfc050a9f4ed"],"rows":4,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c12_stride2560","sha256":["384e6e69a2d5a7b90718bf3014116b8ce977c1ade856fb8d878e24f4d56d92de","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","cc165f524ee7bafc63d3a28f5394db102963c698d1e01d37195aa2fb3a68a7d3"],"rows":5,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c13_stride2560","sha256":["384e6e69a2d5a7b90718bf3014116b8ce977c1ade856fb8d878e24f4d56d92de","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","cc165f524ee7bafc63d3a28f5394db102963c698d1e01d37195aa2fb3a68a7d3"],"rows":5,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c14_stride2560","sha256":["d34f939d14aef3b9cd216d5bc308004c300f2fc7ad7285586249bd96d3d1a0c6","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c15_stride2560","sha256":["d34f939d14aef3b9cd216d5bc308004c300f2fc7ad7285586249bd96d3d1a0c6","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c16_stride2560","sha256":["c5186bf8715995f4cd6c64786a05bb03f57f5c9b9d1e82ccfaa72638793fa590"],"rows":5,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c17_stride2560","sha256":["c5186bf8715995f4cd6c64786a05bb03f57f5c9b9d1e82ccfaa72638793fa590"],"rows":5,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0f407e9c635e74afe417b13c7124beb8a87c722b17eaf7672542236cfcb24841","pool_next":"52c284a05a9a383fdeae2677b56cb7e46f216de526cddbbd91059f631228d0c2","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c18_stride2560","sha256":["6cd8ae3815294169de3f99af2315fd98fad1c92edc0a2c6e06d66d5ee30e3056","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","5bb5c99eec199ae34a5a3caa22315349981428742f86bc8267fdf42ff5af9264"],"rows":33,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c19_stride2560","sha256":["6cd8ae3815294169de3f99af2315fd98fad1c92edc0a2c6e06d66d5ee30e3056","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","5bb5c99eec199ae34a5a3caa22315349981428742f86bc8267fdf42ff5af9264"],"rows":33,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c20_stride2560","sha256":["139830a69c70a2446fb08f9d0148ff666f4dad1158d7463f00b4f72afad2a2b6","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c21_stride2560","sha256":["139830a69c70a2446fb08f9d0148ff666f4dad1158d7463f00b4f72afad2a2b6","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c22_stride2560","sha256":["80310fff0425794455d4125849fd9dcf5bd310333e4a4af99018ad17b0adbcdd"],"rows":33,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c23_stride2560","sha256":["80310fff0425794455d4125849fd9dcf5bd310333e4a4af99018ad17b0adbcdd"],"rows":33,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c24_stride2560","sha256":["6f06b84ab7171a6f84bc98974570a00fd665ee9aa05e757952028be229300a65","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","4f255edecc856021defbda56c6f1278efd0b3cf330e6ba6405424b7abbf5294e"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c25_stride2560","sha256":["6f06b84ab7171a6f84bc98974570a00fd665ee9aa05e757952028be229300a65","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","4f255edecc856021defbda56c6f1278efd0b3cf330e6ba6405424b7abbf5294e"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c26_stride2560","sha256":["6cd8ae3815294169de3f99af2315fd98fad1c92edc0a2c6e06d66d5ee30e3056","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","95a136fa4396e4e5d87b96cbe6358c76a654ba43a6728415f56b9092ace0db7d"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c27_stride2560","sha256":["6cd8ae3815294169de3f99af2315fd98fad1c92edc0a2c6e06d66d5ee30e3056","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","95a136fa4396e4e5d87b96cbe6358c76a654ba43a6728415f56b9092ace0db7d"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"09d05788fdb501760791421409cf4488e57c393e8e00ad7c3d220ad7094ae5ab","pool_next":"4dabcaa92ac0bc51edb455f7e9129a96f3be1b30eecc8dbff1c2adbaa2cb701a","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c28_stride2560","sha256":["2bf058dbf08f1acf59dfe46d638cb06621938d4a58c11d15b84437628f3ea089","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","268903352f0dad4e3200ccad9a12fdb7a5526968b7294ccdd57b2616517a93c9"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"ec833171e86a73e827d6de11e94eaadac92a458bef2651151358644e02835df6","pool_next":"8df45418daeac546063e96ce80445140a2ea94dd0e77098a3ed12231f58b7e6c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c29_stride2560","sha256":["2bf058dbf08f1acf59dfe46d638cb06621938d4a58c11d15b84437628f3ea089","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","268903352f0dad4e3200ccad9a12fdb7a5526968b7294ccdd57b2616517a93c9"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"ec833171e86a73e827d6de11e94eaadac92a458bef2651151358644e02835df6","pool_next":"8df45418daeac546063e96ce80445140a2ea94dd0e77098a3ed12231f58b7e6c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c30_stride2560","sha256":["ffe36425da0b9334c0283bb662e29e39f33dd1f4a806cf9f809e003a28e7f973","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","391be6ee7b2ac4c558af6397dafa5be749b041cb04080a2d98320324fa2b2500"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"7fb07a33c37bcd753fd9ce68d656fb184709fa878495552934a2479d371cc8bd","pool_next":"56186582c60e3e86cc46e7d8d3a3e99f082a99a98312f92b384f28ed3d6ba533","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c31_stride2560","sha256":["ffe36425da0b9334c0283bb662e29e39f33dd1f4a806cf9f809e003a28e7f973","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","391be6ee7b2ac4c558af6397dafa5be749b041cb04080a2d98320324fa2b2500"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"7fb07a33c37bcd753fd9ce68d656fb184709fa878495552934a2479d371cc8bd","pool_next":"56186582c60e3e86cc46e7d8d3a3e99f082a99a98312f92b384f28ed3d6ba533","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g32_c32_stride2560","sha256":[],"rows":4,"stride":2560,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"dd9315058ec55bd3480f2ab1b93a69bb12c02daa4252de13b523db19dd844c1e","pool_next":"e2338dce23319d2fb197f5fe5a9a4fed1d7b0a7add9a83890b9c3daee2bb7b0c","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":32} +{"kernel":"qsa_compile_hidden_b8_g64_c0_stride2560","sha256":["fbb3e33d6654808de5f4d67b3350832cd5f352ca5ddbb0565179d47392235c6e","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","8d3cec537eb90ea667308e44468ce6fdffd373e1f1ce36909ea17606a8e640a9"],"rows":1,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c1_stride2560","sha256":["fbb3e33d6654808de5f4d67b3350832cd5f352ca5ddbb0565179d47392235c6e","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","8d3cec537eb90ea667308e44468ce6fdffd373e1f1ce36909ea17606a8e640a9"],"rows":1,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c2_stride2560","sha256":["f5162ee51fdc4af192f06c1bcd5a109425270cb2815f5db7fbd5ff8523eb622e","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c3_stride2560","sha256":["f5162ee51fdc4af192f06c1bcd5a109425270cb2815f5db7fbd5ff8523eb622e","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c4_stride2560","sha256":["e79190e188d8528fd319a5291a2336a16227c7e68fe9ea5197f0ab7ef910db34"],"rows":1,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c5_stride2560","sha256":["e79190e188d8528fd319a5291a2336a16227c7e68fe9ea5197f0ab7ef910db34"],"rows":1,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"d1a71bebbc301f760851f099c1bf370c3d920512fab5d937a78156baf8606e27","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c6_stride2560","sha256":["788d9761abf3fb6d13d2f70a1926b5c94a705e2131b85b2014fbc83c4e1dbde1","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","f9815f199d7839787c412601b2dd1753d898d5d552564f5e4537fba86598dc6c"],"rows":4,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c7_stride2560","sha256":["788d9761abf3fb6d13d2f70a1926b5c94a705e2131b85b2014fbc83c4e1dbde1","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","f9815f199d7839787c412601b2dd1753d898d5d552564f5e4537fba86598dc6c"],"rows":4,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c8_stride2560","sha256":["d7d5e830c7b578ed604dbff7399959e5e3d36ee2fc2bca419816f4fa2e0fb21b","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c9_stride2560","sha256":["d7d5e830c7b578ed604dbff7399959e5e3d36ee2fc2bca419816f4fa2e0fb21b","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c10_stride2560","sha256":["fd7f54f00a0805758d0bec6381fe6ebba7af9ed1c51b0d241573b6a08cab79e9"],"rows":4,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c11_stride2560","sha256":["fd7f54f00a0805758d0bec6381fe6ebba7af9ed1c51b0d241573b6a08cab79e9"],"rows":4,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c12_stride2560","sha256":["a4987d8a440f699420810dba9a4f6b06a49448b9c91efa361a00312a944ba817","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","bb1b7d7894aa9df1ece786107c9a8370b482bd381b05f6057c29326240b15782"],"rows":5,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c13_stride2560","sha256":["a4987d8a440f699420810dba9a4f6b06a49448b9c91efa361a00312a944ba817","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","bb1b7d7894aa9df1ece786107c9a8370b482bd381b05f6057c29326240b15782"],"rows":5,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c14_stride2560","sha256":["2bd21fb7b504ed95889c596d76de6a2bcd24b33b017195a98a0b0079b03da712","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c15_stride2560","sha256":["2bd21fb7b504ed95889c596d76de6a2bcd24b33b017195a98a0b0079b03da712","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c16_stride2560","sha256":["216ef484d78f4628db722bec2f88ad92bd7602f63c5c2511f7304ab64711b9c0"],"rows":5,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c17_stride2560","sha256":["216ef484d78f4628db722bec2f88ad92bd7602f63c5c2511f7304ab64711b9c0"],"rows":5,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"81740ea657a586317a57d30a3147c5aa8b86c9b3bb18ad1fdc01f300f9d020f2","pool_next":"98b328665316ecff64959a3b9d964eb05001818de8b195b7f0bcd91d10077e54","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c18_stride2560","sha256":["368e4b93c01407ef947db9018905e05398b11bdcf17802d83dbe8d0f4d0c0b6b","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","c3d0ad1355aa1d90408f39753c30dad9f3e7bd280e8d312fa5c4962660b67a56"],"rows":33,"stride":2560,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c19_stride2560","sha256":["368e4b93c01407ef947db9018905e05398b11bdcf17802d83dbe8d0f4d0c0b6b","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","c3d0ad1355aa1d90408f39753c30dad9f3e7bd280e8d312fa5c4962660b67a56"],"rows":33,"stride":2560,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c20_stride2560","sha256":["08e4f697a7d472e5319ec3bb71a140a018fb9160dee5961197c248e256280b5b","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c21_stride2560","sha256":["08e4f697a7d472e5319ec3bb71a140a018fb9160dee5961197c248e256280b5b","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":2560,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c22_stride2560","sha256":["6b034a5055b2623bf50d28616d4072bf3ab376855ccbd200b0a0865876e774b3"],"rows":33,"stride":2560,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c23_stride2560","sha256":["6b034a5055b2623bf50d28616d4072bf3ab376855ccbd200b0a0865876e774b3"],"rows":33,"stride":2560,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c24_stride2560","sha256":["788d9761abf3fb6d13d2f70a1926b5c94a705e2131b85b2014fbc83c4e1dbde1","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","2e075464d7f80b0199eee859c2906e179f0a98653263763defb136fa72ecd74e"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c25_stride2560","sha256":["788d9761abf3fb6d13d2f70a1926b5c94a705e2131b85b2014fbc83c4e1dbde1","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","2e075464d7f80b0199eee859c2906e179f0a98653263763defb136fa72ecd74e"],"rows":4,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c26_stride2560","sha256":["368e4b93c01407ef947db9018905e05398b11bdcf17802d83dbe8d0f4d0c0b6b","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","f6e1fa33941c82749261b2b09c5ea397f0a89d7b001645e1585dc2822e2cf9bd"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c27_stride2560","sha256":["368e4b93c01407ef947db9018905e05398b11bdcf17802d83dbe8d0f4d0c0b6b","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","f6e1fa33941c82749261b2b09c5ea397f0a89d7b001645e1585dc2822e2cf9bd"],"rows":33,"stride":2560,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"3763b8bbc88cd37809cf4f697ea6b5f3b055f147a9893ceae1b694d596e0c8c1","pool_next":"b86d24ec962f4c757eaf5879f2f482d2c3f8f761448e304cde8459f750402e28","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c28_stride2560","sha256":["dd315c8a27d3741e06fa46e8fd71d3f833ff2e0c9542a187f72c8214d3c36307","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","5a722ce93a81190ed382973ded24ef661f7810a85d5456c2a582a322dc4e595f"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"b1cb4cb1b151c7f0526209054140982a8fec31d4219e61e5fb8de067918025c9","pool_next":"617c919e147441faa5625f8a69aec68794fc9e21bdafff7f814751950c55244b","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c29_stride2560","sha256":["dd315c8a27d3741e06fa46e8fd71d3f833ff2e0c9542a187f72c8214d3c36307","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","5a722ce93a81190ed382973ded24ef661f7810a85d5456c2a582a322dc4e595f"],"rows":65,"stride":2560,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"b1cb4cb1b151c7f0526209054140982a8fec31d4219e61e5fb8de067918025c9","pool_next":"617c919e147441faa5625f8a69aec68794fc9e21bdafff7f814751950c55244b","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c30_stride2560","sha256":["a084cf0e35750093ce1ef3617359460a5bc5d31ad3f4c65ff8a831b5d04fa333","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","847a870be3c86d93bde1e9705f33f06fee6c918aeb24363013e33c4bc660daa6"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"12e02ad773fe53ff5b8374dd69a268fc0cb4a6a1f8eff9a3892768bee00495b5","pool_next":"2a1f1bba69a99a59b0441c6c786f6747db7d5e1286bb8f6df322debea1d89c58","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c31_stride2560","sha256":["a084cf0e35750093ce1ef3617359460a5bc5d31ad3f4c65ff8a831b5d04fa333","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","847a870be3c86d93bde1e9705f33f06fee6c918aeb24363013e33c4bc660daa6"],"rows":2048,"stride":2560,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"12e02ad773fe53ff5b8374dd69a268fc0cb4a6a1f8eff9a3892768bee00495b5","pool_next":"2a1f1bba69a99a59b0441c6c786f6747db7d5e1286bb8f6df322debea1d89c58","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} +{"kernel":"qsa_compile_hidden_b8_g64_c32_stride2560","sha256":[],"rows":4,"stride":2560,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"4ef2bcd86bb8f7abe94672d547415561df0e913721c1af465828934db9043841","pool_next":"b5e4699f733eef52b7b4e9370f7d2be8452afbde12d7076862ac7100e4699e09","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"},"bits":8,"group":64} diff --git a/tests/fixtures/mtplx-qsa-compiled-indexer.jsonl b/tests/fixtures/mtplx-qsa-compiled-indexer.jsonl new file mode 100644 index 0000000..4e9e9c3 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-indexer.jsonl @@ -0,0 +1,66 @@ +{"kernel":"qsa_compile_indexer_c0_stride640","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","0d3f1f03bf71330aa11dab784167963355d87e292225778ee66671b75a64bd95"],"rows":1,"stride":640,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c0_stride704","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","0d3f1f03bf71330aa11dab784167963355d87e292225778ee66671b75a64bd95"],"rows":1,"stride":704,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c1_stride640","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","0d3f1f03bf71330aa11dab784167963355d87e292225778ee66671b75a64bd95"],"rows":1,"stride":640,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c1_stride704","sha256":["aa1925aeefc43cd8fdfa4b1502e575163ad1cf719b8b60b970d4f516a1c8195a","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","0d3f1f03bf71330aa11dab784167963355d87e292225778ee66671b75a64bd95"],"rows":1,"stride":704,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c2_stride640","sha256":["ad331cb47f3b5fa221d61bb77748eebfca0ac3619051f315903ec03cca9a156c","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":640,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c2_stride704","sha256":["ad331cb47f3b5fa221d61bb77748eebfca0ac3619051f315903ec03cca9a156c","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":704,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c3_stride640","sha256":["ad331cb47f3b5fa221d61bb77748eebfca0ac3619051f315903ec03cca9a156c","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":640,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c3_stride704","sha256":["ad331cb47f3b5fa221d61bb77748eebfca0ac3619051f315903ec03cca9a156c","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"rows":1,"stride":704,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c4_stride640","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":640,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c4_stride704","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":704,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c5_stride640","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":640,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c5_stride704","sha256":["4c128204e74dcb93361d339a9ac0805ac2695f07cce5c5f17231dc303f89228e"],"rows":1,"stride":704,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"bb4e703d6fd3d8f28d4068c76d7d2fcda2ffd54683186cb3084bc652d1c9f605","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c6_stride640","sha256":["e4596e331f2f8b30cf135d81bcdacab006809af7bf1b4b8dd5abcf41c69d8cba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","4c8da992778d886d87fc3a4b4ac0033dff4fefe55fb893bac27d1c77d055d11a"],"rows":4,"stride":640,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c6_stride704","sha256":["d9902db3ecf0d6ed1de857c3a644fb2e24c5ce18af2bcc8b307caf9adbf5baba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","e572df1910735a20432abb3d3a6ac8da33ccc8a3be5c0fd21d4b649639468aa7"],"rows":4,"stride":704,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c7_stride640","sha256":["e4596e331f2f8b30cf135d81bcdacab006809af7bf1b4b8dd5abcf41c69d8cba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","4c8da992778d886d87fc3a4b4ac0033dff4fefe55fb893bac27d1c77d055d11a"],"rows":4,"stride":640,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c7_stride704","sha256":["d9902db3ecf0d6ed1de857c3a644fb2e24c5ce18af2bcc8b307caf9adbf5baba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","e572df1910735a20432abb3d3a6ac8da33ccc8a3be5c0fd21d4b649639468aa7"],"rows":4,"stride":704,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c8_stride640","sha256":["f9f7b137ecccf097e87c19586b30e020987acba68ea89d6f2542f83fcb5bda77","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":640,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c8_stride704","sha256":["da9cfc552fe2fd140f8eb026007f64788f09b22859f0dde7e57e7842a0ed4ed9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":704,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c9_stride640","sha256":["f9f7b137ecccf097e87c19586b30e020987acba68ea89d6f2542f83fcb5bda77","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":640,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c9_stride704","sha256":["da9cfc552fe2fd140f8eb026007f64788f09b22859f0dde7e57e7842a0ed4ed9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"rows":4,"stride":704,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c10_stride640","sha256":["a005622f2a80973459646b23107cc9bcb5786ab388774a9b4b368761d431c16c"],"rows":4,"stride":640,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c10_stride704","sha256":["4d509e9e2a5a7c1f18f1882a2dabf25b7c3b34b12f2645b6da82337d4c29c1a8"],"rows":4,"stride":704,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c11_stride640","sha256":["a005622f2a80973459646b23107cc9bcb5786ab388774a9b4b368761d431c16c"],"rows":4,"stride":640,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c11_stride704","sha256":["4d509e9e2a5a7c1f18f1882a2dabf25b7c3b34b12f2645b6da82337d4c29c1a8"],"rows":4,"stride":704,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c12_stride640","sha256":["3213d19b7c20cbf42580347923a4103a247bdeac358a3e891d36b577f13e0585","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","d657bbe4677f9d20639efd258612c62170ac1526c9d9e6f5ad73a422a4ccd7b6"],"rows":5,"stride":640,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c12_stride704","sha256":["cbf94597e31f35debfff9b08ddc1d1097470f5794da01ff30a7497284542f613","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","91424b71ba01134592309fe03b34cac860ef487f3945308c15c46c07fdec8ea0"],"rows":5,"stride":704,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c13_stride640","sha256":["3213d19b7c20cbf42580347923a4103a247bdeac358a3e891d36b577f13e0585","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","d657bbe4677f9d20639efd258612c62170ac1526c9d9e6f5ad73a422a4ccd7b6"],"rows":5,"stride":640,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c13_stride704","sha256":["cbf94597e31f35debfff9b08ddc1d1097470f5794da01ff30a7497284542f613","37e287184de6a92556d6620dc350bb5fe1ee478ac42c1c7879ba7c77e9af235e","91424b71ba01134592309fe03b34cac860ef487f3945308c15c46c07fdec8ea0"],"rows":5,"stride":704,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c14_stride640","sha256":["32c767b92c5eba47dbcc0007a9914a5532edbd230aa98bbe88b9f82e10c5b748","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":640,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c14_stride704","sha256":["b3868a7bca0b7deccff5b91bc11a26aeef976fc6440aba0501baec62d6e0d3d8","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":704,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c15_stride640","sha256":["32c767b92c5eba47dbcc0007a9914a5532edbd230aa98bbe88b9f82e10c5b748","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":640,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c15_stride704","sha256":["b3868a7bca0b7deccff5b91bc11a26aeef976fc6440aba0501baec62d6e0d3d8","35d0b4df8d113b63200d32f0cb3df4dbbad270cf144de9b5695473b8ee7eda99"],"rows":5,"stride":704,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c16_stride640","sha256":["4b733f1dff457dc2635a2e728985d74ff9f714b864fa2b79f3c90826e3284ff7"],"rows":5,"stride":640,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c16_stride704","sha256":["a53e776a1fbf4d1bcaf26b79d4b32cfd49d02e61f966f0ccf5f0a56abf12dcd5"],"rows":5,"stride":704,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c17_stride640","sha256":["4b733f1dff457dc2635a2e728985d74ff9f714b864fa2b79f3c90826e3284ff7"],"rows":5,"stride":640,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","pool_next":"98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c17_stride704","sha256":["a53e776a1fbf4d1bcaf26b79d4b32cfd49d02e61f966f0ccf5f0a56abf12dcd5"],"rows":5,"stride":704,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","pool_next":"b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c18_stride640","sha256":["e74075e42aaace53cdaec6f4d61465a0821fa97be568a741d76531de8ff37780","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","cf0b4c4979f5114faedfd30c18354941136cf13e8393e35f9c72d6de2a3a0b2f"],"rows":33,"stride":640,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c18_stride704","sha256":["6e8d181efa3d0354d9801260ccd7690f7f545d03c24d0615c8bef623cee6b534","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","58f8d69515ec659eadb1ad8e6da36b38bd62fa2e03c753581ea4d5ce7fe4ed03"],"rows":33,"stride":704,"mode":"blocks","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c19_stride640","sha256":["e74075e42aaace53cdaec6f4d61465a0821fa97be568a741d76531de8ff37780","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","cf0b4c4979f5114faedfd30c18354941136cf13e8393e35f9c72d6de2a3a0b2f"],"rows":33,"stride":640,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c19_stride704","sha256":["6e8d181efa3d0354d9801260ccd7690f7f545d03c24d0615c8bef623cee6b534","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","58f8d69515ec659eadb1ad8e6da36b38bd62fa2e03c753581ea4d5ce7fe4ed03"],"rows":33,"stride":704,"mode":"blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c20_stride640","sha256":["f34909c4dd54573545f2dc629122a63538f92c00bc40c6f631fce41e89bfe20d","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":640,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c20_stride704","sha256":["d4347a8aac520127e01ddb40d3e88073c902df58ccd7849dd9ad2d3a779f08d0","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":704,"mode":"row_tokens","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c21_stride640","sha256":["f34909c4dd54573545f2dc629122a63538f92c00bc40c6f631fce41e89bfe20d","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":640,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c21_stride704","sha256":["d4347a8aac520127e01ddb40d3e88073c902df58ccd7849dd9ad2d3a779f08d0","efb7d93d38b38a1a617c85f57590beb3c7b7f389d4f31a4d6c0b89e9f9a822b8"],"rows":33,"stride":704,"mode":"row_tokens","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c22_stride640","sha256":["7f2c473bd2acfb1e0510605e98f2e878cfc185b91ffc1c6a3b32de8bc70f12c0"],"rows":33,"stride":640,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c22_stride704","sha256":["e3157ad376aab97d38bebf30311d4ad45194f78cdc7d83cdd2ac46f74d7ef3ec"],"rows":33,"stride":704,"mode":"dense_mask","budget":33554432,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c23_stride640","sha256":["7f2c473bd2acfb1e0510605e98f2e878cfc185b91ffc1c6a3b32de8bc70f12c0"],"rows":33,"stride":640,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c23_stride704","sha256":["e3157ad376aab97d38bebf30311d4ad45194f78cdc7d83cdd2ac46f74d7ef3ec"],"rows":33,"stride":704,"mode":"dense_mask","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c24_stride640","sha256":["e4596e331f2f8b30cf135d81bcdacab006809af7bf1b4b8dd5abcf41c69d8cba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","949d20c3bd609853770748843fc9319f51bcb87630f0b364e6da06b536c1d046"],"rows":4,"stride":640,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c24_stride704","sha256":["d9902db3ecf0d6ed1de857c3a644fb2e24c5ce18af2bcc8b307caf9adbf5baba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","788d938e6a690446beedbc29f905cbeacc26a4970b953741e5f40a50c741daa8"],"rows":4,"stride":704,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c25_stride640","sha256":["e4596e331f2f8b30cf135d81bcdacab006809af7bf1b4b8dd5abcf41c69d8cba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","949d20c3bd609853770748843fc9319f51bcb87630f0b364e6da06b536c1d046"],"rows":4,"stride":640,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c25_stride704","sha256":["d9902db3ecf0d6ed1de857c3a644fb2e24c5ce18af2bcc8b307caf9adbf5baba","fc3bd1e348ef843a5052596a42863c169d54cc3c352449596039497873862155","788d938e6a690446beedbc29f905cbeacc26a4970b953741e5f40a50c741daa8"],"rows":4,"stride":704,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c26_stride640","sha256":["e74075e42aaace53cdaec6f4d61465a0821fa97be568a741d76531de8ff37780","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","c4dd1141ca8f85ac917387f38b2015a7c832ee22ca28ed97dc894531f877eb56"],"rows":33,"stride":640,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c26_stride704","sha256":["6e8d181efa3d0354d9801260ccd7690f7f545d03c24d0615c8bef623cee6b534","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","b3fce77206de15905040b5c4cc36eb06d705bc543ab0bf9d5e1e661965273d01"],"rows":33,"stride":704,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c27_stride640","sha256":["e74075e42aaace53cdaec6f4d61465a0821fa97be568a741d76531de8ff37780","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","c4dd1141ca8f85ac917387f38b2015a7c832ee22ca28ed97dc894531f877eb56"],"rows":33,"stride":640,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","pool_next":"568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c27_stride704","sha256":["6e8d181efa3d0354d9801260ccd7690f7f545d03c24d0615c8bef623cee6b534","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625","b3fce77206de15905040b5c4cc36eb06d705bc543ab0bf9d5e1e661965273d01"],"rows":33,"stride":704,"mode":"prefill_blocks","budget":12288,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","pool_next":"c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c28_stride640","sha256":["8fea085457133398b605b40c9924a6fcd14daebe0b8c9a7beef647c787c1ccb9","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","513c690680a44aac1ff5ae3f66acb5ada2279caff718d95c9a95a1197bf3289f"],"rows":65,"stride":640,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"5addf09129450aa516a555b3d6e3d6fe55baef176c34cc7b72e76e860df47b02","pool_next":"d554a3d5dec81f47447a5505b7ea2aae20148091b40cbf9c90b53bfbcc776b70","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c28_stride704","sha256":["a3dc625e357d5dac5af7d1c0eb0b07ada1e904584f4a4c103cefde012b61a087","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","97380a057a92070f93d8cee943aa2f38294e8e567818537d392063ffba6dba20"],"rows":65,"stride":704,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"5e7cd9cd0b4a544a2d17ae23c9b15cc31c04d3d3e424521c86e4de599f560363","pool_next":"cbe8577af90a4dd62636704205e5de57c938f7009c855a42e9989564e4144e03","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c29_stride640","sha256":["8fea085457133398b605b40c9924a6fcd14daebe0b8c9a7beef647c787c1ccb9","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","513c690680a44aac1ff5ae3f66acb5ada2279caff718d95c9a95a1197bf3289f"],"rows":65,"stride":640,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"5addf09129450aa516a555b3d6e3d6fe55baef176c34cc7b72e76e860df47b02","pool_next":"d554a3d5dec81f47447a5505b7ea2aae20148091b40cbf9c90b53bfbcc776b70","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c29_stride704","sha256":["a3dc625e357d5dac5af7d1c0eb0b07ada1e904584f4a4c103cefde012b61a087","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","97380a057a92070f93d8cee943aa2f38294e8e567818537d392063ffba6dba20"],"rows":65,"stride":704,"mode":"prefill_blocks","budget":196608,"capacity":[4096,1024],"pos":2050,"logical":528,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"5e7cd9cd0b4a544a2d17ae23c9b15cc31c04d3d3e424521c86e4de599f560363","pool_next":"cbe8577af90a4dd62636704205e5de57c938f7009c855a42e9989564e4144e03","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c30_stride640","sha256":["4a566d6ffceae60da365d7da2c94fddd6a7ce2241a1a3ac2b0b51553049f9069","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","2c7bf56b72d0667b2481566bda082910841f5a6a6e377a0ccb7961a9e01c5d5a"],"rows":2048,"stride":640,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0231f0ef8f2112de13472fdf190fabfb61b0b7dc3642ce9726ed4750914969e5","pool_next":"158ca7959b9a9deb4dc67aa8387b58d16679991626999fd0def6b23475988ba6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c30_stride704","sha256":["2bb83cd24c4d9298afdfab854dc2ee7ea6f97a8a522e1eec4e5fe87a145b03e6","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","9cb542a457a8261e4c2d767dc0f3e64c277015a5670292d40698e7162004c0b4"],"rows":2048,"stride":704,"mode":"prefill_blocks","budget":134217728,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"311fc83c06ce7951beca025e3cab89485580fa83879b079f1d6a0130f9d0fa58","pool_next":"7ad3ba80490db5d3f6e4faba35257e04382ba3fff0326608db07c9164334d102","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c31_stride640","sha256":["4a566d6ffceae60da365d7da2c94fddd6a7ce2241a1a3ac2b0b51553049f9069","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","2c7bf56b72d0667b2481566bda082910841f5a6a6e377a0ccb7961a9e01c5d5a"],"rows":2048,"stride":640,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0231f0ef8f2112de13472fdf190fabfb61b0b7dc3642ce9726ed4750914969e5","pool_next":"158ca7959b9a9deb4dc67aa8387b58d16679991626999fd0def6b23475988ba6","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c31_stride704","sha256":["2bb83cd24c4d9298afdfab854dc2ee7ea6f97a8a522e1eec4e5fe87a145b03e6","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d","9cb542a457a8261e4c2d767dc0f3e64c277015a5670292d40698e7162004c0b4"],"rows":2048,"stride":704,"mode":"prefill_blocks","budget":524288,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"311fc83c06ce7951beca025e3cab89485580fa83879b079f1d6a0130f9d0fa58","pool_next":"7ad3ba80490db5d3f6e4faba35257e04382ba3fff0326608db07c9164334d102","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c32_stride640","sha256":[],"rows":4,"stride":640,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} +{"kernel":"qsa_compile_indexer_c32_stride704","sha256":[],"rows":4,"stride":704,"mode":"update_only","budget":33554432,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"state_sha256":{"raw_next":"0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","pool_next":"7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","raw_old":"7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","pool_old":"19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"}} diff --git a/tests/fixtures/mtplx-qsa-compiled-routes.json b/tests/fixtures/mtplx-qsa-compiled-routes.json new file mode 100644 index 0000000..407a43a --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-routes.json @@ -0,0 +1 @@ +{"options":[{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":false,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":2048,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":32772,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_compile_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true},{"fused":true,"compiled":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":2,"prefill_compile_rows":2048,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true}],"states":[[0,0,0,null,null,0],[0,1,0,null,null,0],[0,3,0,null,null,0],[0,32,0,null,null,0],[0,2048,0,null,null,0],[2048,1,2048,2048,512,512],[2048,4,2048,2048,512,512],[2048,2048,2048,2048,512,512],[2049,4,2049,2304,512,512],[2051,1,2051,2304,512,512],[2051,4,2051,2304,512,512],[2051,8,2051,2304,512,512],[2051,9,2051,2304,512,512],[32767,2048,32767,32768,8192,8191],[32768,1,32768,32768,8192,8192],[32768,31,32768,32768,8192,8192],[32768,32,32768,32768,8192,8192],[32768,33,32768,32768,8192,8192],[32768,2047,32768,32768,8192,8192],[32768,2048,32768,32768,8192,8192],[32768,2049,32768,32768,8192,8192],[1,1,0,256,256,0],[1,1,1,null,null,0],[257,1,257,256,256,64],[0,1,0,null,null,1],[2051,4,2051,2304,512,513],[2051,4,2051,2304,768,511],[2051,4,2051,2304,768,512],[2051,4,2051,2304,768,700],[0,1,0,0,0,0]],"cases":[[0,0,"update_only",false,false],[0,1,"update_only",true,true],[0,2,"update_only",false,false],[0,3,"update_only",false,false],[0,4,"update_only",false,false],[0,5,"update_only",true,true],[0,6,"row_tokens",true,true],[0,7,"dense_mask",false,false],[0,8,"row_tokens",true,true],[0,9,"blocks",true,true],[0,10,"row_tokens",true,true],[0,11,"row_tokens",true,true],[0,12,"dense_mask",true,true],[0,13,"dense_mask",false,false],[0,14,"blocks",true,true],[0,15,"dense_mask",true,true],[0,16,"prefill_blocks",false,false],[0,17,"prefill_blocks",false,false],[0,18,"prefill_blocks",false,false],[0,19,"prefill_blocks",true,true],[0,20,"prefill_blocks",false,false],[0,21,"update_only",false,false],[0,22,"update_only",false,false],[0,23,"update_only",false,false],[0,24,"update_only",false,false],[0,25,"row_tokens",false,false],[0,26,"row_tokens",false,false],[0,27,"row_tokens",true,true],[0,28,"row_tokens",true,true],[0,29,"update_only",true,true],[1,0,"update_only",false,false],[1,1,"update_only",false,false],[1,2,"update_only",false,false],[1,3,"update_only",false,false],[1,4,"update_only",false,false],[1,5,"update_only",false,false],[1,6,"row_tokens",false,false],[1,7,"dense_mask",false,false],[1,8,"row_tokens",false,false],[1,9,"blocks",false,false],[1,10,"row_tokens",false,false],[1,11,"row_tokens",false,false],[1,12,"dense_mask",false,false],[1,13,"dense_mask",false,false],[1,14,"blocks",false,false],[1,15,"dense_mask",false,false],[1,16,"prefill_blocks",false,false],[1,17,"prefill_blocks",false,false],[1,18,"prefill_blocks",false,false],[1,19,"prefill_blocks",false,false],[1,20,"prefill_blocks",false,false],[1,21,"update_only",false,false],[1,22,"update_only",false,false],[1,23,"update_only",false,false],[1,24,"update_only",false,false],[1,25,"row_tokens",false,false],[1,26,"row_tokens",false,false],[1,27,"row_tokens",false,false],[1,28,"row_tokens",false,false],[1,29,"update_only",false,false],[2,0,"update_only",false,false],[2,1,"update_only",false,false],[2,2,"update_only",false,false],[2,3,"update_only",false,false],[2,4,"update_only",false,false],[2,5,"update_only",false,false],[2,6,"row_tokens",false,false],[2,7,"dense_mask",false,false],[2,8,"row_tokens",false,false],[2,9,"blocks",false,false],[2,10,"row_tokens",false,false],[2,11,"row_tokens",false,false],[2,12,"dense_mask",false,false],[2,13,"dense_mask",false,false],[2,14,"blocks",false,false],[2,15,"dense_mask",false,false],[2,16,"prefill_blocks",false,false],[2,17,"prefill_blocks",false,false],[2,18,"prefill_blocks",false,false],[2,19,"prefill_blocks",false,false],[2,20,"prefill_blocks",false,false],[2,21,"update_only",false,false],[2,22,"update_only",false,false],[2,23,"update_only",false,false],[2,24,"update_only",false,false],[2,25,"row_tokens",false,false],[2,26,"row_tokens",false,false],[2,27,"row_tokens",false,false],[2,28,"row_tokens",false,false],[2,29,"update_only",false,false],[3,0,"update_only",false,false],[3,1,"update_only",true,true],[3,2,"update_only",false,false],[3,3,"update_only",false,false],[3,4,"update_only",false,false],[3,5,"update_only",true,true],[3,6,"row_tokens",true,true],[3,7,"dense_mask",false,false],[3,8,"row_tokens",true,true],[3,9,"blocks",true,true],[3,10,"row_tokens",true,true],[3,11,"row_tokens",true,true],[3,12,"dense_mask",true,true],[3,13,"dense_mask",false,false],[3,14,"blocks",true,true],[3,15,"dense_mask",true,true],[3,16,"dense_mask",false,false],[3,17,"dense_mask",false,false],[3,18,"dense_mask",false,false],[3,19,"dense_mask",false,false],[3,20,"dense_mask",false,false],[3,21,"update_only",false,false],[3,22,"update_only",false,false],[3,23,"update_only",false,false],[3,24,"update_only",false,false],[3,25,"row_tokens",false,false],[3,26,"row_tokens",false,false],[3,27,"row_tokens",true,true],[3,28,"row_tokens",true,true],[3,29,"update_only",true,true],[4,0,"update_only",false,false],[4,1,"update_only",true,true],[4,2,"update_only",true,true],[4,3,"update_only",false,false],[4,4,"update_only",true,true],[4,5,"update_only",true,true],[4,6,"row_tokens",true,true],[4,7,"dense_mask",false,false],[4,8,"row_tokens",true,true],[4,9,"blocks",true,true],[4,10,"row_tokens",true,true],[4,11,"row_tokens",true,true],[4,12,"dense_mask",true,true],[4,13,"dense_mask",false,false],[4,14,"blocks",true,true],[4,15,"dense_mask",true,true],[4,16,"dense_mask",false,false],[4,17,"dense_mask",false,false],[4,18,"dense_mask",false,false],[4,19,"dense_mask",false,false],[4,20,"dense_mask",false,false],[4,21,"update_only",false,false],[4,22,"update_only",false,false],[4,23,"update_only",false,false],[4,24,"update_only",false,false],[4,25,"row_tokens",false,false],[4,26,"row_tokens",false,false],[4,27,"row_tokens",true,true],[4,28,"row_tokens",true,true],[4,29,"update_only",true,true],[5,0,"update_only",false,false],[5,1,"update_only",true,true],[5,2,"update_only",false,false],[5,3,"update_only",false,false],[5,4,"update_only",false,false],[5,5,"update_only",true,true],[5,6,"row_tokens",true,true],[5,7,"dense_mask",false,false],[5,8,"row_tokens",true,true],[5,9,"dense_mask",false,false],[5,10,"row_tokens",true,true],[5,11,"row_tokens",true,true],[5,12,"dense_mask",true,true],[5,13,"dense_mask",false,false],[5,14,"dense_mask",false,false],[5,15,"dense_mask",true,true],[5,16,"prefill_blocks",false,false],[5,17,"prefill_blocks",false,false],[5,18,"prefill_blocks",false,false],[5,19,"prefill_blocks",true,true],[5,20,"prefill_blocks",false,false],[5,21,"update_only",false,false],[5,22,"update_only",false,false],[5,23,"update_only",false,false],[5,24,"update_only",false,false],[5,25,"row_tokens",false,false],[5,26,"row_tokens",false,false],[5,27,"row_tokens",true,true],[5,28,"row_tokens",true,true],[5,29,"update_only",true,true],[6,0,"update_only",false,false],[6,1,"update_only",true,true],[6,2,"update_only",false,false],[6,3,"update_only",false,false],[6,4,"update_only",false,false],[6,5,"update_only",true,true],[6,6,"row_tokens",true,true],[6,7,"dense_mask",false,false],[6,8,"row_tokens",true,true],[6,9,"dense_mask",true,true],[6,10,"row_tokens",true,true],[6,11,"row_tokens",true,true],[6,12,"dense_mask",true,true],[6,13,"dense_mask",false,false],[6,14,"dense_mask",true,true],[6,15,"dense_mask",true,true],[6,16,"prefill_blocks",false,false],[6,17,"prefill_blocks",false,false],[6,18,"prefill_blocks",false,false],[6,19,"prefill_blocks",true,true],[6,20,"prefill_blocks",false,false],[6,21,"update_only",false,false],[6,22,"update_only",false,false],[6,23,"update_only",false,false],[6,24,"update_only",false,false],[6,25,"row_tokens",false,false],[6,26,"row_tokens",false,false],[6,27,"row_tokens",true,true],[6,28,"row_tokens",true,true],[6,29,"update_only",true,true],[7,0,"update_only",false,false],[7,1,"update_only",true,true],[7,2,"update_only",false,false],[7,3,"update_only",false,false],[7,4,"update_only",false,false],[7,5,"update_only",true,true],[7,6,"dense_mask",true,true],[7,7,"dense_mask",false,false],[7,8,"dense_mask",true,true],[7,9,"blocks",true,true],[7,10,"dense_mask",true,true],[7,11,"dense_mask",true,true],[7,12,"dense_mask",true,true],[7,13,"dense_mask",false,false],[7,14,"blocks",true,true],[7,15,"dense_mask",true,true],[7,16,"prefill_blocks",false,false],[7,17,"prefill_blocks",false,false],[7,18,"prefill_blocks",false,false],[7,19,"prefill_blocks",true,true],[7,20,"prefill_blocks",false,false],[7,21,"update_only",false,false],[7,22,"update_only",false,false],[7,23,"update_only",false,false],[7,24,"update_only",false,false],[7,25,"dense_mask",false,false],[7,26,"dense_mask",false,false],[7,27,"dense_mask",true,true],[7,28,"dense_mask",true,true],[7,29,"update_only",true,true],[8,0,"update_only",false,false],[8,1,"update_only",true,true],[8,2,"update_only",false,false],[8,3,"update_only",false,false],[8,4,"update_only",false,false],[8,5,"update_only",true,true],[8,6,"dense_mask",true,true],[8,7,"dense_mask",false,false],[8,8,"dense_mask",true,true],[8,9,"blocks",true,true],[8,10,"dense_mask",true,true],[8,11,"dense_mask",true,true],[8,12,"dense_mask",true,true],[8,13,"dense_mask",false,false],[8,14,"blocks",true,true],[8,15,"dense_mask",true,true],[8,16,"prefill_blocks",false,false],[8,17,"prefill_blocks",false,false],[8,18,"prefill_blocks",false,false],[8,19,"prefill_blocks",true,true],[8,20,"prefill_blocks",false,false],[8,21,"update_only",false,false],[8,22,"update_only",false,false],[8,23,"update_only",false,false],[8,24,"update_only",false,false],[8,25,"dense_mask",false,false],[8,26,"dense_mask",false,false],[8,27,"dense_mask",true,true],[8,28,"dense_mask",true,true],[8,29,"update_only",true,true],[9,0,"update_only",false,false],[9,1,"update_only",true,true],[9,2,"update_only",false,false],[9,3,"update_only",false,false],[9,4,"update_only",false,false],[9,5,"update_only",true,true],[9,6,"dense_mask",true,true],[9,7,"dense_mask",false,false],[9,8,"dense_mask",true,true],[9,9,"blocks",true,true],[9,10,"dense_mask",true,true],[9,11,"dense_mask",true,true],[9,12,"dense_mask",true,true],[9,13,"dense_mask",false,false],[9,14,"blocks",true,true],[9,15,"dense_mask",true,true],[9,16,"prefill_blocks",false,false],[9,17,"prefill_blocks",false,false],[9,18,"prefill_blocks",false,false],[9,19,"prefill_blocks",true,true],[9,20,"prefill_blocks",false,false],[9,21,"update_only",false,false],[9,22,"update_only",false,false],[9,23,"update_only",false,false],[9,24,"update_only",false,false],[9,25,"dense_mask",false,false],[9,26,"dense_mask",false,false],[9,27,"dense_mask",true,true],[9,28,"dense_mask",true,true],[9,29,"update_only",true,true],[10,0,"update_only",false,false],[10,1,"update_only",true,true],[10,2,"update_only",false,false],[10,3,"update_only",false,false],[10,4,"update_only",false,false],[10,5,"update_only",true,true],[10,6,"row_tokens",true,true],[10,7,"dense_mask",false,false],[10,8,"row_tokens",true,true],[10,9,"blocks",true,true],[10,10,"row_tokens",true,true],[10,11,"row_tokens",true,true],[10,12,"dense_mask",true,true],[10,13,"dense_mask",false,false],[10,14,"blocks",true,true],[10,15,"dense_mask",true,true],[10,16,"prefill_blocks",true,true],[10,17,"prefill_blocks",false,false],[10,18,"prefill_blocks",false,false],[10,19,"prefill_blocks",false,false],[10,20,"prefill_blocks",false,false],[10,21,"update_only",false,false],[10,22,"update_only",false,false],[10,23,"update_only",false,false],[10,24,"update_only",false,false],[10,25,"row_tokens",false,false],[10,26,"row_tokens",false,false],[10,27,"row_tokens",true,true],[10,28,"row_tokens",true,true],[10,29,"update_only",true,true],[11,0,"update_only",false,false],[11,1,"update_only",true,true],[11,2,"update_only",false,false],[11,3,"update_only",false,false],[11,4,"update_only",false,false],[11,5,"update_only",true,true],[11,6,"row_tokens",false,false],[11,7,"dense_mask",false,false],[11,8,"prefill_blocks",false,false],[11,9,"blocks",true,true],[11,10,"prefill_blocks",false,false],[11,11,"prefill_blocks",false,false],[11,12,"prefill_blocks",false,false],[11,13,"prefill_blocks",true,true],[11,14,"blocks",true,true],[11,15,"prefill_blocks",false,false],[11,16,"prefill_blocks",false,false],[11,17,"prefill_blocks",false,false],[11,18,"prefill_blocks",false,false],[11,19,"prefill_blocks",true,true],[11,20,"prefill_blocks",false,false],[11,21,"update_only",false,false],[11,22,"update_only",false,false],[11,23,"update_only",false,false],[11,24,"update_only",false,false],[11,25,"prefill_blocks",false,false],[11,26,"prefill_blocks",false,false],[11,27,"prefill_blocks",false,false],[11,28,"prefill_blocks",false,false],[11,29,"update_only",true,true]]} diff --git a/tests/fixtures/mtplx-qsa-compiled-state.jsonl b/tests/fixtures/mtplx-qsa-compiled-state.jsonl new file mode 100644 index 0000000..25da4ee --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-state.jsonl @@ -0,0 +1,120 @@ +{"kernel":"qsa_compile_capacity_p0_s0_c0_0","sha256":[],"start":0,"window":0,"existing":[0,0],"capacity":[0,0]} +{"kernel":"qsa_compile_capacity_p0_s0_c768_256","sha256":[],"start":0,"window":0,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s0_c8192_4096","sha256":[],"start":0,"window":0,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s1_c0_0","sha256":[],"start":0,"window":1,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p0_s1_c768_256","sha256":[],"start":0,"window":1,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s1_c8192_4096","sha256":[],"start":0,"window":1,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s3_c0_0","sha256":[],"start":0,"window":3,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p0_s3_c768_256","sha256":[],"start":0,"window":3,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s3_c8192_4096","sha256":[],"start":0,"window":3,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s4_c0_0","sha256":[],"start":0,"window":4,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p0_s4_c768_256","sha256":[],"start":0,"window":4,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s4_c8192_4096","sha256":[],"start":0,"window":4,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s255_c0_0","sha256":[],"start":0,"window":255,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p0_s255_c768_256","sha256":[],"start":0,"window":255,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s255_c8192_4096","sha256":[],"start":0,"window":255,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s256_c0_0","sha256":[],"start":0,"window":256,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p0_s256_c768_256","sha256":[],"start":0,"window":256,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s256_c8192_4096","sha256":[],"start":0,"window":256,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s257_c0_0","sha256":[],"start":0,"window":257,"existing":[0,0],"capacity":[512,256]} +{"kernel":"qsa_compile_capacity_p0_s257_c768_256","sha256":[],"start":0,"window":257,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p0_s257_c8192_4096","sha256":[],"start":0,"window":257,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s1025_c0_0","sha256":[],"start":0,"window":1025,"existing":[0,0],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p0_s1025_c768_256","sha256":[],"start":0,"window":1025,"existing":[768,256],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p0_s1025_c8192_4096","sha256":[],"start":0,"window":1025,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p0_s2048_c0_0","sha256":[],"start":0,"window":2048,"existing":[0,0],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p0_s2048_c768_256","sha256":[],"start":0,"window":2048,"existing":[768,256],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p0_s2048_c8192_4096","sha256":[],"start":0,"window":2048,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s0_c0_0","sha256":[],"start":3,"window":0,"existing":[0,0],"capacity":[256,0]} +{"kernel":"qsa_compile_capacity_p3_s0_c768_256","sha256":[],"start":3,"window":0,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s0_c8192_4096","sha256":[],"start":3,"window":0,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s1_c0_0","sha256":[],"start":3,"window":1,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p3_s1_c768_256","sha256":[],"start":3,"window":1,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s1_c8192_4096","sha256":[],"start":3,"window":1,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s3_c0_0","sha256":[],"start":3,"window":3,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p3_s3_c768_256","sha256":[],"start":3,"window":3,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s3_c8192_4096","sha256":[],"start":3,"window":3,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s4_c0_0","sha256":[],"start":3,"window":4,"existing":[0,0],"capacity":[256,256]} +{"kernel":"qsa_compile_capacity_p3_s4_c768_256","sha256":[],"start":3,"window":4,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s4_c8192_4096","sha256":[],"start":3,"window":4,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s255_c0_0","sha256":[],"start":3,"window":255,"existing":[0,0],"capacity":[512,256]} +{"kernel":"qsa_compile_capacity_p3_s255_c768_256","sha256":[],"start":3,"window":255,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s255_c8192_4096","sha256":[],"start":3,"window":255,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s256_c0_0","sha256":[],"start":3,"window":256,"existing":[0,0],"capacity":[512,256]} +{"kernel":"qsa_compile_capacity_p3_s256_c768_256","sha256":[],"start":3,"window":256,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s256_c8192_4096","sha256":[],"start":3,"window":256,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s257_c0_0","sha256":[],"start":3,"window":257,"existing":[0,0],"capacity":[512,256]} +{"kernel":"qsa_compile_capacity_p3_s257_c768_256","sha256":[],"start":3,"window":257,"existing":[768,256],"capacity":[1024,256]} +{"kernel":"qsa_compile_capacity_p3_s257_c8192_4096","sha256":[],"start":3,"window":257,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s1025_c0_0","sha256":[],"start":3,"window":1025,"existing":[0,0],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p3_s1025_c768_256","sha256":[],"start":3,"window":1025,"existing":[768,256],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p3_s1025_c8192_4096","sha256":[],"start":3,"window":1025,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p3_s2048_c0_0","sha256":[],"start":3,"window":2048,"existing":[0,0],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p3_s2048_c768_256","sha256":[],"start":3,"window":2048,"existing":[768,256],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p3_s2048_c8192_4096","sha256":[],"start":3,"window":2048,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s0_c0_0","sha256":[],"start":2048,"window":0,"existing":[0,0],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p2048_s0_c768_256","sha256":[],"start":2048,"window":0,"existing":[768,256],"capacity":[2048,512]} +{"kernel":"qsa_compile_capacity_p2048_s0_c8192_4096","sha256":[],"start":2048,"window":0,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s1_c0_0","sha256":[],"start":2048,"window":1,"existing":[0,0],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p2048_s1_c768_256","sha256":[],"start":2048,"window":1,"existing":[768,256],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p2048_s1_c8192_4096","sha256":[],"start":2048,"window":1,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s3_c0_0","sha256":[],"start":2048,"window":3,"existing":[0,0],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p2048_s3_c768_256","sha256":[],"start":2048,"window":3,"existing":[768,256],"capacity":[4096,512]} +{"kernel":"qsa_compile_capacity_p2048_s3_c8192_4096","sha256":[],"start":2048,"window":3,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s4_c0_0","sha256":[],"start":2048,"window":4,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s4_c768_256","sha256":[],"start":2048,"window":4,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s4_c8192_4096","sha256":[],"start":2048,"window":4,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s255_c0_0","sha256":[],"start":2048,"window":255,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s255_c768_256","sha256":[],"start":2048,"window":255,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s255_c8192_4096","sha256":[],"start":2048,"window":255,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s256_c0_0","sha256":[],"start":2048,"window":256,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s256_c768_256","sha256":[],"start":2048,"window":256,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s256_c8192_4096","sha256":[],"start":2048,"window":256,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s257_c0_0","sha256":[],"start":2048,"window":257,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s257_c768_256","sha256":[],"start":2048,"window":257,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s257_c8192_4096","sha256":[],"start":2048,"window":257,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s1025_c0_0","sha256":[],"start":2048,"window":1025,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s1025_c768_256","sha256":[],"start":2048,"window":1025,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s1025_c8192_4096","sha256":[],"start":2048,"window":1025,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p2048_s2048_c0_0","sha256":[],"start":2048,"window":2048,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s2048_c768_256","sha256":[],"start":2048,"window":2048,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p2048_s2048_c8192_4096","sha256":[],"start":2048,"window":2048,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s0_c0_0","sha256":[],"start":4095,"window":0,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p4095_s0_c768_256","sha256":[],"start":4095,"window":0,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p4095_s0_c8192_4096","sha256":[],"start":4095,"window":0,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s1_c0_0","sha256":[],"start":4095,"window":1,"existing":[0,0],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p4095_s1_c768_256","sha256":[],"start":4095,"window":1,"existing":[768,256],"capacity":[4096,1024]} +{"kernel":"qsa_compile_capacity_p4095_s1_c8192_4096","sha256":[],"start":4095,"window":1,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s3_c0_0","sha256":[],"start":4095,"window":3,"existing":[0,0],"capacity":[8192,1024]} +{"kernel":"qsa_compile_capacity_p4095_s3_c768_256","sha256":[],"start":4095,"window":3,"existing":[768,256],"capacity":[8192,1024]} +{"kernel":"qsa_compile_capacity_p4095_s3_c8192_4096","sha256":[],"start":4095,"window":3,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s4_c0_0","sha256":[],"start":4095,"window":4,"existing":[0,0],"capacity":[8192,1024]} +{"kernel":"qsa_compile_capacity_p4095_s4_c768_256","sha256":[],"start":4095,"window":4,"existing":[768,256],"capacity":[8192,1024]} +{"kernel":"qsa_compile_capacity_p4095_s4_c8192_4096","sha256":[],"start":4095,"window":4,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s255_c0_0","sha256":[],"start":4095,"window":255,"existing":[0,0],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s255_c768_256","sha256":[],"start":4095,"window":255,"existing":[768,256],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s255_c8192_4096","sha256":[],"start":4095,"window":255,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s256_c0_0","sha256":[],"start":4095,"window":256,"existing":[0,0],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s256_c768_256","sha256":[],"start":4095,"window":256,"existing":[768,256],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s256_c8192_4096","sha256":[],"start":4095,"window":256,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s257_c0_0","sha256":[],"start":4095,"window":257,"existing":[0,0],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s257_c768_256","sha256":[],"start":4095,"window":257,"existing":[768,256],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s257_c8192_4096","sha256":[],"start":4095,"window":257,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s1025_c0_0","sha256":[],"start":4095,"window":1025,"existing":[0,0],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s1025_c768_256","sha256":[],"start":4095,"window":1025,"existing":[768,256],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s1025_c8192_4096","sha256":[],"start":4095,"window":1025,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_capacity_p4095_s2048_c0_0","sha256":[],"start":4095,"window":2048,"existing":[0,0],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s2048_c768_256","sha256":[],"start":4095,"window":2048,"existing":[768,256],"capacity":[8192,2048]} +{"kernel":"qsa_compile_capacity_p4095_s2048_c8192_4096","sha256":[],"start":4095,"window":2048,"existing":[8192,4096],"capacity":[8192,4096]} +{"kernel":"qsa_compile_materialize_0","sha256":["fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471","fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471"],"step":0,"rows":1,"reserve":[0,0],"capacity":[256,256],"offset":0,"pooled_len":0} +{"kernel":"qsa_compile_materialize_1","sha256":["89fb9abfd859081d087a02064bc9bf3c65f6c363bacc4cde9805878ac031d51c","8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90"],"step":1,"rows":1025,"reserve":[0,0],"capacity":[2048,512],"offset":0,"pooled_len":0} +{"kernel":"qsa_compile_materialize_2","sha256":["e3740df648c5dc423c70316de220c728078afd278c6f50714eee258728e9543d","5647f05ec18958947d32874eeb788fa396a05d0bab7c1b71f112ceb7e9b31eee"],"step":2,"rows":2048,"reserve":[8192,4096],"capacity":[8192,4096],"offset":0,"pooled_len":0} +{"kernel":"qsa_compile_materialize_3","sha256":["72a70fdc14944ad9743eb6b13bf14eacb7bebb498713c02bcd23d45a1356fbe4","5647f05ec18958947d32874eeb788fa396a05d0bab7c1b71f112ceb7e9b31eee"],"step":3,"rows":8193,"reserve":[0,0],"capacity":[16384,4096],"offset":0,"pooled_len":0} +{"kernel":"qsa_compile_dynamic_r1_stride128","sha256":["384cac2a36f93b5795a82feaf66b603136f2fdfdfcf66aa84c7630ceeff17535","d681e7f76e0fee319e7caa261a5dcd8ddb3e6efaed3d927fcfad407551d6b644","f6b0343b5a7eef433e25b4f789623461d0915e1a55c5d01a020116726ef03171"],"rows":1,"stride":128,"capacity":8,"start":3} +{"kernel":"qsa_compile_dynamic_r1_stride704","sha256":["03e3901d824aaab303c2866f506aa339887006ef742ae1de479a57178f6fe091","d748d85854753784f2c5a35901c68aabcaf2445908600e81345bba3ca16c40cf","b24089bcab7e02790530e5352c638a46903bdfffc2e21eddf5e4be03872d9486"],"rows":1,"stride":704,"capacity":8,"start":3} +{"kernel":"qsa_compile_dynamic_r4_stride128","sha256":["0cb84c08df2b3fbb942d72f805b5b995bdb3cbba65c2a89512624656ad617254","aa08abd439cb9e4a9ca6f35c61f916f8ee2a56ab7ab75980617f7ef775dc1d97","692631b0cc983908ae04264a3d5404edfbed9e744259cd10d41afda4fb31a8a6"],"rows":4,"stride":128,"capacity":11,"start":3} +{"kernel":"qsa_compile_dynamic_r4_stride704","sha256":["47185c93b93113b5a9c85ca4ca7b52be286bb569aeb63f8a73e74253f44d4930","16ae3c9084a7e96d3f7009e3341739010a09fabf95663c98c9f33be9fd6b542a","eaf9df80f4298f44a95fc05ad4b3c7a533d29adc90054b6f46716a7dce10b715"],"rows":4,"stride":704,"capacity":11,"start":3} +{"kernel":"qsa_compile_dynamic_r33_stride128","sha256":["a09d106ed5ddf1c3a2f1179e9590f2ffd6a117b8f2af98e15bca6e4343b18c59","a6f5178f7af316c7272ef96d0b30b690d7f001a0176761c854362af7836c32e7","ec4c3454e523fc6e80e6654bb1ba1753ea970228e69d30cfac6ce39bb94308c1"],"rows":33,"stride":128,"capacity":40,"start":3} +{"kernel":"qsa_compile_dynamic_r33_stride704","sha256":["7c7cfad0c091d36a97206e8718f907921bc8b7d8788dd0a11084962b3985d183","dc8c2f53fe253f76cc4b803d7e242e68c5abb4ae0320a7e0b8a74c624f56ccec","027e7db8378947092826b38e42255da6b4388c8a8ebaa97afcfa3829c259de9c"],"rows":33,"stride":704,"capacity":40,"start":3} +{"kernel":"qsa_compile_dynamic_r2048_stride128","sha256":["add7f5e926739b17bc64522127874fce23d491ffb538ad9c00e992ce9fc20c0b","8084acfc19173f8f4f779cfa364d572510f5e2201b7b94a523fcd2a410d6d7cf","9f0e7a8ef88dcc8c5bb20f54fa21be0cfcdcb7421c74e8ab0e69cc4e7120cf95"],"rows":2048,"stride":128,"capacity":2055,"start":3} +{"kernel":"qsa_compile_dynamic_r2048_stride704","sha256":["168b876220cced8683ac9d99b4e74c96c57c5558e7dfc04ba212ca549597f156","78941cfca4ba7ae5550fa9753f198101d18030c26cbc1253c9ae87c069017221","e5281072f09c7ce2c8b56ccf58568431326791ab62066e43d5e9cb616e7b0b1f"],"rows":2048,"stride":704,"capacity":2055,"start":3} diff --git a/tests/fixtures/mtplx-qsa-compiled-window.jsonl b/tests/fixtures/mtplx-qsa-compiled-window.jsonl new file mode 100644 index 0000000..7477d53 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-compiled-window.jsonl @@ -0,0 +1,26 @@ +{"kernel":"qsa_compile_window_c0_stride640","sha256":["295251cbc4b1ff0fd596dc4757ef6eb725e13c071352970f0a3a0dd4a6584167","4dbaeeca69e1321dbcf1ee4ba2567059b0ec80b56ed4d4acd96e5860215b16d7","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":640,"capacity":[256,256],"pos":0,"logical":0,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c0_stride704","sha256":["295251cbc4b1ff0fd596dc4757ef6eb725e13c071352970f0a3a0dd4a6584167","4dbaeeca69e1321dbcf1ee4ba2567059b0ec80b56ed4d4acd96e5860215b16d7","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":704,"capacity":[256,256],"pos":0,"logical":0,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c1_stride640","sha256":["33dc7a86961b308609b2b01a86acafbb44fd0e9c11b486e4bce44aa71aa24ac3","b99c936334ec6f746f3ecbb567b73ce9de92d396abbfaab7c40f964d1e84d333","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":640,"capacity":[256,256],"pos":253,"logical":63,"pooled_len":63,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c1_stride704","sha256":["33dc7a86961b308609b2b01a86acafbb44fd0e9c11b486e4bce44aa71aa24ac3","b99c936334ec6f746f3ecbb567b73ce9de92d396abbfaab7c40f964d1e84d333","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":704,"capacity":[256,256],"pos":253,"logical":63,"pooled_len":63,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c2_stride640","sha256":["d0942fdb8dd93a8a660285976f7d8807a85252b5fdb241aba1c200c35f133dde","95307073452902189b8a20851bb7a9b0b890a439052ab7fab3afa3d5c55e1460","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":640,"capacity":[256,256],"pos":255,"logical":64,"pooled_len":63,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c2_stride704","sha256":["d0942fdb8dd93a8a660285976f7d8807a85252b5fdb241aba1c200c35f133dde","95307073452902189b8a20851bb7a9b0b890a439052ab7fab3afa3d5c55e1460","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1,"stride":704,"capacity":[256,256],"pos":255,"logical":64,"pooled_len":63,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c3_stride640","sha256":["68a5ef450aa8e82711d838371e1d1edc19dd57e3f27cc62dd53013978563567f","7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":4,"stride":640,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c3_stride704","sha256":["0a26a65c08230623f7a1b20775543ffbd53f6f50836bd5a5e056de4c1a83d1ad","7eddbe24515af62ce23ecaa4af1b072bcef883147e0c3a882ae9362f0ddb6492","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":4,"stride":704,"capacity":[4096,1024],"pos":2051,"logical":513,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c4_stride640","sha256":["02eee370a538f23d915e4992a1088e5f95a6ad59bb041408c9500c48a33c3519","98d2d8cb0fc9783b0f9bb9bc2dd0d1c568f4d9ff5de2a79668d1ea119de809b7","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":5,"stride":640,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c4_stride704","sha256":["f96eff6f6008597bd790e4164d9346551c24565d22e80abd7dcac60a54cc49c6","b2d866e866333eeb2e047c076f368e698b03e06a84a6c1c4c152b6f1147187cb","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":5,"stride":704,"capacity":[4096,1024],"pos":2050,"logical":513,"pooled_len":511,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c5_stride640","sha256":["35dd30adc52b4f3447f6e5ec2aac1e48f506057d812e8a363f52ed2a743a0ee5","113197db77889156757710b91ab304de478e03e11bc0ef3b7dbe7a840442b24a","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":5,"stride":640,"capacity":[256,256],"pos":0,"logical":1,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c5_stride704","sha256":["f094827c5259ef5ad86e647f225ceddf7fe956df885ec77cd9b5ace0832026f5","3edbd7e8c4b7905b51f01d58b4c07b163e3f556bc8499a93a504fd2674bbeae7","513a9e506efbc1cfde223058c4fccadc0ae1954d95fd5822a0b59547fdb461b1","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":5,"stride":704,"capacity":[256,256],"pos":0,"logical":1,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c6_stride640","sha256":["cc4b1632ddcb23c58c98b316de5ec63b2f9b0e8f516b528b5fe2cdd4e42e07ef","907d1cc9d4d69f8ed914a6ffb4c750d3b99a2b89e67e0a1447f7be62bf3de9f3","5b5397ea9bface4f51b7c96f6969de6e0371831a067b92932c7ec6c385ca378b","07e5968f27f12c10fa9beeccd48b187c2b73c719cd9116609f68bab9f2a01a70"],"rows":2048,"stride":640,"capacity":[2048,512],"pos":0,"logical":512,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c6_stride704","sha256":["a6af49fbb4e81afe32959af18091212891b7060f9cc6d588d3bda12b1ccb8f73","b72271440b0c7d269be1a5e93ff9b8ad12bb7b9814d0d2d5a45153caa2aa803b","5b5397ea9bface4f51b7c96f6969de6e0371831a067b92932c7ec6c385ca378b","07e5968f27f12c10fa9beeccd48b187c2b73c719cd9116609f68bab9f2a01a70"],"rows":2048,"stride":704,"capacity":[2048,512],"pos":0,"logical":512,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c7_stride640","sha256":["0231f0ef8f2112de13472fdf190fabfb61b0b7dc3642ce9726ed4750914969e5","158ca7959b9a9deb4dc67aa8387b58d16679991626999fd0def6b23475988ba6","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":2048,"stride":640,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c7_stride704","sha256":["311fc83c06ce7951beca025e3cab89485580fa83879b079f1d6a0130f9d0fa58","7ad3ba80490db5d3f6e4faba35257e04382ba3fff0326608db07c9164334d102","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":2048,"stride":704,"capacity":[4096,1024],"pos":2048,"logical":1024,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c8_stride640","sha256":["f540f0a83b824db12865163771b907b6625866adc9a5a03ee974e30b1c5aab75","879b80fb828390a8d7f48a77e40022bb8baaed600bd35f266d016e5567494350","5b5397ea9bface4f51b7c96f6969de6e0371831a067b92932c7ec6c385ca378b","07e5968f27f12c10fa9beeccd48b187c2b73c719cd9116609f68bab9f2a01a70"],"rows":1025,"stride":640,"capacity":[2048,512],"pos":100,"logical":281,"pooled_len":24,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c8_stride704","sha256":["8d0981356ab410c1745b1a35e8fb86e31e3de88818a5ac6a59bd5e86f6c72879","1d2790d73fb888300faa526bfa0482e11cf0d848ca04c5163a29f84529f39efc","5b5397ea9bface4f51b7c96f6969de6e0371831a067b92932c7ec6c385ca378b","07e5968f27f12c10fa9beeccd48b187c2b73c719cd9116609f68bab9f2a01a70"],"rows":1025,"stride":704,"capacity":[2048,512],"pos":100,"logical":281,"pooled_len":24,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c9_stride640","sha256":["e6d8b8558a0d3afe0c633bdb9eead5cfe6eb7e3728e161523c122d54c53a19e9","d85453b208150cc10831e4beb1a9fb20e38d44553f21352969f409489ba428cd","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":1,"stride":640,"capacity":[4096,1024],"pos":4095,"logical":1024,"pooled_len":1024,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c9_stride704","sha256":["e6d8b8558a0d3afe0c633bdb9eead5cfe6eb7e3728e161523c122d54c53a19e9","d85453b208150cc10831e4beb1a9fb20e38d44553f21352969f409489ba428cd","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":1,"stride":704,"capacity":[4096,1024],"pos":4095,"logical":1024,"pooled_len":1024,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c10_stride640","sha256":["efe26fa57dd692322f58f1c039ef374838619eafc21a3d9ee40a50ca5848667b","568d80c6ebae8ba8c14cd1533bd78fe0993cdbe738b64b8351cec3a9c103babb","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":33,"stride":640,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c10_stride704","sha256":["566258c9de7fcb9079feae50e64f028d4ee789d1d0a54b5368842c6601d77491","c9d4a7336011ec64096a88d1690fd3e440916356243eb4038684d72e5d388c33","7fc5e772b2f94ce6fca0c6415b58c1abf4e1ca4cb13cfe562ade0449894b8bec","19d0cb33482d1c65002b1dcd48ab4fe81c847ba15dc9d5c67868ee34c49b6c43"],"rows":33,"stride":704,"capacity":[4096,1024],"pos":2050,"logical":520,"pooled_len":512,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c11_stride640","sha256":["b959f01aa847b5e232a70c38c2c7cf9f5ae676207ea0a495abfe6aa9906bab21","42486711ef820247e2f4d67aaf1d0cae31a2a84f855331cf24e71bdebae3b16a","46c379cedfdf6cc7f517763c17fdb73d8c8f370b2af8be5a3bc55d3dc37cfe3f","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1020,"stride":640,"capacity":[1024,256],"pos":0,"logical":255,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c11_stride704","sha256":["6995a57bde0842974aca27ad7f7344389075b9d2e7127c5036576f9570e3aac1","f850c2248bbbb44f9575d8fb105e64ac37edddfe7b73b7dd2d7b7204aee7a876","46c379cedfdf6cc7f517763c17fdb73d8c8f370b2af8be5a3bc55d3dc37cfe3f","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":1020,"stride":704,"capacity":[1024,256],"pos":0,"logical":255,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c12_stride640","sha256":["a9dce6c0b6ade44b6961a16a652b84fb18aa2b77a0df83cf9e6737c4ad519940","f34880e809688d2ced2ca9fcb3fd9b4b62b7b680aa6764c92ff0e44cc0b3036a","46c379cedfdf6cc7f517763c17fdb73d8c8f370b2af8be5a3bc55d3dc37cfe3f","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":512,"stride":640,"capacity":[1024,256],"pos":0,"logical":128,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_compile_window_c12_stride704","sha256":["836d702dde4f920d30672b2dd4f6ab8bd4a5076af69de434f1038e4458dee16a","7d849f692ec98a5f98fb8c7539ae86a564666612f1089000f0563a6dab3f07ee","46c379cedfdf6cc7f517763c17fdb73d8c8f370b2af8be5a3bc55d3dc37cfe3f","9a07ea44a33752e277122dcf329015a9b78b06afee808e8d35c72ef9b8d85f07"],"rows":512,"stride":704,"capacity":[1024,256],"pos":0,"logical":128,"pooled_len":0,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} diff --git a/tests/fixtures/mtplx-qsa-core-host.jsonl b/tests/fixtures/mtplx-qsa-core-host.jsonl new file mode 100644 index 0000000..459bf4b --- /dev/null +++ b/tests/fixtures/mtplx-qsa-core-host.jsonl @@ -0,0 +1,32 @@ +{"kernel":"qsa_core_host_0","sha256":["11b74dd95b05641a43dc09d7d5e1f20ebc231041cc551f339df701769c0dc333","4f05df05f8da9356bd66425351f166a5f7305b7c805e6900d9ec0f50790c9886","79de996b9f99070d4ff255931b329929c949a7b2d8c06f5af29867b46b828bc6","cf465c2783975761a01cdad61bd270e11e4af3671cb7bd73749de7f3558e4b8b","8a7c10bce890c542fd159480e9f6e3bf969fc75e2a40208daa2f8ccd235512ec","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","a2d333417af91f331e69f0a02b054b0bdda1cbf7027c9b41f97696e79badf06b"],"case":0,"rows":1,"pos":64,"raw_capacity":128,"pooled_capacity":32,"mode":"blocks","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw128:pool32:out0":1},"entry_count":1,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_1","sha256":["8c9028fd21fbb42fde226e6e7d70f6a497e48ac18d3433e01f9df47417e9eafd","4f05df05f8da9356bd66425351f166a5f7305b7c805e6900d9ec0f50790c9886","c3f7caee9970630bed1a5ef9adc6805cdbc3f056c550fb34f85784e5d77ee854","09aa0ecc1eb35104d001fbbf54590b10cbcdae851a996b8e6e5535a3b2b8fbca","7888e43081680ec78c2f0075c30de70ada8ab646f702bcbee0541dd69e5b0c9c","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","dccdde4c08d15ba7f8df103fc0826bc9a50220e2dc1567c3f66ebb9ac66d6d49"],"case":1,"rows":1,"pos":65,"raw_capacity":128,"pooled_capacity":32,"mode":"blocks","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":2,"compiled_calls":2,"hidden_calls":0,"qk_rows_calls":2,"traces":1,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw128:pool32:out0":2},"entry_count":1,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_2","sha256":["03cc73ec8180f72d7333de77440ce41f5f4d66ca0fd20b3b83894fa2e5a38c58","033a89cee6bcbaa862957e3ed38356359c307196c0bb797a1ab0dfb17bc80681","9636f97eb10e3fab95ee466fe2fb0a8014bba2d47b5e7f604349d38395eb1c07","0bbe1b9fbb7bd04ba128c10b43acfeb6c7e969c846cbf0f4c45bf809a9dbf2c0","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","3f6ab179889256a3febd02caeb489e96655e1111e3844d4290200ee414c88e50"],"case":2,"rows":4,"pos":64,"raw_capacity":128,"pooled_capacity":32,"mode":"row_tokens","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":3,"compiled_calls":3,"hidden_calls":0,"qk_rows_calls":3,"traces":2,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw128:pool32:out0":3},"entry_count":2,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_3","sha256":["2373d3945105b4f9b3646e758533b83dd8382ba6f8ce93ada2620b597b495b4d","10b83909c4700a66f0192dba91a61bd13fe65b2b533cc0bfa28c157a479c0c39","177bba4d3d5eb9cdcb9eb80f031c942ca2a522a524766ed57811e90bcc75084c","aa550cc6e8e8d07f0b381da1ed95b247876bbd7d754a3f7788a7e8d0cfe934e6","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","5f6934efac7e353e3f7cd8fbbee70e8fb286eb004a41da14a4332cda60c20cba"],"case":3,"rows":4,"pos":65,"raw_capacity":128,"pooled_capacity":32,"mode":"row_tokens","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":4,"compiled_calls":4,"hidden_calls":0,"qk_rows_calls":4,"traces":2,"selector_dispatches":4,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw128:pool32:out0":4},"entry_count":2,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_4","sha256":["d991522fd9ef1cfbb77b55e00f1c24688440109e722dc187c6a53d0ee4023ccd","5cb047f7587fe7c7ab391ed2a1666270d560ffee36d5a23b74fbe7e605071d72","77000e282f6401061ad6bc5c63c6e037e9fd83d77dca680132d3a885826503f5","751ff8aaf08ebedd19d149f699b467ff427d8f97f3f0dded1406521e3b688d77","f47be6c54e60d6e4bd00f7f288f0d49a08b6f675272921074f57df528f8f57b5","8502957747a29907927566be940a9b39fee0a15dd471ba428eb9eedd15aa80e7","1c6e144bcf83ed797e665b5f35272445e06aeba5b0a8900588bee82fe9c6ee6d"],"case":4,"rows":17,"pos":64,"raw_capacity":128,"pooled_capacity":32,"mode":"prefill_blocks","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":5,"compiled_calls":5,"hidden_calls":0,"qk_rows_calls":5,"traces":3,"selector_dispatches":5,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":2,"prefill_blocks":1,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw128:pool32:out0":5},"entry_count":3,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_5","sha256":["3584efdfa1c86b49814a391669b280bc057753ad06a24dccca32a3f6627a48a1","5cb047f7587fe7c7ab391ed2a1666270d560ffee36d5a23b74fbe7e605071d72","a14d9a6224f0ac8ae2a6e33a4c715f8efeb7c1f85cc00104aebd45125d6ca73a","6ef70da0a6fc7361d730eda4b2269751f8469c7ad2f5a29f9a058929d9235a53","2c83241a93b0bc29229d4f3b048301a68d26c20445805ac7433423ebb3c645f0","8502957747a29907927566be940a9b39fee0a15dd471ba428eb9eedd15aa80e7","8041cf89e00b6084a61fe39f89fee551e73b16dde0a52284e810b1f716430db1"],"case":5,"rows":17,"pos":65,"raw_capacity":256,"pooled_capacity":64,"mode":"prefill_blocks","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":6,"compiled_calls":6,"hidden_calls":0,"qk_rows_calls":6,"traces":4,"selector_dispatches":7,"capacity_transitions":1,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":2,"prefill_blocks":2,"dense_mask":0,"row_tokens":2,"update_only":0},"buckets":{"raw128:pool32:out0":5,"raw256:pool64:out0":1},"entry_count":4,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_6","sha256":["a4be453947fc6a3dd4b514bf09b8ecae05274f9ef92e60c2c506111b9e960061","a6d5dc659e3f720e480cd280d0c4af0e76247128804e126736f338554a4e1061","c28451296cb6022697e1a3aaebe10cf8536a684e5a472cef39f9148bbfa9014d","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","5f6934efac7e353e3f7cd8fbbee70e8fb286eb004a41da14a4332cda60c20cba"],"case":6,"rows":4,"pos":65,"raw_capacity":256,"pooled_capacity":64,"mode":"dense_mask","hidden":true,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":7,"compiled_calls":7,"hidden_calls":1,"qk_rows_calls":6,"traces":5,"selector_dispatches":8,"capacity_transitions":1,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":2,"prefill_blocks":2,"dense_mask":1,"row_tokens":2,"update_only":0},"buckets":{"raw128:pool32:out0":5,"raw256:pool64:out0":1,"raw256:pool64:out260":1},"entry_count":5,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_7","sha256":["fc7f1de78840ae6e6e98765fc3361a00931cdf6e29ae02ec14a76e3713e9249e","a4348734102720688f30af54230f3a9c92b95d1c458d213ebbd8090df4f7d1c7","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","4acaf7a70ab216e9be31d0bad8c8ec720947257cf0104db6dcadf3cf2caa3782"],"case":7,"rows":4,"pos":66,"raw_capacity":256,"pooled_capacity":64,"mode":"update_only","hidden":true,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":8,"compiled_calls":8,"hidden_calls":2,"qk_rows_calls":6,"traces":6,"selector_dispatches":8,"capacity_transitions":1,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":2,"prefill_blocks":2,"dense_mask":1,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":5,"raw256:pool64:out0":2,"raw256:pool64:out260":1},"entry_count":6,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_8","sha256":["047f987a5f7bf7ae6b8d742b7c5ef1496e1cb26c9b007dc0588414066a2ee65b","f676407985035f98748a082ea903f856bfc70a1297c03b25045aedc1a579d57e","95c76ea7728e6983322a8146a1b84e23c64b1698a00ef6f864a90c4aa25b42e7","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","5f6934efac7e353e3f7cd8fbbee70e8fb286eb004a41da14a4332cda60c20cba"],"case":8,"rows":4,"pos":65,"raw_capacity":256,"pooled_capacity":64,"mode":"dense_mask","hidden":false,"dense":300,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":9,"compiled_calls":9,"hidden_calls":2,"qk_rows_calls":7,"traces":7,"selector_dispatches":9,"capacity_transitions":1,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":2,"prefill_blocks":2,"dense_mask":2,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":5,"raw256:pool64:out0":2,"raw256:pool64:out260":1,"raw256:pool64:out300":1},"entry_count":7,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_9","sha256":["ac2ccf6dbaa889b0e85daa781d68021688371be371c64156bb48a7869ab77a5e","dd9ce1828415f5fa1afb0a6bc87d665fe286016c49f885ea6203fb916a7506bd","8148108bb79171a8223154ef33af0289bef47452d5c3696beca8d3d0ea5b0367","be01c89f95c0f5b35606087fc7cc3e2ec8f5ab70bf897d50bd27a9330f7920d4","5f6934efac7e353e3f7cd8fbbee70e8fb286eb004a41da14a4332cda60c20cba"],"case":9,"rows":4,"pos":65,"raw_capacity":256,"pooled_capacity":64,"mode":"dense_mask","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":10,"compiled_calls":10,"hidden_calls":2,"qk_rows_calls":8,"traces":8,"selector_dispatches":10,"capacity_transitions":1,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":2,"prefill_blocks":2,"dense_mask":3,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":5,"raw256:pool64:out0":2,"raw256:pool64:out260":2,"raw256:pool64:out300":1},"entry_count":8,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_host_10","sha256":["a4f2ce00a8f1b4d4b95c51bb596312ac69ce47e1a19817ca8a0481b16beba820","4f05df05f8da9356bd66425351f166a5f7305b7c805e6900d9ec0f50790c9886","6aa218d4af8bbac9df09127ca7a8f817a36026f3cfe8446f7e6f5e84039fcd9e","a054dcdadc9fac37d32928660618b65cbe661a784baf1c492c8e7090953ac49d","aa2dc66f03fd8b6a5609857b785f5fdf6912276f7c0cc5f5daf6f0f43e2371cc","140efb356462f70dd1c7f1dfb10bcc07d0f14d439043fb9e9d50f4d7be71ea96","a2d333417af91f331e69f0a02b054b0bdda1cbf7027c9b41f97696e79badf06b"],"case":10,"rows":1,"pos":64,"raw_capacity":128,"pooled_capacity":32,"mode":"blocks","hidden":false,"dense":null,"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07],"report":{"calls":11,"compiled_calls":11,"hidden_calls":2,"qk_rows_calls":9,"traces":8,"selector_dispatches":11,"capacity_transitions":2,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":3,"prefill_blocks":2,"dense_mask":3,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":6,"raw256:pool64:out0":2,"raw256:pool64:out260":2,"raw256:pool64:out300":1},"entry_count":8,"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_report","report":{"calls":11,"compiled_calls":11,"hidden_calls":2,"qk_rows_calls":9,"traces":8,"selector_dispatches":11,"capacity_transitions":2,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":3,"prefill_blocks":2,"dense_mask":3,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":6,"raw256:pool64:out0":2,"raw256:pool64:out260":2,"raw256:pool64:out300":1},"entry_count":8,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":260,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw256:pool64:out260:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"update_only","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s4:raw256:pool64:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw128:pool32:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":260,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw256:pool64:out260:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":300,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw256:pool64:out300:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,17,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":17,"label":"qk_rows:prefill_blocks:s17:raw128:pool32:out0:scorempp:chunk17:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,17,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":16,"label":"qk_rows:prefill_blocks:s17:raw256:pool64:out0:scorempp:chunk16:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw128:pool32:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_invalid_0","params":{"pos":-1,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_1","params":{"pos":127,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_2","params":{"pos":64,"total":69,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_3","params":{"pos":64,"total":-1,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_4","params":{"pos":64,"total":68,"logical":33,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_5","params":{"pos":64,"total":68,"logical":15,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_6","params":{"pos":64,"total":68,"logical":17,"frontier":0,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_7","params":{"pos":64,"total":68,"logical":17,"frontier":33,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_8","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":96,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_9","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":2,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_10","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":0,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_11","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":100,"mode":"dense_mask","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_12","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":1,"mode":"blocks","rows":4,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_13","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"prefill_blocks","rows":1,"width":640,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_14","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":639,"index_dtype":null},"rejected":true} +{"kernel":"qsa_core_invalid_15","params":{"pos":64,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":"float32"},"rejected":true} +{"kernel":"qsa_core_invalid_16","params":{"pos":127,"total":68,"logical":17,"frontier":16,"raw_capacity":128,"pooled_capacity":32,"dense":null,"mode":"blocks","rows":4,"width":640,"index_dtype":"int32"},"rejected":false} +{"kernel":"qsa_core_failed_trace_0","rejected":true,"report":{"calls":1,"compiled_calls":0,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw128:pool32:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:blocks:s4:raw128:pool32:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_failed_trace_1","rejected":true,"report":{"calls":2,"compiled_calls":0,"hidden_calls":2,"qk_rows_calls":0,"traces":1,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":2,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw128:pool32:out0":2},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:blocks:s4:raw128:pool32:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} +{"kernel":"qsa_core_report_after_invalid","report":{"calls":12,"compiled_calls":12,"hidden_calls":2,"qk_rows_calls":10,"traces":9,"selector_dispatches":12,"capacity_transitions":2,"prefill_score_producers":{"mpp":2,"mlx":0},"modes":{"blocks":4,"prefill_blocks":2,"dense_mask":3,"row_tokens":2,"update_only":1},"buckets":{"raw128:pool32:out0":7,"raw256:pool64:out0":2,"raw256:pool64:out260":2,"raw256:pool64:out300":1},"entry_count":9,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":260,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw256:pool64:out260:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"update_only","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s4:raw256:pool64:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"blocks","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"qk_rows:blocks:s1:raw128:pool32:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"blocks","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:blocks:s4:raw128:pool32:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":260,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw256:pool64:out260:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":300,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw256:pool64:out300:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,17,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":17,"label":"qk_rows:prefill_blocks:s17:raw128:pool32:out0:scorempp:chunk17:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,17,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,64,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":16,"label":"qk_rows:prefill_blocks:s17:raw256:pool64:out0:scorempp:chunk16:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,128,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,32,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw128:pool32:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":16,"minimum_pooled_capacity":16,"selector_scratch_bytes":1024,"prefill_score_workspace_bytes":4096,"rope_attention_scaling":1.0}} diff --git a/tests/fixtures/mtplx-qsa-dense-mask.jsonl b/tests/fixtures/mtplx-qsa-dense-mask.jsonl new file mode 100644 index 0000000..aa0288c --- /dev/null +++ b/tests/fixtures/mtplx-qsa-dense-mask.jsonl @@ -0,0 +1,44 @@ +{"kernel":"qsa_dense_mask_1_0_4_0_False_False","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":0,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_1_0_4_0_False_True","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":0,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_1_0_4_0_True_False","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":0,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_1_0_4_0_True_True","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":0,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_1_0_4_8_False_False","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":8,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_1_0_4_8_False_True","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":8,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_1_0_4_8_True_False","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":8,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_1_0_4_8_True_True","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"rows":1,"pos":0,"ratio":4,"topk":8,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_2_1_4_8_False_False","sha256":["49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef"],"rows":2,"pos":1,"ratio":4,"topk":8,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_2_1_4_8_False_True","sha256":["49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef"],"rows":2,"pos":1,"ratio":4,"topk":8,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_2_1_4_8_True_False","sha256":["49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef"],"rows":2,"pos":1,"ratio":4,"topk":8,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_2_1_4_8_True_True","sha256":["49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef"],"rows":2,"pos":1,"ratio":4,"topk":8,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_5_0_4_9_False_False","sha256":["9412145b053a10ad1a8423e59dbd93bf4ce385bd9c63f41107408de69513f8f9"],"rows":5,"pos":0,"ratio":4,"topk":9,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_5_0_4_9_False_True","sha256":["1d61b2db059ccba87b6fc7a5d26b2ddfd12f65f9be4734da6c78dc5e1d54268d"],"rows":5,"pos":0,"ratio":4,"topk":9,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_5_0_4_9_True_False","sha256":["9412145b053a10ad1a8423e59dbd93bf4ce385bd9c63f41107408de69513f8f9"],"rows":5,"pos":0,"ratio":4,"topk":9,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_5_0_4_9_True_True","sha256":["1d61b2db059ccba87b6fc7a5d26b2ddfd12f65f9be4734da6c78dc5e1d54268d"],"rows":5,"pos":0,"ratio":4,"topk":9,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_8_3_4_17_False_False","sha256":["5b8169418a3ca9173fc20be75aebe4513b9b1a90ad61e0410f31ae9aede8c5a1"],"rows":8,"pos":3,"ratio":4,"topk":17,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_8_3_4_17_False_True","sha256":["0453bc6946be4e35fa63ce0e0ae96cc2ab71b7540bb19cf44b297edc62d6f8a1"],"rows":8,"pos":3,"ratio":4,"topk":17,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_8_3_4_17_True_False","sha256":["5b8169418a3ca9173fc20be75aebe4513b9b1a90ad61e0410f31ae9aede8c5a1"],"rows":8,"pos":3,"ratio":4,"topk":17,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_8_3_4_17_True_True","sha256":["0453bc6946be4e35fa63ce0e0ae96cc2ab71b7540bb19cf44b297edc62d6f8a1"],"rows":8,"pos":3,"ratio":4,"topk":17,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_9_2045_4_512_False_False","sha256":["173f1c0b7c1100a81fc7ca301ca9dd8a1c3c31215864fd967a5bc2b84aa138cd"],"rows":9,"pos":2045,"ratio":4,"topk":512,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_9_2045_4_512_False_True","sha256":["0fa91c43940c69b6d6c7cdfe1e98a8d88a894faaf5922b591e260f73c15e29f2"],"rows":9,"pos":2045,"ratio":4,"topk":512,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_9_2045_4_512_True_False","sha256":["173f1c0b7c1100a81fc7ca301ca9dd8a1c3c31215864fd967a5bc2b84aa138cd"],"rows":9,"pos":2045,"ratio":4,"topk":512,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_9_2045_4_512_True_True","sha256":["0fa91c43940c69b6d6c7cdfe1e98a8d88a894faaf5922b591e260f73c15e29f2"],"rows":9,"pos":2045,"ratio":4,"topk":512,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_137_32767_4_512_False_False","sha256":["89dd29d178442056c667165b6f2ca4a9ec55d49049bee49cacaa7b93c21b623e"],"rows":137,"pos":32767,"ratio":4,"topk":512,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_137_32767_4_512_False_True","sha256":["ae9aa0063b9478902374ea75abf040067a520b34ddfdb7bba1ee26d155bd57d3"],"rows":137,"pos":32767,"ratio":4,"topk":512,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_137_32767_4_512_True_False","sha256":["89dd29d178442056c667165b6f2ca4a9ec55d49049bee49cacaa7b93c21b623e"],"rows":137,"pos":32767,"ratio":4,"topk":512,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_137_32767_4_512_True_True","sha256":["ae9aa0063b9478902374ea75abf040067a520b34ddfdb7bba1ee26d155bd57d3"],"rows":137,"pos":32767,"ratio":4,"topk":512,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_2048_2048_4_512_False_False","sha256":["691e4d862e482509e8dc2364fb565b5f106b49ca07797b35d9d352d9e4eaee7d"],"rows":2048,"pos":2048,"ratio":4,"topk":512,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_2048_2048_4_512_False_True","sha256":["e34a0ff471d1cd0401d2fba41c6c66f5418aac2910521cdf4576c4460fc6ed63"],"rows":2048,"pos":2048,"ratio":4,"topk":512,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_2048_2048_4_512_True_False","sha256":["691e4d862e482509e8dc2364fb565b5f106b49ca07797b35d9d352d9e4eaee7d"],"rows":2048,"pos":2048,"ratio":4,"topk":512,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_2048_2048_4_512_True_True","sha256":["e34a0ff471d1cd0401d2fba41c6c66f5418aac2910521cdf4576c4460fc6ed63"],"rows":2048,"pos":2048,"ratio":4,"topk":512,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_5_2_1_9_False_False","sha256":["e50ea80865e014737e25a0566b40dc98359b4e9b32e49c7c72004f81168c00ea"],"rows":5,"pos":2,"ratio":1,"topk":9,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_5_2_1_9_False_True","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"rows":5,"pos":2,"ratio":1,"topk":9,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_5_2_1_9_True_False","sha256":["e50ea80865e014737e25a0566b40dc98359b4e9b32e49c7c72004f81168c00ea"],"rows":5,"pos":2,"ratio":1,"topk":9,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_5_2_1_9_True_True","sha256":["24045c10c12a89f4c11e3b88ea34558fcdf926a8c1008cd08cc33bc71407c774"],"rows":5,"pos":2,"ratio":1,"topk":9,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_8_17_7_8_False_False","sha256":["0b13efbc54a37ca45ee36a0a1193e2829d9782a11b96d08382f8ffb0e405e514"],"rows":8,"pos":17,"ratio":7,"topk":8,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_8_17_7_8_False_True","sha256":["f670f4a724e979c4450dcda1e5ed464a4e2b6e972cfdd52d689e3111fcdd4b57"],"rows":8,"pos":17,"ratio":7,"topk":8,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_8_17_7_8_True_False","sha256":["0b13efbc54a37ca45ee36a0a1193e2829d9782a11b96d08382f8ffb0e405e514"],"rows":8,"pos":17,"ratio":7,"topk":8,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_8_17_7_8_True_True","sha256":["f670f4a724e979c4450dcda1e5ed464a4e2b6e972cfdd52d689e3111fcdd4b57"],"rows":8,"pos":17,"ratio":7,"topk":8,"strided":true,"empty":true} +{"kernel":"qsa_dense_mask_0_0_4_0_False_False","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"rows":0,"pos":0,"ratio":4,"topk":0,"strided":false,"empty":false} +{"kernel":"qsa_dense_mask_0_0_4_0_False_True","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"rows":0,"pos":0,"ratio":4,"topk":0,"strided":false,"empty":true} +{"kernel":"qsa_dense_mask_0_0_4_0_True_False","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"rows":0,"pos":0,"ratio":4,"topk":0,"strided":true,"empty":false} +{"kernel":"qsa_dense_mask_0_0_4_0_True_True","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"rows":0,"pos":0,"ratio":4,"topk":0,"strided":true,"empty":true} diff --git a/tests/fixtures/mtplx-qsa-eager-graph.jsonl b/tests/fixtures/mtplx-qsa-eager-graph.jsonl new file mode 100644 index 0000000..4a1b690 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-eager-graph.jsonl @@ -0,0 +1,144 @@ +{"kernel":"qsa_eager_graph_bfloat16_0_tf1","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_1_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_bfloat16_2_tf1","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_bfloat16_3_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_bfloat16_4_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_5_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_6_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_7_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_8_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_9_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_10_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_11_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_12_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_13_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_14_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_15_tf1","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"bfloat16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_bfloat16_16_tf1","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"bfloat16","tf32":true,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_17_tf1","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"bfloat16","tf32":true,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_bfloat16_18_tf1","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"bfloat16","tf32":true,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_bfloat16_19_tf1","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_bfloat16_20_tf1","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"bfloat16","tf32":true,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_bfloat16_21_tf1","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"bfloat16","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_bfloat16_22_tf1","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"bfloat16","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_bfloat16_23_tf1","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"bfloat16","tf32":true,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} +{"kernel":"qsa_eager_graph_float16_0_tf1","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"float16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_float16_1_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float16_2_tf1","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"float16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_float16_3_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float16","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float16_4_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_5_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_6_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_7_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_8_tf1","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_9_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_10_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_11_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_12_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_13_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_14_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_15_tf1","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"float16","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_float16_16_tf1","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"float16","tf32":true,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_float16_17_tf1","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"float16","tf32":true,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_float16_18_tf1","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"float16","tf32":true,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_float16_19_tf1","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"float16","tf32":true,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_float16_20_tf1","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"float16","tf32":true,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_float16_21_tf1","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float16","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_float16_22_tf1","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"float16","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_float16_23_tf1","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"float16","tf32":true,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} +{"kernel":"qsa_eager_graph_float32_0_tf1","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"float32","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_float32_1_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float32","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float32_2_tf1","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"float32","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_float32_3_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float32","tf32":true,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float32_4_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_5_tf1","sha256":["aeee52e7e90b8a5c7cb42ceef080b2ff0ee5a155ee1934377e49a53faa304d63","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_6_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_7_tf1","sha256":["aeee52e7e90b8a5c7cb42ceef080b2ff0ee5a155ee1934377e49a53faa304d63","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_8_tf1","sha256":["aeee52e7e90b8a5c7cb42ceef080b2ff0ee5a155ee1934377e49a53faa304d63","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_9_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_10_tf1","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_11_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_12_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_13_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_14_tf1","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_15_tf1","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"float32","tf32":true,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_float32_16_tf1","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"float32","tf32":true,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_float32_17_tf1","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"float32","tf32":true,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_float32_18_tf1","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"float32","tf32":true,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_float32_19_tf1","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"float32","tf32":true,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_float32_20_tf1","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"float32","tf32":true,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_float32_21_tf1","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float32","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_float32_22_tf1","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"float32","tf32":true,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_float32_23_tf1","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"float32","tf32":true,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} +{"kernel":"qsa_eager_graph_bfloat16_0_tf0","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_1_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_bfloat16_2_tf0","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_bfloat16_3_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_bfloat16_4_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_5_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_6_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_7_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_8_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_9_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_10_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_bfloat16_11_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_12_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_13_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_14_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"bfloat16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_bfloat16_15_tf0","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"bfloat16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_bfloat16_16_tf0","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"bfloat16","tf32":false,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_bfloat16_17_tf0","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"bfloat16","tf32":false,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_bfloat16_18_tf0","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"bfloat16","tf32":false,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_bfloat16_19_tf0","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_bfloat16_20_tf0","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"bfloat16","tf32":false,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_bfloat16_21_tf0","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"bfloat16","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_bfloat16_22_tf0","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"bfloat16","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_bfloat16_23_tf0","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"bfloat16","tf32":false,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} +{"kernel":"qsa_eager_graph_float16_0_tf0","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"float16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_float16_1_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float16_2_tf0","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"float16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_float16_3_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float16","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float16_4_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_5_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_6_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_7_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_8_tf0","sha256":["c68e0665749f51746fcb84c674d023947bcfb0e6febd3b22297eb31862ddaf69","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float16_9_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_10_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float16_11_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_12_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_13_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_14_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float16_15_tf0","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"float16","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_float16_16_tf0","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"float16","tf32":false,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_float16_17_tf0","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"float16","tf32":false,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_float16_18_tf0","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"float16","tf32":false,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_float16_19_tf0","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"float16","tf32":false,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_float16_20_tf0","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"float16","tf32":false,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_float16_21_tf0","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float16","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_float16_22_tf0","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"float16","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_float16_23_tf0","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"float16","tf32":false,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} +{"kernel":"qsa_eager_graph_float32_0_tf0","sha256":["cdaea6a107cc61525c4dea0cbda19c071153123bca605b095d7c9762122d4ebe"],"dtype":"float32","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,1,2052]]} +{"kernel":"qsa_eager_graph_float32_1_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float32","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float32_2_tf0","sha256":["21292c37b030d896b62920c818deb08fcde02d1a85eb3d8309bec8171cbdba76"],"dtype":"float32","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2048]]} +{"kernel":"qsa_eager_graph_float32_3_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3"],"dtype":"float32","tf32":false,"rows":1,"pos":2051,"ratio":4,"topk":512,"tile":0,"mode":"all","large":false,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash","tail":2052,"shapes":[[512]]} +{"kernel":"qsa_eager_graph_float32_4_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_5_tf0","sha256":["271689c3b626dde1f8f13c5dc2c8cc880d8c95398a12e3c3b3e02ef014db3158","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_6_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":3,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_7_tf0","sha256":["271689c3b626dde1f8f13c5dc2c8cc880d8c95398a12e3c3b3e02ef014db3158","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":8,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_8_tf0","sha256":["271689c3b626dde1f8f13c5dc2c8cc880d8c95398a12e3c3b3e02ef014db3158","3845350b9ad53041ac42dc0faea629843406f04b1bcad9e7488e3d6ac4c4cb1f"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":9,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_eager_graph_float32_9_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"min","large":false,"flash":false,"decode":false,"gather":true,"minimum":16384,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_10_tf0","sha256":["f0f6eb64b33ca77b9b01656041df875539ba639404c161f23020a36f08c25615"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"max","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":7,"lane":"dense","tail":null,"shapes":[[1,1,8,2060]]} +{"kernel":"qsa_eager_graph_float32_11_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_12_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_13_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_14_tf0","sha256":["b115dbdbea3867795bfd54d13ffb370d3fbe79010252bc8b2f11317c43cc5e9f","95e6007f03a2984bb5e6240d4f2b22a1369cb34cdfc41621b098dcb646622ac8"],"dtype":"float32","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":31,"mode":"all","large":true,"flash":true,"decode":true,"gather":true,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[137,512],[137,512]]} +{"kernel":"qsa_eager_graph_float32_15_tf0","sha256":["bdd59704a4c85059ccef9f1a0bbd772084623e135157b2b7e6797901a4075cdd"],"dtype":"float32","tf32":false,"rows":137,"pos":2052,"ratio":4,"topk":512,"tile":0,"mode":"verify","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,137,2189]]} +{"kernel":"qsa_eager_graph_float32_16_tf0","sha256":["605f26a57ca704bbdc794ab4d1f7391ff80db3660c51bd07230923bf44b67a9a"],"dtype":"float32","tf32":false,"rows":2048,"pos":4,"ratio":4,"topk":512,"tile":0,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,2048,2052]]} +{"kernel":"qsa_eager_graph_float32_17_tf0","sha256":["7489e7a5777a453f9251cf1e1136afab43d44f3d626b579ea7a51f12d468a2a4","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7"],"dtype":"float32","tf32":false,"rows":2,"pos":32768,"ratio":4,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[2,512],[2,512]]} +{"kernel":"qsa_eager_graph_float32_18_tf0","sha256":["e2b7376204ad1c9707829449498dc353c78915448d17c1f00ad6a3b6ffbcdd30","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"dtype":"float32","tf32":false,"rows":33,"pos":32768,"ratio":4,"topk":512,"tile":8,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[33,512],[33,512]]} +{"kernel":"qsa_eager_graph_float32_19_tf0","sha256":["f8ef77bd3c33523ae5f11061bdc16ea36e7709aef2c8f7c1818b1987f8eb9911"],"dtype":"float32","tf32":false,"rows":1,"pos":4096,"ratio":4,"topk":512,"tile":0,"mode":"decode","large":false,"flash":false,"decode":true,"gather":false,"minimum":0,"maximum":8,"lane":"decode_tokens","tail":null,"shapes":[[2049]]} +{"kernel":"qsa_eager_graph_float32_20_tf0","sha256":["61f061dcdfa23b76ba9a3decaca1ae1d705148852b817b3b1c02e9c565f6cbc7","c20c1398de8a92d12b2d6c487dd1b08c2ac8890bd17298ee920a16d3ba5fe46a"],"dtype":"float32","tf32":false,"rows":8,"pos":2052,"ratio":8,"topk":512,"tile":0,"mode":"prefill","large":true,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash_prefill","tail":null,"shapes":[[8,257],[8,257]]} +{"kernel":"qsa_eager_graph_float32_21_tf0","sha256":["48cb78f5d6cbb009755f11492f34a92434f6347dc8f06b4988b11f0b669b5d30","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float32","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"rows","large":false,"flash":false,"decode":false,"gather":true,"minimum":0,"maximum":8,"lane":"gather_rows","tail":null,"shapes":[[3,8],[3,8]]} +{"kernel":"qsa_eager_graph_float32_22_tf0","sha256":["80df9786b7f15052f858ed86888287523a7ada4229856df6d43bfdacb08af711"],"dtype":"float32","tf32":false,"rows":3,"pos":13,"ratio":1,"topk":7,"tile":1,"mode":"dense","large":false,"flash":false,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"dense","tail":null,"shapes":[[1,1,3,16]]} +{"kernel":"qsa_eager_graph_float32_23_tf0","sha256":["ab0c3e400e45629c40155dd70bebbad69b45ef1d48c1595d4b688f5d41464bee"],"dtype":"float32","tf32":false,"rows":1,"pos":13,"ratio":1,"topk":7,"tile":0,"mode":"flash","large":false,"flash":true,"decode":false,"gather":false,"minimum":0,"maximum":8,"lane":"flash","tail":14,"shapes":[[7]]} diff --git a/tests/fixtures/mtplx-qsa-fused-graph.jsonl b/tests/fixtures/mtplx-qsa-fused-graph.jsonl new file mode 100644 index 0000000..3ccaa41 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-fused-graph.jsonl @@ -0,0 +1,126 @@ +{"kernel":"qsa_fused_graph_bfloat16_0_blocks_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","23d500c1cd95b0a4b1e196c94b86c33222a65475b7b85787b2f51545288b2ead"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_bfloat16_0_row_tokens_tf1","sha256":["95bf40f03b2b56264cba76f872dbd9987b225e029cfa731c068609d9e3188d70","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_bfloat16_0_dense_mask_tf1","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_bfloat16_1_blocks_tf1","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","e5fb5d107745f55e2fe086e08ce3b8dc722296d91697181e5bf4155edc64a9da"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_bfloat16_1_row_tokens_tf1","sha256":["c232fc0c229542d1c9657469d80a06f541ef7dbb11fbbfac9f7a79e20e6763d8","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_bfloat16_1_dense_mask_tf1","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_bfloat16_2_blocks_tf1","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","5ceedb826ea6f8bdeeac5f0bc3cbacbf8e3e76264f102f8fc165f43bac015214"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_bfloat16_2_row_tokens_tf1","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_bfloat16_2_dense_mask_tf1","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_bfloat16_3_blocks_tf1","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","e32259c963886f9f1a6103639f5ecf9ed0592c568094e3095bfe6dbd78504f03"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_bfloat16_3_row_tokens_tf1","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_bfloat16_3_dense_mask_tf1","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_bfloat16_4_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_bfloat16_4_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_bfloat16_4_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_bfloat16_5_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_bfloat16_5_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_bfloat16_5_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_bfloat16_6_blocks_tf1","sha256":["5d289fe2852ec71efd8001d067c45e90604c91b9139b9dd5c8bd87bf8da6469d","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","76bfd90af0f7eda836232876abe964d977b585e3af4208478da907fa4d5d843d"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_bfloat16_6_row_tokens_tf1","sha256":["93e6405c3a844c25171984f966a28367161c3a7becdd486e1c17bea35ac240e9","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_float16_0_blocks_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","23d500c1cd95b0a4b1e196c94b86c33222a65475b7b85787b2f51545288b2ead"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_float16_0_row_tokens_tf1","sha256":["95bf40f03b2b56264cba76f872dbd9987b225e029cfa731c068609d9e3188d70","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_float16_0_dense_mask_tf1","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_float16_1_blocks_tf1","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","e5fb5d107745f55e2fe086e08ce3b8dc722296d91697181e5bf4155edc64a9da"],"dtype":"float16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_float16_1_row_tokens_tf1","sha256":["c232fc0c229542d1c9657469d80a06f541ef7dbb11fbbfac9f7a79e20e6763d8","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"float16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_float16_1_dense_mask_tf1","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"float16","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_float16_2_blocks_tf1","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","5ceedb826ea6f8bdeeac5f0bc3cbacbf8e3e76264f102f8fc165f43bac015214"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_float16_2_row_tokens_tf1","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_float16_2_dense_mask_tf1","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_float16_3_blocks_tf1","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","e32259c963886f9f1a6103639f5ecf9ed0592c568094e3095bfe6dbd78504f03"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_float16_3_row_tokens_tf1","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_float16_3_dense_mask_tf1","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_float16_4_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float16_4_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float16_4_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float16_5_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float16_5_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float16_5_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float16_6_blocks_tf1","sha256":["5d289fe2852ec71efd8001d067c45e90604c91b9139b9dd5c8bd87bf8da6469d","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","76bfd90af0f7eda836232876abe964d977b585e3af4208478da907fa4d5d843d"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_float16_6_row_tokens_tf1","sha256":["93e6405c3a844c25171984f966a28367161c3a7becdd486e1c17bea35ac240e9","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_float32_0_blocks_tf1","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","9976d7a375bc1507c4854b8e24a296854ab8c8f4f889ba47136ebe5042737840"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_float32_0_row_tokens_tf1","sha256":["e0e13ea72d7a715f0ab70c098de7bd890bb33eca36d212b486c8a8fbcb5a14b6","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_float32_0_dense_mask_tf1","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_float32_1_blocks_tf1","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","477878989ac6e4d31dc10963383f7446a073e80b545bc6156e98540b3a7d9689"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_float32_1_row_tokens_tf1","sha256":["1337d5b4a1e84ee68adf78d598e12df6cfb2eb54b4004693c02db11c49dc3ee1","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_float32_1_dense_mask_tf1","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_float32_2_blocks_tf1","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","00ba97e4c4cd238fee4c847e8374e316e4b14d007e8f741c0f971a45f27d92af"],"dtype":"float32","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_float32_2_row_tokens_tf1","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float32","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_float32_2_dense_mask_tf1","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"float32","pdtype":"float16","tf32":true,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_float32_3_blocks_tf1","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","2fca1d2b70fbac5be8a79985e45d7e65b6e54f393a1b343e0c89243e84118103"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_float32_3_row_tokens_tf1","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_float32_3_dense_mask_tf1","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_float32_4_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float32_4_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float32_4_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float32_5_blocks_tf1","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float32_5_row_tokens_tf1","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float32_5_dense_mask_tf1","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float32_6_blocks_tf1","sha256":["12045d5312afbbbf03c4cd6fa3e90bbece7a765b6afb6e02039ee5409603a1e5","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","3312c288b614bffa09be44f5c1c242531e399580e70202d09fdf5d187ed82d63"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_float32_6_row_tokens_tf1","sha256":["99572d3cd429c6e799ccd0c033df78bbd7995daae0b8167e776169a31d32c684","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_bfloat16_0_blocks_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","23d500c1cd95b0a4b1e196c94b86c33222a65475b7b85787b2f51545288b2ead"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_bfloat16_0_row_tokens_tf0","sha256":["95bf40f03b2b56264cba76f872dbd9987b225e029cfa731c068609d9e3188d70","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_bfloat16_0_dense_mask_tf0","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_bfloat16_1_blocks_tf0","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","ddf79995683b9f218c915c1f246aef70db9ecfd567f4edf2dd6cfd862d3d4a2b"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_bfloat16_1_row_tokens_tf0","sha256":["7ce35ac0f17ad7cbe52a20f92d7a5094960b152ec9791d99d4f66e6615cda6e3","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_bfloat16_1_dense_mask_tf0","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_bfloat16_2_blocks_tf0","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","5ceedb826ea6f8bdeeac5f0bc3cbacbf8e3e76264f102f8fc165f43bac015214"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_bfloat16_2_row_tokens_tf0","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_bfloat16_2_dense_mask_tf0","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_bfloat16_3_blocks_tf0","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","e32259c963886f9f1a6103639f5ecf9ed0592c568094e3095bfe6dbd78504f03"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_bfloat16_3_row_tokens_tf0","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_bfloat16_3_dense_mask_tf0","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_bfloat16_4_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_bfloat16_4_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_bfloat16_4_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_bfloat16_5_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_bfloat16_5_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_bfloat16_5_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_bfloat16_6_blocks_tf0","sha256":["5d289fe2852ec71efd8001d067c45e90604c91b9139b9dd5c8bd87bf8da6469d","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","76bfd90af0f7eda836232876abe964d977b585e3af4208478da907fa4d5d843d"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_bfloat16_6_row_tokens_tf0","sha256":["93e6405c3a844c25171984f966a28367161c3a7becdd486e1c17bea35ac240e9","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_float16_0_blocks_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","23d500c1cd95b0a4b1e196c94b86c33222a65475b7b85787b2f51545288b2ead"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_float16_0_row_tokens_tf0","sha256":["95bf40f03b2b56264cba76f872dbd9987b225e029cfa731c068609d9e3188d70","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_float16_0_dense_mask_tf0","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_float16_1_blocks_tf0","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","ddf79995683b9f218c915c1f246aef70db9ecfd567f4edf2dd6cfd862d3d4a2b"],"dtype":"float16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_float16_1_row_tokens_tf0","sha256":["7ce35ac0f17ad7cbe52a20f92d7a5094960b152ec9791d99d4f66e6615cda6e3","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"float16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_float16_1_dense_mask_tf0","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"float16","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_float16_2_blocks_tf0","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","5ceedb826ea6f8bdeeac5f0bc3cbacbf8e3e76264f102f8fc165f43bac015214"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_float16_2_row_tokens_tf0","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_float16_2_dense_mask_tf0","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_float16_3_blocks_tf0","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","e32259c963886f9f1a6103639f5ecf9ed0592c568094e3095bfe6dbd78504f03"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_float16_3_row_tokens_tf0","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_float16_3_dense_mask_tf0","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_float16_4_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float16_4_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float16_4_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float16_5_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float16_5_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float16_5_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float16_6_blocks_tf0","sha256":["5d289fe2852ec71efd8001d067c45e90604c91b9139b9dd5c8bd87bf8da6469d","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","76bfd90af0f7eda836232876abe964d977b585e3af4208478da907fa4d5d843d"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_float16_6_row_tokens_tf0","sha256":["93e6405c3a844c25171984f966a28367161c3a7becdd486e1c17bea35ac240e9","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_float32_0_blocks_tf0","sha256":["9fae032aa38d5729c822cb20f65c0b724c7043b35482b791148673e82fbcbfe3","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","699980d60b2a41161d4fbca16f3c179cf0741bec3c6d58074ab98d4b2daa98d8"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_fused_graph_float32_0_row_tokens_tf0","sha256":["478ef31464d28c804a9f7132d30544ac498f68f2279e3d80ad9229a7324a38bc","5843cf3d417c1573da9db21192b7890e40667c47890e3a86509b8c4ae9b64187"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"row_tokens","shapes":[[1,2052],[1,2052]]} +{"kernel":"qsa_fused_graph_float32_0_dense_mask_tf0","sha256":["f51d2c62664cd182a81516a663dc67cc85cf120535f2f2715454fb3bf18b6cd9"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":0,"rows":1,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","mode":"dense_mask","shapes":[[1,1,1,2055]]} +{"kernel":"qsa_fused_graph_float32_1_blocks_tf0","sha256":["680588dfe4b251a82be5bc5cf80526019b0d129b5531b98e4ce3d05e34acc087","3035aac5fb87474c303702f9030301b4e6bb7aee93be3710b8ab8dcea201db70","f62b4fcdac877d7f75ddafcb7dc58759361ef566e16b8facd1d0120b98b3adc6"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"blocks","shapes":[[8,512],[8,512],[8,512]]} +{"kernel":"qsa_fused_graph_float32_1_row_tokens_tf0","sha256":["7974ccf6640ed6be1032a9b3c635261766cbff25348b084db6b0f8aa626fc78a","f04b1ac197d3d5cf4ca14d402be47768137366975a2a7184557987b4a6dd80e5"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"row_tokens","shapes":[[8,2052],[8,2052]]} +{"kernel":"qsa_fused_graph_float32_1_dense_mask_tf0","sha256":["697c3e1ee37a7a304068260cbbfba93850ba30d42d71fc16101ce0ac6d31ed90"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":1,"rows":8,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","mode":"dense_mask","shapes":[[1,1,8,2062]]} +{"kernel":"qsa_fused_graph_float32_2_blocks_tf0","sha256":["ff9dbe80ecd93c990c7c95f8b67ca8fde88c561f5aab9f867d611bf13d76eae5","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","00ba97e4c4cd238fee4c847e8374e316e4b14d007e8f741c0f971a45f27d92af"],"dtype":"float32","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_fused_graph_float32_2_row_tokens_tf0","sha256":["559024965d8d60f37412af4a1706baf6b7567eb03e0c25ba9c89237ccdc075ea","bc0fa05712680074cb1230e76e780bba5db520ed39f1b1b8a0ba83e26c50d357"],"dtype":"float32","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_fused_graph_float32_2_dense_mask_tf0","sha256":["c007a67a45929d5eabea8c9e6fe66c6517ad337272b9abc825ef41fec4b31258"],"dtype":"float32","pdtype":"float16","tf32":false,"profile":2,"rows":3,"heads":1,"dim":8,"blocks":17,"topk":7,"ratio":1,"pos":9,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,15]]} +{"kernel":"qsa_fused_graph_float32_3_blocks_tf0","sha256":["3e3e3d5a4f6d1db057927cda0abb78fd2dc880423adb7eb96a9cf5a38b5cc203","ae83419337aeea351ac5a4dc747dc48d72097c98f6c9ebdb47cb41308159d8d8","eb102cdbae2659d8a124b434cfe08974f020007d4328e3c00f3d5e2d0f5beb44"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_fused_graph_float32_3_row_tokens_tf0","sha256":["b7eb2797b269d426f51e92a769638bcfea0dc3dce417e08d05e946a91dc19df0","57cd1ea39313d82aeea66356ff4f2b43ad0e70a282673ffab9a407637a685328"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_fused_graph_float32_3_dense_mask_tf0","sha256":["e72f88ede36ee6674d90a577039a8bb0bdd9ac2916f04c4bc7370edf52511fe0"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":3,"rows":5,"heads":2,"dim":7,"blocks":5,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,5,15]]} +{"kernel":"qsa_fused_graph_float32_4_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float32_4_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float32_4_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":4,"rows":2,"heads":4,"dim":64,"blocks":0,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float32_5_blocks_tf0","sha256":["af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","0e9f86dafae0056ec8f21396c546b6b32b1d356d09845a4d4bd32ebf6789bf05"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"blocks","shapes":[[2,1],[2,1],[2,1]]} +{"kernel":"qsa_fused_graph_float32_5_row_tokens_tf0","sha256":["447fb0bf04607469911048d0628221a2aa8dd22b2ac35404e21a3e376ea33c43","a711342986993802c88967047bf0783e23a52a4aa3a17b1aa56a88d9615d4ccb"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"row_tokens","shapes":[[2,8],[2,8]]} +{"kernel":"qsa_fused_graph_float32_5_dense_mask_tf0","sha256":["f849c56eaf233a07a262b19d8fe4ef0f1f591bfbc61f4918d4bc78721a320fe0"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":5,"rows":2,"heads":4,"dim":64,"blocks":5,"topk":1,"ratio":4,"pos":0,"kind":"plain","mode":"dense_mask","shapes":[[1,1,2,5]]} +{"kernel":"qsa_fused_graph_float32_6_blocks_tf0","sha256":["5d289fe2852ec71efd8001d067c45e90604c91b9139b9dd5c8bd87bf8da6469d","4f701b8fc2cd6133049e1e892b1c8f4e3b5946a1091a4ac1767f59d6b1868056","ef76b5482fac0a1e443ae5a0a98420e3c28c633270cbea7da3ad8dc593baf347"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"blocks","shapes":[[129,7],[129,7],[129,7]]} +{"kernel":"qsa_fused_graph_float32_6_row_tokens_tf0","sha256":["a5cd5d5bb4970e86a92e3a96e9c0d71c3b9e267f55e50bbbdd0b82344cfb109d","845229c2dd91bc60579fe7fd055c54d37ea83f0a1cdf0b9e366f4732265a22ad"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"row_tokens","shapes":[[129,32],[129,32]]} +{"kernel":"qsa_fused_graph_bfloat16_6_dense_mask_tf1","sha256":["b6e3c7e17c174ce4709f5609c044b7a9fc96dd5591dde729014e36d3221c6c7f"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} +{"kernel":"qsa_fused_graph_float16_6_dense_mask_tf1","sha256":["b6e3c7e17c174ce4709f5609c044b7a9fc96dd5591dde729014e36d3221c6c7f"],"dtype":"float16","pdtype":"float16","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} +{"kernel":"qsa_fused_graph_float32_6_dense_mask_tf1","sha256":["1e5455a55fd8bdbba66cf44418babe14f231916aa099c06c593ad82b329dda2d"],"dtype":"float32","pdtype":"float32","tf32":true,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} +{"kernel":"qsa_fused_graph_bfloat16_6_dense_mask_tf0","sha256":["b6e3c7e17c174ce4709f5609c044b7a9fc96dd5591dde729014e36d3221c6c7f"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} +{"kernel":"qsa_fused_graph_float16_6_dense_mask_tf0","sha256":["b6e3c7e17c174ce4709f5609c044b7a9fc96dd5591dde729014e36d3221c6c7f"],"dtype":"float16","pdtype":"float16","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} +{"kernel":"qsa_fused_graph_float32_6_dense_mask_tf0","sha256":["b6e3c7e17c174ce4709f5609c044b7a9fc96dd5591dde729014e36d3221c6c7f"],"dtype":"float32","pdtype":"float32","tf32":false,"profile":6,"rows":129,"heads":1,"dim":8,"blocks":65537,"topk":7,"ratio":4,"pos":1024,"kind":"chunk","mode":"dense_mask","shapes":[[1,1,129,1153]]} diff --git a/tests/fixtures/mtplx-qsa-indexer-commit.jsonl b/tests/fixtures/mtplx-qsa-indexer-commit.jsonl new file mode 100644 index 0000000..f553ed0 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-indexer-commit.jsonl @@ -0,0 +1,26 @@ +{"kernel":"qsa_indexer_commit_q0_s0","sha256":["79f49bfb93220a080a28ada472b7d49e2364da3b3c52daa9e6f7ae38517d06dc","00cfe9e55d50118d216132d091048519fe20f9f626d06764819e3d3b6cdfe244"],"quantized":false,"step":0,"rows":1,"pos":0,"mode":"update_only","supplied":true,"kind":"none","tail":null,"shapes":[[1,256,128],[1,256,128]],"pooled_len":0,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s1","sha256":["a80616ecfaecbcc8436c1d9daac77f7267fb73e26c7811d2b9470a63d5e1111e","63f42ad5d69412bfa4a15c2fab294e3d7fa4f9836e570f651241e903c15ea4da","79f49bfb93220a080a28ada472b7d49e2364da3b3c52daa9e6f7ae38517d06dc","00cfe9e55d50118d216132d091048519fe20f9f626d06764819e3d3b6cdfe244"],"quantized":false,"step":1,"rows":3,"pos":1,"mode":"update_only","supplied":false,"kind":"none","tail":null,"shapes":[[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":1,"report":{"calls":2,"compiled_calls":2,"hidden_calls":1,"qk_rows_calls":1,"traces":2,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":2},"buckets":{"raw256:pool256:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,3,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s3:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s2","sha256":["893a7e1bac1f19185290f9fa218199cd6b75c9b787d2cb2049adec5bffde7fdd","6e02edf5eb868e383a730b1c1c5c2eef9b7db4a0e11432fb93fb0a7548c9fd51","d07dcdf7d4f467e59f1896832fd3eaa9d350076b343bb9aef9cbc1e281fbc025","8fc388614270786c9034c1cfab2d3b8aba393b083945f306f746da02048a49ec","a80616ecfaecbcc8436c1d9daac77f7267fb73e26c7811d2b9470a63d5e1111e","63f42ad5d69412bfa4a15c2fab294e3d7fa4f9836e570f651241e903c15ea4da"],"quantized":false,"step":2,"rows":33,"pos":4,"mode":"prefill_blocks","supplied":true,"kind":"flash_prefill","tail":null,"shapes":[[33,8],[33,8],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":9,"report":{"calls":3,"compiled_calls":3,"hidden_calls":1,"qk_rows_calls":2,"traces":3,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":2},"buckets":{"raw256:pool256:out0":3},"entry_count":3,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,3,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s3:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,33,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":33,"label":"qk_rows:prefill_blocks:s33:raw256:pool256:out0:scorempp:chunk33:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s3","sha256":["b2f37caa34df48ba69229ee8eb431300c3d58bae5ada667a5b2b33b6d8ab0221","c4d4626eefe7ddb96be63d56408458bad86a146d8366fbe9e439e953c068d62c","8fc388614270786c9034c1cfab2d3b8aba393b083945f306f746da02048a49ec","d07dcdf7d4f467e59f1896832fd3eaa9d350076b343bb9aef9cbc1e281fbc025","8fc388614270786c9034c1cfab2d3b8aba393b083945f306f746da02048a49ec"],"quantized":false,"step":3,"rows":1,"pos":37,"mode":"blocks","supplied":false,"kind":"flash","tail":36,"shapes":[[8],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":9,"report":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw256:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s4","sha256":["2fd79119321d96ef817f0ac70194dcf39a4f964df215008bc044fa9f00a85e14","b3e83850a3d967dd5782d3ff78f699d20070c7a66eced6b387f21b5a7084b293","23db48bf92f608e34f8e92b65a9f380728a80ef6feaed3d678984a4b5700c20f","5e748e1256b57dfed5e87c2afa25028964c21f19ef524c247f6ea230c5d58771","c4d4626eefe7ddb96be63d56408458bad86a146d8366fbe9e439e953c068d62c","8fc388614270786c9034c1cfab2d3b8aba393b083945f306f746da02048a49ec"],"quantized":false,"step":4,"rows":4,"pos":38,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":10,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw256:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s5","sha256":["4a0f9078e7872baa997d2af078b3f41eef6321fdc8859ca8c0a387dbcca9b57d","54e51cd5347c401b1e238d26bcdaf785b645e12872a855fd4d3bca59dc159aec","05b07712004bfa9dd2cc23f741fce3e534250b84ac0f75d5b11ff281e27a1ece","23db48bf92f608e34f8e92b65a9f380728a80ef6feaed3d678984a4b5700c20f","5e748e1256b57dfed5e87c2afa25028964c21f19ef524c247f6ea230c5d58771"],"quantized":false,"step":5,"rows":4,"pos":42,"mode":"dense_mask","supplied":false,"kind":"dense","tail":null,"shapes":[[1,1,4,46],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":11,"report":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":1,"row_tokens":0,"update_only":0},"buckets":{"raw256:pool256:out1028":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":1028,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw256:pool256:out1028:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s6","sha256":["ab58a08728a356bc65b4573ba244026aea2b0d923a45142d662dfd2db1672276","8a22d16463cc2fc23f6742893f724adca9c768f7c1ed7041ecc7eb5655697b0d","a830fc2ab0df30ccb28a602d7f210f95887d388918ba97973296d798435ed47a","e0421109b9be1ebb45ae90fa8f25f2bd8a73abd20a08768d82af6c42e354ba20","54e51cd5347c401b1e238d26bcdaf785b645e12872a855fd4d3bca59dc159aec","05b07712004bfa9dd2cc23f741fce3e534250b84ac0f75d5b11ff281e27a1ece"],"quantized":false,"step":6,"rows":221,"pos":46,"mode":"prefill_blocks","supplied":true,"kind":"flash_prefill","tail":null,"shapes":[[221,8],[221,8],[1,512,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":66,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw512:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s7","sha256":["9038ba5b1c7d190f3688fdc824094ca81439b6d9bac2d9db16f9cd7a1355e3ed","50d4d646e3056484adaf560f77bd12946332f27c664f1bce588211764333d2f7","0541df7f0f26a976ca82088de0531f2d8e3c050bcb6f35c06925fa777d94ce74","a830fc2ab0df30ccb28a602d7f210f95887d388918ba97973296d798435ed47a","e0421109b9be1ebb45ae90fa8f25f2bd8a73abd20a08768d82af6c42e354ba20"],"quantized":false,"step":7,"rows":1,"pos":267,"mode":"blocks","supplied":false,"kind":"flash","tail":268,"shapes":[[8],[1,512,128],[1,256,128],[1,512,128],[1,256,128]],"pooled_len":67,"report":{"calls":2,"compiled_calls":2,"hidden_calls":1,"qk_rows_calls":1,"traces":2,"selector_dispatches":2,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw512:pool256:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s8","sha256":["ef3f2d7931c59e53cc7d13e4df9e0d5a0efc817c4da24bc0474785e3e47c4929","033a89cee6bcbaa862957e3ed38356359c307196c0bb797a1ab0dfb17bc80681","1ea73300b4135d40d0c9a16b3df6f09237839f6f3b34af62c47bc14e983a88e1","653cb125cd26b724ace8b50c74d9686ade780055ef5809bd085406446897afde","50d4d646e3056484adaf560f77bd12946332f27c664f1bce588211764333d2f7","0541df7f0f26a976ca82088de0531f2d8e3c050bcb6f35c06925fa777d94ce74"],"quantized":false,"step":8,"rows":4,"pos":268,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,512,128],[1,256,128],[1,512,128],[1,256,128]],"pooled_len":68,"report":{"calls":3,"compiled_calls":3,"hidden_calls":1,"qk_rows_calls":2,"traces":3,"selector_dispatches":3,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw512:pool256:out0":3},"entry_count":3,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s9","sha256":["c0e44a9e42f919ac8743f3b0bcccbde30036a0c4146614291c0acb6bd00be159","892adddcc5d5ec787abab7e44af81bb28f8935e0d88dd22c3fc3663673ed4f06","7bd12bceaf1b7656f606fc57c8562fb53f1e0c1ded25c4c493ea16f5af570a13","c34838d12cafee3c81c130c4eab0e49728f08660d116c57a7649cfcd8d506771","5a50b7c94dfd0e2c65d66110227d85334332a09bba1255ce85743d277f0ee533"],"quantized":false,"step":9,"rows":4,"pos":272,"mode":"dense_mask","supplied":false,"kind":"dense","tail":null,"shapes":[[1,1,4,276],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":4,"compiled_calls":4,"hidden_calls":2,"qk_rows_calls":2,"traces":4,"selector_dispatches":4,"capacity_transitions":1,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":1,"row_tokens":1,"update_only":0},"buckets":{"raw512:pool256:out0":3,"raw2048:pool512:out2052":1},"entry_count":4,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s10","sha256":["c8834a2b5f1bf5d71e78d3fac2f4712ae196432b1a07f0922c6543106c054866","10b83909c4700a66f0192dba91a61bd13fe65b2b533cc0bfa28c157a479c0c39","864c5f18f0c298b23c0cde8a5a7726a19fe92a8c2dde03c6ab3c734b39bf2a03","1a10abce656ff7d4673bc7971de67aab8d4f58697bcd3fed97606c8fa4aa005c","892adddcc5d5ec787abab7e44af81bb28f8935e0d88dd22c3fc3663673ed4f06","7bd12bceaf1b7656f606fc57c8562fb53f1e0c1ded25c4c493ea16f5af570a13"],"quantized":false,"step":10,"rows":4,"pos":273,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":5,"compiled_calls":5,"hidden_calls":2,"qk_rows_calls":3,"traces":5,"selector_dispatches":5,"capacity_transitions":1,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":1,"prefill_blocks":1,"dense_mask":1,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":3,"raw2048:pool512:out2052":1,"raw2048:pool512:out0":1},"entry_count":5,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s11","sha256":["9077fe606824947d047f38a3c406ebc323d055e081742826491a8b144191026c","b995d0eb14fec62205b21ddd640e4fd9f5f9c5ba9fbdd4e95ee26c22075f3990","1a10abce656ff7d4673bc7971de67aab8d4f58697bcd3fed97606c8fa4aa005c","864c5f18f0c298b23c0cde8a5a7726a19fe92a8c2dde03c6ab3c734b39bf2a03","1a10abce656ff7d4673bc7971de67aab8d4f58697bcd3fed97606c8fa4aa005c"],"quantized":false,"step":11,"rows":1,"pos":277,"mode":"blocks","supplied":false,"kind":"flash","tail":276,"shapes":[[8],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":6,"compiled_calls":6,"hidden_calls":3,"qk_rows_calls":3,"traces":6,"selector_dispatches":6,"capacity_transitions":1,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":2,"prefill_blocks":1,"dense_mask":1,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":3,"raw2048:pool512:out2052":1,"raw2048:pool512:out0":2},"entry_count":6,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw2048:pool512:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q0_s12","sha256":["0abe7f4235444c4dfa4f8cae8f3edc9fd589eec5ab6e74bc0393d282d16849e4","2d55bd1b1c8da6710b5820419179943e796e244e8de653ffae68405cb9eca9d0","e2080155b5d97358857d272c930656617998dbe39865c05001ee5b1efbb62b8c","b995d0eb14fec62205b21ddd640e4fd9f5f9c5ba9fbdd4e95ee26c22075f3990","1a10abce656ff7d4673bc7971de67aab8d4f58697bcd3fed97606c8fa4aa005c"],"quantized":false,"step":12,"rows":4,"pos":278,"mode":"dense_mask","supplied":true,"kind":"dense","tail":null,"shapes":[[1,1,4,282],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":70,"report":{"calls":7,"compiled_calls":7,"hidden_calls":3,"qk_rows_calls":4,"traces":7,"selector_dispatches":7,"capacity_transitions":1,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":2,"prefill_blocks":1,"dense_mask":2,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":3,"raw2048:pool512:out2052":2,"raw2048:pool512:out0":2},"entry_count":7,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw2048:pool512:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s0","sha256":["79f49bfb93220a080a28ada472b7d49e2364da3b3c52daa9e6f7ae38517d06dc","00cfe9e55d50118d216132d091048519fe20f9f626d06764819e3d3b6cdfe244"],"quantized":true,"step":0,"rows":1,"pos":0,"mode":"update_only","supplied":true,"kind":"none","tail":null,"shapes":[[1,256,128],[1,256,128]],"pooled_len":0,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":1},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s1","sha256":["73cf88742899601edbaa7b51580d1b71e6e8d36596df5c5827d92a5b529b87b7","9415dc86b02e8224c5f67d692c1cb76011a9f3e3c8a5863cbd7e00cf4e2acb87","79f49bfb93220a080a28ada472b7d49e2364da3b3c52daa9e6f7ae38517d06dc","00cfe9e55d50118d216132d091048519fe20f9f626d06764819e3d3b6cdfe244"],"quantized":true,"step":1,"rows":3,"pos":1,"mode":"update_only","supplied":false,"kind":"none","tail":null,"shapes":[[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":1,"report":{"calls":2,"compiled_calls":2,"hidden_calls":1,"qk_rows_calls":1,"traces":2,"selector_dispatches":0,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":2},"buckets":{"raw256:pool256:out0":2},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,3,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s3:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s2","sha256":["893a7e1bac1f19185290f9fa218199cd6b75c9b787d2cb2049adec5bffde7fdd","6e02edf5eb868e383a730b1c1c5c2eef9b7db4a0e11432fb93fb0a7548c9fd51","664546e6d165c9731351d81d0395a646d35624f8e4e06e44d18ac69c6b97d0c0","3aa2e24f480c1be28ccbf01e6816f8a3c87ccb23cafbce7180bb55e87cbf68d7","73cf88742899601edbaa7b51580d1b71e6e8d36596df5c5827d92a5b529b87b7","9415dc86b02e8224c5f67d692c1cb76011a9f3e3c8a5863cbd7e00cf4e2acb87"],"quantized":true,"step":2,"rows":33,"pos":4,"mode":"prefill_blocks","supplied":true,"kind":"flash_prefill","tail":null,"shapes":[[33,8],[33,8],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":9,"report":{"calls":3,"compiled_calls":3,"hidden_calls":1,"qk_rows_calls":2,"traces":3,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":2},"buckets":{"raw256:pool256:out0":3},"entry_count":3,"compiled_keys":[{"source":"hidden","mode":"update_only","input_shape":[1,3,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"hidden:update_only:s3:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,33,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":33,"label":"qk_rows:prefill_blocks:s33:raw256:pool256:out0:scorempp:chunk33:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"update_only","input_shape":[1,1,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":0,"label":"qk_rows:update_only:s1:raw256:pool256:out0:scorenone:chunk0:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":33554432,"prefill_score_workspace_bytes":134217728,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s3","sha256":["a8d0cab4b8c685126d91d03b71f65ff4165c29cba48e0782aa33be8dd95bb7b4","90f176d3557e86a4f420fc626aac9c10a8c1ca6a91ed8a99aa28ec5f86b0d37c","3aa2e24f480c1be28ccbf01e6816f8a3c87ccb23cafbce7180bb55e87cbf68d7","664546e6d165c9731351d81d0395a646d35624f8e4e06e44d18ac69c6b97d0c0","3aa2e24f480c1be28ccbf01e6816f8a3c87ccb23cafbce7180bb55e87cbf68d7"],"quantized":true,"step":3,"rows":1,"pos":37,"mode":"blocks","supplied":false,"kind":"flash","tail":36,"shapes":[[8],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":9,"report":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw256:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s4","sha256":["91e39596d6ad14f9eb624af43917b086842615d3de6e616469bdbb43751348fd","b3e83850a3d967dd5782d3ff78f699d20070c7a66eced6b387f21b5a7084b293","6b20e0c314519ea4f86e9a3a8aeb340af3b18dd4b319724c75a509ba91e79814","f59cdaeb68ad36785af4b88f3a7758f4f01ec26bf9f155d7655b761720ceae43","90f176d3557e86a4f420fc626aac9c10a8c1ca6a91ed8a99aa28ec5f86b0d37c","3aa2e24f480c1be28ccbf01e6816f8a3c87ccb23cafbce7180bb55e87cbf68d7"],"quantized":true,"step":4,"rows":4,"pos":38,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":10,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw256:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw256:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s5","sha256":["e2fa3dd93d0cf70ad41898e8d64a286f37092e69c6dd72baa741548a71e53df3","d8c0b3645c4e1d05db13e8ea079167c486c0f60a99e0c5330738419e8c7dad1e","e6141d0bb5062b67c8dd7aeaf7e231fa4a71aff029bfe0fe677fb240e5944eb3","6b20e0c314519ea4f86e9a3a8aeb340af3b18dd4b319724c75a509ba91e79814","f59cdaeb68ad36785af4b88f3a7758f4f01ec26bf9f155d7655b761720ceae43"],"quantized":true,"step":5,"rows":4,"pos":42,"mode":"dense_mask","supplied":false,"kind":"dense","tail":null,"shapes":[[1,1,4,46],[1,256,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":11,"report":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":1,"row_tokens":0,"update_only":0},"buckets":{"raw256:pool256:out1028":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,256,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":1028,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw256:pool256:out1028:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s6","sha256":["96dc53737ca07fa57a686c638b82d0f77551bc248249f8535a326f49150cdc16","8a22d16463cc2fc23f6742893f724adca9c768f7c1ed7041ecc7eb5655697b0d","95d0d8910e89d798cbfdb03dfd551207178e09262d6202c82cc6f6d97a060171","a2bbe49ca43aa958bea58b1575aef88374fc89c0113a930601b0d1a0f2b2e52f","d8c0b3645c4e1d05db13e8ea079167c486c0f60a99e0c5330738419e8c7dad1e","e6141d0bb5062b67c8dd7aeaf7e231fa4a71aff029bfe0fe677fb240e5944eb3"],"quantized":true,"step":6,"rows":221,"pos":46,"mode":"prefill_blocks","supplied":true,"kind":"flash_prefill","tail":null,"shapes":[[221,8],[221,8],[1,512,128],[1,256,128],[1,256,128],[1,256,128]],"pooled_len":66,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":1,"mlx":0},"modes":{"blocks":0,"prefill_blocks":1,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw512:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"prefill_blocks","input_shape":[1,221,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"mpp","selector_chunk_rows":221,"label":"qk_rows:prefill_blocks:s221:raw512:pool256:out0:scorempp:chunk221:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s7","sha256":["cc3809d5d7435703ae6ea5ede30ad5a099dbabc2e7acc837c8448dddec21b971","ecc6f447de24370947e01071cdabd8237049fc120cb5e54d2f76b0e755f52d32","cf9373282242048d9c21cfa5288e6ac37e993a342a456fd559535244a445da8f","95d0d8910e89d798cbfdb03dfd551207178e09262d6202c82cc6f6d97a060171","a2bbe49ca43aa958bea58b1575aef88374fc89c0113a930601b0d1a0f2b2e52f"],"quantized":true,"step":7,"rows":1,"pos":267,"mode":"blocks","supplied":false,"kind":"flash","tail":268,"shapes":[[8],[1,512,128],[1,256,128],[1,512,128],[1,256,128]],"pooled_len":67,"report":{"calls":1,"compiled_calls":1,"hidden_calls":1,"qk_rows_calls":0,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":0,"row_tokens":0,"update_only":0},"buckets":{"raw512:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw512:pool256:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s8","sha256":["b641a9d30715ce79b07efad287b5b22d12bf72f5b07ce04be18b7ef9b29d937e","033a89cee6bcbaa862957e3ed38356359c307196c0bb797a1ab0dfb17bc80681","e1f414975a9994dd86f3ec5011256b2bba19e7e2e1e7c2ccb9ee6f6d0932d78b","a61c96dea1e2bdee4d1eabccd07aed9bd1ed9ee6e51952c03d67f43a4592b70d","ecc6f447de24370947e01071cdabd8237049fc120cb5e54d2f76b0e755f52d32","cf9373282242048d9c21cfa5288e6ac37e993a342a456fd559535244a445da8f"],"quantized":true,"step":8,"rows":4,"pos":268,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,512,128],[1,256,128],[1,512,128],[1,256,128]],"pooled_len":68,"report":{"calls":1,"compiled_calls":1,"hidden_calls":0,"qk_rows_calls":1,"traces":1,"selector_dispatches":1,"capacity_transitions":0,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":0,"row_tokens":1,"update_only":0},"buckets":{"raw512:pool256:out0":1},"entry_count":1,"compiled_keys":[{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s9","sha256":["cf9014dd20b3d968756832d1558996d1c5c472197430a6d63f2c5cb1eba54b0a","1ec733d8ecaf75ad039a670d86a05552b60eae1d19fb1e6b2c3d7072780c8f04","e11507046ad5004fa33ab060f4b472825a64af41cc9ff070069f0f44585b3bd6","1eca4d37efed1c6046b1a9f15f79d1e21df8b5e932b50fef06b7b846f0b6c66f","ef16aa27c770f0e950208c6a296e2e2aec11019c75d68b2d0ef0300dfcd4e826"],"quantized":true,"step":9,"rows":4,"pos":272,"mode":"dense_mask","supplied":false,"kind":"dense","tail":null,"shapes":[[1,1,4,276],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":2,"compiled_calls":2,"hidden_calls":1,"qk_rows_calls":1,"traces":2,"selector_dispatches":2,"capacity_transitions":1,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":1,"row_tokens":1,"update_only":0},"buckets":{"raw512:pool256:out0":1,"raw2048:pool512:out2052":1},"entry_count":2,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s10","sha256":["6141a4a1d42c24caba481bc16517a2897c79ea00a48474cdd274eb8fd559e955","10b83909c4700a66f0192dba91a61bd13fe65b2b533cc0bfa28c157a479c0c39","220407c8b57d4a567662759c1ae003c3eb39ebd0459955f7cfecad2fa93c7b5b","68e2806c3efc0a3e7480f0ff6444a3e0c084b624a6c0d98e3e9bb79fbd45e40a","1ec733d8ecaf75ad039a670d86a05552b60eae1d19fb1e6b2c3d7072780c8f04","e11507046ad5004fa33ab060f4b472825a64af41cc9ff070069f0f44585b3bd6"],"quantized":true,"step":10,"rows":4,"pos":273,"mode":"row_tokens","supplied":true,"kind":"gather_rows","tail":null,"shapes":[[4,36],[4,36],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":3,"compiled_calls":3,"hidden_calls":1,"qk_rows_calls":2,"traces":3,"selector_dispatches":3,"capacity_transitions":1,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":0,"prefill_blocks":0,"dense_mask":1,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":1,"raw2048:pool512:out2052":1,"raw2048:pool512:out0":1},"entry_count":3,"compiled_keys":[{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s11","sha256":["8318e9a144b3ca964be5c6ebfba0ba1f079e7cee3eef75ddb0530a42945b96ae","f874933bf3a329a645263da7b7645871a325b319e0d3c2dc8f4762759eae932f","68e2806c3efc0a3e7480f0ff6444a3e0c084b624a6c0d98e3e9bb79fbd45e40a","220407c8b57d4a567662759c1ae003c3eb39ebd0459955f7cfecad2fa93c7b5b","68e2806c3efc0a3e7480f0ff6444a3e0c084b624a6c0d98e3e9bb79fbd45e40a"],"quantized":true,"step":11,"rows":1,"pos":277,"mode":"blocks","supplied":false,"kind":"flash","tail":276,"shapes":[[8],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":69,"report":{"calls":4,"compiled_calls":4,"hidden_calls":2,"qk_rows_calls":2,"traces":4,"selector_dispatches":4,"capacity_transitions":1,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":1,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":1,"raw2048:pool512:out2052":1,"raw2048:pool512:out0":2},"entry_count":4,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw2048:pool512:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} +{"kernel":"qsa_indexer_commit_q1_s12","sha256":["21591d9a9fe3fdcbb6639c03e3b47ed23b83541ce014bc0139d86ab0db3f9626","35a7ae6b0e6b1eb3ab45331564a9c4a48ea9d3123675806b2c843c13a04bed06","958a0fbdc8b92d372428e59a651be3fd75f5a35f8028319489624ee41357d2d8","f874933bf3a329a645263da7b7645871a325b319e0d3c2dc8f4762759eae932f","68e2806c3efc0a3e7480f0ff6444a3e0c084b624a6c0d98e3e9bb79fbd45e40a"],"quantized":true,"step":12,"rows":4,"pos":278,"mode":"dense_mask","supplied":true,"kind":"dense","tail":null,"shapes":[[1,1,4,282],[1,2048,128],[1,512,128],[1,2048,128],[1,512,128]],"pooled_len":70,"report":{"calls":5,"compiled_calls":5,"hidden_calls":2,"qk_rows_calls":3,"traces":5,"selector_dispatches":5,"capacity_transitions":1,"prefill_score_producers":{"mpp":0,"mlx":0},"modes":{"blocks":1,"prefill_blocks":0,"dense_mask":2,"row_tokens":2,"update_only":0},"buckets":{"raw512:pool256:out0":1,"raw2048:pool512:out2052":2,"raw2048:pool512:out0":2},"entry_count":5,"compiled_keys":[{"source":"hidden","mode":"blocks","input_shape":[1,1,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":1,"label":"hidden:blocks:s1:raw2048:pool512:out0:scorenone:chunk1:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"hidden","mode":"dense_mask","input_shape":[1,4,128],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"hidden:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"dense_mask","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":2052,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:dense_mask:s4:raw2048:pool512:out2052:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,2048,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,512,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw2048:pool512:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"},{"source":"qk_rows","mode":"row_tokens","input_shape":[1,4,640],"input_dtype":"mlx.core.bfloat16","raw_shape":[1,512,128],"raw_dtype":"mlx.core.bfloat16","pooled_shape":[1,256,128],"pooled_dtype":"mlx.core.bfloat16","n_heads":4,"kv_heads":1,"head_dim":128,"block_topk":8,"compress_ratio":4,"dense_output_tokens":0,"prefill_score_producer":"none","selector_chunk_rows":4,"label":"qk_rows:row_tokens:s4:raw512:pool256:out0:scorenone:chunk4:mlx.core.bfloat16/mlx.core.bfloat16"}],"require_bucketed_backing":true,"minimum_raw_capacity":256,"minimum_pooled_capacity":256,"selector_scratch_bytes":1048576,"prefill_score_workspace_bytes":2097152,"rope_attention_scaling":1.0},"frequencies":[1.0,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,6.978305464144796e-05,4.2169649532297626e-05,2.5482966520939954e-05,1.5399264157167636e-05,9.305719686381053e-06,5.62341347176698e-06,3.398208264115965e-06,2.0535248950181995e-06,1.2409376495270408e-06,7.498942409256415e-07,4.5315832153391966e-07,2.738419482284371e-07,1.6548169412544667e-07]} diff --git a/tests/fixtures/mtplx-qsa-indexer-connected.jsonl b/tests/fixtures/mtplx-qsa-indexer-connected.jsonl new file mode 100644 index 0000000..1d6c92e --- /dev/null +++ b/tests/fixtures/mtplx-qsa-indexer-connected.jsonl @@ -0,0 +1,108 @@ +{"kernel":"qsa_indexer_compiled_s0_qk0_step0","sha256":[],"scenario":0,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"ff301985fe4112cb858ebae08827ef7041883c302ab9bd910887bf5c1dec7488","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk0_step1","sha256":[],"scenario":0,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"f10a627725ff0f96c6c279917c3a4bb3355dbd297f089b10d37d8f909a97ea4f","pooled":"d2d333f78733a05d467ed3b40b85cfdc4f56f3269eb8515a354bb04802c7f727","mirror":"24f6967093afef20eb0f8d710519ff51ab5f3333d13c70c50b8df279bd247e3d"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk0_step2","sha256":[],"scenario":0,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"2d5fabd209a767d8b11458d6bea4e3271ae4c09f159a9333a3036c48d5689f4d","pooled":"04266e882b8724f19cf057760f1b14a54adf5a3acae3acd63e496c963ef2284c","mirror":"4aa8988ac4a7e4195f64fd79584713350dfac6ff52f7b0a20b2b040847fcb13b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk0_step3","sha256":[],"scenario":0,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"f464771e330acb577bf9b3740baebb1ca401c553cb6132c1a0267998618769fd","pooled":"24b734bd83a956bb01722259e25dbf34b03f6ac502d86bd589ab0faa0b015eed","mirror":"733fe6e5aa822b541b3b121e2260bde86e2b23e4c9f1e972b15f56ab4bdf465f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk0_step4","sha256":["beea1bf2d506b1740a7efa9b8b0ca228db63526dd0409aa013d09768bc89c44a"],"scenario":0,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"0c6e5a8ec0707afd2c44694d3b3a52468b7a78dcbda3680f60276367d8f2ec46","pooled":"45762700fc8ffacda0f0cb1b2c50b3f693add231e46714ff886f238347c92087","mirror":"af7f7b3de58c098c4138c1b56eb476bda8b3f0946985c49139b9d34e355e48bd"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk1_step0","sha256":[],"scenario":0,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":0,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"61e23f83a21ea312042e66647c7541c8acf28d125bc95cbd751f871cb0b82984","pooled":null,"mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk1_step1","sha256":[],"scenario":0,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"b107dd88b213385db181275588b12b86c38f641541c52317dc9986b93e1761d8","pooled":"ebc08d67636fe6de366a254e307d5eeae71937c427338fdea9b8b36c4a37a17c","mirror":"9f2a5266f7b4d3cfa2fbbfdd2f978fa1ec1c6aa8bab14b31448cc7bd66355c7c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk1_step2","sha256":[],"scenario":0,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"8973c0772d4d2e142377b9a239875f1e8d8ccfb482f5dd0fb35e0f3ed53d0e56","pooled":"6e75a9e030818179937d822de3563bc7df567b5ee469d90bee8f28d6b64c2fce","mirror":"b3550671ee214b92a21f451e28c71a78e7b0fabe14db4391b4db50c7f1ba4592"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk1_step3","sha256":[],"scenario":0,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"709adaa4b5860fd83fe5f833eafa8bcc5a33f5eab54b06f659ecf3d6662dc7c6","pooled":"55c1b7cdc29a81f4b3a484810440c6b0a8c0a3d430e8102f62d5d8fce8797cc1","mirror":"e35eaaae73859101e6150c84a890c3264b12755e8f626025cb2b73021c7ef2a5"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s0_qk1_step4","sha256":["7ef6d183746435bdf48a5cb46138afb5847d43d40f10bb25574233317375dfb4"],"scenario":0,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"e20465d841846b790ebfd4d09b704c8b88475845f2735685459744ca7e7965fc","pooled":"c8569d883013ed76b4ddb12350233a67139224b0068bd8891d31586c2a634b9d","mirror":"617420c268da5c17097292c8097e01e62594b2f9170663fb690a8880ac907e1e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s1_qk0_step0","sha256":[],"scenario":1,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"ff301985fe4112cb858ebae08827ef7041883c302ab9bd910887bf5c1dec7488","pooled":"180c2a02e1b5620ec31afa3daebabde8a981876e6f4e7535b507a6c362df7102","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk0_step1","sha256":[],"scenario":1,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"f10a627725ff0f96c6c279917c3a4bb3355dbd297f089b10d37d8f909a97ea4f","pooled":"d2d333f78733a05d467ed3b40b85cfdc4f56f3269eb8515a354bb04802c7f727","mirror":"24f6967093afef20eb0f8d710519ff51ab5f3333d13c70c50b8df279bd247e3d"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk0_step2","sha256":[],"scenario":1,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"2d5fabd209a767d8b11458d6bea4e3271ae4c09f159a9333a3036c48d5689f4d","pooled":"04266e882b8724f19cf057760f1b14a54adf5a3acae3acd63e496c963ef2284c","mirror":"4aa8988ac4a7e4195f64fd79584713350dfac6ff52f7b0a20b2b040847fcb13b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk0_step3","sha256":[],"scenario":1,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"f464771e330acb577bf9b3740baebb1ca401c553cb6132c1a0267998618769fd","pooled":"24b734bd83a956bb01722259e25dbf34b03f6ac502d86bd589ab0faa0b015eed","mirror":"733fe6e5aa822b541b3b121e2260bde86e2b23e4c9f1e972b15f56ab4bdf465f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk0_step4","sha256":["beea1bf2d506b1740a7efa9b8b0ca228db63526dd0409aa013d09768bc89c44a"],"scenario":1,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"0c6e5a8ec0707afd2c44694d3b3a52468b7a78dcbda3680f60276367d8f2ec46","pooled":"45762700fc8ffacda0f0cb1b2c50b3f693add231e46714ff886f238347c92087","mirror":"af7f7b3de58c098c4138c1b56eb476bda8b3f0946985c49139b9d34e355e48bd"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk1_step0","sha256":[],"scenario":1,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"61e23f83a21ea312042e66647c7541c8acf28d125bc95cbd751f871cb0b82984","pooled":"60942124d47c4ad879c3d966a32ada8e75ddffee0b9f71b11c52f7f3f709922c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk1_step1","sha256":[],"scenario":1,"step":1,"prefix":0,"rows":3,"pos":1,"total":4,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":1,"mirror_cap":256,"state_sha256":{"raw":"b107dd88b213385db181275588b12b86c38f641541c52317dc9986b93e1761d8","pooled":"ebc08d67636fe6de366a254e307d5eeae71937c427338fdea9b8b36c4a37a17c","mirror":"9f2a5266f7b4d3cfa2fbbfdd2f978fa1ec1c6aa8bab14b31448cc7bd66355c7c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk1_step2","sha256":[],"scenario":1,"step":2,"prefix":0,"rows":4,"pos":4,"total":8,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":2,"mirror_cap":256,"state_sha256":{"raw":"8973c0772d4d2e142377b9a239875f1e8d8ccfb482f5dd0fb35e0f3ed53d0e56","pooled":"6e75a9e030818179937d822de3563bc7df567b5ee469d90bee8f28d6b64c2fce","mirror":"b3550671ee214b92a21f451e28c71a78e7b0fabe14db4391b4db50c7f1ba4592"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk1_step3","sha256":[],"scenario":1,"step":3,"prefix":0,"rows":33,"pos":8,"total":41,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":10,"mirror_cap":256,"state_sha256":{"raw":"709adaa4b5860fd83fe5f833eafa8bcc5a33f5eab54b06f659ecf3d6662dc7c6","pooled":"55c1b7cdc29a81f4b3a484810440c6b0a8c0a3d430e8102f62d5d8fce8797cc1","mirror":"e35eaaae73859101e6150c84a890c3264b12755e8f626025cb2b73021c7ef2a5"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s1_qk1_step4","sha256":["7ef6d183746435bdf48a5cb46138afb5847d43d40f10bb25574233317375dfb4"],"scenario":1,"step":4,"prefix":0,"rows":2048,"pos":41,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":768,"pooled_len":522,"mirror_cap":768,"state_sha256":{"raw":"e20465d841846b790ebfd4d09b704c8b88475845f2735685459744ca7e7965fc","pooled":"c8569d883013ed76b4ddb12350233a67139224b0068bd8891d31586c2a634b9d","mirror":"617420c268da5c17097292c8097e01e62594b2f9170663fb690a8880ac907e1e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step0","sha256":[],"scenario":2,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"6f326161c8a5968200f91dd69cd9d7f7c52c6039dacc56d57464cf9bea19e02d","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step1","sha256":[],"scenario":2,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"5d31ec1dcc3ab91d7406ca47432f98f990b540241116a7d41e995c12bed92c3f","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step2","sha256":[],"scenario":2,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"469c2f35a36bd2ce8a3c1fb4dd4b655b1ab7fc751ea7d7284c56c4a9488dbc66","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step3","sha256":["0639a96654a014ca82556057c43bcf7b67ab5b1526cb652ef0933d83deba476a"],"scenario":2,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"eager","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"8c3b30f4a674062f989259c9d3c24d3e0bda509a49760b1e43c9356416eb6b72","pooled":"7296ca48cf9ac0671a3be4420ec09438dd9d882ad5536dd5cec0f118247a2de8","mirror":"67aa80c0740408d92a2c48625ee6bacbd1e4e5ca43f642cc19ddd119cdbae3e1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step4","sha256":["23180a69ac0e0a4e6d142736fd2b11503475a17c68847b178e509b10c147bb22","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":2,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"8d86d917fe5afd4762704aff6492188238ca1f7616c26f70c45ef57a27ef3903","pooled":"5260a93789a9ae15b3770837abd6fd578b83f1580f047352e1f1504fb648eb03","mirror":"9e117c6b375c46602cfef8fefa847e25deb932dfd88dbb0b1841af57655bd173"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk0_step5","sha256":["bd06283445a687232cf0e324f17795d158a94e7f8aa4046eb7e122610c38213b"],"scenario":2,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"1f45f50c636f0104e2de5f06243fbf78e345146998ef9ebb364dec98df268998","pooled":"f45700c256a46548e7a8c9b7db2624912ed92161d48623cc3ed547d22e319723","mirror":"76c7c133045f0697b4026eaf09e06b30afccc50d63474260c85e30264fb9bfbb"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step0","sha256":[],"scenario":2,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"029e717e6ac8439dfde32103ee453b11053260e1668be3512a1da04adfa3d1e4","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step1","sha256":[],"scenario":2,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a304e4af78dded173262aac27bdcf49313ec6ded11d31f056cbeb640ebc34365","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step2","sha256":[],"scenario":2,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"update_only","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":512,"state_sha256":{"raw":"a856dab9ad88e3bbfd380f041184181379928a48f5741a1c93d7708e5a0f07f9","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":"5f521284dae08e8d53a1fdff286f344b8ef19a02bb34c5acaebd056ff1ce3eda"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step3","sha256":["30fe490cce4776c39d51b95f0ce012e5f73f5556795d2f4ab2b66086e0dad240"],"scenario":2,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"eager","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ad9e29955f9ebaa7ddb120233a85ed921bf22a32460c8e4f4e5516e44f37603d","pooled":"1a516f03946eec0843f918f396421ec48c4b093d5db6a2793ccad70dfd4199df","mirror":"a4a00ce864b930b280f05b54d038dd870e83673e11628882265fb662fa5f423e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step4","sha256":["0144b2dfc6a7e7e8142afb86a7cd2b88e2d91aa4884e4c05a55b192d8642b520","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":2,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"a2214c1b4b9ee5bbbd6d372b038c2be7015e62fec38a7731954fda2f38b9873c","pooled":"be56e3c7cc45f7037d9fbaf57e8fc18671a96612f877c66d706d7601b76eb85f","mirror":"fafdd19c2bb12bb95ee3a9d801d9e4f44b7f5355fda0cf1c26a2e8665fa65805"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s2_qk1_step5","sha256":["0d572bce5378a1ee496896767320d4d6823dffe399e4fe0c3f741956dd672b54"],"scenario":2,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"faf0f6dd24bd0061285642b1b0985b594b65507735d8526db5ec69d6a94502d5","pooled":"730feaa349db7a60dea03b1ec35bc2870b37acd48db718c626ef3af27b52e633","mirror":"7928bd111a9bf290ae85d205a17a1cb59179a8ddbf71fee96e59a7927e02edec"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step0","sha256":[],"scenario":3,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"6f326161c8a5968200f91dd69cd9d7f7c52c6039dacc56d57464cf9bea19e02d","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step1","sha256":[],"scenario":3,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"5d31ec1dcc3ab91d7406ca47432f98f990b540241116a7d41e995c12bed92c3f","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step2","sha256":[],"scenario":3,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"469c2f35a36bd2ce8a3c1fb4dd4b655b1ab7fc751ea7d7284c56c4a9488dbc66","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step3","sha256":["0639a96654a014ca82556057c43bcf7b67ab5b1526cb652ef0933d83deba476a"],"scenario":3,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"8c3b30f4a674062f989259c9d3c24d3e0bda509a49760b1e43c9356416eb6b72","pooled":"7296ca48cf9ac0671a3be4420ec09438dd9d882ad5536dd5cec0f118247a2de8","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[4,2,2]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step4","sha256":["23180a69ac0e0a4e6d142736fd2b11503475a17c68847b178e509b10c147bb22","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":3,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"8d86d917fe5afd4762704aff6492188238ca1f7616c26f70c45ef57a27ef3903","pooled":"5260a93789a9ae15b3770837abd6fd578b83f1580f047352e1f1504fb648eb03","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[5,3,3]} +{"kernel":"qsa_indexer_compiled_s3_qk0_step5","sha256":["bd06283445a687232cf0e324f17795d158a94e7f8aa4046eb7e122610c38213b"],"scenario":3,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"1f45f50c636f0104e2de5f06243fbf78e345146998ef9ebb364dec98df268998","pooled":"f45700c256a46548e7a8c9b7db2624912ed92161d48623cc3ed547d22e319723","mirror":"76c7c133045f0697b4026eaf09e06b30afccc50d63474260c85e30264fb9bfbb"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[5,3,3]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step0","sha256":[],"scenario":3,"step":0,"prefix":2048,"rows":1,"pos":2048,"total":2049,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"029e717e6ac8439dfde32103ee453b11053260e1668be3512a1da04adfa3d1e4","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step1","sha256":[],"scenario":3,"step":1,"prefix":2048,"rows":1,"pos":2049,"total":2050,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"a304e4af78dded173262aac27bdcf49313ec6ded11d31f056cbeb640ebc34365","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step2","sha256":[],"scenario":3,"step":2,"prefix":2048,"rows":1,"pos":2050,"total":2051,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"a856dab9ad88e3bbfd380f041184181379928a48f5741a1c93d7708e5a0f07f9","pooled":"f9cd733fe812b92fe690945ffe882fe6bc157455465b92fb03835c8cbfd70e4c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,1,1]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step3","sha256":["30fe490cce4776c39d51b95f0ce012e5f73f5556795d2f4ab2b66086e0dad240"],"scenario":3,"step":3,"prefix":2048,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"ad9e29955f9ebaa7ddb120233a85ed921bf22a32460c8e4f4e5516e44f37603d","pooled":"1a516f03946eec0843f918f396421ec48c4b093d5db6a2793ccad70dfd4199df","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[4,2,2]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step4","sha256":["0144b2dfc6a7e7e8142afb86a7cd2b88e2d91aa4884e4c05a55b192d8642b520","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":3,"step":4,"prefix":2048,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"a2214c1b4b9ee5bbbd6d372b038c2be7015e62fec38a7731954fda2f38b9873c","pooled":"be56e3c7cc45f7037d9fbaf57e8fc18671a96612f877c66d706d7601b76eb85f","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[5,3,3]} +{"kernel":"qsa_indexer_compiled_s3_qk1_step5","sha256":["0d572bce5378a1ee496896767320d4d6823dffe399e4fe0c3f741956dd672b54"],"scenario":3,"step":5,"prefix":2048,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":2053,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"faf0f6dd24bd0061285642b1b0985b594b65507735d8526db5ec69d6a94502d5","pooled":"730feaa349db7a60dea03b1ec35bc2870b37acd48db718c626ef3af27b52e633","mirror":"7928bd111a9bf290ae85d205a17a1cb59179a8ddbf71fee96e59a7927e02edec"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[5,3,3]} +{"kernel":"qsa_indexer_compiled_s4_qk0_step0","sha256":["16401cddf0fd873daf56c0767953ab146104eb28df6615da265d0a1c9920dc44"],"scenario":4,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"8d84f52ea9cd0aed87cb58cc185eadf3631cc729828dfeb252532a0eacb9f2b6","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s4_qk0_step1","sha256":["f74fe032f590f81ed1bbbeb126db2e68cc7a175690d75464dc568a5ca2f8e9ba","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":4,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"1ad1253d29861e1b69b1aa6b286eb8dc932425b5dcdab10df18667ef3ed583f2","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s4_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":4,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"fd1c389d4e82d70f80c4078eec9a9543913bd147ad67a5ae800fbc59e64bab84","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s4_qk1_step0","sha256":["16401cddf0fd873daf56c0767953ab146104eb28df6615da265d0a1c9920dc44"],"scenario":4,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":2052,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"2707aaa25863d0536c0e11e45be769976b70c750f83bfbf44832374feb212ffc","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s4_qk1_step1","sha256":["7fe73a01528bfa9a4af4a4c7a8e73af97a1204baf3fb50f24d90b992554d270d","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":4,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"75d6efe6037704d95e7d5e22036e77cc4bf4e7758c556f6a1d45a74741925f3c","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s4_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":4,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":true,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"bc61ef84c895f56ba226e1759dbb723296ea85151b3f539f580e718e0fbdfbc5","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s5_qk0_step0","sha256":["2a0bd3d32e9af6e30a495d58ae2026970039991997f54f0bf95f0376e3879979"],"scenario":5,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"decode_tokens","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s5_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":5,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"1ad1253d29861e1b69b1aa6b286eb8dc932425b5dcdab10df18667ef3ed583f2","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s5_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":5,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"fd1c389d4e82d70f80c4078eec9a9543913bd147ad67a5ae800fbc59e64bab84","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s5_qk1_step0","sha256":["2a0bd3d32e9af6e30a495d58ae2026970039991997f54f0bf95f0376e3879979"],"scenario":5,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"decode_tokens","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s5_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":5,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"75d6efe6037704d95e7d5e22036e77cc4bf4e7758c556f6a1d45a74741925f3c","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s5_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":5,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":true,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"bc61ef84c895f56ba226e1759dbb723296ea85151b3f539f580e718e0fbdfbc5","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s6_qk0_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":6,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"8d84f52ea9cd0aed87cb58cc185eadf3631cc729828dfeb252532a0eacb9f2b6","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s6_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":6,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"1ad1253d29861e1b69b1aa6b286eb8dc932425b5dcdab10df18667ef3ed583f2","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s6_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":6,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"fd1c389d4e82d70f80c4078eec9a9543913bd147ad67a5ae800fbc59e64bab84","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s6_qk1_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":6,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"2707aaa25863d0536c0e11e45be769976b70c750f83bfbf44832374feb212ffc","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s6_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":6,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":514,"mirror_cap":0,"state_sha256":{"raw":"75d6efe6037704d95e7d5e22036e77cc4bf4e7758c556f6a1d45a74741925f3c","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s6_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":6,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":3,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"bc61ef84c895f56ba226e1759dbb723296ea85151b3f539f580e718e0fbdfbc5","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s7_qk0_step0","sha256":["d9ecf3be4527e0b68e335a3c8f6b28b6b353e94e697763f4b74af3375c1e8c6b"],"scenario":7,"step":0,"prefix":2051,"rows":4,"pos":2051,"total":2055,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f7c5d8d70d8d82c62eb2f9e2270ecc2059ad59e48e37fb73fa4249afa7593540","pooled":"08a20cdcdf38ed81904816ed9982deaa453e1137f7ac1d0b212142e7aec94b9e","mirror":"8b578001ec50f5fa2a995258ee53e72b0d1db74401344ba6d91c03b53e3e1b53"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s7_qk0_step1","sha256":["23fba525826d1843a52bd4dc163081b1a2bd76ee25167fea1d960330d26ba442"],"scenario":7,"step":1,"prefix":2051,"rows":33,"pos":2055,"total":2088,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"acf2c48ae4782b63ae4297cb00dddf949f08096642aae3f4ea03bcaf00f7305f","pooled":"4cf9b4b1f300b69b0b4d198598243109a4cbdd16bbba722538317330321e59ac","mirror":"15acee73d009b343d6f1341824ba969519d1c0d0a5fcd56887fe84a8f5163736"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s7_qk1_step0","sha256":["a8aac2e321fee399c8596fea525c9429e390c9b76c3dcf9620118a0a9549eb85"],"scenario":7,"step":0,"prefix":2051,"rows":4,"pos":2051,"total":2055,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"63961e4c151a7f3504f5c176e68172561897458b861b2719d6244fa6882ac033","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s7_qk1_step1","sha256":["1e0d5826084860d08c35c29d605f4c7d83bd0ea4677415f8c2325154d893ddef"],"scenario":7,"step":1,"prefix":2051,"rows":33,"pos":2055,"total":2088,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":3,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"d7b85217267b5487c0e20f6d542da24107d39ba8e009246af416ca3f9bad3d3e","pooled":"d1952959000b0b9090034baf6b66964216d8220de79f0794e8a6941cbfb1746e","mirror":"30d07d39f4ce102ddec5716a3ea1a50997a15675d2e1bcc7a2aca70a47628357"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s8_qk0_step0","sha256":["f025c4551e90c86823f821e9f4162188e0038e380f0779b841d2218aec29f851"],"scenario":8,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"dc955e1cf1d38ab17d205a222693514b3fc9642a803d9937e6afaa00d9c3bacb","pooled":"3d27b9f5171507a5f60c824a901fc60b5991b53e15e14d4b73b8c166c2c8e6f3","mirror":"a499458acbb8bd879d35a2afdbfe01e38500569d0648ed1044f06cb964ba06b8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s8_qk0_step1","sha256":["297665eee1a6fc9d1fdee35e3bf992aaf3a135a98f96af15b446fe9b8192566e","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":8,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"e991201c55971e4090e8971b240bd3c68450c2f8f04cb8fa8e7c37d0eb5e5e42","pooled":"3f26487f4a54c7b5df6c8249ccca22252331cb3f4cb0d63a028780927bf9d17a","mirror":"6fe11da64f53b004c45f242eab74414633a47d657b50206291dd681c03706509"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s8_qk0_step2","sha256":["6ad74c92df2788e9dd4bef59ce9adf02a043f88de001bc7c4dc62d2b4a972b49","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":8,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"compiled","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":0,"state_sha256":{"raw":"0ee387f8dced4c65dd204b02206e75cbf682b56485c714dc971a023eb00b075d","pooled":"b015c32276025698b98bc755329db5d0eaad6cd9e7cb3afaca2105b29e7bd51f","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s8_qk1_step0","sha256":["366a66bacb85ed92a0a074a9be494ec2aa0481599fe99c077265f645e12dc422"],"scenario":8,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"80d1fd62a688cb23eec870488a32444a4401e2b427ed14cc6a207699ba92574c","pooled":"9bb86fcd11ca33efedd27a547451e8ebb70f58ebf3d45e67a56a75c74d45e9bb","mirror":"8461fd8de94be0f4a4581f0d611df3891ec1a3197217c13c395ac9167ad8353f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s8_qk1_step1","sha256":["e8450635a8d71458c220af4c21d6cb4c8604a3da4e244fdd31754f0a9f8ce304","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":8,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"14ce631483fe42af6ba95d59de0702b7f3afc734996273fce429a283f284391a","pooled":"b8c9748c16bd9c192b761f346c4f2d7bacc0c21bddfdfe7509eaed455aec6495","mirror":"dc0af23d1a0b7142c155c4a84f8a3cf3de1dcf9debab19000f90bcfbdff8288b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s8_qk1_step2","sha256":["bafd1ec66dc01576c1e0c5f3b8d14ace8cda633ad1a8336928e3e2d67c3dcd87","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":8,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"compiled","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":0,"state_sha256":{"raw":"51e0fdb950fb3d9a6cccc9eb93bfa7e722987d4d891f349ab78773806686ead1","pooled":"eff9d4afbc4728e1a662aabfe8be9e5a26a2404fd51a5f4843b44f67b247980e","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s9_qk0_step0","sha256":["f025c4551e90c86823f821e9f4162188e0038e380f0779b841d2218aec29f851"],"scenario":9,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"dc955e1cf1d38ab17d205a222693514b3fc9642a803d9937e6afaa00d9c3bacb","pooled":"3d27b9f5171507a5f60c824a901fc60b5991b53e15e14d4b73b8c166c2c8e6f3","mirror":"a499458acbb8bd879d35a2afdbfe01e38500569d0648ed1044f06cb964ba06b8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s9_qk0_step1","sha256":["269ed3ac081400caff2b0b65a6b8027f5ed06cec3d906b4527a8fd5f1fb7a66c"],"scenario":9,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"e991201c55971e4090e8971b240bd3c68450c2f8f04cb8fa8e7c37d0eb5e5e42","pooled":"3f26487f4a54c7b5df6c8249ccca22252331cb3f4cb0d63a028780927bf9d17a","mirror":"6fe11da64f53b004c45f242eab74414633a47d657b50206291dd681c03706509"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s9_qk0_step2","sha256":["147d3bc041a15a1809ea6f1c5653ee0998cfca4f4db19f0cf0645447b75a8053"],"scenario":9,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"0ee387f8dced4c65dd204b02206e75cbf682b56485c714dc971a023eb00b075d","pooled":"b015c32276025698b98bc755329db5d0eaad6cd9e7cb3afaca2105b29e7bd51f","mirror":"945ef420b617ee60e8f6dd2877e77123a1bd294abb9721330f3e4be2cf72fdf6"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s9_qk1_step0","sha256":["366a66bacb85ed92a0a074a9be494ec2aa0481599fe99c077265f645e12dc422"],"scenario":9,"step":0,"prefix":2048,"rows":32,"pos":2048,"total":2080,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":520,"mirror_cap":1024,"state_sha256":{"raw":"80d1fd62a688cb23eec870488a32444a4401e2b427ed14cc6a207699ba92574c","pooled":"9bb86fcd11ca33efedd27a547451e8ebb70f58ebf3d45e67a56a75c74d45e9bb","mirror":"8461fd8de94be0f4a4581f0d611df3891ec1a3197217c13c395ac9167ad8353f"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s9_qk1_step1","sha256":["953926e4283dc7a0b2eafe0c97ac6178cf13a87f58e3eb71e087cf940471a8bf"],"scenario":9,"step":1,"prefix":2048,"rows":33,"pos":2080,"total":2113,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":528,"mirror_cap":1024,"state_sha256":{"raw":"14ce631483fe42af6ba95d59de0702b7f3afc734996273fce429a283f284391a","pooled":"b8c9748c16bd9c192b761f346c4f2d7bacc0c21bddfdfe7509eaed455aec6495","mirror":"dc0af23d1a0b7142c155c4a84f8a3cf3de1dcf9debab19000f90bcfbdff8288b"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s9_qk1_step2","sha256":["4ff0a77c761c016c1a062f8ae1c610ab1cb7f76218bf60464bfec8caad650c9f"],"scenario":9,"step":2,"prefix":2048,"rows":2048,"pos":2113,"total":4161,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":8192,"pooled_cap":2048,"pooled_len":1040,"mirror_cap":2048,"state_sha256":{"raw":"51e0fdb950fb3d9a6cccc9eb93bfa7e722987d4d891f349ab78773806686ead1","pooled":"eff9d4afbc4728e1a662aabfe8be9e5a26a2404fd51a5f4843b44f67b247980e","mirror":"5a73a056c0602165a5714064a38b67a6fbe28254fe3dae2108434744a14022f8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk0_step0","sha256":["9078421a9972f21b31bea55753e1555225b69bd76e5b32b82df5e5f45f80295b","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":10,"step":0,"prefix":32768,"rows":4,"pos":32768,"total":32772,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8193,"mirror_cap":16384,"state_sha256":{"raw":"461b752b59a368b90645971736fcd03f008de517d36e51375103f574fcf23350","pooled":"3b4bf8d8b656db744ba5d99dde26f1b0d8770de2813737ad09b5587b779275fa","mirror":"7ee88bccbcf66d0cea82970c82a237e48af96c2e34733a2373b7f49f4b1758bf"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk0_step1","sha256":["c5887b8b5eee1f116f796b99540576dcf5d6423e9b7db4c9fc1ee0a204eec612","3513f7981d1ead42bde088485afbba413d675b83c061c6362634bcb044bf8613"],"scenario":10,"step":1,"prefix":32768,"rows":32,"pos":32772,"total":32804,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8201,"mirror_cap":16384,"state_sha256":{"raw":"e707e6b3cad911ba9773a13a4970be1688602a993cf1053aad7b46029354c3e0","pooled":"e99fdaa5c029f2a59816a3796e0f73e0c4fb00a558314edc03fac5bc20a157b8","mirror":"55d499e7730391c1b8130662a3287bfbcf1a9c117fb59496a51f1742f6cfe207"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk0_step2","sha256":["a65978ba1afd404995827158b83507be27f74af4ae1a5b70cfc07649052727fd","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":10,"step":2,"prefix":32768,"rows":33,"pos":32804,"total":32837,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8209,"mirror_cap":16384,"state_sha256":{"raw":"fed8f31a1dc1b815949b04b29d0a834bbb45f144d2f0cc449d438fd3c1289e5f","pooled":"2aca8b8a0b12770aae7db15287ad9b925e4b599c9adc75555e098f85ed57fb53","mirror":"ca35dccc995433025b7ce30a4b202fe413d3785d4d531d0dc232e336af8bba2c"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk0_step3","sha256":["f91d3b1864e1e3c3b650695e27a312df6676d22a52eac505147405c57c39dbdf","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":10,"step":3,"prefix":32768,"rows":2048,"pos":32837,"total":34885,"supplied":false,"stride":640,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8721,"mirror_cap":16384,"state_sha256":{"raw":"191c19324e7006a53a9440f4ecbb6ba8eb139315f59ac06b02dcb038a9ed4a47","pooled":"7db36afae6159e84efa3cc03b713e9471fcc7497dd7018541c5cc363bbe93665","mirror":"1c160fc21de4f18cb7b8439c114a0793aedfbb8efc9efde6e41c79d0cbc02cad"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk1_step0","sha256":["99b7b7196c510b2510c876244a85f98837f6d21b88b469864b1c6b265faa2749","ca70f930d90daa0779bf55917b79353c92a092c4f05b52ed041cab00ce2ab4ca"],"scenario":10,"step":0,"prefix":32768,"rows":4,"pos":32768,"total":32772,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"eager","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8193,"mirror_cap":16384,"state_sha256":{"raw":"c5331572dd083baedb21c3d0e37b486e0f761a23b3d5c4b9212fa323e4d7b8d6","pooled":"0a8f56beafcb3879ccdcf56c63146334b71341f2464a9d3da3c92c8836649a3f","mirror":"f8429f54a6d3160b5d414bf948d452974eee7d49de2de32f9636c08d2775ea66"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk1_step1","sha256":["524b668a4c66320b5154ec2d2ecf0e0cec24e4b06d3d052ff892f06e9ab37fd4","3513f7981d1ead42bde088485afbba413d675b83c061c6362634bcb044bf8613"],"scenario":10,"step":1,"prefix":32768,"rows":32,"pos":32772,"total":32804,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8201,"mirror_cap":16384,"state_sha256":{"raw":"4877026332711a2480767ed3d2960d549d1c4cbb940446805fc8285aeb225908","pooled":"369c2a8d044527676792821873df2e07783f260330171f7489720ef68d0fef2f","mirror":"5a0139e939e535d9daac47db0f40e6d8f0453d49b3ad07debedb51d5910db366"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk1_step2","sha256":["e9fe32fc54604b47a5138d573a23a037ebf6dd2c13b737d203d354e7ab9fc81e","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":10,"step":2,"prefix":32768,"rows":33,"pos":32804,"total":32837,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8209,"mirror_cap":16384,"state_sha256":{"raw":"7a43fb804a1e929d55fa93a177e237992e9b4dd26c0dc71e96e5d5b44302459d","pooled":"89c4ec6677a1e2089ceacc23aeb89b849928f5cdccc481d5436fb34301882fbc","mirror":"b91647e59b6e885a1c6b0103a73435f11f26d89559633182cb9179b7061d751e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s10_qk1_step3","sha256":["64759e5faff976a93644853ecb9878fed2d4f99303f5ad57b9961d82fd06931a","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":10,"step":3,"prefix":32768,"rows":2048,"pos":32837,"total":34885,"supplied":true,"stride":704,"options":{"fused":false,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":32768,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":16384,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8721,"mirror_cap":16384,"state_sha256":{"raw":"60922885ae92f3fca6eeb90206baeebf9407b578cd777b49a24bb053f0112edc","pooled":"cdb7b45929bc427c63cfab385f62681645211d2a044d794c4972891f1dd3b547","mirror":"6de74b8da76900b726f5b1fa0e8f1d539cba361c4270b1a47a02832db2ea74a8"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk0_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":11,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"ba6b80a5faa79261f9ae8462535d4dd41d275db58a66cbecc73db8c8b84ab423","pooled":"787056798d8a8cf536e886ae96991a2b111f90875a398d547ce0189b172249e5","mirror":"8ba548a2edb076d56a991e4784967b8867f9cd649418d7a6033fd52dbf961295"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk0_step1","sha256":["11ec601a058b10a513b5e8718ce69dd5076ca079c3aeba7a253758514e074d68"],"scenario":11,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"cbdf6c6432fa318765aed40f9d4a06daeaef888b9de0c120f7c89784869d15ed","pooled":"4c58d4908e30d4a8e6daa5b77c92558d87a3064a49fb138acd43114a88d42c19","mirror":"e3ef3c7009bb7da474518ce14e2762d81cef9362d22ad5b593ca71e4503deb8e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk0_step2","sha256":["3d3a1eed641e8423f237f5f936adfd6f4a3556d4f46f78cb06464fa0889e7ab7"],"scenario":11,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":false,"stride":640,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"98c4a07efd9d43cca62d30e8e45fdcaf65be3db5f60fe853aafc44d62a40e3e0","pooled":"0258387e888afcbb6e8f4f6ee668696bbd2e017d0eaf32d4e3222e77563f9672","mirror":"8f68f97961e7fb1fd396874229b938c33801288dc98aa4be882d1f4bf42464a1"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk1_step0","sha256":["96e275fe1077a561087599eff988163ee56871b6c81eeb4a2579adcd3e20b237"],"scenario":11,"step":0,"prefix":2051,"rows":1,"pos":2051,"total":2052,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":513,"mirror_cap":1024,"state_sha256":{"raw":"f3ad24fecf8bf4138bc2368efb0b66da555bd551d12422dfe8810a8d555d22c6","pooled":"24e2dc64dcf6c9e97997e99b90c439c97908083f667d2b5e6d770c5453b256d2","mirror":"c8737f4f8be6be4df02e9dd69d6a1e4d8b75e45b3229b7d2f97b03783e38bc6a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk1_step1","sha256":["6d110d39903dbfa7f3a9c52b81db2216cb7a26ebcc61e6575eedd44cab71f7c7"],"scenario":11,"step":1,"prefix":2051,"rows":4,"pos":2052,"total":2056,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":514,"mirror_cap":1024,"state_sha256":{"raw":"61f13ffeb583d2fccc87db807373e04a9878e9b8f342aa8b05a624fd28b2e3ee","pooled":"793a6566ddc8a238fb82e06f6442e2886f9744955fdeb07a89db696454e7ba0f","mirror":"47aede42ba259e18d9178ad67021518759c413343daf120968b8740a5c59e52e"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s11_qk1_step2","sha256":["b412401d3fa8c2c03ce906c1a3a09db6c30d6dc33f31c9346057473a86ee930c"],"scenario":11,"step":2,"prefix":2051,"rows":33,"pos":2056,"total":2089,"supplied":true,"stride":704,"options":{"fused":false,"prefill":false,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":99999,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"eager","tail":null,"raw_cap":2304,"pooled_cap":1024,"pooled_len":522,"mirror_cap":1024,"state_sha256":{"raw":"0a314be0b97d39a64f22288519d906e98c9ff745955967101150092424c6201b","pooled":"9720ff694ffba0c055348210e7e15aadb640b10a6b09cdf21f4a4e13235003e7","mirror":"ee4a51db33b180c509f4d82020f934c8dc14945daeda1e822eac28fb3048105a"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[0,0,0]} +{"kernel":"qsa_indexer_compiled_s12_qk0_step0","sha256":["b2de04c3fbdfd21e3f1832662d001b08f5de47568b30da56ab8466654cef42de","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":12,"step":0,"prefix":32768,"rows":2048,"pos":32768,"total":34816,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"compiled","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8704,"mirror_cap":0,"state_sha256":{"raw":"928b386d1b991513c8e665d607b7130b1de2085f40da88e38021b246e9de7911","pooled":"5e2f18587485deff31dcb059a2d5bce9f04a528e4a3f4e6e48341514576712f3","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s12_qk0_step1","sha256":["e0bcd38a6708c47bad29ce98e8d5b7a81cb8384e40eb2715ac02c6697aedce98","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":12,"step":1,"prefix":32768,"rows":33,"pos":34816,"total":34849,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8712,"mirror_cap":16384,"state_sha256":{"raw":"85f49a3b81610783c6762cfd50da30e9895f388f554fad0b4286ddbce03e0e2d","pooled":"5d101aecee6ef4fd72882d3763162ea5f0f923ff494291a1904bdf54dc567776","mirror":"8d9a511481feb99794bd5d250824cdc5ba0fe13dfe1dd94a82a62c6b6576dce5"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s12_qk0_step2","sha256":["0460fa1dc270929ba241c86d6c266b7cb3a1e339b4ad4cf8898d287021d44e2e"],"scenario":12,"step":2,"prefix":32768,"rows":1,"pos":34849,"total":34850,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":34848,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8712,"mirror_cap":0,"state_sha256":{"raw":"e1efc5c70d31984dda3df84c29c6f887b63ae0d2240156d0f47e7d706092b867","pooled":"5d101aecee6ef4fd72882d3763162ea5f0f923ff494291a1904bdf54dc567776","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s12_qk0_step3","sha256":["a1364af2cdbb8710586e8de98e725177b4d8acdb2c0cc53a257c56bf472efd3b","116e5f91ad06e205d6e4f886de82441898d34ba32c67432b3c08f11821ff34ff"],"scenario":12,"step":3,"prefix":32768,"rows":4,"pos":34850,"total":34854,"supplied":false,"stride":640,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8713,"mirror_cap":0,"state_sha256":{"raw":"eba57fc02bd88067c6d5fe61b3968802fc58a918ed442b4228c8a6e7e50c98b1","pooled":"e1ad0ad30654e79e4928e07dec89ada7efec7a6bffa7425d7123b2d72fdae4f9","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,3,3]} +{"kernel":"qsa_indexer_compiled_s12_qk1_step0","sha256":["d93dee277e359544e9874e242e189eb91cc096c50c6ae9e616c9a1390f8b9ddf","e678838a4ec435fcfc028f3b3de044af1e44847e3b5d6e73ea19e21788531e2d"],"scenario":12,"step":0,"prefix":32768,"rows":2048,"pos":32768,"total":34816,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"compiled","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8704,"mirror_cap":0,"state_sha256":{"raw":"87e8e5cfccfe26b639952e7bb727274dceab1ef656d2d5412e60f7861e24413c","pooled":"ad2e1c72774b4ee141ca03a0a709bf2b08965ca71b8dfd0c8a633f9c0202cdff","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s12_qk1_step1","sha256":["d27bf67f8a9038956a8830e58af233dbb7df51abc7b5db7f1f18ffef2b00cc81","2ec95dc7fdcf3f9adc297640b4f19d88e7b259e884d817c33e17cd0f1d5c3625"],"scenario":12,"step":1,"prefix":32768,"rows":33,"pos":34816,"total":34849,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash_prefill","lane":"metal_prefill","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8712,"mirror_cap":16384,"state_sha256":{"raw":"a89a68c4056165f18771596ce932cd07e874c294016b1cced515eb30e8f90b07","pooled":"6a8a7d9825807969ec303253c13b8be5d35bad73052291e14ba4f0f245ee110a","mirror":"38a67b9c09bf39ffc6c4440fc78555746a973474382dcf3505452eb217c3e2b4"},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s12_qk1_step2","sha256":["73e506c42df50752af55b5b2f8a7042db09d3c32d9947d1a7ef2972f97d9597f"],"scenario":12,"step":2,"prefix":32768,"rows":1,"pos":34849,"total":34850,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"flash","lane":"compiled","tail":34848,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8712,"mirror_cap":0,"state_sha256":{"raw":"7a0925aab2d2735742851267e58937ffe04cb39dbe3646176e3120b392648186","pooled":"6a8a7d9825807969ec303253c13b8be5d35bad73052291e14ba4f0f245ee110a","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s12_qk1_step3","sha256":["1233c0c3a770a2e3415d4a804cf5610a54d0639244a488cb6eeb73e23c647797","116e5f91ad06e205d6e4f886de82441898d34ba32c67432b3c08f11821ff34ff"],"scenario":12,"step":3,"prefix":32768,"rows":4,"pos":34850,"total":34854,"supplied":true,"stride":704,"options":{"fused":true,"prefill":true,"phase_prefill":true,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":true,"gather_decode":false,"gather":true,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"gather_rows","lane":"compiled","tail":null,"raw_cap":65536,"pooled_cap":16384,"pooled_len":8713,"mirror_cap":0,"state_sha256":{"raw":"ae5cefa080e8b5ee19e0bf9c3f86c3a4293b07453a47e0030ab92cebe685bc10","pooled":"e76d4e10990550ee3b658c783983e94e87e8af06632553f77255ba6dde3bd6e5","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,3,3]} +{"kernel":"qsa_indexer_compiled_s13_qk0_step0","sha256":[],"scenario":13,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"ff301985fe4112cb858ebae08827ef7041883c302ab9bd910887bf5c1dec7488","pooled":"180c2a02e1b5620ec31afa3daebabde8a981876e6f4e7535b507a6c362df7102","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s13_qk0_step1","sha256":[],"scenario":13,"step":1,"prefix":0,"rows":2048,"pos":1,"total":2049,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"485887fcd89cf971d9233e18884b162c81cd7ef445db49f17914aa1120c02b33","pooled":"379d548fcd3812dee3a5068a7c206315f570d325c0984ebb9d623933174dc154","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s13_qk0_step2","sha256":[],"scenario":13,"step":2,"prefix":0,"rows":1,"pos":2049,"total":2050,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"68b069516a9a471f43f5098bfce8a157bd1287f558eabca43b54e2aa54f7cf3c","pooled":"379d548fcd3812dee3a5068a7c206315f570d325c0984ebb9d623933174dc154","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,3,3]} +{"kernel":"qsa_indexer_compiled_s13_qk0_step3","sha256":["914ff295fed4eb490a1c8cb8b4903148c50e8595c13f4e8c4896eaad6e51e22d"],"scenario":13,"step":3,"prefix":0,"rows":4,"pos":2050,"total":2054,"supplied":false,"stride":640,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"6378578c935ad1bf7fe8ce37343ef2c136b0ae333fa1bca7f63dd8051f00700c","pooled":"cec822e8bc1a3eebe7a5e332c9ea1f2fd59418285e1db23d8c73525281d9a5c9","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[4,4,4]} +{"kernel":"qsa_indexer_compiled_s13_qk1_step0","sha256":[],"scenario":13,"step":0,"prefix":0,"rows":1,"pos":0,"total":1,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":256,"pooled_cap":256,"pooled_len":0,"mirror_cap":0,"state_sha256":{"raw":"61e23f83a21ea312042e66647c7541c8acf28d125bc95cbd751f871cb0b82984","pooled":"60942124d47c4ad879c3d966a32ada8e75ddffee0b9f71b11c52f7f3f709922c","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[1,1,1]} +{"kernel":"qsa_indexer_compiled_s13_qk1_step1","sha256":[],"scenario":13,"step":1,"prefix":0,"rows":2048,"pos":1,"total":2049,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"035c56d9ac088aaa6b0dabba3ace79a18bc98ed70fbb1b134602d5fa18fa337d","pooled":"b134c4003a706a227d5bd079fe5b82ee3e30825045adb5bd1d37491d92154a09","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[2,2,2]} +{"kernel":"qsa_indexer_compiled_s13_qk1_step2","sha256":[],"scenario":13,"step":2,"prefix":0,"rows":1,"pos":2049,"total":2050,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"none","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":512,"pooled_len":512,"mirror_cap":0,"state_sha256":{"raw":"a9d1102696d6a682b70cfa3ee8485bb03c1dc341b62e2c4c7f9586775473a9b2","pooled":"b134c4003a706a227d5bd079fe5b82ee3e30825045adb5bd1d37491d92154a09","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[3,3,3]} +{"kernel":"qsa_indexer_compiled_s13_qk1_step3","sha256":["0958f408464c61a91fbae747f86719b1e431201b975730ea899aa771eb0e4aba"],"scenario":13,"step":3,"prefix":0,"rows":4,"pos":2050,"total":2054,"supplied":true,"stride":704,"options":{"fused":true,"prefill":false,"phase_prefill":false,"prefill_min_rows":32,"prefill_min_context":2049,"prefill_workspace":134217728,"tile_rows":0,"flash":false,"gather_decode":false,"gather":false,"gather_max_rows":8,"gather_min_context":0,"tf32":true,"compiled":true,"prefill_compile_rows":2048},"kind":"dense","lane":"compiled","tail":null,"raw_cap":4096,"pooled_cap":1024,"pooled_len":513,"mirror_cap":0,"state_sha256":{"raw":"0310860cb0cabc9a77b5e221e1a56c02784aeda6e111efbfa5ee4f0f48580f79","pooled":"3b26dae7e5c581af337dd69c92a56410abcc2cb2e0dfeaf2da9d94c03c92aaa1","mirror":null},"frequencies":[1,0.6042963862419128,0.3651741147041321,0.22067339718341827,0.1333521455526352,0.08058421313762665,0.04869674891233444,0.02942727319896221,0.017782794311642647,0.010746077634394169,0.006493816152215004,0.003924189601093531,0.0023713738191872835,0.0014330126577988267,0.0008659642189741135,0.0005232990952208638,0.0003162277862429619,0.00019109529966954142,0.00011547819303814322,0.00006978305464144796,0.000042169649532297626,0.000025482966520939954,0.000015399264157167636,0.000009305719686381053,0.00000562341347176698,0.000003398208264115965,0.0000020535248950181995,0.0000012409376495270408,7.498942409256415e-7,4.5315832153391966e-7,2.738419482284371e-7,1.6548169412544667e-7],"graph_counts":[4,4,4]} diff --git a/tests/fixtures/mtplx-qsa-indexer-prefix.jsonl b/tests/fixtures/mtplx-qsa-indexer-prefix.jsonl new file mode 100644 index 0000000..c325bb2 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-indexer-prefix.jsonl @@ -0,0 +1,306 @@ +{"kernel":"qsa_indexer_prefix_bfloat16_0_0_tf1","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_1_tf1","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","bfcf11fa7d922a33914fdf17f071cba0674335ad1a1af92076c91987694ac2f9","9bc04430322c6ead599d64fc89afc8de122bc28eb5dd3322603b3549897a55f8"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_2_tf1","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","7474800cd5f4bb176990cde54a0ca1388b8e81aee7e2c62cbcbff84334f145d2","4acc7185ab00b7b8bdef03a91854f197c12b2b98237b4db0a83651d180cac87c"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_3_tf1","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","cfd8cff8d19f023cbf8626024bd8b537ee0bb29e0e5e1e2945e730c255a0d31d","61adecd082e45582b51d57a478e550addec0451bb3ad62b863a55ad6d2ad44b5"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_4_tf1","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","cfd8cff8d19f023cbf8626024bd8b537ee0bb29e0e5e1e2945e730c255a0d31d","61adecd082e45582b51d57a478e550addec0451bb3ad62b863a55ad6d2ad44b5"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_5_tf1","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","7213d1287346e06e174a728809431dbbea9543e60949ddd349e657d889207347","cf4b051c216134a067921baed3670462e3dbc76fa49a3aba9b88afe8ba3d0bda","4e0f7af1ae870b0697dc207c7cd6dead0111a1543b114548316476e41ded4ee7","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_6_tf1","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","47e6bb8f01f601578f11881840900e8f6b57907902e53c81a7a6973264f69422","b324870886e0cd9cabafbc2ccd8cd3c2fce90a82154611352f4074d388ee6ca0","d074bcf2052529dd2bef23331827ab0b08082f1da52cacd2bf896a3118d9c901","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_7_tf1","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","7b80f812101eca7500c2e594a619e16b1edb183359f67adf0ea7d84143efbbc3","4fef378724a09e7980d3d4949fe606af81a38edb3a31249a7191d359b236acbc","9dd444364caac16d58e1c23eb0a373e03b73c28c9a20978ed092b1031872db23"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_8_tf1","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","9143d794d1e3876b55c23570365201be29895fca2a120d2f2861147da44538f7","de5d9bfb264cb084e30c7f6b1272a30abf195da42cf52b582a3f0013fc38cdf6","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"bfloat16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_0_tf1","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_1_tf1","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","ccad3205ac4325e15e33433e88353d80205864d503fb1b0cd9b850340ff2f2d2","047120afc607006eab70a7859119e606a19ddeb7ed9dbe64b2274becbfd4387b"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_2_tf1","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","2376fef1e6e2e4d9e8369b4ab5332aeef88e253cdc12e98c66136e97bb6fc817","de6a93ca3fbc998868a62286730a902e58e40b30ccd19493b274d400b94338e6"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_3_tf1","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","ff1ac9948628c1de8e29e48c675ee5f676b1f38ac23dac3867d9c2d1e9d4ac2d","9a5538271f92867420a43b0287b5d2dbba0edbaabb02dcef52c9bbb665bc990d"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_4_tf1","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","ff1ac9948628c1de8e29e48c675ee5f676b1f38ac23dac3867d9c2d1e9d4ac2d","9a5538271f92867420a43b0287b5d2dbba0edbaabb02dcef52c9bbb665bc990d"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_5_tf1","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","f1580a37865181d83f1de3d23a2e9eb04bf856e1cd9bb2bd12470b392e7cfae4","ecbc2ccaae7253664f542700d90ab7e195eb6d4877f72d8509559e17c2ab28b6","740b43037587b980724c08ffff40cc3cb97c316013517f261091307cdf4b5920","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_6_tf1","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","517e1ad1d661c55b71b5513d3383db98e284711a867c9a48483c5a58e3ec2019","95f24c31c5b239ad6266446e28c123858a003917f3cfb622b58fe18f76b8242a","0524a8a5d0768a518d731c4fb2834fac819033aca064a2be34efc4a4ee50633c","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_7_tf1","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","e9e941290ec0b630795fa53dfe30c1a447983b5b554ee3b185fefa0b0ca2e3ae","ae5e96365ab2049b2509f8e7a987c46f822e07b71af1ca50a6946fafa8c98ea6","99095e1b718f98271c319c45b693bcec8d2b149e60f5de0fbeca690baf538f30"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_8_tf1","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","edd409b6fec1f2eb8774953b5c15a7e45d0c918348ee1f92050469c47de28cd1","5df93170882fc7a1be7b2282bb0a8eedd00daf86d963cffabee10a804a75ee26","4b32139aa09301d640f3b2b10a61cd0e7c6dc4398d7a6a07fdf63e0645107cb9"],"dtype":"bfloat16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_0_tf1","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_1_tf1","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","9a489a59c355503aeba371e4b7965e2809b105f3bfb8da01f46a263ff015855c","caf72e8c0408e3b95417a60e4a15175ea669b3060926f0b3a98adc17f21f4116"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_2_tf1","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","2e4086cec64459fb6c65723b3c26d52d6c4039b98d22e98f6b608b42a3ea0be4","ed92324b028c89f6e0d63e1ff5e571c075e42ed0142ade2fc8438ccfaa9c7a31"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_3_tf1","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","39720aeb44bb64e7a14876e2cc00b850ea457e33c78debc954575eea7ba386d6","efb273828e41f03a91d849b878bf6dfd2b981298adbbc16c76edc872aae47a06"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_4_tf1","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","39720aeb44bb64e7a14876e2cc00b850ea457e33c78debc954575eea7ba386d6","efb273828e41f03a91d849b878bf6dfd2b981298adbbc16c76edc872aae47a06"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_5_tf1","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","9f40df80364f637517a124848910e638ce1030c70c47b1fb47109c7217aa39aa","ec0edb7ab825cb894949346908bd1766d64949a362a216196339befbb0b0ee01","6a7f80069462f1490966d298c906de9af0a720eb887792a5cbe67ac947c0e83a","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_6_tf1","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","389aef5a553fd41652c7c9b8b29abdc8eca81cf3dc150a510aa1184234c57b74","834fbc5c8f0c93082b6b5119e693f3a29c2428055a599f7c35dc6f1d1895296b","7e58f67f45e83d049e138e0931c17045f7182d180ce6d886d0298035735f1e00","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_7_tf1","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","6f295da383eea82c7a45cf666f1ba86f55d098eba8a26a0046f170571862887f","6797ad532503d401291d69263ec976dc704b96d066fe56440e6d6caa50de9a18","3a96aa3a2fd7a8438158169ab60a518c48f12774e40cd53c8cd27838302baea9"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_8_tf1","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","c7b19285f051f00eaddbb3283a2e7f3ed47adf6b49c876f2985b742b0b9d6ad4","f318bada2d752785c11c5337001509adefe1d20e6548046c091630a64138b287","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"bfloat16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_0_tf1","sha256":["590a84f3e42af2539373b66daae1b128e5c58a1c100193b0be1cb93fc4f5caff"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_1_tf1","sha256":["f5611989bbfe0064a8ee74af0e89e1d4bea9eec59217b401c0d5d806a0172b71","79a7c74dce1d47b6892f2745ccf88e6c7068317ae8748854749b7de85f3e9ffa","4284f4e2748af9d3716acf3a0d3d6792ee3636114278907d2ac650b2ea1b4ff3"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_2_tf1","sha256":["bf6944d4c901741e63eeb743b0b5d5ed1d5c61db59bcaeb2a028e6561dff1407","8c636ce99c4dcc7232673e2db3310238db8152b35ecb65b314d5427dd2c761ac","ca60a86ffa04083c843bfd9b3182c8ba991cb54ced277fcad72b13bcd585112c"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_3_tf1","sha256":["f5573fda565ca99c7e4eae7f0a08add6a3f5b7f74386e6fffa61aab772ef93a0","cc050fc0b0830aca8bd8128a22fdfdaf7d9a1226d49fcb59bdeeef847650ab97","370710f23412b379240bf8a86491c15b4743d2dbe46c7b51347eb92b259d0376"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_4_tf1","sha256":["2f72260ef1487575d0c985ba6f566d5fe9304946540c82a3b92d1ace97316181","cc050fc0b0830aca8bd8128a22fdfdaf7d9a1226d49fcb59bdeeef847650ab97","370710f23412b379240bf8a86491c15b4743d2dbe46c7b51347eb92b259d0376"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_5_tf1","sha256":["c32ae33db38fbaefcbc9a1acc91e8d5a53ee362542e6f5de0b93a7c2e5c9db95","7bc3010cc7d4b98e965cd395a8d82f79e4a72a5af796794ea7fe3f59e87a87dc","50d58dda62c54c40ea2363bc6efe8941ad9935adb26434e2db8773e8fc5df26b","0ffcbbdf0733e00523ca4478b331ae64a737697b1a8266eb8861500b9c55865e","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_6_tf1","sha256":["4352725575fc1c26d12e1bac80295e503686251e224251f81a9e8175bf9f3f9d","3f2175fb19167a43f1e84dd2d1a7a5de7a3f912b44a9883c3d00011a94c0f8ff","ec4fba276c86903d630a0dee03fad57055862fc2c38ae596956b67bddd2f5d8e","0f79cba1fc4c811dff3b0255043539200a037ce3b3c95380a731c56788131350","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_7_tf1","sha256":["75720d8510d0e92c0bc5881281f07b5cf0d10cfcac757af5eba030b6c5b3378c","23c9735c535c3d0630da10f4623bb9e03383c224c32f3be7f3abc48c16925a62","b8b72dcbfd97792fe2428752d0f9c53e7033aaf0d831075ff7a19470ba58f36b","a397cf45971bb60b2751f3c861d2d4e3919a6e920ef9058636f6b7ae1c341a89"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_8_tf1","sha256":["d485add7558043ad6a910ea9f0e77a8aea53bd2d3bc767b1ce65aef9df3e5b18","59d22d477b1d806c7506dd0106399c605b08e35249950e06fd42b2d07ec68fe0","c9b90567f8cb829d91e91101b848562de1884c4fecf791920ce3fd0fc8f3bea6","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"bfloat16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_0_tf1","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_1_tf1","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","b1fd045ee8f9eefcee4e50fd22a14524aa00ea1ceb881186038cc8c168de7bfb","8729e0252cb21bc306eff1fd2d4520699924b6c15824b76a5748bc6d6166dad3"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_2_tf1","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","6be71cd792f558346998f223a67c343ead0f5b143cbc21897188424a35fb39d7","0f4dbbcaa8b7eae5fe4b9b0038e049272b032b80201649b781b266fa200c63f8"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_3_tf1","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","68bab0e27691149b285c13b3eb1941a296058dcdc48d3e63825d2a4d473e90aa","8b8c4e5134ad161b671548fb879c9def3d379d58b3e38e57461453a216151433"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_4_tf1","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","68bab0e27691149b285c13b3eb1941a296058dcdc48d3e63825d2a4d473e90aa","8b8c4e5134ad161b671548fb879c9def3d379d58b3e38e57461453a216151433"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_5_tf1","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","5f16f5ce1175c535bbad2972e7f235eab5891040cd51f63d687f9c0f4950b9fb","cec2edad1784b1588a8515502f65ef77bd0e42f4aec080dcb32672a3c64cca82","218bb82e344f82ea8bfa788efbd77d6846f1914d1ab48c81d3c539d7d328c8c0","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_6_tf1","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","2e0fb12d2c8ccda969af50b283f7e9e855d57f299d9e4e0bf4c7dc966eaca691","6bea09776e8ce59aeba86756c21e1c751e0d4cdfaed1c703ad310f68c35cf8ce","abf215d604555090f386496d361685a65fb34fce30180f266db9a29621e4fd60","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_7_tf1","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","909babbb7575212dfb6dd8f424dd204b0da568c35a2b25e6fcd2de4d16286722","c81110d008481635ccb0cb3f0f42d594403d14044f88e2bce2bc71cc0b8ac94a","dae147158277c6dfc8932315b60a2d8935b07dde13a216ebccdf12b7be522532"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_8_tf1","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","7964b1d426be71c65a3fc00d903c2f994a24050a62b96d678d3ac393b2d451cd","a6bfd1f2c36616aeb3e0d77d38ca04495de6a68e7f1baa3e8dcdb5fe6b1f2638","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"bfloat16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_0_tf1","sha256":["60363b8182d3df22add1b82944379e7ad8f873055dc5867593bef8d3c17de351"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_1_tf1","sha256":["c84557f93f5cc944b0494f1278cd3f6b43a4b8e50d674f157a9099b2da7175c0","8c7f69d79de82b1301b4969a8ece18c763d1580aa6a4025361a962c1f917d929","a1ceaa5b52819f82648633c829e58cb9aa4d67d92faa9ec40a3590980933e997"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_2_tf1","sha256":["c68ffa060f214965401e268dea3a06105af453c0c21fe60b4e36920d6e37f8f8","92381368e57a426c0ceee0f216384e262ff280f351534444001be03d349843c5","ea82f654f83e5dd50f611c262717a410a824270d9cfe6ff2d708022105469fe8"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_3_tf1","sha256":["c0fcc510022b879c80e30adf52228eacebba106b12542e3b10b6a1a369c160e7","d057d7881e15028039d4e38986439f9b198c980d482030e06bd1b5bf031f6227","bd332ad1860913e58358741a4d7b1fa5b9d18a4a169061cc6f58e1508e8e7b5b"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_4_tf1","sha256":["a1a71cae2f9ac9a57fd3330137eebbacf2c6fe6b39ededc9ebbd4e214dec7306","d057d7881e15028039d4e38986439f9b198c980d482030e06bd1b5bf031f6227","bd332ad1860913e58358741a4d7b1fa5b9d18a4a169061cc6f58e1508e8e7b5b"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_5_tf1","sha256":["90380dcc6ebb20120eeac60479345df67bfd9cfb1dde273f07f9e3652ef33b47","cf237f8853cdfb218f746a73db15e5e36586cd18faf11bb0b4dd08b7067d0825","d4bee33771a6692ddec4ff7111f93f6459eca79c2e1819078190cc05a66bb262","88b7be7cec24e1067ef4161b5a605adcc1a99efa4c5412cc073684ba85e54966","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_6_tf1","sha256":["46a8bd3ebec29ca58bd97a30e3fac0ca31a500eca60ff1b1f6f34f61459cdab9","79c4a6505e8b48c11739ae5552661f8320f025f7135420f6e1519553773ac18a","0bb5a9dead99674323543f786e157a522c9b7a69d607ab37b70fa5504a6c3c95","1a5d3db6e7023a6507f2e7a1fb893f2a7f8e6a954387eeab0a73235b1cda4900","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_7_tf1","sha256":["3a3d89fc9423a02288af5919267ad960adda96da56cdbaabba225c897e610438","86b211dabbd54c0855e59ff876398ade1d8c9cd13d51a8c5a3d6034e4f980d27","f139180a3176888e85911525326129e739f7979835f56a239b96ebbe97f787fe","d5b5579c89468a870deb8d681e0f5de7c53d91bc1a9a4b2965fbf7d7b6cf8b08"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_8_tf1","sha256":["9da7dae0064032943e43e70bfddafc67e25222ea36c4d2aa25756965e8b9d87d","6f90c454b7f5fbf790dc6833c192daf3b3d88eb03d013a6c221df88e6153d35b","4594989f4b7162278d82d7fd6e3011771b23c25c714e2aa688427ee9ca989eb5","930fd3d2764c30c8152344f3ac949d3bb10dc2223d0ae2e054521845fe507fcd"],"dtype":"bfloat16","tf32":true,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_0_tf1","sha256":["3509ab126bffdfbe5863651a0cffd72c578293be2dfcf79ff4bc63ca0eb0cd1e"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_1_tf1","sha256":["4adb32025f8542064b9d6e364a54d47afdfbaead762850fd86c42a4552fe51e3","5e3424941e6e4962dd86234900ba795faeb5201715c8c378f0b676ef172fbff4","7d4086bc14ba75830a68ac7b2d990c3900cd7b10892415236d945d174ea93883"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_2_tf1","sha256":["7f7ac90b3c63749ac9d487e986cd3f6e1c81662d87d809dfb6ea4551647c4176","5deb793198da9e9a6013a22add6800c8a94ea12cb2b5631117acb8eeff334560","dd41eaf0c446008ad9bceeaa0f81808dec5e2d92bd97ea95cdbe45ea6de13f71"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_3_tf1","sha256":["8a87534f4dbbf40fc8fb549c79a0f07f7dcceb0357bdb2e11c55a6f00dc5470f","770063fde7097cdcd514211e58985efaaf1343a4312b0e5fca48006b3870ee84","76d0dbf26af77b26ed7df44ee7f505eb2d471e0e1a12b0ac946abb5ff2d5adf2"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_4_tf1","sha256":["8a173bc8d818f2d42af397e156cd6bc2e7a973cc15eab3b7b521d2df4cc62618","770063fde7097cdcd514211e58985efaaf1343a4312b0e5fca48006b3870ee84","76d0dbf26af77b26ed7df44ee7f505eb2d471e0e1a12b0ac946abb5ff2d5adf2"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_5_tf1","sha256":["0033cbd6dbfc7d23275315d4fd76187daceffd39e03dc142aab2829fe439ff6b","c59c1a89b64c146fa05192fb5fa8e4a51e7b9f204a7ee66afa9ffea553828147","e4024f903eedcf0320e424bb68ad051ca8b03b03631633376f952e8ebcd5dc5d","2b3b83b7e80c54f6bb477dfd0de9a6c7c4bd933f1ea035dd567a2e0cc50b6658","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_6_tf1","sha256":["405c59967cfc3369c3cec4ca010d607bee317d4bc05d1d2eb24fc022e659d075","446eedaa4cba0121d3da712d379898ef30de70738e1a0c293f79a16ddd7b1ebb","e01d68120b30181032be82d35969d7e7cc165382737e4353d44a96993ca74d9c","7bd66d4b71ba6bd3ac2fb13b39b4eda459b9bf6aabbdf6cb8f092d094bacbc8f","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_7_tf1","sha256":["ec11694e5ed4704bd547cefa278b5ccdc9e82e10f9fdfe45c35575ac70c75083","b3e7e082e3c1be3d3007468cb6668fed009d22556ac63ec4f785afe76d7b7542","393ef5ea23184cacfcb6b930190d3ca8e30f265cd4ad547d1be3c91acaf997b6","f384ab80f7ce992f20e9d0548b3999d7a0b325d94abcceafc6e3408c6e2831c5"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_8_tf1","sha256":["c1508154ed0910966410754b8650719b0c06f24cf8c1bd050b83aacae3cc6c0f","c2bd78846cd681d028dd1cb6e35a12fdcd8b2ed81e90a38efa82881cdbe38765","609981751d06c4a3c37a80b6fdd37bc3bbd7fa001555dde805cdd4abc0877658","3756b4de2d2295bda2b9ed296bc6c7202e635e109548534aca6bd1894a586413"],"dtype":"bfloat16","tf32":true,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_0_0_tf1","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_0_1_tf1","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","288df8dde337f96e21f72d2fa891fa3f2db603d640f1b033b94d5d08b34a41bd","8998d97f5ee14b34eba462220c2cc1f1e7459e252500b03136833be0ae341d27"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_0_2_tf1","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","e8a243f2f65d31d923cb91b7e346f88bc92ae3c11aa411655bdb8421289b978b","5fe3d406d6b54d3f9a126cb81912a514b6d8ad65963d7b087e8f1d8d6e54f9c3"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_0_3_tf1","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","d2b7d00504298a7c505ff3f79b2db5bde678d4ba76cadff9eca0c4dfd63b2ad5","6c8da1824d0413cf0e625479e5e1512b6233025b011b6e35b20ebf9ba7475c0f"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_0_4_tf1","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","d2b7d00504298a7c505ff3f79b2db5bde678d4ba76cadff9eca0c4dfd63b2ad5","6c8da1824d0413cf0e625479e5e1512b6233025b011b6e35b20ebf9ba7475c0f"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_0_5_tf1","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","e0842f4b5ab0298b6b9a1cf02797361f9fc6c295a708ae32ae5c4b4bb3127cc3","28fe2fd605c78b76fcd6a19ae3680aa1c7bb25c449b9952b676e9702472598a4","a66e8b5fc0e491109622c1618dc1b0db6ea4baaed80b3b7b12b1625f634a1ac1","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_0_6_tf1","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","cced4bf77d26d43a88a8beec53ff5fc7d5871531eb4e4e30cdcbf88cbe84fe35","59b670e83bc754fc4d868c0898aa818e6d51af67172f7bd1919941637cbf484d","474040d809875e8143e01151e8c6a7b2fe164533d3e2b2fc04ead5074469d938","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_0_7_tf1","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","52a58718075f2897f3a7a0f0a7c76b862881670e44368cc8a733d8f083dd6291","87fb559aa6c1fd4c2633014892b7cdbf4a6f79280b4e79e57f0e795d32667fd3","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_0_8_tf1","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","473ad5d35d581922e51057b563a06f436d482676de7623c4411f9dcf867d6888","ac35020257b639b1209535a98e09ae1db0be53244efdf34616134f7735ec9283","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float16","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_1_0_tf1","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_1_1_tf1","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","116eee65d5e18fa84bcb5c80634c55eaac877420a80d80038084f2cd5433b9b3","b23e2e3e53ceb7e0eb32bcb4b1d6a89f61e155338c958a8cb150cf7897272fec"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_1_2_tf1","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","a8083ee7164c8827c7e14ed6ae01ab11b30b94ed10c6f17d148fe71b48c6f60f","a5f099e23aaf87f016e7135406017661fef2f7cdfaa88c08aee005686e84da05"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_1_3_tf1","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","76f409248ff0cf78f3cbf370af52b4d88c54bba0370ab4524645e9f244ea79f2","f455b86eef8e383901ff9860bbdf559ea86ba529851fed3dcf13176fe283c83a"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_1_4_tf1","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","76f409248ff0cf78f3cbf370af52b4d88c54bba0370ab4524645e9f244ea79f2","f455b86eef8e383901ff9860bbdf559ea86ba529851fed3dcf13176fe283c83a"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_1_5_tf1","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","ed39be3c46137b4e78bf450c8b4853bcf9ef4c41ef2f7b6a48855efd47c58b0b","c68738963293865c9f6624faeb4860ca184656dfef1221e5283c4eb9bf82df93","5445385ecfa1c4379f48306452b0eefe19c9cd9135e919fb95146ae4284adf58","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_1_6_tf1","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","e625b4426e404bfeb6c79b9a7122def9b624507ffbeaa1934d8d188fd4aa215d","a99211a9605ffefcd547530cf8108645b3c5dd2aceb5841d9183f449615d4aba","9a73f69b344c2273cba80aa8abfa4f7eadde65e0c5af8219e33feac6243498ed","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_1_7_tf1","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","8be263989fa4924a8b2733a6d9848ab7d29fad4133e822da32cea4231ceb27e8","b1fc531016bdfe9c6960e644b98e2188a8d68fb9e65bc7879cbd5f4a6fe614cb","d71747bc3a82955bcfdcb9a1ea2151d943d1e589ba2114cfd48a42c45cb58875"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_1_8_tf1","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","09f8acc9152527eca5f6ce477a40e63cccfdf05258eb6052da500c9a28f500e2","b6194ff2e1dcd85ef5dc73d4e5956bd51687bcf6953f2160f324d976bd4b8deb","8201f5bed17a7f19b581680ff8c5bf32cce397d19402bda9201b77f2ce44a2ce"],"dtype":"float16","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_2_0_tf1","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_float16_2_1_tf1","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","9204d5d139fd4aacfdd8a830b76119a0b08a696c9051b701d3b901aecf53535b","fee818142923741978630e96eaa04536372f0cda1b700f038cf0532d946d9c9c"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float16_2_2_tf1","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","ece68a249fb646d5696030320e8b396745eb877683cc75d587893af8519a2b42","352a3e12bdcb1388019f021d91d272fd441acb26c22824c2e91ab54fcc6d5eee"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float16_2_3_tf1","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","55fafbae02ff8d392c0ac9df600e2a1c8c90c8e7828883aefc068ec624c598bf","d07efec0d7501d767e49368f6f264f267149b67e7e58cceac3d2e2ea57dd55b6"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float16_2_4_tf1","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","55fafbae02ff8d392c0ac9df600e2a1c8c90c8e7828883aefc068ec624c598bf","d07efec0d7501d767e49368f6f264f267149b67e7e58cceac3d2e2ea57dd55b6"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float16_2_5_tf1","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","5e94372690c959383776acb2b7c29a25e318b702322f5cf91c45954c23798d15","7772b2287d1200bc2518d92134dddfe792092aaa2f533b84a114954db040e193","8631ee72966a0ab83089c043b9bf8a67924d3b8461f393065fd99b766dd9135f","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_2_6_tf1","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","07ed369dab84c51c0c983fc42f8a24a6c33116cb1b4d6b90c32dbe94f3665230","1d7ccdf272e25bcaa14247023045d442f57eeb4536735fa22a39b1a8cc15c133","bafbf759a8ba3949f176a9f36b22749750baa95deefe2c345d6f98b696d1ee24","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_2_7_tf1","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","e39a5402f26764894bb91964e8469f831f4e12c2b17958b03ddf2ceb9a8f8f1d","3c77bf187a6168f2ad4861d2ccb9bd5b7a60018b295fab11a63cd655e4b289b1","4a95dc5e9d536c8a9db23bd35d0ecb84a7296110eadc405fdca50477013e18ea"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_2_8_tf1","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","4638ff91c2bc338489d15c67075f5c2e6f2cd1aaea386e7235b782f99bbaafed","111add5aac898ea0d75f91b5d6e75c93731b558e8f236fd8e892a377793d982a","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"float16","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_3_0_tf1","sha256":["f3b3e27c540f1c1ed5ceeda3781cfd568edbe3f5833883b77dc3981f6052c6a7"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_1_tf1","sha256":["056be8ce1a58020ae4ae27bedfa5087c50a839f1cf78f51f849933137d2644a4","313efeb38ca3fb0f6cc36a2b568597c72457f87ca7507ba047e17e398cbcc84f","026718cc297afe933986995cd51e02ab490e7daddbb85a05af1c43c44e890305"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_2_tf1","sha256":["eaa5b05d73dafeb0607c1155e3e574f66348db2852a0e7267de8710a6ae20502","cafe7ed3038ad116a98760ea0b944aed1b5f41f77554945ab3e8ee4a02b83f41","6759b4a78d3b42120ab40e8405fec593093ccf1bbf98ef0dc94ab5e1f3c71105"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_3_tf1","sha256":["ada04d3041c7ae52e0985c1da5ca17391728ff27d32afbefb4c1ccdbb4b9fd3d","f9fa50382abfdca66b2c363db0f46a595799b108e1d3a21a4910525eb2d08a93","5011bd0d86ceac229a93066d7c60de8efe0e486cc75f87b16237e30fe32f3a45"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float16_3_4_tf1","sha256":["77c46d4112d39fb573f828a8cfa5dc75a192751a82db0d0937c37236a5ffd5a4","f9fa50382abfdca66b2c363db0f46a595799b108e1d3a21a4910525eb2d08a93","5011bd0d86ceac229a93066d7c60de8efe0e486cc75f87b16237e30fe32f3a45"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float16_3_5_tf1","sha256":["bd88ce9319ba5858da41dcc013664dea37ccd6a4f28d4c121b13baca3290978f","4ecf54bc92313406af9b107ae1deb127250e2683bc30d9306f509cefc9c4a62e","2c2693205ef629222211e914fa7a546d839d4ace42318656081681ecce47db95","78965449852d8c52c1ff223bccea50d258e78d0f917630c63466b7479c4a3022","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_3_6_tf1","sha256":["7a7a874eda78e26e09712391567d4a40b13e78ac04903e1671e914d80ba73fe3","1e97cbb4f1a7e15540f8168c6477c94d7c76b632b1f316d0f73bff5f74a1de12","45c95a9fa1421d5f0cc1cc62ad4c25aed9320eb1f3eec19d69530f96d42e0ddf","ac61310fea599051f9fe96ba38ad4cc59dc34ecd9ba8b8b561969d8e04074241","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_3_7_tf1","sha256":["46a92fd447a1337967c506a462cdf0fc63338ee0a9a8b59757800b66282d00b9","c8e9075e68308f80d1515d0ea783a1da10883e797582cb6503b0ca0642514acf","5a9b583c00e28f8cf285788b24b40c5c4caa91a7996a5e9ee0d5f2196ae6b8a7","f40a52ea86010d4323ada020d363843aabaca65d4453f2929ce6ed97745e2f98"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_3_8_tf1","sha256":["05099cb8f1ec4a74ec951a5704a5d700221719a1f8b53eff60ff87fbf89e5b70","6f7e8684a9656b23de19bd2ee6ffb770c87048fe13491cfb01fbe0c7ff823bed","d39ce2d708f1150b3cec0ffe9943b8155a67e96513f297dddf544c0208877445","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"float16","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_4_0_tf1","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_4_1_tf1","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","c719ff14fe3e92ba6a9e52921c7cc365ba1929db3acf438dff5bf105164fd43c","0d0a9e4cc2ca43d19a55f3e87ab451706aa8e51a028969527b430da4add9d090"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_4_2_tf1","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","7c14ba7b18589a9a46b5ce14f32803dad20fc12cfbc297b0526caac5fcc663a4","e841e0040ceb80efec11abdeb6d58d664ca2068fa7f1e6378f52942c9f20dc60"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_4_3_tf1","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","9fa3676b096f34aeec3b0a3a4eb808163014bf8cbc627e3d50db7f324d4ab266","9931690ae6aecab329197003bfbe7755f276b2366afe6b71a76e17764ccdd6ce"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_4_4_tf1","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","9fa3676b096f34aeec3b0a3a4eb808163014bf8cbc627e3d50db7f324d4ab266","9931690ae6aecab329197003bfbe7755f276b2366afe6b71a76e17764ccdd6ce"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_4_5_tf1","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","aa24350d7f186a6c5c26f8b64014df2bc4344e0d3a8952ab57956bffec01fc6c","4d6f8c0441ff854ea5ef817829a26b5b340f5b46ab33cf9226ee7d2d02425876","5c2bf2ddc9441f77885caeec5e09070fb728887af38327008448be7ff170e9ad","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_4_6_tf1","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","36362265f9836d3533cb36bcc835d30040cc517586be5f10b001671b44b7d6ee","c523835d4c987d9bef9b61de1289f83fb4e2452157b0309b90bc6341bacf0c0c","e63c3099d6c48f9fad6b995d8edc1abf00e05a784720ecb7c5f9fdb771d0b6ce","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_4_7_tf1","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","4de40be62a6eb99c987f433aa889a1bf72c2ae7f1732374c282040fbdf51997f","effedc4d96cc84af80ccf6abd0e6a88813bb9eaacb8648a2c5f9f76856964e30","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_4_8_tf1","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","a46576e627856198b9cf8894a831d3670853ee6e0b83b64490a649f66ef64450","44658df14030a174af827903fee8ff8e027204848f70c48baeebf29280793b4e","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float16","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_0_0_tf1","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_0_1_tf1","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","df915b4aac274010344c9be75e59114fa554300e89c478baf1281b182c3801b4","f6e98f38decbf9d962544b8963b26f70f9aff53dde85cdebe241711f6b5fc204"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_0_2_tf1","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","b0598197758a2ad0d45e1e74e8e0a2b411cd3cd5c8da942f306b208126043f4b","3df1bbe54aacd476bdffcf9c28e3861e8bf784a7bcd388203577cf10b8df16db"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_0_3_tf1","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_0_4_tf1","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_0_5_tf1","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","4dcc67eff8f784cd4f2817136a6c93d6915fc1489e6dc0abeb407bebc2fa324c","b93f1270ff796ea7f07cae3959018fabb8feb9b6da301441a1a790fffd07f280","3ac5b891203ab11643d2d0f93cfec2661917046b4c05571d2398dd183bcfbe5e","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_0_6_tf1","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","2e53f95358711c14533398d82aa88b59f3b297936bfee2f12fc153a0b380c2c3","9fa8146fb2caf76a0afc9bb7907256f1b581f6aebacfe7fa7f202eb8d109b757","0f2603185c7b342a57e2f7412544501ccf1b86ec16c14c7a689cee0442515040","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_0_7_tf1","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","436fac260baec0e8b02fc2223a0a9dd25813c09d4e0faae3cd8cd8f4b4dd1bcd","f3b7de7a5d765e14f449930de59717ed066ff91f3443347f5af60a64120ea969","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_0_8_tf1","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","6d6a36d239ab30dffef333d9c46203e45b55aaeecce636f8668f8b9cf02e5a92","0ad960713bdf7fa9793682d4f1a3a456c40e89b700b2ffebbc4fcb09837d9b06","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float32","tf32":true,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_1_0_tf1","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_1_1_tf1","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","0f0afc844eb8273d4a140421797fbccc9758ef5b4217136c623a820dcd71fcac","b6c046d6519de908966f7a4b03714670be74ea6d032eec898e731c04c6d4e741"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_1_2_tf1","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","a16b85c3704558b4cd0c98af04911b9f38b265cb3adb1a6bda081bf2ffdb32cf","51e386ef7a02739a567270b9fb6005b0f444deefadfe2dbb938a77ae571f1fd2"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_1_3_tf1","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","6ba9f076ebe4eeacada976d59d5e782aa8971975475393279c86fa756d976165","25cd84a58d075ec0c71b61582c41804c8ac677aead6637653a601eb95086062e"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_1_4_tf1","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","6ba9f076ebe4eeacada976d59d5e782aa8971975475393279c86fa756d976165","25cd84a58d075ec0c71b61582c41804c8ac677aead6637653a601eb95086062e"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_1_5_tf1","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","38a7438e231ef215489409f450e9e93d0f4cef780df8991e6da8063e3bc1a0ce","e216b57a0a34fa387f1a5253e3648e52d7969b81a0a9b236172a8ef7cc6ef460","6f937f56bdcf8f0bda6043b4585276073e33c566f89a4c2f9246c6334f32b983","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_1_6_tf1","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","d9e80a1784a3df30a90f5cae3ba27f4ce57e040cb789d207f9792e0d775f1175","326c2c4826ad1e323940e014e2793a2377629219cd1711b34ae9f592765628cc","4457b484ea684c7a0cfefc5e09ed7d7e392b516f305baf9a3d980deb4300801c","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_1_7_tf1","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","590fc63424fa55635463670fb3e2d306021a089f87dae40bcce0cedb70567ea6","fa2790cac25db5dabbdf36bea510ade820530764df8df062f2e56b7be22bf1d8","6762da3e4caa64d495dfa175e7270528e5e646e088e99327161d7de6cb518fc2"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_1_8_tf1","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","c4865aa6cf05ef3cab8fbdf06940a91c0fe086eed6983603b3c037a241225076","2149e7290fe09ba13a0cbb4e4effe712f2577996ac06537a44ee9b8ededcf5bc","8201f5bed17a7f19b581680ff8c5bf32cce397d19402bda9201b77f2ce44a2ce"],"dtype":"float32","tf32":true,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_2_0_tf1","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_float32_2_1_tf1","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","ce3a4768abc6c6b4fdc835b637351d4a241d064d7ef4425baaff74e6f3571453","882c815051aebf942e13a5bab4a670b17addae83bcec6d1bc61366784ed8e2ff"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float32_2_2_tf1","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","0748d307d0f3367880f1aeef1175b12a5689a93edd77a11e2adc328c61899f9e","7fbd97632d7da5d23784781bb17a7c05e6ab2ed16b428e166fdf7ae1b024ebce"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float32_2_3_tf1","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","3d482ab07ba751ba127e74a3af0240a4610e501759224951fdd1d70cdc2407c8","6463f32314d161c0e59cc4692c0d8d103a4e693a55d44d4e85374ebab24be6ec"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float32_2_4_tf1","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","3d482ab07ba751ba127e74a3af0240a4610e501759224951fdd1d70cdc2407c8","6463f32314d161c0e59cc4692c0d8d103a4e693a55d44d4e85374ebab24be6ec"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float32_2_5_tf1","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","bdbfe6d1b1e7c143bfbe412277519cc05dc0204b5b2b56a79e31a2164741d11c","1fe83780997b68ca7ff1ebe2828dee7da16851d4a57fe04d9fc5adb11afdb944","c5e24f02a80ca7fcd485125c469ac67f843c438792a73879df1a957d1f0ed56d","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_2_6_tf1","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","cc7956a048760a48bafd8f188cbb3d7864ca7e9635ecf657aa7176f9f1fde206","174443d760a345c27cf5056fd64a25703797834eb812c73a48bba0b94a6420e8","6dc40936c7ff29922ca079bcc1af58cc09361c21e786cdbce85454982c1ab08f","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_2_7_tf1","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","b2ea23a7603730a7078117de43a295da27e2b79cd9c6113746ae607254fd05d2","b8a41898032866e5f1757c4c7563089690d73c71a352b7bd60a63fb59df2a9c4","4a95dc5e9d536c8a9db23bd35d0ecb84a7296110eadc405fdca50477013e18ea"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_2_8_tf1","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","4a071b840012a87cd6c4f903a39fee19e2f3ac466de3e249b2aed6e34d9888a3","05aae61663a795fcdc2794e758a4eb487b2b2548a8ebf36d4ce75f1116dcf1c2","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"float32","tf32":true,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_3_0_tf1","sha256":["e97a96ed42dfdd5b5bc0e3ea23af4d2154dcd2f756932362bf6075be1bd522d0"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_1_tf1","sha256":["145e27eccaf818d053f6214ea8b246ab7f7a13d2178430e588c577aeb8af2518","d1aa553d75194f1bf1a66ad5e739851c9d5b4d959788356a3ba7ab7d2a25a38b","d865f1f731a66b5837237d763c36e69bcf20244404b6d8041854a5ea8d4bab01"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_2_tf1","sha256":["02fdc95b6f5778b210e5c410137462a7af7fd7d9eb3189802c867d02f1d3ac55","3040599f41acf47ecc64994fef5f800c0db8f8aa04f872961da9527f51314973","d0ac660fa90799c4d40f33df16c1ae066f41463047ed25207780aee23f00952d"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_3_tf1","sha256":["da0fa0e0c6d519141ec5ff722e437968d45a4f36cff36869ef61ceef6a0579a0","c338e2a9f7b59752446a4e119a3af37005220a80ddab85f2a82183ae0922a67b","0a03630e92c97fd5a3a3c0de78bb9c0168dadacdc023b9087dddb74b9ca91a2f"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float32_3_4_tf1","sha256":["cbad11b5feb19e286e89a3c52f632fd0e97d805b3d7e639b8f9180adde37bec1","c338e2a9f7b59752446a4e119a3af37005220a80ddab85f2a82183ae0922a67b","0a03630e92c97fd5a3a3c0de78bb9c0168dadacdc023b9087dddb74b9ca91a2f"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float32_3_5_tf1","sha256":["567e7abd6c0c1ef9ba2aba147253ca3613722243b438180c248fd9b79099ae94","99ea922fe64fa2acb9d58f48110becc48eef03e69f018c7ff23f59e36bb8abcd","6ff0624e5896fe26b6d0d027d3c4fad4126876d07684ee97f70468dcc2785c40","5eb253d3908a13d35f4e081aec15e4a1b109975f28cbcc0c712248a8aa634535","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_3_6_tf1","sha256":["ed2963e051cd2b9f66ea26e6915068456ab8fb64fd6256b70a3270ee007703a7","8c9a0355576081d55a2d9407179fb9d847e4cedc53310fe3459ee80c82bfef1a","d8c02b5d6ae36094e2373777935d739471ea0c3d50ebfebb1956fd6bfe2ac4c9","ee6ceeb77473febb423ebcffdb7d8420d94b76ccc9d9d1d2a2d85ea09a788f84","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_3_7_tf1","sha256":["cc7411d4874892305a44b85360fe975a5f8e2ad1982e948e2f48f6bccab12273","117840172f998ef32a295b8fe08b535da93f12b8d2f6cdc3b0b14b64d1620139","4044a8d220706d6c46f80da8d92db99c678615eac42ea0c311cce0d6e5cf11dc","f40a52ea86010d4323ada020d363843aabaca65d4453f2929ce6ed97745e2f98"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_3_8_tf1","sha256":["e04300c157a6b34849e57a703f8b23d87479407e5c07d4a4812907ea8ea0f71e","045b1a8cac09708a50dec5b0133819284afda1c422a7872184d9514a7ee66914","063693e3a44239f7c729a835ddce848253e493cd0ee7f35a863735379c55a035","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"float32","tf32":true,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_4_0_tf1","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_4_1_tf1","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","df915b4aac274010344c9be75e59114fa554300e89c478baf1281b182c3801b4","f6e98f38decbf9d962544b8963b26f70f9aff53dde85cdebe241711f6b5fc204"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_4_2_tf1","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","b0598197758a2ad0d45e1e74e8e0a2b411cd3cd5c8da942f306b208126043f4b","3df1bbe54aacd476bdffcf9c28e3861e8bf784a7bcd388203577cf10b8df16db"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_4_3_tf1","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_4_4_tf1","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_4_5_tf1","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","4dcc67eff8f784cd4f2817136a6c93d6915fc1489e6dc0abeb407bebc2fa324c","b93f1270ff796ea7f07cae3959018fabb8feb9b6da301441a1a790fffd07f280","3ac5b891203ab11643d2d0f93cfec2661917046b4c05571d2398dd183bcfbe5e","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_4_6_tf1","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","2e53f95358711c14533398d82aa88b59f3b297936bfee2f12fc153a0b380c2c3","9fa8146fb2caf76a0afc9bb7907256f1b581f6aebacfe7fa7f202eb8d109b757","0f2603185c7b342a57e2f7412544501ccf1b86ec16c14c7a689cee0442515040","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_4_7_tf1","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","436fac260baec0e8b02fc2223a0a9dd25813c09d4e0faae3cd8cd8f4b4dd1bcd","f3b7de7a5d765e14f449930de59717ed066ff91f3443347f5af60a64120ea969","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_4_8_tf1","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","6d6a36d239ab30dffef333d9c46203e45b55aaeecce636f8668f8b9cf02e5a92","0ad960713bdf7fa9793682d4f1a3a456c40e89b700b2ffebbc4fcb09837d9b06","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float32","tf32":true,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_0_tf0","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_1_tf0","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","bfcf11fa7d922a33914fdf17f071cba0674335ad1a1af92076c91987694ac2f9","9bc04430322c6ead599d64fc89afc8de122bc28eb5dd3322603b3549897a55f8"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_2_tf0","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","7474800cd5f4bb176990cde54a0ca1388b8e81aee7e2c62cbcbff84334f145d2","4acc7185ab00b7b8bdef03a91854f197c12b2b98237b4db0a83651d180cac87c"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_3_tf0","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","cfd8cff8d19f023cbf8626024bd8b537ee0bb29e0e5e1e2945e730c255a0d31d","61adecd082e45582b51d57a478e550addec0451bb3ad62b863a55ad6d2ad44b5"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_4_tf0","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","cfd8cff8d19f023cbf8626024bd8b537ee0bb29e0e5e1e2945e730c255a0d31d","61adecd082e45582b51d57a478e550addec0451bb3ad62b863a55ad6d2ad44b5"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_5_tf0","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","7213d1287346e06e174a728809431dbbea9543e60949ddd349e657d889207347","cf4b051c216134a067921baed3670462e3dbc76fa49a3aba9b88afe8ba3d0bda","4e0f7af1ae870b0697dc207c7cd6dead0111a1543b114548316476e41ded4ee7","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_6_tf0","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","47e6bb8f01f601578f11881840900e8f6b57907902e53c81a7a6973264f69422","b324870886e0cd9cabafbc2ccd8cd3c2fce90a82154611352f4074d388ee6ca0","d074bcf2052529dd2bef23331827ab0b08082f1da52cacd2bf896a3118d9c901","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_7_tf0","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","7b80f812101eca7500c2e594a619e16b1edb183359f67adf0ea7d84143efbbc3","4fef378724a09e7980d3d4949fe606af81a38edb3a31249a7191d359b236acbc","9dd444364caac16d58e1c23eb0a373e03b73c28c9a20978ed092b1031872db23"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_0_8_tf0","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","9143d794d1e3876b55c23570365201be29895fca2a120d2f2861147da44538f7","de5d9bfb264cb084e30c7f6b1272a30abf195da42cf52b582a3f0013fc38cdf6","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"bfloat16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_0_tf0","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_1_tf0","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","ccad3205ac4325e15e33433e88353d80205864d503fb1b0cd9b850340ff2f2d2","047120afc607006eab70a7859119e606a19ddeb7ed9dbe64b2274becbfd4387b"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_2_tf0","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","2376fef1e6e2e4d9e8369b4ab5332aeef88e253cdc12e98c66136e97bb6fc817","de6a93ca3fbc998868a62286730a902e58e40b30ccd19493b274d400b94338e6"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_3_tf0","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","ff1ac9948628c1de8e29e48c675ee5f676b1f38ac23dac3867d9c2d1e9d4ac2d","9a5538271f92867420a43b0287b5d2dbba0edbaabb02dcef52c9bbb665bc990d"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_4_tf0","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","ff1ac9948628c1de8e29e48c675ee5f676b1f38ac23dac3867d9c2d1e9d4ac2d","9a5538271f92867420a43b0287b5d2dbba0edbaabb02dcef52c9bbb665bc990d"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_5_tf0","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","f1580a37865181d83f1de3d23a2e9eb04bf856e1cd9bb2bd12470b392e7cfae4","ecbc2ccaae7253664f542700d90ab7e195eb6d4877f72d8509559e17c2ab28b6","740b43037587b980724c08ffff40cc3cb97c316013517f261091307cdf4b5920","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_6_tf0","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","517e1ad1d661c55b71b5513d3383db98e284711a867c9a48483c5a58e3ec2019","95f24c31c5b239ad6266446e28c123858a003917f3cfb622b58fe18f76b8242a","0524a8a5d0768a518d731c4fb2834fac819033aca064a2be34efc4a4ee50633c","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_7_tf0","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","e9e941290ec0b630795fa53dfe30c1a447983b5b554ee3b185fefa0b0ca2e3ae","ae5e96365ab2049b2509f8e7a987c46f822e07b71af1ca50a6946fafa8c98ea6","99095e1b718f98271c319c45b693bcec8d2b149e60f5de0fbeca690baf538f30"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_1_8_tf0","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","edd409b6fec1f2eb8774953b5c15a7e45d0c918348ee1f92050469c47de28cd1","5df93170882fc7a1be7b2282bb0a8eedd00daf86d963cffabee10a804a75ee26","4b32139aa09301d640f3b2b10a61cd0e7c6dc4398d7a6a07fdf63e0645107cb9"],"dtype":"bfloat16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_0_tf0","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_1_tf0","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","9a489a59c355503aeba371e4b7965e2809b105f3bfb8da01f46a263ff015855c","caf72e8c0408e3b95417a60e4a15175ea669b3060926f0b3a98adc17f21f4116"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_2_tf0","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","2e4086cec64459fb6c65723b3c26d52d6c4039b98d22e98f6b608b42a3ea0be4","ed92324b028c89f6e0d63e1ff5e571c075e42ed0142ade2fc8438ccfaa9c7a31"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_3_tf0","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","39720aeb44bb64e7a14876e2cc00b850ea457e33c78debc954575eea7ba386d6","efb273828e41f03a91d849b878bf6dfd2b981298adbbc16c76edc872aae47a06"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_4_tf0","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","39720aeb44bb64e7a14876e2cc00b850ea457e33c78debc954575eea7ba386d6","efb273828e41f03a91d849b878bf6dfd2b981298adbbc16c76edc872aae47a06"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_5_tf0","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","9f40df80364f637517a124848910e638ce1030c70c47b1fb47109c7217aa39aa","ec0edb7ab825cb894949346908bd1766d64949a362a216196339befbb0b0ee01","6a7f80069462f1490966d298c906de9af0a720eb887792a5cbe67ac947c0e83a","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_6_tf0","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","389aef5a553fd41652c7c9b8b29abdc8eca81cf3dc150a510aa1184234c57b74","834fbc5c8f0c93082b6b5119e693f3a29c2428055a599f7c35dc6f1d1895296b","7e58f67f45e83d049e138e0931c17045f7182d180ce6d886d0298035735f1e00","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_7_tf0","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","6f295da383eea82c7a45cf666f1ba86f55d098eba8a26a0046f170571862887f","6797ad532503d401291d69263ec976dc704b96d066fe56440e6d6caa50de9a18","3a96aa3a2fd7a8438158169ab60a518c48f12774e40cd53c8cd27838302baea9"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_2_8_tf0","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","c7b19285f051f00eaddbb3283a2e7f3ed47adf6b49c876f2985b742b0b9d6ad4","f318bada2d752785c11c5337001509adefe1d20e6548046c091630a64138b287","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"bfloat16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_0_tf0","sha256":["590a84f3e42af2539373b66daae1b128e5c58a1c100193b0be1cb93fc4f5caff"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_1_tf0","sha256":["f5611989bbfe0064a8ee74af0e89e1d4bea9eec59217b401c0d5d806a0172b71","79a7c74dce1d47b6892f2745ccf88e6c7068317ae8748854749b7de85f3e9ffa","4284f4e2748af9d3716acf3a0d3d6792ee3636114278907d2ac650b2ea1b4ff3"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_2_tf0","sha256":["bf6944d4c901741e63eeb743b0b5d5ed1d5c61db59bcaeb2a028e6561dff1407","8c636ce99c4dcc7232673e2db3310238db8152b35ecb65b314d5427dd2c761ac","ca60a86ffa04083c843bfd9b3182c8ba991cb54ced277fcad72b13bcd585112c"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_3_tf0","sha256":["f5573fda565ca99c7e4eae7f0a08add6a3f5b7f74386e6fffa61aab772ef93a0","cc050fc0b0830aca8bd8128a22fdfdaf7d9a1226d49fcb59bdeeef847650ab97","370710f23412b379240bf8a86491c15b4743d2dbe46c7b51347eb92b259d0376"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_4_tf0","sha256":["2f72260ef1487575d0c985ba6f566d5fe9304946540c82a3b92d1ace97316181","cc050fc0b0830aca8bd8128a22fdfdaf7d9a1226d49fcb59bdeeef847650ab97","370710f23412b379240bf8a86491c15b4743d2dbe46c7b51347eb92b259d0376"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_5_tf0","sha256":["c32ae33db38fbaefcbc9a1acc91e8d5a53ee362542e6f5de0b93a7c2e5c9db95","7bc3010cc7d4b98e965cd395a8d82f79e4a72a5af796794ea7fe3f59e87a87dc","50d58dda62c54c40ea2363bc6efe8941ad9935adb26434e2db8773e8fc5df26b","0ffcbbdf0733e00523ca4478b331ae64a737697b1a8266eb8861500b9c55865e","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_6_tf0","sha256":["4352725575fc1c26d12e1bac80295e503686251e224251f81a9e8175bf9f3f9d","3f2175fb19167a43f1e84dd2d1a7a5de7a3f912b44a9883c3d00011a94c0f8ff","ec4fba276c86903d630a0dee03fad57055862fc2c38ae596956b67bddd2f5d8e","0f79cba1fc4c811dff3b0255043539200a037ce3b3c95380a731c56788131350","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_7_tf0","sha256":["75720d8510d0e92c0bc5881281f07b5cf0d10cfcac757af5eba030b6c5b3378c","23c9735c535c3d0630da10f4623bb9e03383c224c32f3be7f3abc48c16925a62","b8b72dcbfd97792fe2428752d0f9c53e7033aaf0d831075ff7a19470ba58f36b","a397cf45971bb60b2751f3c861d2d4e3919a6e920ef9058636f6b7ae1c341a89"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_3_8_tf0","sha256":["d485add7558043ad6a910ea9f0e77a8aea53bd2d3bc767b1ce65aef9df3e5b18","59d22d477b1d806c7506dd0106399c605b08e35249950e06fd42b2d07ec68fe0","c9b90567f8cb829d91e91101b848562de1884c4fecf791920ce3fd0fc8f3bea6","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"bfloat16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_0_tf0","sha256":["73fc8005429b76a9a7caaa6fd1c615fc8bfa38520a4e5955b42776c717687402"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_1_tf0","sha256":["6a029e27b9294108301dc487cfed4d7edda398c2d33afc88af4c6a3e9d3f3bc4","b1fd045ee8f9eefcee4e50fd22a14524aa00ea1ceb881186038cc8c168de7bfb","8729e0252cb21bc306eff1fd2d4520699924b6c15824b76a5748bc6d6166dad3"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_2_tf0","sha256":["19e8ae636a7aba5f371741fc8b4638fedbf9dd70bfaa26fa17bd73f2395f22d1","6be71cd792f558346998f223a67c343ead0f5b143cbc21897188424a35fb39d7","0f4dbbcaa8b7eae5fe4b9b0038e049272b032b80201649b781b266fa200c63f8"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_3_tf0","sha256":["33ce11531525ddf48a2f4428f6b46f50b3a37cc197b4be5212c06cfac84864f6","68bab0e27691149b285c13b3eb1941a296058dcdc48d3e63825d2a4d473e90aa","8b8c4e5134ad161b671548fb879c9def3d379d58b3e38e57461453a216151433"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_4_tf0","sha256":["e43c52e0003c0001758badaf11e7f4d69497702ef3e39c2bee42f93c9e864d31","68bab0e27691149b285c13b3eb1941a296058dcdc48d3e63825d2a4d473e90aa","8b8c4e5134ad161b671548fb879c9def3d379d58b3e38e57461453a216151433"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_5_tf0","sha256":["b769a80d1e310bcdaa7768c38cdf3bfbce00436f052e2f7846f75acb202570b1","5f16f5ce1175c535bbad2972e7f235eab5891040cd51f63d687f9c0f4950b9fb","cec2edad1784b1588a8515502f65ef77bd0e42f4aec080dcb32672a3c64cca82","db32ed087002b37128d10cc5a91b6762e8f69b41be98a488dbe030682b2cfdb5","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_6_tf0","sha256":["177f8a1513350c8463a43add30e418b2eae5844ab31628a6a2c05e8ca61a6efb","2e0fb12d2c8ccda969af50b283f7e9e855d57f299d9e4e0bf4c7dc966eaca691","6bea09776e8ce59aeba86756c21e1c751e0d4cdfaed1c703ad310f68c35cf8ce","4c17aec76065b35e4390df932fad99f68652a6d70b5f677d3a7769a9cca9be90","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_7_tf0","sha256":["3a68bf8577da1b19b185f46048289cc9a94f2290e6bf0107409c12d41e7467a6","909babbb7575212dfb6dd8f424dd204b0da568c35a2b25e6fcd2de4d16286722","c81110d008481635ccb0cb3f0f42d594403d14044f88e2bce2bc71cc0b8ac94a","dae147158277c6dfc8932315b60a2d8935b07dde13a216ebccdf12b7be522532"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_4_8_tf0","sha256":["1acb2d271038a645dbb4488e9b7cd5b4ecff10f1e66ecdd37a5cf627390b3cb3","7964b1d426be71c65a3fc00d903c2f994a24050a62b96d678d3ac393b2d451cd","a6bfd1f2c36616aeb3e0d77d38ca04495de6a68e7f1baa3e8dcdb5fe6b1f2638","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"bfloat16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_0_tf0","sha256":["60363b8182d3df22add1b82944379e7ad8f873055dc5867593bef8d3c17de351"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_1_tf0","sha256":["c84557f93f5cc944b0494f1278cd3f6b43a4b8e50d674f157a9099b2da7175c0","8c7f69d79de82b1301b4969a8ece18c763d1580aa6a4025361a962c1f917d929","a1ceaa5b52819f82648633c829e58cb9aa4d67d92faa9ec40a3590980933e997"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_2_tf0","sha256":["c68ffa060f214965401e268dea3a06105af453c0c21fe60b4e36920d6e37f8f8","92381368e57a426c0ceee0f216384e262ff280f351534444001be03d349843c5","ea82f654f83e5dd50f611c262717a410a824270d9cfe6ff2d708022105469fe8"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_3_tf0","sha256":["c0fcc510022b879c80e30adf52228eacebba106b12542e3b10b6a1a369c160e7","d057d7881e15028039d4e38986439f9b198c980d482030e06bd1b5bf031f6227","bd332ad1860913e58358741a4d7b1fa5b9d18a4a169061cc6f58e1508e8e7b5b"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_4_tf0","sha256":["a1a71cae2f9ac9a57fd3330137eebbacf2c6fe6b39ededc9ebbd4e214dec7306","d057d7881e15028039d4e38986439f9b198c980d482030e06bd1b5bf031f6227","bd332ad1860913e58358741a4d7b1fa5b9d18a4a169061cc6f58e1508e8e7b5b"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_5_tf0","sha256":["90380dcc6ebb20120eeac60479345df67bfd9cfb1dde273f07f9e3652ef33b47","cf237f8853cdfb218f746a73db15e5e36586cd18faf11bb0b4dd08b7067d0825","d4bee33771a6692ddec4ff7111f93f6459eca79c2e1819078190cc05a66bb262","88b7be7cec24e1067ef4161b5a605adcc1a99efa4c5412cc073684ba85e54966","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_6_tf0","sha256":["46a8bd3ebec29ca58bd97a30e3fac0ca31a500eca60ff1b1f6f34f61459cdab9","79c4a6505e8b48c11739ae5552661f8320f025f7135420f6e1519553773ac18a","0bb5a9dead99674323543f786e157a522c9b7a69d607ab37b70fa5504a6c3c95","1a5d3db6e7023a6507f2e7a1fb893f2a7f8e6a954387eeab0a73235b1cda4900","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_7_tf0","sha256":["3a3d89fc9423a02288af5919267ad960adda96da56cdbaabba225c897e610438","86b211dabbd54c0855e59ff876398ade1d8c9cd13d51a8c5a3d6034e4f980d27","f139180a3176888e85911525326129e739f7979835f56a239b96ebbe97f787fe","d5b5579c89468a870deb8d681e0f5de7c53d91bc1a9a4b2965fbf7d7b6cf8b08"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_5_8_tf0","sha256":["9da7dae0064032943e43e70bfddafc67e25222ea36c4d2aa25756965e8b9d87d","6f90c454b7f5fbf790dc6833c192daf3b3d88eb03d013a6c221df88e6153d35b","4594989f4b7162278d82d7fd6e3011771b23c25c714e2aa688427ee9ca989eb5","930fd3d2764c30c8152344f3ac949d3bb10dc2223d0ae2e054521845fe507fcd"],"dtype":"bfloat16","tf32":false,"profile":5,"dim":128,"rot":64,"fused":false,"kind":"q4","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_0_tf0","sha256":["3509ab126bffdfbe5863651a0cffd72c578293be2dfcf79ff4bc63ca0eb0cd1e"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_1_tf0","sha256":["4adb32025f8542064b9d6e364a54d47afdfbaead762850fd86c42a4552fe51e3","5e3424941e6e4962dd86234900ba795faeb5201715c8c378f0b676ef172fbff4","7d4086bc14ba75830a68ac7b2d990c3900cd7b10892415236d945d174ea93883"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_2_tf0","sha256":["7f7ac90b3c63749ac9d487e986cd3f6e1c81662d87d809dfb6ea4551647c4176","5deb793198da9e9a6013a22add6800c8a94ea12cb2b5631117acb8eeff334560","dd41eaf0c446008ad9bceeaa0f81808dec5e2d92bd97ea95cdbe45ea6de13f71"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_3_tf0","sha256":["8a87534f4dbbf40fc8fb549c79a0f07f7dcceb0357bdb2e11c55a6f00dc5470f","770063fde7097cdcd514211e58985efaaf1343a4312b0e5fca48006b3870ee84","76d0dbf26af77b26ed7df44ee7f505eb2d471e0e1a12b0ac946abb5ff2d5adf2"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_4_tf0","sha256":["8a173bc8d818f2d42af397e156cd6bc2e7a973cc15eab3b7b521d2df4cc62618","770063fde7097cdcd514211e58985efaaf1343a4312b0e5fca48006b3870ee84","76d0dbf26af77b26ed7df44ee7f505eb2d471e0e1a12b0ac946abb5ff2d5adf2"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_5_tf0","sha256":["0033cbd6dbfc7d23275315d4fd76187daceffd39e03dc142aab2829fe439ff6b","c59c1a89b64c146fa05192fb5fa8e4a51e7b9f204a7ee66afa9ffea553828147","e4024f903eedcf0320e424bb68ad051ca8b03b03631633376f952e8ebcd5dc5d","2b3b83b7e80c54f6bb477dfd0de9a6c7c4bd933f1ea035dd567a2e0cc50b6658","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_6_tf0","sha256":["405c59967cfc3369c3cec4ca010d607bee317d4bc05d1d2eb24fc022e659d075","446eedaa4cba0121d3da712d379898ef30de70738e1a0c293f79a16ddd7b1ebb","e01d68120b30181032be82d35969d7e7cc165382737e4353d44a96993ca74d9c","7bd66d4b71ba6bd3ac2fb13b39b4eda459b9bf6aabbdf6cb8f092d094bacbc8f","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_7_tf0","sha256":["ec11694e5ed4704bd547cefa278b5ccdc9e82e10f9fdfe45c35575ac70c75083","b3e7e082e3c1be3d3007468cb6668fed009d22556ac63ec4f785afe76d7b7542","393ef5ea23184cacfcb6b930190d3ca8e30f265cd4ad547d1be3c91acaf997b6","f384ab80f7ce992f20e9d0548b3999d7a0b325d94abcceafc6e3408c6e2831c5"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_bfloat16_6_8_tf0","sha256":["c1508154ed0910966410754b8650719b0c06f24cf8c1bd050b83aacae3cc6c0f","c2bd78846cd681d028dd1cb6e35a12fdcd8b2ed81e90a38efa82881cdbe38765","609981751d06c4a3c37a80b6fdd37bc3bbd7fa001555dde805cdd4abc0877658","3756b4de2d2295bda2b9ed296bc6c7202e635e109548534aca6bd1894a586413"],"dtype":"bfloat16","tf32":false,"profile":6,"dim":128,"rot":64,"fused":true,"kind":"q8","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_0_0_tf0","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_0_1_tf0","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","288df8dde337f96e21f72d2fa891fa3f2db603d640f1b033b94d5d08b34a41bd","8998d97f5ee14b34eba462220c2cc1f1e7459e252500b03136833be0ae341d27"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_0_2_tf0","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","e8a243f2f65d31d923cb91b7e346f88bc92ae3c11aa411655bdb8421289b978b","5fe3d406d6b54d3f9a126cb81912a514b6d8ad65963d7b087e8f1d8d6e54f9c3"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_0_3_tf0","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","d2b7d00504298a7c505ff3f79b2db5bde678d4ba76cadff9eca0c4dfd63b2ad5","6c8da1824d0413cf0e625479e5e1512b6233025b011b6e35b20ebf9ba7475c0f"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_0_4_tf0","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","d2b7d00504298a7c505ff3f79b2db5bde678d4ba76cadff9eca0c4dfd63b2ad5","6c8da1824d0413cf0e625479e5e1512b6233025b011b6e35b20ebf9ba7475c0f"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_0_5_tf0","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","e0842f4b5ab0298b6b9a1cf02797361f9fc6c295a708ae32ae5c4b4bb3127cc3","28fe2fd605c78b76fcd6a19ae3680aa1c7bb25c449b9952b676e9702472598a4","a66e8b5fc0e491109622c1618dc1b0db6ea4baaed80b3b7b12b1625f634a1ac1","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_0_6_tf0","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","cced4bf77d26d43a88a8beec53ff5fc7d5871531eb4e4e30cdcbf88cbe84fe35","59b670e83bc754fc4d868c0898aa818e6d51af67172f7bd1919941637cbf484d","7f75e77e091f37d2d5d805ddaea9cb4fe5eff02d2a388a014be5548ff364e736","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_0_7_tf0","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","52a58718075f2897f3a7a0f0a7c76b862881670e44368cc8a733d8f083dd6291","87fb559aa6c1fd4c2633014892b7cdbf4a6f79280b4e79e57f0e795d32667fd3","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_0_8_tf0","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","473ad5d35d581922e51057b563a06f436d482676de7623c4411f9dcf867d6888","ac35020257b639b1209535a98e09ae1db0be53244efdf34616134f7735ec9283","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float16","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_1_0_tf0","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_1_1_tf0","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","116eee65d5e18fa84bcb5c80634c55eaac877420a80d80038084f2cd5433b9b3","b23e2e3e53ceb7e0eb32bcb4b1d6a89f61e155338c958a8cb150cf7897272fec"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_1_2_tf0","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","a8083ee7164c8827c7e14ed6ae01ab11b30b94ed10c6f17d148fe71b48c6f60f","a5f099e23aaf87f016e7135406017661fef2f7cdfaa88c08aee005686e84da05"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_1_3_tf0","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","76f409248ff0cf78f3cbf370af52b4d88c54bba0370ab4524645e9f244ea79f2","f455b86eef8e383901ff9860bbdf559ea86ba529851fed3dcf13176fe283c83a"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_1_4_tf0","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","76f409248ff0cf78f3cbf370af52b4d88c54bba0370ab4524645e9f244ea79f2","f455b86eef8e383901ff9860bbdf559ea86ba529851fed3dcf13176fe283c83a"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_1_5_tf0","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","ed39be3c46137b4e78bf450c8b4853bcf9ef4c41ef2f7b6a48855efd47c58b0b","c68738963293865c9f6624faeb4860ca184656dfef1221e5283c4eb9bf82df93","5445385ecfa1c4379f48306452b0eefe19c9cd9135e919fb95146ae4284adf58","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_1_6_tf0","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","e625b4426e404bfeb6c79b9a7122def9b624507ffbeaa1934d8d188fd4aa215d","a99211a9605ffefcd547530cf8108645b3c5dd2aceb5841d9183f449615d4aba","9a73f69b344c2273cba80aa8abfa4f7eadde65e0c5af8219e33feac6243498ed","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_1_7_tf0","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","8be263989fa4924a8b2733a6d9848ab7d29fad4133e822da32cea4231ceb27e8","b1fc531016bdfe9c6960e644b98e2188a8d68fb9e65bc7879cbd5f4a6fe614cb","d71747bc3a82955bcfdcb9a1ea2151d943d1e589ba2114cfd48a42c45cb58875"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_1_8_tf0","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","09f8acc9152527eca5f6ce477a40e63cccfdf05258eb6052da500c9a28f500e2","b6194ff2e1dcd85ef5dc73d4e5956bd51687bcf6953f2160f324d976bd4b8deb","8201f5bed17a7f19b581680ff8c5bf32cce397d19402bda9201b77f2ce44a2ce"],"dtype":"float16","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_2_0_tf0","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_float16_2_1_tf0","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","9204d5d139fd4aacfdd8a830b76119a0b08a696c9051b701d3b901aecf53535b","fee818142923741978630e96eaa04536372f0cda1b700f038cf0532d946d9c9c"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float16_2_2_tf0","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","ece68a249fb646d5696030320e8b396745eb877683cc75d587893af8519a2b42","352a3e12bdcb1388019f021d91d272fd441acb26c22824c2e91ab54fcc6d5eee"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float16_2_3_tf0","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","55fafbae02ff8d392c0ac9df600e2a1c8c90c8e7828883aefc068ec624c598bf","d07efec0d7501d767e49368f6f264f267149b67e7e58cceac3d2e2ea57dd55b6"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float16_2_4_tf0","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","55fafbae02ff8d392c0ac9df600e2a1c8c90c8e7828883aefc068ec624c598bf","d07efec0d7501d767e49368f6f264f267149b67e7e58cceac3d2e2ea57dd55b6"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float16_2_5_tf0","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","5e94372690c959383776acb2b7c29a25e318b702322f5cf91c45954c23798d15","7772b2287d1200bc2518d92134dddfe792092aaa2f533b84a114954db040e193","8631ee72966a0ab83089c043b9bf8a67924d3b8461f393065fd99b766dd9135f","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_2_6_tf0","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","07ed369dab84c51c0c983fc42f8a24a6c33116cb1b4d6b90c32dbe94f3665230","1d7ccdf272e25bcaa14247023045d442f57eeb4536735fa22a39b1a8cc15c133","bafbf759a8ba3949f176a9f36b22749750baa95deefe2c345d6f98b696d1ee24","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_2_7_tf0","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","e39a5402f26764894bb91964e8469f831f4e12c2b17958b03ddf2ceb9a8f8f1d","3c77bf187a6168f2ad4861d2ccb9bd5b7a60018b295fab11a63cd655e4b289b1","4a95dc5e9d536c8a9db23bd35d0ecb84a7296110eadc405fdca50477013e18ea"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_2_8_tf0","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","4638ff91c2bc338489d15c67075f5c2e6f2cd1aaea386e7235b782f99bbaafed","111add5aac898ea0d75f91b5d6e75c93731b558e8f236fd8e892a377793d982a","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"float16","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_3_0_tf0","sha256":["f3b3e27c540f1c1ed5ceeda3781cfd568edbe3f5833883b77dc3981f6052c6a7"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_1_tf0","sha256":["056be8ce1a58020ae4ae27bedfa5087c50a839f1cf78f51f849933137d2644a4","313efeb38ca3fb0f6cc36a2b568597c72457f87ca7507ba047e17e398cbcc84f","026718cc297afe933986995cd51e02ab490e7daddbb85a05af1c43c44e890305"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_2_tf0","sha256":["eaa5b05d73dafeb0607c1155e3e574f66348db2852a0e7267de8710a6ae20502","cafe7ed3038ad116a98760ea0b944aed1b5f41f77554945ab3e8ee4a02b83f41","6759b4a78d3b42120ab40e8405fec593093ccf1bbf98ef0dc94ab5e1f3c71105"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float16_3_3_tf0","sha256":["ada04d3041c7ae52e0985c1da5ca17391728ff27d32afbefb4c1ccdbb4b9fd3d","f9fa50382abfdca66b2c363db0f46a595799b108e1d3a21a4910525eb2d08a93","5011bd0d86ceac229a93066d7c60de8efe0e486cc75f87b16237e30fe32f3a45"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float16_3_4_tf0","sha256":["77c46d4112d39fb573f828a8cfa5dc75a192751a82db0d0937c37236a5ffd5a4","f9fa50382abfdca66b2c363db0f46a595799b108e1d3a21a4910525eb2d08a93","5011bd0d86ceac229a93066d7c60de8efe0e486cc75f87b16237e30fe32f3a45"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float16_3_5_tf0","sha256":["bd88ce9319ba5858da41dcc013664dea37ccd6a4f28d4c121b13baca3290978f","4ecf54bc92313406af9b107ae1deb127250e2683bc30d9306f509cefc9c4a62e","2c2693205ef629222211e914fa7a546d839d4ace42318656081681ecce47db95","78965449852d8c52c1ff223bccea50d258e78d0f917630c63466b7479c4a3022","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_3_6_tf0","sha256":["7a7a874eda78e26e09712391567d4a40b13e78ac04903e1671e914d80ba73fe3","1e97cbb4f1a7e15540f8168c6477c94d7c76b632b1f316d0f73bff5f74a1de12","45c95a9fa1421d5f0cc1cc62ad4c25aed9320eb1f3eec19d69530f96d42e0ddf","ac61310fea599051f9fe96ba38ad4cc59dc34ecd9ba8b8b561969d8e04074241","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_3_7_tf0","sha256":["46a92fd447a1337967c506a462cdf0fc63338ee0a9a8b59757800b66282d00b9","c8e9075e68308f80d1515d0ea783a1da10883e797582cb6503b0ca0642514acf","5a9b583c00e28f8cf285788b24b40c5c4caa91a7996a5e9ee0d5f2196ae6b8a7","f40a52ea86010d4323ada020d363843aabaca65d4453f2929ce6ed97745e2f98"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_3_8_tf0","sha256":["05099cb8f1ec4a74ec951a5704a5d700221719a1f8b53eff60ff87fbf89e5b70","6f7e8684a9656b23de19bd2ee6ffb770c87048fe13491cfb01fbe0c7ff823bed","d39ce2d708f1150b3cec0ffe9943b8155a67e96513f297dddf544c0208877445","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"float16","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float16_4_0_tf0","sha256":["d6401b51df49db6a71f2a8a83bda4f9c11963c96d9f83ccae18980429c246cf1"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float16_4_1_tf0","sha256":["0d72feb93a7746a33fd3fc694c06ebf1cc0ec39bf0ce6a4c9785043069ad420e","c719ff14fe3e92ba6a9e52921c7cc365ba1929db3acf438dff5bf105164fd43c","0d0a9e4cc2ca43d19a55f3e87ab451706aa8e51a028969527b430da4add9d090"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_4_2_tf0","sha256":["6e312bbee733d7086f462f845022186fedf51f0bb41aa532c2d5947e9ead7a70","7c14ba7b18589a9a46b5ce14f32803dad20fc12cfbc297b0526caac5fcc663a4","e841e0040ceb80efec11abdeb6d58d664ca2068fa7f1e6378f52942c9f20dc60"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float16_4_3_tf0","sha256":["cc81ffb127e0029fc6e6e0736e4c46a282f923d5a812425e4e68691a281d28e9","9fa3676b096f34aeec3b0a3a4eb808163014bf8cbc627e3d50db7f324d4ab266","9931690ae6aecab329197003bfbe7755f276b2366afe6b71a76e17764ccdd6ce"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_4_4_tf0","sha256":["5e52c302140a309eae0e9649a51e671e64c35da7fee9c3f0c91234f06bae0801","9fa3676b096f34aeec3b0a3a4eb808163014bf8cbc627e3d50db7f324d4ab266","9931690ae6aecab329197003bfbe7755f276b2366afe6b71a76e17764ccdd6ce"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float16_4_5_tf0","sha256":["8e5daa3e83662fdf7a890b2fabd24d6aa2d1c99a10063e30298d568cf5606e92","aa24350d7f186a6c5c26f8b64014df2bc4344e0d3a8952ab57956bffec01fc6c","4d6f8c0441ff854ea5ef817829a26b5b340f5b46ab33cf9226ee7d2d02425876","6f46246c6a160705a078e6e4277aaba2291dea89c8789e53eebf2f5e267717dd","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float16_4_6_tf0","sha256":["7b2717cdcfdce755896bd082f31c4f3d956dc050d4fb8489c3311d18ce9b8d65","36362265f9836d3533cb36bcc835d30040cc517586be5f10b001671b44b7d6ee","c523835d4c987d9bef9b61de1289f83fb4e2452157b0309b90bc6341bacf0c0c","86957786341f26ab1292ff42d57a82954ff4223af34557b03a8a5b34b1ba0e82","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float16_4_7_tf0","sha256":["47bfeca32aa60971fe43e2d98484aa164e332997fd018681210b6517f631eb6e","4de40be62a6eb99c987f433aa889a1bf72c2ae7f1732374c282040fbdf51997f","effedc4d96cc84af80ccf6abd0e6a88813bb9eaacb8648a2c5f9f76856964e30","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float16_4_8_tf0","sha256":["c3216e155646ee950077fc631531eaf4a056ef989035d490078a3c44856e0ea5","a46576e627856198b9cf8894a831d3670853ee6e0b83b64490a649f66ef64450","44658df14030a174af827903fee8ff8e027204848f70c48baeebf29280793b4e","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float16","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_0_0_tf0","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_0_1_tf0","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","df915b4aac274010344c9be75e59114fa554300e89c478baf1281b182c3801b4","f6e98f38decbf9d962544b8963b26f70f9aff53dde85cdebe241711f6b5fc204"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_0_2_tf0","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","b0598197758a2ad0d45e1e74e8e0a2b411cd3cd5c8da942f306b208126043f4b","3df1bbe54aacd476bdffcf9c28e3861e8bf784a7bcd388203577cf10b8df16db"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_0_3_tf0","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_0_4_tf0","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_0_5_tf0","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","4dcc67eff8f784cd4f2817136a6c93d6915fc1489e6dc0abeb407bebc2fa324c","b93f1270ff796ea7f07cae3959018fabb8feb9b6da301441a1a790fffd07f280","2f881900f98e82c6986b1b0e34a5ec664bc23dd1d8678dd83a98d230106f23b9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_0_6_tf0","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","2e53f95358711c14533398d82aa88b59f3b297936bfee2f12fc153a0b380c2c3","9fa8146fb2caf76a0afc9bb7907256f1b581f6aebacfe7fa7f202eb8d109b757","af92d9d3bc1d4cab83f489182b380482572a78345e461654a83a1ac544c25ee4","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_0_7_tf0","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","436fac260baec0e8b02fc2223a0a9dd25813c09d4e0faae3cd8cd8f4b4dd1bcd","f3b7de7a5d765e14f449930de59717ed066ff91f3443347f5af60a64120ea969","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_0_8_tf0","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","6d6a36d239ab30dffef333d9c46203e45b55aaeecce636f8668f8b9cf02e5a92","0ad960713bdf7fa9793682d4f1a3a456c40e89b700b2ffebbc4fcb09837d9b06","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float32","tf32":false,"profile":0,"dim":128,"rot":64,"fused":false,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_1_0_tf0","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_1_1_tf0","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","0f0afc844eb8273d4a140421797fbccc9758ef5b4217136c623a820dcd71fcac","b6c046d6519de908966f7a4b03714670be74ea6d032eec898e731c04c6d4e741"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_1_2_tf0","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","a16b85c3704558b4cd0c98af04911b9f38b265cb3adb1a6bda081bf2ffdb32cf","51e386ef7a02739a567270b9fb6005b0f444deefadfe2dbb938a77ae571f1fd2"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_1_3_tf0","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","6ba9f076ebe4eeacada976d59d5e782aa8971975475393279c86fa756d976165","25cd84a58d075ec0c71b61582c41804c8ac677aead6637653a601eb95086062e"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_1_4_tf0","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","6ba9f076ebe4eeacada976d59d5e782aa8971975475393279c86fa756d976165","25cd84a58d075ec0c71b61582c41804c8ac677aead6637653a601eb95086062e"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_1_5_tf0","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","38a7438e231ef215489409f450e9e93d0f4cef780df8991e6da8063e3bc1a0ce","e216b57a0a34fa387f1a5253e3648e52d7969b81a0a9b236172a8ef7cc6ef460","75fd99e28eede14e29dda8bfe09eb597fc5708bd4a4decf613f4c2ff835ccd8a","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_1_6_tf0","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","d9e80a1784a3df30a90f5cae3ba27f4ce57e040cb789d207f9792e0d775f1175","326c2c4826ad1e323940e014e2793a2377629219cd1711b34ae9f592765628cc","3520ebdc6053f0379ca98fc8b7efb97427f6af5537501616d85606d011274151","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_1_7_tf0","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","590fc63424fa55635463670fb3e2d306021a089f87dae40bcce0cedb70567ea6","fa2790cac25db5dabbdf36bea510ade820530764df8df062f2e56b7be22bf1d8","6762da3e4caa64d495dfa175e7270528e5e646e088e99327161d7de6cb518fc2"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_1_8_tf0","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","c4865aa6cf05ef3cab8fbdf06940a91c0fe086eed6983603b3c037a241225076","2149e7290fe09ba13a0cbb4e4effe712f2577996ac06537a44ee9b8ededcf5bc","8201f5bed17a7f19b581680ff8c5bf32cce397d19402bda9201b77f2ce44a2ce"],"dtype":"float32","tf32":false,"profile":1,"dim":128,"rot":128,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_2_0_tf0","sha256":["0ce87855ee9730cb6d8e40538748d5beba2436dfaa2d021c5d15667224aa40ca"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,64]]} +{"kernel":"qsa_indexer_prefix_float32_2_1_tf0","sha256":["2f2945e66ecf9b75e7eb32e6abe02fe32901f1a1f681c908f56a5cd50d6ab8a8","ce3a4768abc6c6b4fdc835b637351d4a241d064d7ef4425baaff74e6f3571453","882c815051aebf942e13a5bab4a670b17addae83bcec6d1bc61366784ed8e2ff"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float32_2_2_tf0","sha256":["6eff765a5b3f7dd5cfecc14c1fb1a434cd1506c4b736546c11636ac2fa1f01fc","0748d307d0f3367880f1aeef1175b12a5689a93edd77a11e2adc328c61899f9e","7fbd97632d7da5d23784781bb17a7c05e6ab2ed16b428e166fdf7ae1b024ebce"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,64],[1,256,64],[1,1,64,256]]} +{"kernel":"qsa_indexer_prefix_float32_2_3_tf0","sha256":["df9fad6bba0db2da0871f6187c91a23f98f79064f2a250e9c67bc0a8cfe49094","3d482ab07ba751ba127e74a3af0240a4610e501759224951fdd1d70cdc2407c8","6463f32314d161c0e59cc4692c0d8d103a4e693a55d44d4e85374ebab24be6ec"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float32_2_4_tf0","sha256":["9345393f6a2931804f7edf59b6984a814b26e44becc7ea7a72d0e99d7ca48f43","3d482ab07ba751ba127e74a3af0240a4610e501759224951fdd1d70cdc2407c8","6463f32314d161c0e59cc4692c0d8d103a4e693a55d44d4e85374ebab24be6ec"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,64],[1,512,64],[1,1,64,512]]} +{"kernel":"qsa_indexer_prefix_float32_2_5_tf0","sha256":["86e49487d9c44e03eab4ea6e55fc49e56209d4087beb31cab6af88d36fb92780","bdbfe6d1b1e7c143bfbe412277519cc05dc0204b5b2b56a79e31a2164741d11c","1fe83780997b68ca7ff1ebe2828dee7da16851d4a57fe04d9fc5adb11afdb944","c639c3a92e144f27a136c72c04dbb9bb039c06a05a5b68178979781f53dd3ec7","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_2_6_tf0","sha256":["7d582374f4a3efa29d0b0fcbfc237a44ba71c3e851872d061e0e9f02fabcb2c0","cc7956a048760a48bafd8f188cbb3d7864ca7e9635ecf657aa7176f9f1fde206","174443d760a345c27cf5056fd64a25703797834eb812c73a48bba0b94a6420e8","5a7242f8bf51d0a43108791e3eb95da62437885a73eae296dd69e0bd1fb66d42","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_2_7_tf0","sha256":["81fb190078aedaffa53336662f53b64d10f233e64ef41188206117b1178de074","b2ea23a7603730a7078117de43a295da27e2b79cd9c6113746ae607254fd05d2","b8a41898032866e5f1757c4c7563089690d73c71a352b7bd60a63fb59df2a9c4","4a95dc5e9d536c8a9db23bd35d0ecb84a7296110eadc405fdca50477013e18ea"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_2_8_tf0","sha256":["4f9bdc76d39d6dba56ae5610195c058d4b52d869ee1a42c9b3f76a3d7dc76ec6","4a071b840012a87cd6c4f903a39fee19e2f3ac466de3e249b2aed6e34d9888a3","05aae61663a795fcdc2794e758a4eb487b2b2548a8ebf36d4ce75f1116dcf1c2","061696c5df066df53b27c51eb07ec9bc8b9c1e4c624df46cb68dddac31c940c9"],"dtype":"float32","tf32":false,"profile":2,"dim":64,"rot":32,"fused":true,"kind":"supplied","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,64],[1,1024,64],[1,1,64,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_3_0_tf0","sha256":["e97a96ed42dfdd5b5bc0e3ea23af4d2154dcd2f756932362bf6075be1bd522d0"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_1_tf0","sha256":["145e27eccaf818d053f6214ea8b246ab7f7a13d2178430e588c577aeb8af2518","d1aa553d75194f1bf1a66ad5e739851c9d5b4d959788356a3ba7ab7d2a25a38b","d865f1f731a66b5837237d763c36e69bcf20244404b6d8041854a5ea8d4bab01"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_2_tf0","sha256":["02fdc95b6f5778b210e5c410137462a7af7fd7d9eb3189802c867d02f1d3ac55","3040599f41acf47ecc64994fef5f800c0db8f8aa04f872961da9527f51314973","d0ac660fa90799c4d40f33df16c1ae066f41463047ed25207780aee23f00952d"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,256],[1,256,256],[1,1,256,256]]} +{"kernel":"qsa_indexer_prefix_float32_3_3_tf0","sha256":["da0fa0e0c6d519141ec5ff722e437968d45a4f36cff36869ef61ceef6a0579a0","c338e2a9f7b59752446a4e119a3af37005220a80ddab85f2a82183ae0922a67b","0a03630e92c97fd5a3a3c0de78bb9c0168dadacdc023b9087dddb74b9ca91a2f"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float32_3_4_tf0","sha256":["cbad11b5feb19e286e89a3c52f632fd0e97d805b3d7e639b8f9180adde37bec1","c338e2a9f7b59752446a4e119a3af37005220a80ddab85f2a82183ae0922a67b","0a03630e92c97fd5a3a3c0de78bb9c0168dadacdc023b9087dddb74b9ca91a2f"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,256],[1,512,256],[1,1,256,512]]} +{"kernel":"qsa_indexer_prefix_float32_3_5_tf0","sha256":["567e7abd6c0c1ef9ba2aba147253ca3613722243b438180c248fd9b79099ae94","99ea922fe64fa2acb9d58f48110becc48eef03e69f018c7ff23f59e36bb8abcd","6ff0624e5896fe26b6d0d027d3c4fad4126876d07684ee97f70468dcc2785c40","757946341f220ed3758f270b3e55b9ce6c5b9dc549d07eaa5fa6f729801c0a10","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_3_6_tf0","sha256":["ed2963e051cd2b9f66ea26e6915068456ab8fb64fd6256b70a3270ee007703a7","8c9a0355576081d55a2d9407179fb9d847e4cedc53310fe3459ee80c82bfef1a","d8c02b5d6ae36094e2373777935d739471ea0c3d50ebfebb1956fd6bfe2ac4c9","c6254a5e4e6b1b8bf0096b5dba8e016f0c83d6aad51e671b12e8e68ddfd40a27","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_3_7_tf0","sha256":["cc7411d4874892305a44b85360fe975a5f8e2ad1982e948e2f48f6bccab12273","117840172f998ef32a295b8fe08b535da93f12b8d2f6cdc3b0b14b64d1620139","4044a8d220706d6c46f80da8d92db99c678615eac42ea0c311cce0d6e5cf11dc","f40a52ea86010d4323ada020d363843aabaca65d4453f2929ce6ed97745e2f98"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_3_8_tf0","sha256":["e04300c157a6b34849e57a703f8b23d87479407e5c07d4a4812907ea8ea0f71e","045b1a8cac09708a50dec5b0133819284afda1c422a7872184d9514a7ee66914","063693e3a44239f7c729a835ddce848253e493cd0ee7f35a863735379c55a035","585d50db34e98f0526d6f159ef1202f47811337ef719d5f4278bc2be104482fd"],"dtype":"float32","tf32":false,"profile":3,"dim":256,"rot":64,"fused":true,"kind":"dense","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,256],[1,1024,256],[1,1,256,1024],[2048]]} +{"kernel":"qsa_indexer_prefix_float32_4_0_tf0","sha256":["6c5e44889313198ec5f337b1b5b0ed0650034e4c760d2d01e1f321f7361de257"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":0,"rows":3,"trim":0,"pos":0,"offset":0,"pooled_len":0,"lane":"none","names":["raw"],"shapes":[[1,256,128]]} +{"kernel":"qsa_indexer_prefix_float32_4_1_tf0","sha256":["a34b56d62c0b6b7b35c734263462c3b67081cc2a60b0674c28e5ad6cc3f8447f","df915b4aac274010344c9be75e59114fa554300e89c478baf1281b182c3801b4","f6e98f38decbf9d962544b8963b26f70f9aff53dde85cdebe241711f6b5fc204"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":1,"rows":1,"trim":0,"pos":3,"offset":3,"pooled_len":1,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_4_2_tf0","sha256":["3ef96954106f166f074ad1ff36f93d4383ced65e9df78b30bcae8ea3fa993dc1","b0598197758a2ad0d45e1e74e8e0a2b411cd3cd5c8da942f306b208126043f4b","3df1bbe54aacd476bdffcf9c28e3861e8bf784a7bcd388203577cf10b8df16db"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":2,"rows":5,"trim":0,"pos":4,"offset":4,"pooled_len":2,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,256,128],[1,256,128],[1,1,128,256]]} +{"kernel":"qsa_indexer_prefix_float32_4_3_tf0","sha256":["7fe8e9e31e2a65f17499d445b5197e95409882ffde9ec3e1d85b11cc69a0d26a","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":3,"rows":2041,"trim":0,"pos":9,"offset":9,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_4_4_tf0","sha256":["55d25b033733602ba3efe872aeb28e8aae067ed6bc54decb5ec621d1f0bd863d","85fc697eb1c97f25f254e4e706d2a97d6c924413e97cd3baf8fc8be9a28dcd2d","ff29cfa49b8bb39384e37f6a3432863d72781b76ef450487188049c6dcd342db"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":4,"rows":1,"trim":0,"pos":2050,"offset":2050,"pooled_len":512,"lane":"none","names":["raw","pooled","mirror"],"shapes":[[1,2304,128],[1,512,128],[1,1,128,512]]} +{"kernel":"qsa_indexer_prefix_float32_4_5_tf0","sha256":["b59314a0cdcb7b3f346ea531da7f89282536874dd67c034c07fa1efebeb120c9","4dcc67eff8f784cd4f2817136a6c93d6915fc1489e6dc0abeb407bebc2fa324c","b93f1270ff796ea7f07cae3959018fabb8feb9b6da301441a1a790fffd07f280","2f881900f98e82c6986b1b0e34a5ec664bc23dd1d8678dd83a98d230106f23b9","2d5d619efd7b1a255524b34695e9a8113e261a48b87d6e108f2e5e9f3ea509f9"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":5,"rows":4,"trim":0,"pos":2051,"offset":2051,"pooled_len":513,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[4,2052],[4,2052]]} +{"kernel":"qsa_indexer_prefix_float32_4_6_tf0","sha256":["a704e2b50f1261606c3f61c07a509cfa746aed232d5e858b81de504b01589006","2e53f95358711c14533398d82aa88b59f3b297936bfee2f12fc153a0b380c2c3","9fa8146fb2caf76a0afc9bb7907256f1b581f6aebacfe7fa7f202eb8d109b757","af92d9d3bc1d4cab83f489182b380482572a78345e461654a83a1ac544c25ee4","c033950ba0d6fd0b92f5ec7c3d5b01243432e55da52801af795bc050a57bb5dc"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":6,"rows":8,"trim":5,"pos":2050,"offset":2050,"pooled_len":514,"lane":"gather_rows","names":["raw","pooled","mirror","indices","valid"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[8,2052],[8,2052]]} +{"kernel":"qsa_indexer_prefix_float32_4_7_tf0","sha256":["a13bf69841576102e7cc047754804b5631ce67a3edde140fa3646ed0a5484edd","436fac260baec0e8b02fc2223a0a9dd25813c09d4e0faae3cd8cd8f4b4dd1bcd","f3b7de7a5d765e14f449930de59717ed066ff91f3443347f5af60a64120ea969","9e6008f0c4c55cd3a88a15856590e2aa8ef7ea53767dbaa3d38dfee262a921ab"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":7,"rows":33,"trim":0,"pos":2058,"offset":2058,"pooled_len":522,"lane":"dense","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[1,1,33,2091]]} +{"kernel":"qsa_indexer_prefix_float32_4_8_tf0","sha256":["ef6eb23de596208c6d19af4041d1e8b9d6112c05e7ccb1c2d489eb9d49d01817","6d6a36d239ab30dffef333d9c46203e45b55aaeecce636f8668f8b9cf02e5a92","0ad960713bdf7fa9793682d4f1a3a456c40e89b700b2ffebbc4fcb09837d9b06","959a4c0a93a102a5896ef6e512549e4b6f92beb9499e3ee81531922a568b2415"],"dtype":"float32","tf32":false,"profile":4,"dim":128,"rot":64,"fused":true,"kind":"promoted","step":8,"rows":1,"trim":0,"pos":2091,"offset":2091,"pooled_len":523,"lane":"decode_tokens","names":["raw","pooled","mirror","selection"],"shapes":[[1,2304,128],[1,1024,128],[1,1,128,1024],[2048]]} diff --git a/tests/fixtures/mtplx-qsa-prefill-gather.jsonl b/tests/fixtures/mtplx-qsa-prefill-gather.jsonl new file mode 100644 index 0000000..c8c76ca --- /dev/null +++ b/tests/fixtures/mtplx-qsa-prefill-gather.jsonl @@ -0,0 +1,34 @@ +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t1_strided0","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":1,"strided":false,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t1_strided1","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":1,"strided":true,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t4_strided0","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":4,"strided":false,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t4_strided1","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":4,"strided":true,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t64_strided0","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":64,"strided":false,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s1_p0_r4_t64_strided1","sha256":["a9a515f1e77731ce9ebf0236e01c0d634ff972b1c2d8d52823e4cbe43c4f6156"],"heads":24,"rows":1,"pos":0,"ratio":4,"topk":2,"tile":64,"strided":true,"evals":[[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t1_strided0","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":1,"strided":false,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t1_strided1","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":1,"strided":true,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t4_strided0","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":4,"strided":false,"evals":[[[1,24,4,256]],[[1,24,3,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t4_strided1","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":4,"strided":true,"evals":[[[1,24,4,256]],[[1,24,3,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t64_strided0","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":64,"strided":false,"evals":[[[1,24,7,256]]]} +{"kernel":"qsa_prefill_gather_h24_s7_p3_r4_t64_strided1","sha256":["6ed33c7f562ff26f9827d93ccdcf63c675a9a5637c8ff62576643f262901aadb"],"heads":24,"rows":7,"pos":3,"ratio":4,"topk":2,"tile":64,"strided":true,"evals":[[[1,24,7,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t1_strided0","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":1,"strided":false,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t1_strided1","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":1,"strided":true,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t4_strided0","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":4,"strided":false,"evals":[[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t4_strided1","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":4,"strided":true,"evals":[[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t64_strided0","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":64,"strided":false,"evals":[[[1,24,17,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p127_r128_t64_strided1","sha256":["176e9f275407be16508e32f722e692dad1ea3d12568f9814a70954502987feac"],"heads":24,"rows":17,"pos":127,"ratio":128,"topk":2,"tile":64,"strided":true,"evals":[[[1,24,17,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t1_strided0","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":1,"strided":false,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t1_strided1","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":1,"strided":true,"evals":[[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t4_strided0","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":4,"strided":false,"evals":[[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t4_strided1","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":4,"strided":true,"evals":[[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,4,256]],[[1,24,1,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t64_strided0","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":64,"strided":false,"evals":[[[1,24,17,256]]]} +{"kernel":"qsa_prefill_gather_h24_s17_p511_r128_t64_strided1","sha256":["ba39be5b41b6354a17436138639b67170240954b58566147beda8383d7378d4b"],"heads":24,"rows":17,"pos":511,"ratio":128,"topk":2,"tile":64,"strided":true,"evals":[[[1,24,17,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t1_strided0","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":1,"strided":false,"evals":[[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t1_strided1","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":1,"strided":true,"evals":[[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]],[[1,2,1,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t4_strided0","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":4,"strided":false,"evals":[[[1,2,4,256]],[[1,2,3,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t4_strided1","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":4,"strided":true,"evals":[[[1,2,4,256]],[[1,2,3,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t64_strided0","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":64,"strided":false,"evals":[[[1,2,7,256]]]} +{"kernel":"qsa_prefill_gather_h2_s7_p0_r1_t64_strided1","sha256":["23a8c884536bfcf98cc52eeb165273c9372a77a3009b59748325217f8102e660"],"heads":2,"rows":7,"pos":0,"ratio":1,"topk":2,"tile":64,"strided":true,"evals":[[[1,2,7,256]]]} +{"kernel":"qsa_prefill_gather_h2_s2048_p0_r4_t64_strided0","sha256":["b1c7b4b83b05a77ac2003175ad8c7e6fe0b79be1e4a5a9f87ef6bed862599db3"],"heads":2,"rows":2048,"pos":0,"ratio":4,"topk":2,"tile":64,"strided":false,"evals":[[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]]]} +{"kernel":"qsa_prefill_gather_h2_s2048_p0_r4_t64_strided1","sha256":["b1c7b4b83b05a77ac2003175ad8c7e6fe0b79be1e4a5a9f87ef6bed862599db3"],"heads":2,"rows":2048,"pos":0,"ratio":4,"topk":2,"tile":64,"strided":true,"evals":[[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]],[[1,2,64,256]]]} +{"kernel":"qsa_prefill_gather_h2_s2048_p0_r4_t2048_strided0","sha256":["b1c7b4b83b05a77ac2003175ad8c7e6fe0b79be1e4a5a9f87ef6bed862599db3"],"heads":2,"rows":2048,"pos":0,"ratio":4,"topk":2,"tile":2048,"strided":false,"evals":[[[1,2,2048,256]]]} +{"kernel":"qsa_prefill_gather_h2_s2048_p0_r4_t2048_strided1","sha256":["b1c7b4b83b05a77ac2003175ad8c7e6fe0b79be1e4a5a9f87ef6bed862599db3"],"heads":2,"rows":2048,"pos":0,"ratio":4,"topk":2,"tile":2048,"strided":true,"evals":[[[1,2,2048,256]]]} diff --git a/tests/fixtures/mtplx-qsa-prefill-graph.jsonl b/tests/fixtures/mtplx-qsa-prefill-graph.jsonl new file mode 100644 index 0000000..0e7cdae --- /dev/null +++ b/tests/fixtures/mtplx-qsa-prefill-graph.jsonl @@ -0,0 +1,144 @@ +{"kernel":"qsa_prefill_graph_bfloat16_0_blocks_tf1","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","7a0ca2c0139aee38839fd75232cecc2769bab9365288b185e381cfd0c078f7cd"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_bfloat16_0_row_tokens_tf1","sha256":["cc869609cabee8ee77cb612d382eecbcc8fcae02110776ef8e5f258749db866a","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_bfloat16_0_dense_mask_tf1","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_blocks_tf1","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","c4b084c9df5d7f03f6e870276f21333761596ae82fd43a04cab576315e561f75"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_row_tokens_tf1","sha256":["05c52af567444668d155161ce21287d23097c8cd14234d7501d4eede8f87181d","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_dense_mask_tf1","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_blocks_tf1","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","dbce562b2322df5608336d9d215c340741c9d4982c1af92b3af02c3597ed3108"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_row_tokens_tf1","sha256":["76714dac44652a75960047dd7ad25ee9f58d4926b6c13d1f03017bdd9104d281","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_dense_mask_tf1","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_blocks_tf1","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","eb8ee198b6a9c3a7b536709832df6300e5e5444ac45cd7a15c02003449f686f2"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_row_tokens_tf1","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_dense_mask_tf1","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_blocks_tf1","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","89b4a5d3cfec57eca4c8663953e26df979be942e22027161153fb83edba16d9b"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_row_tokens_tf1","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_dense_mask_tf1","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"bfloat16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_blocks_tf1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_row_tokens_tf1","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_dense_mask_tf1","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_blocks_tf1","sha256":["005ae7d069cdde5a8f3e0263457b3850f0dfeeb541776d597c605551392d5eed","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","ce392929af5cf44f36894d2a180b159f3132cadeadf4a23d21b5b23e074a26a3"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_row_tokens_tf1","sha256":["b0bf894a8812928e929b67e3441ea3b0e5c0f344507097b05153d11072a2927b","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_dense_mask_tf1","sha256":["f396b68cfe9b3b2882b54e67517967701693e81c5c04c286cf9713cf219b5e4d"],"dtype":"bfloat16","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_graph_float16_0_blocks_tf1","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","7a0ca2c0139aee38839fd75232cecc2769bab9365288b185e381cfd0c078f7cd"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_float16_0_row_tokens_tf1","sha256":["cc869609cabee8ee77cb612d382eecbcc8fcae02110776ef8e5f258749db866a","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_float16_0_dense_mask_tf1","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_float16_1_blocks_tf1","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","c4b084c9df5d7f03f6e870276f21333761596ae82fd43a04cab576315e561f75"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_float16_1_row_tokens_tf1","sha256":["05c52af567444668d155161ce21287d23097c8cd14234d7501d4eede8f87181d","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_float16_1_dense_mask_tf1","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_float16_2_blocks_tf1","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","dbce562b2322df5608336d9d215c340741c9d4982c1af92b3af02c3597ed3108"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_float16_2_row_tokens_tf1","sha256":["76714dac44652a75960047dd7ad25ee9f58d4926b6c13d1f03017bdd9104d281","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_float16_2_dense_mask_tf1","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_float16_3_blocks_tf1","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","eb8ee198b6a9c3a7b536709832df6300e5e5444ac45cd7a15c02003449f686f2"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_float16_3_row_tokens_tf1","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_float16_3_dense_mask_tf1","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_float16_4_blocks_tf1","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","89b4a5d3cfec57eca4c8663953e26df979be942e22027161153fb83edba16d9b"],"dtype":"float16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_float16_4_row_tokens_tf1","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"float16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_float16_4_dense_mask_tf1","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"float16","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_float16_5_blocks_tf1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_float16_5_row_tokens_tf1","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_float16_5_dense_mask_tf1","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"float16","pdtype":"float16","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_float16_6_blocks_tf1","sha256":["005ae7d069cdde5a8f3e0263457b3850f0dfeeb541776d597c605551392d5eed","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","ce392929af5cf44f36894d2a180b159f3132cadeadf4a23d21b5b23e074a26a3"],"dtype":"float16","pdtype":"bfloat16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_float16_6_row_tokens_tf1","sha256":["b0bf894a8812928e929b67e3441ea3b0e5c0f344507097b05153d11072a2927b","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"float16","pdtype":"bfloat16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_float16_6_dense_mask_tf1","sha256":["f396b68cfe9b3b2882b54e67517967701693e81c5c04c286cf9713cf219b5e4d"],"dtype":"float16","pdtype":"bfloat16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_graph_float32_0_blocks_tf1","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","e0a89aef6084f2764b0acad1556c01eeebd5c36ad7d334161bf3f148390b95b1"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_float32_0_row_tokens_tf1","sha256":["c9b6f6eb6749c27fedd60bf35eb3db913441823e737545699c04c1b25464eda2","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_float32_0_dense_mask_tf1","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_float32_1_blocks_tf1","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","f143c38dadcf460108171271cdb286879d8e3cb2558b4cae003377ad82a3bb89"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_float32_1_row_tokens_tf1","sha256":["11eb8f9cc03a30b1a93e215908ac263096821fec0d71913b6b43f6a71842821f","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_float32_1_dense_mask_tf1","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_float32_2_blocks_tf1","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","97f6e07b33f1054571e81d245b4f4be850fab82a1776e19d658add413fbbaab4"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_float32_2_row_tokens_tf1","sha256":["209e95b19bdef2e540a92acc9ebf206662b10240d692d1d3c23a6f88923ffdaf","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_float32_2_dense_mask_tf1","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_float32_3_blocks_tf1","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","3325c93994b4ba78193adfdb9874d2d30591406f6249a36250a2716b0a4ff6ae"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_float32_3_row_tokens_tf1","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_float32_3_dense_mask_tf1","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_float32_4_blocks_tf1","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","0791b69d31e59d43c1924c5b5e07666a039b10c40aa6b167f44f3ef2af23b079"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_float32_4_row_tokens_tf1","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_float32_4_dense_mask_tf1","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_float32_5_blocks_tf1","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_float32_5_row_tokens_tf1","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_float32_5_dense_mask_tf1","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"float32","pdtype":"float32","tf32":true,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_float32_6_blocks_tf1","sha256":["26d7feaeaa5fc71dfb37fef4ae010c875f606575522ec3b3c650f38e72bd8b38","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","c13942c7655ca53b5a4053c2f9227e6e11d4f4a5ed4fa092e74f8d3b09220d84"],"dtype":"float32","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_float32_6_row_tokens_tf1","sha256":["0fbd63f1a9919bf6890a6e25cf5e0e926c42b8ddb5d473da3302456099875029","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"float32","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_float32_6_dense_mask_tf1","sha256":["095587ef76f17ccfdeedb6a1a5a99b0c5d4a2ffc5b35d2f1edd4008c2518ef4f"],"dtype":"float32","pdtype":"float16","tf32":true,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_topk_graph_0_blocks_tf1","sha256":["8ee35630af3d40bc4b1952a2c43596a57bc25ee2fdfb515b8c081c3b5067e9cb","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","483ed9534c9953ddc66bcc6dcdf3527d5badd357b801cbd630c7b7c1678a73c1"],"tf32":true,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_prefill_topk_graph_0_row_tokens_tf1","sha256":["54f75315dda1c3c97cb113e87fc29e77e491d9f4d6c9ba33490f4d4f5a5b7a2c","5bf081898f480e33744b44900dbbd2368b25b34b43fea5a81509a44a9daff8cd"],"tf32":true,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"row_tokens","shapes":[[1,513],[1,513]]} +{"kernel":"qsa_prefill_topk_graph_0_dense_mask_tf1","sha256":["732e0be98dbc5b7c7615eae54d796798c1479b460ff3eee389e3c56ee7e07cfb"],"tf32":true,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"dense_mask","shapes":[[1,1,1,8196]]} +{"kernel":"qsa_prefill_topk_graph_1_blocks_tf1","sha256":["9f3d0ab0d28a8621e93b640c9c9c674f7a892846dd43b55916efe5963a256030","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9"],"tf32":true,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_prefill_topk_graph_1_row_tokens_tf1","sha256":["ff6d367f0e5c5b319c6fd440bacead520074cfae6246f5082e49954eeb0cf523","8ca3372b656e0494114c5691298b50590ed64b2096e3d65518be9c7f6ceb7444"],"tf32":true,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"row_tokens","shapes":[[3,32],[3,32]]} +{"kernel":"qsa_prefill_topk_graph_1_dense_mask_tf1","sha256":["8ebfe93d10897394688a12b8e8782b906b45d799cbdf72a8581f1915ba3dc528"],"tf32":true,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,8196]]} +{"kernel":"qsa_prefill_topk_graph_2_blocks_tf1","sha256":["7d017d80ced16b3673ebd961b4fd7fe0fccf0b15836efede52c96ff971060e92","49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef","a90f2ac76943e14250d43ccd74d1b57d5fc9d4911088a9c2badf0cebc8cb41d8"],"tf32":true,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[2,3],[2,3],[2,3]]} +{"kernel":"qsa_prefill_topk_graph_2_row_tokens_tf1","sha256":["c5bd40c2eed1cd4b61771bc4491b45ff35ae89ae3ef8f5868714ae2f5c9414a1","19f63152b7902c2057fa8cfa751358c6ba40ee8596b7e7a591778091c7edfed6"],"tf32":true,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[2,12],[2,12]]} +{"kernel":"qsa_prefill_topk_graph_2_dense_mask_tf1","sha256":["5ede40067d5ade5033b8e68f8eb0e22705b07d0ed6aa0071b0bb2fc517318e4f"],"tf32":true,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,2,12]]} +{"kernel":"qsa_prefill_graph_bfloat16_0_blocks_tf0","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","7a0ca2c0139aee38839fd75232cecc2769bab9365288b185e381cfd0c078f7cd"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_bfloat16_0_row_tokens_tf0","sha256":["cc869609cabee8ee77cb612d382eecbcc8fcae02110776ef8e5f258749db866a","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_bfloat16_0_dense_mask_tf0","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_blocks_tf0","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","c4b084c9df5d7f03f6e870276f21333761596ae82fd43a04cab576315e561f75"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_row_tokens_tf0","sha256":["05c52af567444668d155161ce21287d23097c8cd14234d7501d4eede8f87181d","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_bfloat16_1_dense_mask_tf0","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_blocks_tf0","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","dbce562b2322df5608336d9d215c340741c9d4982c1af92b3af02c3597ed3108"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_row_tokens_tf0","sha256":["76714dac44652a75960047dd7ad25ee9f58d4926b6c13d1f03017bdd9104d281","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_bfloat16_2_dense_mask_tf0","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_blocks_tf0","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","eb8ee198b6a9c3a7b536709832df6300e5e5444ac45cd7a15c02003449f686f2"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_row_tokens_tf0","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_bfloat16_3_dense_mask_tf0","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_blocks_tf0","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","89b4a5d3cfec57eca4c8663953e26df979be942e22027161153fb83edba16d9b"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_row_tokens_tf0","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_bfloat16_4_dense_mask_tf0","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"bfloat16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_blocks_tf0","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_row_tokens_tf0","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_bfloat16_5_dense_mask_tf0","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"bfloat16","pdtype":"bfloat16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_blocks_tf0","sha256":["005ae7d069cdde5a8f3e0263457b3850f0dfeeb541776d597c605551392d5eed","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","ce392929af5cf44f36894d2a180b159f3132cadeadf4a23d21b5b23e074a26a3"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_row_tokens_tf0","sha256":["b0bf894a8812928e929b67e3441ea3b0e5c0f344507097b05153d11072a2927b","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_bfloat16_6_dense_mask_tf0","sha256":["f396b68cfe9b3b2882b54e67517967701693e81c5c04c286cf9713cf219b5e4d"],"dtype":"bfloat16","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_graph_float16_0_blocks_tf0","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","7a0ca2c0139aee38839fd75232cecc2769bab9365288b185e381cfd0c078f7cd"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_float16_0_row_tokens_tf0","sha256":["cc869609cabee8ee77cb612d382eecbcc8fcae02110776ef8e5f258749db866a","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_float16_0_dense_mask_tf0","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":true,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_float16_1_blocks_tf0","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","c4b084c9df5d7f03f6e870276f21333761596ae82fd43a04cab576315e561f75"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_float16_1_row_tokens_tf0","sha256":["05c52af567444668d155161ce21287d23097c8cd14234d7501d4eede8f87181d","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_float16_1_dense_mask_tf0","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":true,"chunk":32,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_float16_2_blocks_tf0","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","dbce562b2322df5608336d9d215c340741c9d4982c1af92b3af02c3597ed3108"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_float16_2_row_tokens_tf0","sha256":["76714dac44652a75960047dd7ad25ee9f58d4926b6c13d1f03017bdd9104d281","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_float16_2_dense_mask_tf0","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":true,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_float16_3_blocks_tf0","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","eb8ee198b6a9c3a7b536709832df6300e5e5444ac45cd7a15c02003449f686f2"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_float16_3_row_tokens_tf0","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_float16_3_dense_mask_tf0","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_float16_4_blocks_tf0","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","89b4a5d3cfec57eca4c8663953e26df979be942e22027161153fb83edba16d9b"],"dtype":"float16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_float16_4_row_tokens_tf0","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"float16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_float16_4_dense_mask_tf0","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"float16","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_float16_5_blocks_tf0","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_float16_5_row_tokens_tf0","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_float16_5_dense_mask_tf0","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"float16","pdtype":"float16","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":true,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_float16_6_blocks_tf0","sha256":["005ae7d069cdde5a8f3e0263457b3850f0dfeeb541776d597c605551392d5eed","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","ce392929af5cf44f36894d2a180b159f3132cadeadf4a23d21b5b23e074a26a3"],"dtype":"float16","pdtype":"bfloat16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_float16_6_row_tokens_tf0","sha256":["b0bf894a8812928e929b67e3441ea3b0e5c0f344507097b05153d11072a2927b","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"float16","pdtype":"bfloat16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_float16_6_dense_mask_tf0","sha256":["f396b68cfe9b3b2882b54e67517967701693e81c5c04c286cf9713cf219b5e4d"],"dtype":"float16","pdtype":"bfloat16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_graph_float32_0_blocks_tf0","sha256":["1d88d60dbc0e245e3687ba0b6a4dd2372ee86e54642a44a82959bed382172088","e9bac255f4adc7cb4ada9298e193a5ff66b434d15afabd458505325f29c398c7","4d0afd240afd2c953e70f8c5980e37ce2698444bb26a96bc03c2c5d12dc37d5a"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"blocks","shapes":[[2,512],[2,512],[2,512]]} +{"kernel":"qsa_prefill_graph_float32_0_row_tokens_tf0","sha256":["bc402f1b1d1951bc7c5431e130f34ebfe521a201d39fbb89b1179a6a7a8ea386","8c34819ec2a86df412bbd0d5fb86cdb7eff5b797a9792c0c2256088fa9efb21c"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"row_tokens","shapes":[[2,2052],[2,2052]]} +{"kernel":"qsa_prefill_graph_float32_0_dense_mask_tf0","sha256":["386b34f800de0cce98f133c00f3e4d0129c9dc6c6cf87d71ef38af7825d435f9"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":2,"heads":4,"dim":128,"blocks":513,"topk":512,"ratio":4,"pos":2051,"kind":"plain","budget":134217728,"mpp":false,"chunk":2,"mode":"dense_mask","shapes":[[1,1,2,2056]]} +{"kernel":"qsa_prefill_graph_float32_1_blocks_tf0","sha256":["62ce64312488765ee6571391179b0dc66ff1a7c86385c8b387c6cfcd0c59e898","cb761aa00047ccf2fa16eb47496fcd0a24a6e8a8d49a108cd07cfac630d5e5d5","10bf43d2765d3f8b812df968e668fb710722cc056acb8ebc7ac2a21fa2033a27"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[65,512],[65,512],[65,512]]} +{"kernel":"qsa_prefill_graph_float32_1_row_tokens_tf0","sha256":["58d450ad7f735bb9d4933febffb11b7ee5dbec71b1057aaa6c6cfeea4b11d2f9","1181e19938f13a395c23c3a74db86bcf805b04710786aef119ed2f188ba369d7"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[65,2052],[65,2052]]} +{"kernel":"qsa_prefill_graph_float32_1_dense_mask_tf0","sha256":["1e5bf0694a2c29e041dd9510a8eea9ff6132df3daadb420a1efba1d38809ec8b"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":65,"heads":4,"dim":128,"blocks":1024,"topk":512,"ratio":4,"pos":2051,"kind":"strided","budget":163840,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,65,2119]]} +{"kernel":"qsa_prefill_graph_float32_2_blocks_tf0","sha256":["4239af0a04ca948bc3dac78d2ba592f36c8d7d137fee6504302b91321a11ce19","7ecfb2f4e0a01eaf659c482b98b577d40701a8052cba43ead69c562f7f55a3ea","5e9d8e5eb9166d441ac87bdd5a9faa69745767c56caf2634e462550f56261bc5"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"blocks","shapes":[[17,7],[17,7],[17,7]]} +{"kernel":"qsa_prefill_graph_float32_2_row_tokens_tf0","sha256":["76714dac44652a75960047dd7ad25ee9f58d4926b6c13d1f03017bdd9104d281","96effc48c259a57a1d0c20af17c3ca5a50e09f4a34e8d81fea837cfb496e54a4"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"row_tokens","shapes":[[17,24],[17,24]]} +{"kernel":"qsa_prefill_graph_float32_2_dense_mask_tf0","sha256":["550c9963e30e2591b75d15277bd41986ff232941a0e8f22abc6a123828dbe731"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":17,"heads":4,"dim":128,"blocks":37,"topk":7,"ratio":3,"pos":80,"kind":"transpose","budget":134217728,"mpp":false,"chunk":17,"mode":"dense_mask","shapes":[[1,1,17,100]]} +{"kernel":"qsa_prefill_graph_float32_3_blocks_tf0","sha256":["0e67ebae7dd53a589fac4e081f45f4d4c9cc7bad036fad92048069f9780ba4c5","08149ef5808740d2e0510367092c6fae56ed552fbed642529191f74475d33b61","d18a98b66b3d76c3de54cf29323f0794de39a13832f5118c09d5b85372e02cee"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"blocks","shapes":[[5,3],[5,3],[5,3]]} +{"kernel":"qsa_prefill_graph_float32_3_row_tokens_tf0","sha256":["1444319236abf6275abf12c0a50f0a94ffb40ee2b3522d31a03201739abaa92a","62a68f12c05a8ecc6aa2a6fe2d8a2bae1287dcb7ad8b64028ba1869e37914c8c"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"row_tokens","shapes":[[5,12],[5,12]]} +{"kernel":"qsa_prefill_graph_float32_3_dense_mask_tf0","sha256":["bf267886fc674cffd6bca1dde095ca6bc05acfc0c500782c6c478a7ed57352e9"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":5,"heads":2,"dim":7,"blocks":17,"topk":3,"ratio":3,"pos":9,"kind":"broadcast","budget":134217728,"mpp":false,"chunk":5,"mode":"dense_mask","shapes":[[1,1,5,17]]} +{"kernel":"qsa_prefill_graph_float32_4_blocks_tf0","sha256":["ee82de2d4f1daa54f6c5292aab07c06bf07832dd771de573c51e7a9fc2d69d2c","39ff7fd58a24b553d268cd73247c2de945d8b5fb8f1ba30b7120250b88e3a366","0791b69d31e59d43c1924c5b5e07666a039b10c40aa6b167f44f3ef2af23b079"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[9,7],[9,7],[9,7]]} +{"kernel":"qsa_prefill_graph_float32_4_row_tokens_tf0","sha256":["ce3f063c21e78e3ac02e7ffdb511df46925560fc149683fbb940222f6d54f296","85557e36c757099ccc3beff8c125cdf8436bf0260dd3a750067787668d459061"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[9,8],[9,8]]} +{"kernel":"qsa_prefill_graph_float32_4_dense_mask_tf0","sha256":["632acf3ed829a5c5b2a24698cec2578bbe50df52559019b22da2c48f5f4c57d7"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":9,"heads":1,"dim":8,"blocks":33,"topk":7,"ratio":1,"pos":15,"kind":"mixed","budget":396,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,9,27]]} +{"kernel":"qsa_prefill_graph_float32_5_blocks_tf0","sha256":["15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","15ec7bf0b50732b49f8228e07d24365338f9e3ab994b00af08e5a3bffe55fd8b","f501c21b62eee03af96d7862d9915da8342ed1c8b8ba497704957f98e0741b81"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"blocks","shapes":[[3,1],[3,1],[3,1]]} +{"kernel":"qsa_prefill_graph_float32_5_row_tokens_tf0","sha256":["a38319bb93da0477ca82fc1267b8b1334011f9f0ff19ccdec3011b597e4c29e6","1b54e6f9c3f6b699502b1ebb51993a0cf7bcd2824867ad092c1b3f9885b2d91b"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"row_tokens","shapes":[[3,8],[3,8]]} +{"kernel":"qsa_prefill_graph_float32_5_dense_mask_tf0","sha256":["c1ee92e1ed90cc185c29c8261a0b957f4eee08821a1f0f6312fef1a6faeaf398"],"dtype":"float32","pdtype":"float32","tf32":false,"rows":3,"heads":4,"dim":128,"blocks":1,"topk":1,"ratio":4,"pos":0,"kind":"plain","budget":1,"mpp":false,"chunk":1,"mode":"dense_mask","shapes":[[1,1,3,6]]} +{"kernel":"qsa_prefill_graph_float32_6_blocks_tf0","sha256":["005ae7d069cdde5a8f3e0263457b3850f0dfeeb541776d597c605551392d5eed","c7f653040c9c8296b123ac3df42a35a895563477f6dcc40ed03d06d94405f54f","f561eb2193c94aac89341856286f106a903ba1bcf6df1591c3a96138ca57d3e5"],"dtype":"float32","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"blocks","shapes":[[33,7],[33,7],[33,7]]} +{"kernel":"qsa_prefill_graph_float32_6_row_tokens_tf0","sha256":["b0bf894a8812928e929b67e3441ea3b0e5c0f344507097b05153d11072a2927b","fff9e4f52be3c78cc6e2d48dbbbbe9a3d7116cc9935bb10f3489f070b259029b"],"dtype":"float32","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"row_tokens","shapes":[[33,32],[33,32]]} +{"kernel":"qsa_prefill_graph_float32_6_dense_mask_tf0","sha256":["f396b68cfe9b3b2882b54e67517967701693e81c5c04c286cf9713cf219b5e4d"],"dtype":"float32","pdtype":"float16","tf32":false,"rows":33,"heads":4,"dim":128,"blocks":64,"topk":7,"ratio":4,"pos":128,"kind":"mixed","budget":10240,"mpp":false,"chunk":8,"mode":"dense_mask","shapes":[[1,1,33,164]]} +{"kernel":"qsa_prefill_topk_graph_0_blocks_tf0","sha256":["8ee35630af3d40bc4b1952a2c43596a57bc25ee2fdfb515b8c081c3b5067e9cb","fef951e6c76ad6a01b208af650ca6d95769bec840e009981c5ae1316a42c90b1","483ed9534c9953ddc66bcc6dcdf3527d5badd357b801cbd630c7b7c1678a73c1"],"tf32":false,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"blocks","shapes":[[1,512],[1,512],[1,512]]} +{"kernel":"qsa_prefill_topk_graph_0_row_tokens_tf0","sha256":["54f75315dda1c3c97cb113e87fc29e77e491d9f4d6c9ba33490f4d4f5a5b7a2c","5bf081898f480e33744b44900dbbd2368b25b34b43fea5a81509a44a9daff8cd"],"tf32":false,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"row_tokens","shapes":[[1,513],[1,513]]} +{"kernel":"qsa_prefill_topk_graph_0_dense_mask_tf0","sha256":["732e0be98dbc5b7c7615eae54d796798c1479b460ff3eee389e3c56ee7e07cfb"],"tf32":false,"rows":1,"blocks":8193,"topk":512,"ratio":1,"pos":8192,"kind":"stride","mode":"dense_mask","shapes":[[1,1,1,8196]]} +{"kernel":"qsa_prefill_topk_graph_1_blocks_tf0","sha256":["9f3d0ab0d28a8621e93b640c9c9c674f7a892846dd43b55916efe5963a256030","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9","fab5e80e5d5200ce080a76d5661a33cbf4175eab6c6b995c2633278699245ff9"],"tf32":false,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"blocks","shapes":[[3,7],[3,7],[3,7]]} +{"kernel":"qsa_prefill_topk_graph_1_row_tokens_tf0","sha256":["ff6d367f0e5c5b319c6fd440bacead520074cfae6246f5082e49954eeb0cf523","8ca3372b656e0494114c5691298b50590ed64b2096e3d65518be9c7f6ceb7444"],"tf32":false,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"row_tokens","shapes":[[3,32],[3,32]]} +{"kernel":"qsa_prefill_topk_graph_1_dense_mask_tf0","sha256":["8ebfe93d10897394688a12b8e8782b906b45d799cbdf72a8581f1915ba3dc528"],"tf32":false,"rows":3,"blocks":2049,"topk":7,"ratio":4,"pos":8190,"kind":"transpose","mode":"dense_mask","shapes":[[1,1,3,8196]]} +{"kernel":"qsa_prefill_topk_graph_2_blocks_tf0","sha256":["7d017d80ced16b3673ebd961b4fd7fe0fccf0b15836efede52c96ff971060e92","49347b5202907b9cd8552346db803109d21e456b1c3fa121dcfa807b9b5dd9ef","a90f2ac76943e14250d43ccd74d1b57d5fc9d4911088a9c2badf0cebc8cb41d8"],"tf32":false,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"blocks","shapes":[[2,3],[2,3],[2,3]]} +{"kernel":"qsa_prefill_topk_graph_2_row_tokens_tf0","sha256":["c5bd40c2eed1cd4b61771bc4491b45ff35ae89ae3ef8f5868714ae2f5c9414a1","19f63152b7902c2057fa8cfa751358c6ba40ee8596b7e7a591778091c7edfed6"],"tf32":false,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"row_tokens","shapes":[[2,12],[2,12]]} +{"kernel":"qsa_prefill_topk_graph_2_dense_mask_tf0","sha256":["5ede40067d5ade5033b8e68f8eb0e22705b07d0ed6aa0071b0bb2fc517318e4f"],"tf32":false,"rows":2,"blocks":65,"topk":3,"ratio":3,"pos":7,"kind":"broadcast","mode":"dense_mask","shapes":[[1,1,2,12]]} diff --git a/tests/fixtures/mtplx-qsa-prepare-graph.jsonl b/tests/fixtures/mtplx-qsa-prepare-graph.jsonl new file mode 100644 index 0000000..db2957c --- /dev/null +++ b/tests/fixtures/mtplx-qsa-prepare-graph.jsonl @@ -0,0 +1,72 @@ +{"kernel":"qsa_prepare_graph_bfloat16_0_plain","sha256":["fb5b24b037b8f473579b667d2539afc888fbb3d0dedfc5321be4057ee8906107","2bd25598b6c670d2dc345453509d974f80c0ee67fbb745b71dbd94808ed662a3"],"dtype":"bfloat16","profile":0,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_0_offset","sha256":["ccfc0c1e3a02cb1333ea381329190c3bd343d0e95d9a48cda901370df37028d2","89ec0296b8aaa5ed7e8ce96f529c493b1b844359d4cf5fa69dbca43ffd6802ea"],"dtype":"bfloat16","profile":0,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_0_strided","sha256":["3b5146ebedfd8458cfb72bf0436662cd4ea3c2ec000f9b9dfda6da4a4f3d5ed5","809c19d467a532f64f68465ab29d10bdc756cfc3b44add283da8d32bd74d4e8a"],"dtype":"bfloat16","profile":0,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_0_broadcast","sha256":["0aed822aab5b732ff16a7160e355dce4066ff4bd8f6d77b069b9bf2a431f8104","186bee11d13b4141fef8640e41a8160333cf16793833e8518e15573a3bff1b0e"],"dtype":"bfloat16","profile":0,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_1_plain","sha256":["03124953618641a3db6fbf2324fe31556c3584a133d5328065530b550a663211","da2b034fe5c84dbfc75dad9a0a8672adc89fef053776c9ad130573a97ba33b92"],"dtype":"bfloat16","profile":1,"layout":"plain","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_bfloat16_1_offset","sha256":["9d86132baacfdced350707b02e27fd0239001edd2ae5ed13266870f7649bbea4","64e0f74cc0fa34d26519ab798ede22bac56e84c33fd11a9fd781bf81e792e320"],"dtype":"bfloat16","profile":1,"layout":"offset","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_bfloat16_1_strided","sha256":["4319f2e3263ba60603bedaf8b7f552839df6d6ba17fe667c80eb1fb4e545ffff","8d65071886fe23c2e7385bcc734f552fda152aa187a5c44ef32027c17caaaffa"],"dtype":"bfloat16","profile":1,"layout":"strided","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_bfloat16_1_broadcast","sha256":["6b5f3d91d7f9ff783449acf354723e858cc3e1f224f07b611721752e3c74ca3d","6b5f3d91d7f9ff783449acf354723e858cc3e1f224f07b611721752e3c74ca3d"],"dtype":"bfloat16","profile":1,"layout":"broadcast","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_bfloat16_2_plain","sha256":["bcdd0bd377712c0591c9e77c9f25194a7d8182d2702d1ad76b285f844126046e","dead4b22b2bb24ce359b7cfa12a7884a7d7247e86883ff6c0a4dc80cd650e18d"],"dtype":"bfloat16","profile":2,"layout":"plain","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_bfloat16_2_offset","sha256":["780c6f601f2300b5f89af0e11568f67f0104d122e11f68c11fca5fd0642e11d8","1e4c2bd6c557e39d529da5263ca8bc6a126a01d0526c5fd5a75bbc028a84d8b8"],"dtype":"bfloat16","profile":2,"layout":"offset","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_bfloat16_2_strided","sha256":["e7aaa4e60abbb8d55e6405573af1e2e47f56c024b85b082c83168553489604d7","234660d5319bb98f1a4a89bc01efa483576f46634467f37b438fec54e354d3aa"],"dtype":"bfloat16","profile":2,"layout":"strided","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_bfloat16_2_broadcast","sha256":["956b2d3361f1717e24773aa0093135123472e019a1045bd5c2a785d162c275a0","15b9daf8c66cd74a32ddc247b7fb6594acc83f714ce0342e449e913ae49cce96"],"dtype":"bfloat16","profile":2,"layout":"broadcast","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_bfloat16_3_plain","sha256":["854b84f650ff5a0012ef98ed33f92bcb8608affbef18d35ea612ab826cac3900","3b0a7467af1e5ddecb4d9b820640def8d6733265cb16c0125178fae3a0b21df1"],"dtype":"bfloat16","profile":3,"layout":"plain","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_bfloat16_3_offset","sha256":["875989fd92326e8e0598fcf503b9807f5d14768c66668b1f378e7d70b5b065dd","f121e48adc139152d794c98aa0dfe15073ba39ff989f29f20fc4bca2ea1c046e"],"dtype":"bfloat16","profile":3,"layout":"offset","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_bfloat16_3_strided","sha256":["1316f5c7536614eb73d00b14983c57ee59d2379fde79981364b6f2097f28152e","971feaf3d1828242f698c2b799a047a21258e5292194f7c630f5de291c42fa2b"],"dtype":"bfloat16","profile":3,"layout":"strided","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_bfloat16_3_broadcast","sha256":["c1566876b063ca8ca93d43050a87600013d8249f8144bb8fd458d9f31aa59506","f2d62b121d17784323ad838aa478dda454c2185b0515b2ffb402524156f71691"],"dtype":"bfloat16","profile":3,"layout":"broadcast","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_bfloat16_4_plain","sha256":["2557abde1c204032663af25d4fa129e8fa7b4acf464c288511bd1d4c5328c395","211d3f30cd61c8772ac400e541dea97c2441f12b74f9c91c28dafd6cc2cc2dc4"],"dtype":"bfloat16","profile":4,"layout":"plain","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_bfloat16_4_offset","sha256":["4cb3038abcac346de88b0ec60a8ed0a4949c5201f47ad3476ea6f98bd4e0c099","0084267a42f2bd3372ca6650e3d7740c00aee43c69a44bea2e8be719d9b5cbd4"],"dtype":"bfloat16","profile":4,"layout":"offset","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_bfloat16_4_strided","sha256":["36634cd106a7350346e59308a77775802738ecb18e66e218a01193f7171ad441","36353d9f4ab806ce293da149bcbd1c9dd96654757ee2ac75f6a523a62db05a71"],"dtype":"bfloat16","profile":4,"layout":"strided","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_bfloat16_4_broadcast","sha256":["6db99459e47310b920cde367990486a63c17dc807135ebef59d4ee32d8bc28e9","02b693e008878009ec3cc480cb89fda16b765e8408f101cf2fc156169866d224"],"dtype":"bfloat16","profile":4,"layout":"broadcast","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float16_0_plain","sha256":["f190539b78979371cb31090646a827a955d0eaeccdd69b26e5d99975e79092de","92f819d54dae437fd150944ad58ad2269d6306eff8441a05f743a1015e13f19e"],"dtype":"float16","profile":0,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_0_offset","sha256":["df57601ced41b84ec32680c9e1bdfcd402e00d4f0f2a70f609fe8e4f980a2f05","be7bed1996ca9a20a552dfa94b2803aba632c909aa9b49f3c1278d1ef18f4a77"],"dtype":"float16","profile":0,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_0_strided","sha256":["70c39541e6f728565810218f909f8cfe61f62404c06f059c64fb428550847e96","ca4b97375c54e23ea4c9e0bd84351671365ea03c18d3b9528baa3ef578136c77"],"dtype":"float16","profile":0,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_0_broadcast","sha256":["0aed822aab5b732ff16a7160e355dce4066ff4bd8f6d77b069b9bf2a431f8104","186bee11d13b4141fef8640e41a8160333cf16793833e8518e15573a3bff1b0e"],"dtype":"float16","profile":0,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_1_plain","sha256":["f7f357289baeaef94b94b61acadc6128616f6aacd9b9021129d1384b2002922b","f2920ea14d89be360dd8e58d745f75fab04a5dabbb57d62ce6b445984b05b48a"],"dtype":"float16","profile":1,"layout":"plain","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float16_1_offset","sha256":["627b9d842fad9a85625b0a3b37152063522e5e9e6d0f1af2fec16cd18d566283","5108fb68db8ff28a91844306a532aa8f0fe50cd71887d3a25cf8c649f8461d8c"],"dtype":"float16","profile":1,"layout":"offset","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float16_1_strided","sha256":["6404fd23e2a8fd516c94d6402ffe1cffffa00ad89aaedc5571a5226089ca35d1","86ae1b03dc4c31858432f91a50d2d87065081c0a2be239ee4e5a124e8c975a49"],"dtype":"float16","profile":1,"layout":"strided","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float16_1_broadcast","sha256":["c48b3ac36d5d3229a7d2ffe32d3996a856716e374177ea156dee635442238da4","c48b3ac36d5d3229a7d2ffe32d3996a856716e374177ea156dee635442238da4"],"dtype":"float16","profile":1,"layout":"broadcast","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float16_2_plain","sha256":["05b8b6d593433f0e00c7b25066a7f67705be6e7dd9ac52e6701df0884168f020","74e4c9d1b29eab1d2e308a26f978f2209393830445311c2f08a3b236e7b266a8"],"dtype":"float16","profile":2,"layout":"plain","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float16_2_offset","sha256":["472011622520d988028dbfa4f7f3e8fa1f23eb5b61e658c0071635d571aae0fd","e5f22761d13580a2783457eecb965fd5ab744a46ddfdb3a4a47ad6c4566b39aa"],"dtype":"float16","profile":2,"layout":"offset","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float16_2_strided","sha256":["76e19287cf03d0052478c36749e293c76164d62c2e3c846a873303bd83d698c0","9c2c7d5c859724cfd7a684aec54e654ff26ebf7e4c615b4f3ce8d3c2dce44a20"],"dtype":"float16","profile":2,"layout":"strided","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float16_2_broadcast","sha256":["e7f9568bb1597362f299be7513bb66645f242f03861f3907f9d045548a10594d","9bb8b873465cbb54f992a7cc695ee949a48fd71fa747aa46b144ef0ecf24c58f"],"dtype":"float16","profile":2,"layout":"broadcast","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float16_3_plain","sha256":["0af46833d9ab50d1f30778dcd59d29bfb8aabb786757b5a95c527fbfe6175f74","b8f0408efd4eb55f09556391ec760874650ad20ce9078888f6dee78fb156759d"],"dtype":"float16","profile":3,"layout":"plain","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float16_3_offset","sha256":["2c01a6b942b16f4b456ddd0c1c9ed2919e6546d45bfff40f7810305d358cfff5","b01361c0bfcf23757bf14838823c6858c2c5d0777dd684a688c9096edd52ed56"],"dtype":"float16","profile":3,"layout":"offset","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float16_3_strided","sha256":["4be64c3bc46fe3eadca59c1eff2a5049c089c7697ac04fd07972b0edb782a59e","e3c1e8cf060dfffd21259c72648a913beca89b9be5fe503533417a524e718011"],"dtype":"float16","profile":3,"layout":"strided","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float16_3_broadcast","sha256":["460460a4556173d923be1b4fc66607efa3dcf31e7effa200f84216ee9beb0b4d","d9335458a9eea3456d314d8d31ac20b47e847d4d0d5e04392404937202c35225"],"dtype":"float16","profile":3,"layout":"broadcast","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float16_4_plain","sha256":["d11789070b05b7b37d88262a5edc4682f06ea0ca2afb5514f79084eeaa19a793","d56c989b815f956055cbf178e8133b210696a0da5b3f4b22ead76b26c523032f"],"dtype":"float16","profile":4,"layout":"plain","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float16_4_offset","sha256":["1bd95f48eba98c3fb174305d278e223b5f5d3b682a8193a8823dac7e547e2f64","eb652069b653b2bf25a91e0678f872494997f63d3deacb1f41f493c9db87fa5f"],"dtype":"float16","profile":4,"layout":"offset","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float16_4_strided","sha256":["a15934b44742993161b1b8049381432f653d7244030e95983d89b00be4004a3a","955983ffb7415c70668ac8681c4124bfadf406d5e6adf3bf1283145e59181d34"],"dtype":"float16","profile":4,"layout":"strided","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float16_4_broadcast","sha256":["aab711cad343a3ab5a5ae13f4b18a819b4bf30f8bc0210e04c08a646f6bf7535","c1a34b0470f49b942fff0acf6b105bebeae962343f71eb94af79a96fba2dcea1"],"dtype":"float16","profile":4,"layout":"broadcast","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float32_0_plain","sha256":["fcb6650368366b5cb3c222b6f969c5b2f31e155b13e4e4a23cf26b2c0a59dbd6","189c80619038b574466422ca5579e6001173c065baf32acc4efff068fabd3c01"],"dtype":"float32","profile":0,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_0_offset","sha256":["337cdadf91499de019e683344fed66e4afe94aaf6065431a54dd4b7c28174890","e58bdb3c7f42e00d9cf9a2645638b4690da7f32a4f3f66bb25387d0bc01d6c27"],"dtype":"float32","profile":0,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_0_strided","sha256":["0ea3712b3c092bddf77328513d8a71a4ab7094ffd9577e4ee337b7beab56f68f","c31e50a7b0f511718cfa7830e0be1e113f654580eeb39066cd51106fb49970c1"],"dtype":"float32","profile":0,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_0_broadcast","sha256":["cfd2a4054ea5c6cb9222260ea0cb37accdca1cdad0fa1b05abedb2c6d8bf11b9","a19250576baec0e22bc21ea4befd28d3ef311c2d156cb41292ace4a974e66275"],"dtype":"float32","profile":0,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.000001,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_1_plain","sha256":["ae0f72b18d43eebec8edfd4a94f51799056e9de718e8ca0150af1dc23fac75c0","37dc0e5825a66ce878d29989f1a3fb221479ae777cb748f25966e577168cc159"],"dtype":"float32","profile":1,"layout":"plain","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float32_1_offset","sha256":["59d7a27488ce2eb716bee372601879a7d749045242322bdf6079519c76c82c11","4e1f32e41e880f34c0f005570d54332868d999cbecc4848b5fce28a977b1c446"],"dtype":"float32","profile":1,"layout":"offset","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float32_1_strided","sha256":["64ce450d4cd90ed47ce7b59ceba468b641d34bd630f5386a44480a64e0e6e829","09f86cedb484df20a6650a780bcd5519238149c385079f7a3a6f08ea51a23e25"],"dtype":"float32","profile":1,"layout":"strided","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float32_1_broadcast","sha256":["73cb886867c6c7173e44023a2c4e8f7e171ea94f9a8f6a4d9ffeb1d197242d79","874ab05315d910a5409cc278adc108aff6a7bb7c0f3f46985f0d723ca462e1c7"],"dtype":"float32","profile":1,"layout":"broadcast","rows":3,"heads":1,"dim":2,"rotary":2,"ratio":1,"eps":0.0001,"scale":1.25,"pos":-7} +{"kernel":"qsa_prepare_graph_float32_2_plain","sha256":["957af81081d036ea05f91b45861024d4213cf52ca0d524f870529acfc3b774fc","8fcb20a44d69c851521faa9ac172ff9304a6ba17d4a2091ee208d9b24de7f63d"],"dtype":"float32","profile":2,"layout":"plain","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float32_2_offset","sha256":["4954cd0c61d90853a13a8f88d0d21c95da2095f8def711440f16bc69b5c2dfc6","ded4c436f036bb845410b716af7b08dd7044d52ea83238ed13eb09e296b477e8"],"dtype":"float32","profile":2,"layout":"offset","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float32_2_strided","sha256":["8526ec855ce7e3a68d8b0de647c4c51e8fba681bc48e82d1e661f6f0e33c666d","d400f5ac78af66739acb90a4351c3b3a95e3ab0e3a229caaabe610309d244b85"],"dtype":"float32","profile":2,"layout":"strided","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float32_2_broadcast","sha256":["032d49214a60c9ee640253d7d4a95d4b64c61afd6587797e9eea605b3bd37470","dfe7d60a695aa6847ee5bee9e4eb5031140c947b18f6080b4f25e47c7113a3f8"],"dtype":"float32","profile":2,"layout":"broadcast","rows":7,"heads":3,"dim":17,"rotary":16,"ratio":7,"eps":0,"scale":0.5,"pos":2047} +{"kernel":"qsa_prepare_graph_float32_3_plain","sha256":["0b9449713ea9d1cff0301668feca57d07814920fcfd7d803ee0cda688eea30dd","fe153faf18dcfbc3ade0b2c1a2ee138a9e156367cf39ac19899899fb2fcc8a36"],"dtype":"float32","profile":3,"layout":"plain","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float32_3_offset","sha256":["9feb838a5975b74b0b89afe7a7bc838a432b6b74cb8ae29140535cf1ceef44e2","53a4963524d55d3d556a7640bd88dba3adf4c7a50efc87025f946a8ab16ab7ac"],"dtype":"float32","profile":3,"layout":"offset","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float32_3_strided","sha256":["05ec37eb543562c50f098715fecc67aae3f68a23f353d78949324ecabbf118a2","c2e4bf5197c08344a23242fedea943adc995918ec5ca519e14b94ce2c8d97705"],"dtype":"float32","profile":3,"layout":"strided","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float32_3_broadcast","sha256":["9493121518be313776cf39d1cd81fedfd47cf4399e3cddd948cd54518bf4cf64","71628e7ec9730805e09127118c12bf560d7e902907c432f4950f553e8dc7f4c9"],"dtype":"float32","profile":3,"layout":"broadcast","rows":137,"heads":7,"dim":64,"rotary":32,"ratio":3,"eps":0.00001,"scale":1.1,"pos":65535} +{"kernel":"qsa_prepare_graph_float32_4_plain","sha256":["9cd26d47b4ef441d87f109e9d5862aa1ecc64f3e415c3654938403c33779b0fd","5ed4ef4fdcc11a8fbc0fbed1025f122698c1da7323ebd0a9ccc5b477f1504fce"],"dtype":"float32","profile":4,"layout":"plain","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float32_4_offset","sha256":["0dad3a839b39b97be84007f3393960f1ea1adfa18949e7b7550eb7c9e196f890","38d0fae1bd8464b38800fbf00cf9ea38ad177aa83cc1f64c18d8af591c6a925e"],"dtype":"float32","profile":4,"layout":"offset","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float32_4_strided","sha256":["b3eb5df3a86aef8598249f6083fdd6a2b2b1c8be67967a023a69a935c3944bfa","897c9d0780dba4c7692cba8634284976efbb7079f797f45e78a3f63b37cd7aca"],"dtype":"float32","profile":4,"layout":"strided","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_float32_4_broadcast","sha256":["f7147212f77bdc8c93e8e0e02c289dc4ea142816cd44940597ad44656331f886","913be0ddc355ade4130da24e6b40c34e65c15f4e529579b53067bfbae1b0c8f3"],"dtype":"float32","profile":4,"layout":"broadcast","rows":2048,"heads":2,"dim":128,"rotary":128,"ratio":8,"eps":0.000001,"scale":1.3,"pos":131071} +{"kernel":"qsa_prepare_graph_bfloat16_5_plain","sha256":["84431c8212dea262d616582e25c6e5315b3bfd6038717e3cd440cb2d4acf6702","654f4ae44c431157d5aa0100992307f81feba13be30afd4989d05076b0c159c3"],"dtype":"bfloat16","profile":5,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_5_offset","sha256":["7ccc5e70a4bcda248cd2b6033a9bbc8a87a21879c301460444055a81740397ea","13ba8be8ba66663a6e2b122a2f3f4e3c1fb9db1d91739d7144c08557e10b6766"],"dtype":"bfloat16","profile":5,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_5_strided","sha256":["802db36c2913254d226a468142a3bf8bf32b6ae57147f7f8d073f704566ad26b","26a9ba1ba5225565cf0c1ed81d4264b9afc1fd350b0eed566f4a5033d096a27f"],"dtype":"bfloat16","profile":5,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_bfloat16_5_broadcast","sha256":["0b9c58472288400a93812b2ab5a23d1f15c8adf7e7e56397b117486f39797ae6","891e1517aa8ed8b78ada904572ed3a2246ace771718ffb626190a36b79a79d7d"],"dtype":"bfloat16","profile":5,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_5_plain","sha256":["d12d270573ae04ea06fcf06df6ef2cba94743c3c682649724427d011d89cd3c2","70774df75fb066b0d9d3a9274b8c731a13be8704ee0b43053ccc27d59dc37599"],"dtype":"float16","profile":5,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_5_offset","sha256":["ae1c54493397e043dc9791f5d41770e77a842612d81e98f92775019d846b3619","998998b56a1862416057181f8e544928fa545e4dd13e4a36408f2dbb32fa4a3f"],"dtype":"float16","profile":5,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_5_strided","sha256":["7bd445dea16d2ee4f74b8fdb26daccccf611465f9589143a9acf5edadf43e0d1","4fd28843a9cb4ffd38da19b5d64e277d38c1cd4e5109ee2a9b1bbd2c6d299e68"],"dtype":"float16","profile":5,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float16_5_broadcast","sha256":["fe638506efb4ca02e5d397d0952b92063768282f47d2041c6f8bf99affcac5bc","7c9ab79519bc9a9abfa821c8e35e4759e52b085560e033dad7e8e1dfd6c489a5"],"dtype":"float16","profile":5,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_5_plain","sha256":["d5b5350bd93d896704d510b3cdefaa2312f78ba50a05508f89c3394ca8847322","f13571dc002e0771a3e43cb5685b89b68499858577fbabd4f0e12d0491a032b4"],"dtype":"float32","profile":5,"layout":"plain","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_5_offset","sha256":["cb6d681f04381d70d5fcbd80907ea0f2027c5867993107ba5e4d3fca6976478c","259f7af176c17d91af896c075eefbcc4496aaf267e7bd1231060de240de7e5c3"],"dtype":"float32","profile":5,"layout":"offset","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_5_strided","sha256":["6999d5b4fcace579be1c3734efa3c9a8ce0bb5f8e7c0e1db400a15af86f82ffc","e764902435277926719c8af8f3fa3cf42b7f8a1a8bfe848f7f64257b41e2adaa"],"dtype":"float32","profile":5,"layout":"strided","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} +{"kernel":"qsa_prepare_graph_float32_5_broadcast","sha256":["8b94664e380c20ea7d3d0d5e5c2db8f5c8a2eefc4dfab8a061608eed1a1b1034","f8956ad6e8740186f1e6b15ee5ff448db75b28a2773a8f423b93a36054ef3c3a"],"dtype":"float32","profile":5,"layout":"broadcast","rows":1,"heads":4,"dim":128,"rotary":64,"ratio":4,"eps":0.25,"scale":1,"pos":0} diff --git a/tests/fixtures/mtplx-qsa-rows-attention.jsonl b/tests/fixtures/mtplx-qsa-rows-attention.jsonl new file mode 100644 index 0000000..5012d0b --- /dev/null +++ b/tests/fixtures/mtplx-qsa-rows-attention.jsonl @@ -0,0 +1,18 @@ +{"kernel":"qsa_rows_attention_h24_s1_t33_k8_plain","sha256":["4cc523d7364188da528cab90f82416acd8c21a89a13212a9d000084bb1c980d2"],"heads":24,"rows":1,"total":33,"count":8,"layout":"plain"} +{"kernel":"qsa_rows_attention_h24_s1_t33_k8_offset","sha256":["5ea51fcea0e881e2738d2168b2999325be9722393826b2fce6ffa41fbb7dc128"],"heads":24,"rows":1,"total":33,"count":8,"layout":"offset"} +{"kernel":"qsa_rows_attention_h24_s1_t33_k8_strided","sha256":["765ccf7a08ec268c142d148f0dc88c361a3aea2e80992836e6eed28b0a5fdb9e"],"heads":24,"rows":1,"total":33,"count":8,"layout":"strided"} +{"kernel":"qsa_rows_attention_h24_s3_t1057_k1025_plain","sha256":["bf1aa9696ff6c60a8ceefd4366fdb9c82ff08b374b7b4b73d357ff9df3c2e0e7"],"heads":24,"rows":3,"total":1057,"count":1025,"layout":"plain"} +{"kernel":"qsa_rows_attention_h24_s3_t1057_k1025_offset","sha256":["5453d3d323ae5c6a9dbb6dd320511ff80a4251bce161e8cbade60eabe5506c79"],"heads":24,"rows":3,"total":1057,"count":1025,"layout":"offset"} +{"kernel":"qsa_rows_attention_h24_s3_t1057_k1025_strided","sha256":["498683c5b059c6eab24030c28fd6ae2c31e439bbd8e6e6e5950f618dea3b5914"],"heads":24,"rows":3,"total":1057,"count":1025,"layout":"strided"} +{"kernel":"qsa_rows_attention_h24_s8_t4193_k4097_plain","sha256":["2392f2bcd71c2b8582a3d70cf5a0b9896c6af725cda549357540e00679b15894"],"heads":24,"rows":8,"total":4193,"count":4097,"layout":"plain"} +{"kernel":"qsa_rows_attention_h24_s8_t4193_k4097_offset","sha256":["f7fb49e6ca90bb2c28f592e16619f7145e8c6d1f43ccc376e31ca7f34e7f2d4b"],"heads":24,"rows":8,"total":4193,"count":4097,"layout":"offset"} +{"kernel":"qsa_rows_attention_h24_s8_t4193_k4097_strided","sha256":["74cf2b4b9ad7a8d14587986320adf1870fbac1bcc8b2e38175bf9d2c1a813422"],"heads":24,"rows":8,"total":4193,"count":4097,"layout":"strided"} +{"kernel":"qsa_rows_attention_h24_s64_t113_k17_plain","sha256":["210b22b9309bce8694e039ab0e8212b16818cd310cd250219698de6a521377cd"],"heads":24,"rows":64,"total":113,"count":17,"layout":"plain"} +{"kernel":"qsa_rows_attention_h24_s64_t113_k17_offset","sha256":["01c47c1a64031174f7ad7c305cfaf8a101deed0d1e5a1ce2466d8d75fba13398"],"heads":24,"rows":64,"total":113,"count":17,"layout":"offset"} +{"kernel":"qsa_rows_attention_h24_s64_t113_k17_strided","sha256":["551936e3a7c6168b501e7b1ebcad37a7ce0a005255a7095256e8b7f1f6681db4"],"heads":24,"rows":64,"total":113,"count":17,"layout":"strided"} +{"kernel":"qsa_rows_attention_h2_s3_t33_k8_plain","sha256":["12a564b7878f26a724d9a015c09169c544a62eaf28eef860131caa9b0b7a03ad"],"heads":2,"rows":3,"total":33,"count":8,"layout":"plain"} +{"kernel":"qsa_rows_attention_h2_s3_t33_k8_offset","sha256":["e3b2989e3924ba30636330d109c628a129226a59e04d02e3fe52f00c9d149d39"],"heads":2,"rows":3,"total":33,"count":8,"layout":"offset"} +{"kernel":"qsa_rows_attention_h2_s3_t33_k8_strided","sha256":["a028974730051895349620691d9c5269787afe510ee4f307a72cfa6facc018db"],"heads":2,"rows":3,"total":33,"count":8,"layout":"strided"} +{"kernel":"qsa_rows_attention_h2_s16_t1057_k1025_plain","sha256":["5dffb7b7ece8ca6d41b83a2755bbce49175a2e5ff8a23b347e86c3b423d7dc06"],"heads":2,"rows":16,"total":1057,"count":1025,"layout":"plain"} +{"kernel":"qsa_rows_attention_h2_s16_t1057_k1025_offset","sha256":["8f6e585403f8b2f882f743d91eb26214de16916030ed3f58d0b5523e5c268ab4"],"heads":2,"rows":16,"total":1057,"count":1025,"layout":"offset"} +{"kernel":"qsa_rows_attention_h2_s16_t1057_k1025_strided","sha256":["565d9d2deed30982fc66167d4db601b799e167f9e6007f19919cfcb323e6275d"],"heads":2,"rows":16,"total":1057,"count":1025,"layout":"strided"} diff --git a/tests/fixtures/mtplx-qsa-select-jit.json b/tests/fixtures/mtplx-qsa-select-jit.json new file mode 100644 index 0000000..e1a68ee --- /dev/null +++ b/tests/fixtures/mtplx-qsa-select-jit.json @@ -0,0 +1,30 @@ +[ + { + "source_sha256": "15dd362325e0d9ea44a8646c29ed70c7f0ed53b1dcc9fe44b4f65fa4a11823e7", + "kernels": "[[host_name(\"Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous\")]]\n[[kernel]] void Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(1);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n auto tmp_F = static_cast(1023);\n int32_t tmp_G = cast_to(tmp_D);\n int32_t tmp_H = Subtract()(tmp_A, tmp_G);\n int32_t tmp_I = cast_to(tmp_E);\n int32_t tmp_J = Maximum()(tmp_H, tmp_I);\n int32_t tmp_K = Minimum()(tmp_J, tmp_B);\n int32_t tmp_L = cast_to(tmp_F);\n int32_t tmp_C = Minimum()(tmp_K, tmp_L);\n C[index] = tmp_C;\n}\n" + }, + { + "source_sha256": "1cf792edbbd886d156b68f5082563d7335278c98ad8c996d547b19fd7cf125b0", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(4);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Multiply()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + { + "source_sha256": "48a7309664f797e749aa42d2c2c4db0cf3abedf97297f0068d06b7847d988b93", + "kernels": "[[kernel]] void compute_dynamic_offset_int32(\n constant const int32_t* indices [[buffer(0)]],\n device int64_t& offset [[buffer(1)]],\n constant const int64_t* strides [[buffer(2)]],\n constant const int* axes [[buffer(3)]],\n constant const int& n_axes [[buffer(4)]],\n uint index [[thread_position_in_grid]]) {\n int64_t acc = 0;\n for (int i = 0; i < n_axes; ++i) {\n acc += indices[i] * strides[axes[i]];\n }\n offset = acc;\n }" + }, + { + "source_sha256": "1c880c9d901f0de3417800239114d69e9b4f032c80752d28847ce067a1794b65", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OAddAC_VC_i4_11275350073939794026_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OAddAC_VC_i4_11275350073939794026_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(3);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Add()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + { + "source_sha256": "8d81213f575f0feff8c409e4b58d5f653e111d287308bc52d1f0f3e145d1feda", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OAddAC_VC_i4_17472595041006102391_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OAddAC_VC_i4_17472595041006102391_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(2);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Add()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + { + "source_sha256": "57b480cc9e89e15e4c60235a6058aded3d3806d7cf40bb3b8bd2e0c0c84be0f9", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OAddAC_VC_i4_11413460447292444913_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OAddAC_VC_i4_11413460447292444913_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(1);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Add()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + { + "source_sha256": "d1152d63044c22bcee97fd8e6d93e80f14a43754db762505e0fb473c9f5823dc", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OAddAC_VC_i4_10408321403207385874_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OAddAC_VC_i4_10408321403207385874_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(0);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Add()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + } +] diff --git a/tests/fixtures/mtplx-qsa-update-jit.json b/tests/fixtures/mtplx-qsa-update-jit.json new file mode 100644 index 0000000..db4e734 --- /dev/null +++ b/tests/fixtures/mtplx-qsa-update-jit.json @@ -0,0 +1,14 @@ +[ + { + "source_sha256": "15dd362325e0d9ea44a8646c29ed70c7f0ed53b1dcc9fe44b4f65fa4a11823e7", + "kernels": "[[host_name(\"Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous\")]]\n[[kernel]] void Fi4IBroadcastBGi4ISubtractAFHi4IBroadcastCIi4IMaximumGHJi4IMinimumIDKi4IBroadcastELi4OMinimumJK_VCCVC_i4i4_1937821606537560661_contiguous(\n device const int32_t* A [[buffer(0)]],\n device const int32_t* B [[buffer(1)]],\n device int32_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_D = static_cast(1);\n auto tmp_E = static_cast(0);\n int32_t tmp_B = B[index];\n auto tmp_F = static_cast(1023);\n int32_t tmp_G = cast_to(tmp_D);\n int32_t tmp_H = Subtract()(tmp_A, tmp_G);\n int32_t tmp_I = cast_to(tmp_E);\n int32_t tmp_J = Maximum()(tmp_H, tmp_I);\n int32_t tmp_K = Minimum()(tmp_J, tmp_B);\n int32_t tmp_L = cast_to(tmp_F);\n int32_t tmp_C = Minimum()(tmp_K, tmp_L);\n C[index] = tmp_C;\n}\n" + }, + { + "source_sha256": "1cf792edbbd886d156b68f5082563d7335278c98ad8c996d547b19fd7cf125b0", + "kernels": "[[host_name(\"Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous\")]]\n[[kernel]] void Ci4IBroadcastBDi4OMultiplyAC_VC_i4_2169371982377735806_contiguous(\n device const int32_t* A [[buffer(0)]],\n device int32_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n int32_t tmp_A = A[index];\n auto tmp_C = static_cast(4);\n int32_t tmp_D = cast_to(tmp_C);\n int32_t tmp_B = Multiply()(tmp_A, tmp_D);\n B[index] = tmp_B;\n}\n" + }, + { + "source_sha256": "48a7309664f797e749aa42d2c2c4db0cf3abedf97297f0068d06b7847d988b93", + "kernels": "[[kernel]] void compute_dynamic_offset_int32(\n constant const int32_t* indices [[buffer(0)]],\n device int64_t& offset [[buffer(1)]],\n constant const int64_t* strides [[buffer(2)]],\n constant const int* axes [[buffer(3)]],\n constant const int& n_axes [[buffer(4)]],\n uint index [[thread_position_in_grid]]) {\n int64_t acc = 0;\n for (int i = 0; i < n_axes; ++i) {\n acc += indices[i] * strides[axes[i]];\n }\n offset = acc;\n }" + } +] diff --git a/tests/fixtures/mtplx-rope-graph.jsonl b/tests/fixtures/mtplx-rope-graph.jsonl new file mode 100644 index 0000000..2c2dba1 --- /dev/null +++ b/tests/fixtures/mtplx-rope-graph.jsonl @@ -0,0 +1,48 @@ +{"kernel":"rope_graph_0_text_0","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","5341e6b2646979a70e57653007a1f310169421ec9bdd9f1a5648f75ade005af1","604f0158cd8fff34da155d2bcc90a7141b7c8b4aec554fb1da64b9b618e85789"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"text","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_text_1","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","5341e6b2646979a70e57653007a1f310169421ec9bdd9f1a5648f75ade005af1","98199519260cd9892a3ec3be2de1ae82a5e8ab243ce46f538e68ceba51c3538f"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"text","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_equal_0","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","5341e6b2646979a70e57653007a1f310169421ec9bdd9f1a5648f75ade005af1","604f0158cd8fff34da155d2bcc90a7141b7c8b4aec554fb1da64b9b618e85789"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"equal","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_equal_1","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","2f20cd03c9cd392a406c56232b0ff93a15f6d6d7da79086bfa14f55d4a4031b0","5341e6b2646979a70e57653007a1f310169421ec9bdd9f1a5648f75ade005af1","98199519260cd9892a3ec3be2de1ae82a5e8ab243ce46f538e68ceba51c3538f"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"equal","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_interleaved_0","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","97ae0a5994fab1914a43c37916651819a2d0a3c4f58b5cb7db54bf61304af161","3c86a0cdfde1a27fa24c9b0de585d18f1a9921830cfd319cf5ba248e59e68e3a","e7b72710012e7006e9eb8cb69a2a6cebe8999260cc83c9f35097a6323c171d3e"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"interleaved","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_interleaved_1","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","97ae0a5994fab1914a43c37916651819a2d0a3c4f58b5cb7db54bf61304af161","3c86a0cdfde1a27fa24c9b0de585d18f1a9921830cfd319cf5ba248e59e68e3a","a71c1dae67b14d2557f47083587cd779b0357a04764a3d05bf6b42203f7d49f9"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"interleaved","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_0_sections_0","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","b67068a3bcc933f23570cb7f992f7c18a38757f676b6177df4a04a2b3890eb3b","1fad33b826f7708a12f7931214bbef7dd4010925813ead592924363d1e159300","67e7acfa5349d7ffce7e46b47f1c5552a568ae9d2e413eaf47ac06645ca0a284"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"sections","strided":false,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_0_sections_1","sha256":["327ea4de75bf25f07091f3e82922a1a3ec3d8876621e6ecdbafa31e82a09c9b1","b67068a3bcc933f23570cb7f992f7c18a38757f676b6177df4a04a2b3890eb3b","1fad33b826f7708a12f7931214bbef7dd4010925813ead592924363d1e159300","f8dd57a550853539ffeb00b3103179d2f93b6d9ca99d18eed855d0560d5da9c1"],"rot":64,"base":10000000.0,"rows":1,"pos":0,"parameters":{},"heads":24,"mode":"sections","strided":true,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_1_text_0","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","eb65db2c6a753053e5677e0c9708381907570a4b171f12fc532dedb5761f35db","2624b327ea5de160ef94af8799e827e725c248d420e89ca44393980437c7caa9","7cc425d5267d79398c10134c5e3847d959d60813dc0cd4cb07dbd8a8ef8ec5b8"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"text","strided":false,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_text_1","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","eb65db2c6a753053e5677e0c9708381907570a4b171f12fc532dedb5761f35db","2624b327ea5de160ef94af8799e827e725c248d420e89ca44393980437c7caa9","b6a468e42dab95fccb4680f4270bed47cd220c626d7660af412201f96ab4a982"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"text","strided":true,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_equal_0","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","eb65db2c6a753053e5677e0c9708381907570a4b171f12fc532dedb5761f35db","2624b327ea5de160ef94af8799e827e725c248d420e89ca44393980437c7caa9","7cc425d5267d79398c10134c5e3847d959d60813dc0cd4cb07dbd8a8ef8ec5b8"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"equal","strided":false,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_equal_1","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","eb65db2c6a753053e5677e0c9708381907570a4b171f12fc532dedb5761f35db","2624b327ea5de160ef94af8799e827e725c248d420e89ca44393980437c7caa9","b6a468e42dab95fccb4680f4270bed47cd220c626d7660af412201f96ab4a982"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"equal","strided":true,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_interleaved_0","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","a68d348aec1ee3701a200afed0421cda91af266b7ddbde19e6c7314aa6b98542","3737e9d5518555deec523d6b31a619a264b727dafcfa735b8ce8cb2f8eab5a76","8364ede0e79263b608a3abb26089ecd6f62ba5652599a249a695732cb4b5f2c3"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"interleaved","strided":false,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_interleaved_1","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","a68d348aec1ee3701a200afed0421cda91af266b7ddbde19e6c7314aa6b98542","3737e9d5518555deec523d6b31a619a264b727dafcfa735b8ce8cb2f8eab5a76","f9dd3f03543a4cc961a4398edcf42d24530469b5cfd44009dfba5ddcdc9d3581"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"interleaved","strided":true,"section":[43,43,42],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_1_sections_0","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","2f8096cfc21d61e8d265eca7543255cc8486b59509ae50ec9e5e2acc55db62f8","44efff65342998fc3179efccb5b20e2e62bc63362c79276c77659d27224d1d82","7c142536ff10f3d54b64e9ed3bc35cef8886d5e5029fcc78410c686c0e1ee4e5"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"sections","strided":false,"section":[43,43,42],"axes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_1_sections_1","sha256":["c244adfc3dfb1128a6a6a98eb87cbbd9cdea13f18fbc1e7ee8a8af154e135a37","2f8096cfc21d61e8d265eca7543255cc8486b59509ae50ec9e5e2acc55db62f8","44efff65342998fc3179efccb5b20e2e62bc63362c79276c77659d27224d1d82","a879e5192abb26644e56eaec92d91dde84a373f13197f5cffa261e506c469463"],"rot":256,"base":10000.0,"rows":7,"pos":511,"parameters":{},"heads":24,"mode":"sections","strided":true,"section":[43,43,42],"axes":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_2_text_0","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","190cfbad851f47ee33416609472cc105b1efc66fc0e961d018fd030c599407df","4b91e5b46b5b86dcfaf427f02151eea2139ba322335b9159358b262d57b39b06","7353695e8a43841aba417366950467b272cc283390c3ae7a9f0824b49f10accd"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"text","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_text_1","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","190cfbad851f47ee33416609472cc105b1efc66fc0e961d018fd030c599407df","4b91e5b46b5b86dcfaf427f02151eea2139ba322335b9159358b262d57b39b06","3bf8099bfed9943599d2a3c1fdb820ec34fd6239b9e8ec4607e6899b63c23181"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"text","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_equal_0","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","577deb0ce233c05310f5365808b483da6133635d26e13d0963b57a04965db05f","d2aa6d064954579823ff45ae3ebbd95065d468b872057cc9280acce70c7c8eba","93ef07e163367dd35ab47ef1a100751dde725d748d9957395bf08a1e87a4e7e9"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"equal","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_equal_1","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","577deb0ce233c05310f5365808b483da6133635d26e13d0963b57a04965db05f","d2aa6d064954579823ff45ae3ebbd95065d468b872057cc9280acce70c7c8eba","01b7b70ce46b29f5a39c109d5ae4c23ad9350fcce6507235aa43d9b32e3b5175"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"equal","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_interleaved_0","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","167b8851052876e2220b156470a4c2a7124227e44c67bad0504fe1e7525bd955","68ed3909248ddce1db0e2ed5789e0da5425082468c93e2cb621f1dd327f0b636","2a44f3181b85dab35fc1d81230d8356911ebff9b117d0849d262793408dd87b1"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"interleaved","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_interleaved_1","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","167b8851052876e2220b156470a4c2a7124227e44c67bad0504fe1e7525bd955","68ed3909248ddce1db0e2ed5789e0da5425082468c93e2cb621f1dd327f0b636","7aabbc1b33a9caf6dc1554778b1c35c5562b9a1df3688e2764f1d298db0374fd"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"interleaved","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.138629436111989} +{"kernel":"rope_graph_2_sections_0","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","ea73117a2fc248efdeaec7413577a40727cd478e0e2b78678a9eef9ba7786190","1d9c1b743b889350150524824b463c3fc6f347ae997e0ee7646d0d62b0b1adaa","3c888532c11501918643bf513fefc15890b440416c77a1db2d08d69fbb9bd746"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"sections","strided":false,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.138629436111989} +{"kernel":"rope_graph_2_sections_1","sha256":["e2f87ec31312ca35844d3fa9761ba310a464d4f54150d57918586f6800715327","ea73117a2fc248efdeaec7413577a40727cd478e0e2b78678a9eef9ba7786190","1d9c1b743b889350150524824b463c3fc6f347ae997e0ee7646d0d62b0b1adaa","6cfd9b99081fb7bac8f68a05441414da0b0887ae3b21868efede3c7b742c3353"],"rot":64,"base":10000000.0,"rows":2048,"pos":262143,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":262144},"heads":2,"mode":"sections","strided":true,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.138629436111989} +{"kernel":"rope_graph_3_text_0","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","982d90bc4d8a28f937eb29186912ef51b3f8906dd788ab10c86dcf8118b0f076","a2b4c0ed2c8864ab60b318c36c9b0e291a391c1ecf7b431633b6087ef8401265","d64707bf2683756b0c460278174bd1255ffe46d7f2ae39c0d13ad4a4a2b3c165"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"text","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_text_1","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","982d90bc4d8a28f937eb29186912ef51b3f8906dd788ab10c86dcf8118b0f076","a2b4c0ed2c8864ab60b318c36c9b0e291a391c1ecf7b431633b6087ef8401265","c4d635696b4a7ab9b83e72ca5ad514107af126a026056dfce880c334c38f8496"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"text","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_equal_0","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","982d90bc4d8a28f937eb29186912ef51b3f8906dd788ab10c86dcf8118b0f076","a2b4c0ed2c8864ab60b318c36c9b0e291a391c1ecf7b431633b6087ef8401265","d64707bf2683756b0c460278174bd1255ffe46d7f2ae39c0d13ad4a4a2b3c165"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"equal","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_equal_1","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","982d90bc4d8a28f937eb29186912ef51b3f8906dd788ab10c86dcf8118b0f076","a2b4c0ed2c8864ab60b318c36c9b0e291a391c1ecf7b431633b6087ef8401265","c4d635696b4a7ab9b83e72ca5ad514107af126a026056dfce880c334c38f8496"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"equal","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_interleaved_0","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","692d7b80308bcdf13b25c041a78ff3ec2bce5ae94ddf9ed8c23e4ddd3580eeea","465b9dba721c96e0fb9fbe63b446beaf7579a6c238196dc131d10aefcbc7a66e","0f2c0979d2b648bfcbb304da5a0b368240c46423a8ccfb11870cbf656f5588c9"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"interleaved","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_interleaved_1","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","692d7b80308bcdf13b25c041a78ff3ec2bce5ae94ddf9ed8c23e4ddd3580eeea","465b9dba721c96e0fb9fbe63b446beaf7579a6c238196dc131d10aefcbc7a66e","cb996969e5e48c8695727fa752e9bdbfd8c8b632f0a0e6fc341a3f55c7e8357a"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"interleaved","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.0} +{"kernel":"rope_graph_3_sections_0","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","e17ec9b9ae493c75d694dada820361e6dfdcdc984bfc44078d799b4ccd930fa6","4bf16c02ab2a04f7e6da3482397e86d343d07a8ccf23fb74c3514a78e2185159","4a96d0dafa72dbde842d1d109be1b11058e238e956337ab0644466465c7b3f67"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"sections","strided":false,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_3_sections_1","sha256":["13b41c54f74a75909e356116f958ff684042fd8a2be5d364b33bed9125bacbff","e17ec9b9ae493c75d694dada820361e6dfdcdc984bfc44078d799b4ccd930fa6","4bf16c02ab2a04f7e6da3482397e86d343d07a8ccf23fb74c3514a78e2185159","b7ddc927caa374f4cd2e5e97c8e2e7afd55427aa979db5b397db0faddce81bb9"],"rot":64,"base":10000.0,"rows":7,"pos":1048576,"parameters":{"rope_type":"yarn","factor":1.0,"original_max_position_embeddings":128},"heads":24,"mode":"sections","strided":true,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.0} +{"kernel":"rope_graph_4_text_0","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","cd1533068e03d24dee77acb9089a139ab926a507498c5f89e0e1353e5611c05a","d64ecd6c05b214ecd707f4c3737d90f6bfa5f00b196d1243ada9de91c9908df1","b0019d60bf8c851d1147e45d0bd40fb2a1bab7b2badd915b3abdca04a45d23d8"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"text","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_text_1","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","cd1533068e03d24dee77acb9089a139ab926a507498c5f89e0e1353e5611c05a","d64ecd6c05b214ecd707f4c3737d90f6bfa5f00b196d1243ada9de91c9908df1","d84f882fe9577915eab12ff9ba3a4c9c58bf6652678e3873a628f27fbe910b82"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"text","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_equal_0","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","1ad914f2a5b0bfa6906dc873461ee08f0d2f4c357752f55fce2a6af1332c2ffa","07de832ac47beefae87ba9be7bb656e7f6a22c4498ea7069dfb9ca4f7d3b7b4e","a96a221c6f860490db8278ddbc9b0d4b12cc2a37d624fc03b22eccb0b81f8aba"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"equal","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_equal_1","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","1ad914f2a5b0bfa6906dc873461ee08f0d2f4c357752f55fce2a6af1332c2ffa","07de832ac47beefae87ba9be7bb656e7f6a22c4498ea7069dfb9ca4f7d3b7b4e","04f12a704cc8300d6669e2c64dc113fd93b4c324e9758a2ce5e1f808b71d7023"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"equal","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_interleaved_0","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","d2bbdb174682b148a33fefa2d71bf622b5f3d883219ddbbef4ccfa17374d34be","da6b4496400a5820e837ae1948861b41de02bc807f32dbbfb72b221aa33f7cd7","f530e42de5afc74bcb8f09a1ba493bfc25bb7600f6b6d7a0833c2a1a0333fb05"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"interleaved","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_interleaved_1","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","d2bbdb174682b148a33fefa2d71bf622b5f3d883219ddbbef4ccfa17374d34be","da6b4496400a5820e837ae1948861b41de02bc807f32dbbfb72b221aa33f7cd7","5467cefee99c33f2ee11433cc2260be0893d54d8e065b223d7617b3000ff3834"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"interleaved","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":1.1721471588322} +{"kernel":"rope_graph_4_sections_0","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","b773be92b7716c863d610ea97d529d0037ec81584495d96f6335a5caae398140","2dacd6e944d971ee2b882267fcb1eacfc13bb7053a82a0d8d1b0869b34fa2731","b81096120319ea424b5137249e7aaf9850cdeae8c6c2f72b8f3b03f95ac5e9c2"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"sections","strided":false,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.1721471588322} +{"kernel":"rope_graph_4_sections_1","sha256":["af0e6935b35ef4776e1c0d0c0e9a28e9f449222ff6034b4368f02c6c2fdeb76b","b773be92b7716c863d610ea97d529d0037ec81584495d96f6335a5caae398140","2dacd6e944d971ee2b882267fcb1eacfc13bb7053a82a0d8d1b0869b34fa2731","f220ee0b2accc336f56d1d1a4bedc494624515ab1e91837ff72694879d49aeb5"],"rot":64,"base":10000.0,"rows":64,"pos":8191,"parameters":{"rope_type":"yarn","factor":8.0,"original_max_position_embeddings":4096,"mscale":2.0,"mscale_all_dim":1.0,"truncate":false,"beta_fast":4.0,"beta_slow":4.0},"heads":2,"mode":"sections","strided":true,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":1.1721471588322} +{"kernel":"rope_graph_5_text_0","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","068e23505eefae415af98ddbebaac5b7fbb847d233cc81d98b2d9339b5e4fe67","5aec575ad169b0a19254aeee19fb3832ade66485e56f2c0c835b7dd6d153c149","8be797808b25c3a455f978585e922cf64f335e109f65614090a3d67317e9857c"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"text","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_text_1","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","068e23505eefae415af98ddbebaac5b7fbb847d233cc81d98b2d9339b5e4fe67","5aec575ad169b0a19254aeee19fb3832ade66485e56f2c0c835b7dd6d153c149","d9167a6f4401a0b9aae4a866b15407dc21aeb7e68d09f08a327f8053e6a3c4f0"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"text","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_equal_0","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","7de94d93e27deef47500fb4926516513b934b5319d8546c9cb81dcec4b0a853a","dc8879bb700c75994c2ffc33e850c9032228072c2ec5c55a7fe797e44b6e9bae","8020e9f456b712cae327c786b9a1b9ed09d916d18d2a041335c001d3824b5f11"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"equal","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_equal_1","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","7de94d93e27deef47500fb4926516513b934b5319d8546c9cb81dcec4b0a853a","dc8879bb700c75994c2ffc33e850c9032228072c2ec5c55a7fe797e44b6e9bae","51ebbb272cd8f77f0d4189565ff9bac29efd597b6be80ae90323576c781a27ac"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"equal","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_interleaved_0","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","e10bc92347974d9b4c28511d22657877d719797d31fd50c36d92c41eb3bae41c","d273517f5ab6201eae4cd9f555affbddd7108e74e24fa87ee756227ab61cfbdf","5b15d4d120c3f37258db81ac661c1e0c6b93d0ff6e4da47181ed0c5090806572"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"interleaved","strided":false,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_interleaved_1","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","e10bc92347974d9b4c28511d22657877d719797d31fd50c36d92c41eb3bae41c","d273517f5ab6201eae4cd9f555affbddd7108e74e24fa87ee756227ab61cfbdf","75d1b0d8ea2d2f2904fb4e3750004f0ca414f8d3cf2a43126a14a8d9c25699a2"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"interleaved","strided":true,"section":[11,11,10],"axes":[0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1],"scale":0.75} +{"kernel":"rope_graph_5_sections_0","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","67a07f139b58a0a30bfe1cd9cdbc773cee2a938ca9d7d55a62b58e6b2012e388","4c483a4237f310591af58ffc5f2a8496ac58ce60a7e6236e8e4368a80194fd22","7d34b2294102ab5e2f7f2882551a281c216c51a8deca9376e334a81d556640fb"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"sections","strided":false,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":0.75} +{"kernel":"rope_graph_5_sections_1","sha256":["c1faa617fc8f1dbccb67c1c29585ea52adebf90d71212abdfa1b13594da572d0","67a07f139b58a0a30bfe1cd9cdbc773cee2a938ca9d7d55a62b58e6b2012e388","4c483a4237f310591af58ffc5f2a8496ac58ce60a7e6236e8e4368a80194fd22","a4e070adc7a0443effa0fb53eb7c032956cdffdf7abc4ccc91613603a9e62244"],"rot":64,"base":10000.0,"rows":7,"pos":32767,"parameters":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":128,"attention_factor":0.75,"beta_fast":0.0,"beta_slow":0.0},"heads":24,"mode":"sections","strided":true,"section":[11,11,10],"axes":[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],"scale":0.75} diff --git a/tests/fixtures/mtplx-sampler-argmax.jsonl b/tests/fixtures/mtplx-sampler-argmax.jsonl new file mode 100644 index 0000000..443763e --- /dev/null +++ b/tests/fixtures/mtplx-sampler-argmax.jsonl @@ -0,0 +1,480 @@ +{"dtype":"bfloat16","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"bfloat16","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"bfloat16","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"bfloat16","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"bfloat16","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"bfloat16","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"bfloat16","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"bfloat16","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"bfloat16","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"bfloat16","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"bfloat16","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"bfloat16","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"bfloat16","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"bfloat16","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"bfloat16","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"bfloat16","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"bfloat16","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"bfloat16","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"bfloat16","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"bfloat16","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"bfloat16","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"bfloat16","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"bfloat16","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"bfloat16","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"bfloat16","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"bfloat16","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"bfloat16","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"bfloat16","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"bfloat16","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"bfloat16","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"bfloat16","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"bfloat16","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"bfloat16","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"bfloat16","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"bfloat16","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"bfloat16","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"bfloat16","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"bfloat16","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"bfloat16","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"bfloat16","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"bfloat16","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"bfloat16","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"bfloat16","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"bfloat16","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"bfloat16","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"bfloat16","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"bfloat16","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"bfloat16","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"bfloat16","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"bfloat16","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"bfloat16","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"bfloat16","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"bfloat16","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"bfloat16","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"bfloat16","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"bfloat16","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"bfloat16","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"bfloat16","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"bfloat16","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"bfloat16","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"bfloat16","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"bfloat16","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"bfloat16","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"bfloat16","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"bfloat16","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"bfloat16","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"bfloat16","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"bfloat16","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"bfloat16","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"bfloat16","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"bfloat16","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"bfloat16","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"bfloat16","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"bfloat16","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"bfloat16","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"bfloat16","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"bfloat16","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"bfloat16","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"bfloat16","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"bfloat16","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"bfloat16","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"bfloat16","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"bfloat16","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"bfloat16","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"bfloat16","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"bfloat16","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"bfloat16","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"bfloat16","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"bfloat16","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"bfloat16","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"bfloat16","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"bfloat16","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"bfloat16","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"bfloat16","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"bfloat16","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float16","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float16","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float16","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float16","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float16","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float16","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float16","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float16","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float16","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float16","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"float16","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"float16","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"float16","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"float16","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"float16","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"float16","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float16","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float16","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"float16","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"float16","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float16","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float16","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"float16","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"float16","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"float16","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"float16","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float16","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float16","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float16","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float16","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"float16","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"float16","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"float16","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"float16","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float16","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float16","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float16","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float16","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"float16","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"float16","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"float16","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"float16","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"float16","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"float16","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float16","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float16","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"float16","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"float16","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float16","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float16","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float16","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float16","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float16","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float16","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"float16","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"float16","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"float16","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"float16","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float16","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float16","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"float16","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"float16","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float16","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float16","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"float16","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"float16","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"float16","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"float16","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float16","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float16","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"float16","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"float16","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float16","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float16","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float16","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float16","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"float16","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"float16","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float16","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float16","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"float16","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"float16","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"float16","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"float16","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float16","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float16","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float16","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float16","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float16","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float16","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float16","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float16","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"float16","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"float16","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float16","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float32","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float32","cols":1,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float32","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float32","cols":1,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"} +{"dtype":"float32","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":1,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9d908ecfb6b256def8b49a7c504e6c889c4b0e41fe6ce3e01863dd7b61a20aa0"} +{"dtype":"float32","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float32","cols":17,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float32","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float32","cols":17,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float32","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"float32","cols":17,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"23333f282ee69bfe3320bdc2cd5861436f7fd8651b0866226eae9c8a5abd304e"} +{"dtype":"float32","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"float32","cols":17,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"77f7f67a520c0584f93bb6aee9f6f29159e412a2aba3137931ce63192de28c36"} +{"dtype":"float32","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"float32","cols":17,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"ff531528824341b29f7b433d713df388bfae355c400e8f3f0c2f0db4864ae452"} +{"dtype":"float32","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float32","cols":17,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float32","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"float32","cols":17,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"01451c234c33f7805a5b9b3d8dd64c8ab60c49ad91025c6c2feb9b7c7227961b"} +{"dtype":"float32","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float32","cols":17,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7a735cbfcfe2822d70d00d0a8bd63bdf07e8877565e9659dd808569aa36a7293"} +{"dtype":"float32","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"float32","cols":17,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"56cb0d047180b47a14c5cbf73cd1f71ed3d8f672188f45ad24969ee29449b64e"} +{"dtype":"float32","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":17,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"float32","cols":17,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"26b25d457597a7b0463f9620f666dd10aa2c4373a505967c7c8d70922a2d6ece"} +{"dtype":"float32","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":17,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float32","cols":17,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"511290daeb884e3a3dbb3e6187eca7d92880b0886ee2096ece98497e06d2d2b2"} +{"dtype":"float32","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float32","cols":17,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"f9048f4c0a15bac94dbdd6663f2b346dbe45546848a390a36d2173d5625ce75d"} +{"dtype":"float32","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"float32","cols":17,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"4f7e2b1070ef340baf959bf2f58822b7a6772144826c7e17a2fb0ca9a595af13"} +{"dtype":"float32","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"float32","cols":17,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"11ab16d0c2decd2305ff147dd0f5d79429c13cbeeb1a23bba2dca1bc460a8b4b"} +{"dtype":"float32","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float32","cols":4096,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float32","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float32","cols":4096,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float32","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"float32","cols":4096,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3db876a5bf325db550846f29c388a8d0a0fb0705e8db5ca5e3216182eaa5488e"} +{"dtype":"float32","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"float32","cols":4096,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"2757a7ec2f7e279d4e4f338a9011f2683ffec7dbfc703e0cc6310b67357100df"} +{"dtype":"float32","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"float32","cols":4096,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b3b53972f91cdf4985754b2595c88c8114d518269ec67a9d6278d92dac8e3ee9"} +{"dtype":"float32","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float32","cols":4096,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float32","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"float32","cols":4096,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a7026ffdd7b13b69ef87abc4e837a0447aac49ea368de42c3ace649eb2e7432"} +{"dtype":"float32","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float32","cols":4096,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6b67f5d6a3c5596696be8c06a10ec2b53f8404451d974d117becac18a8455763"} +{"dtype":"float32","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":4096,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":4096,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":4096,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":4096,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float32","cols":4096,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"886916aea705fa3b196a56572b41a39bd84068224ec225ab12a6dd7342a8519a"} +{"dtype":"float32","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float32","cols":4096,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"63a328c5cab3384829d9ae07147e8f70d793a39a1986c92d72efc3c4cd9dd0c3"} +{"dtype":"float32","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"float32","cols":4096,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"6203d709b888635bc200b15f45a33d62c12e362e36d6cff26ffded4b492181e0"} +{"dtype":"float32","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"float32","cols":4096,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"8a9716734a5111cc8074769b5f357664dee45dd39ee90b372ec5d2e63d7a2a49"} +{"dtype":"float32","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float32","cols":4097,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float32","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":4097,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"float32","cols":4097,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"3aabde978ec7f8df9dcaf7ac4a899d013ebb7188b1d02061c8796a93def721dd"} +{"dtype":"float32","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float32","cols":4097,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float32","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"float32","cols":4097,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"25bf52de2c05d9b17f16682e3305ce52cb12b48f9528ebf931cae0a036b077be"} +{"dtype":"float32","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":4097,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"float32","cols":4097,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"c29815c92777be121914ee728651dd2dfbb3abcb810ed3cfa600364ea6fece78"} +{"dtype":"float32","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":4097,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":4097,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":4097,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":4097,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":4097,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float32","cols":4097,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"2c45b024e7d8cf1fc164f4b61db9331e80d234a87a4325a331baeb534e8ab67a"} +{"dtype":"float32","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":4097,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"float32","cols":4097,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"71b3a51fbd095131bf27329cd8d90ba4cb6ff88cc990d25496a7be0dabca575d"} +{"dtype":"float32","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float32","cols":4097,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float32","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float32","cols":248320,"layout":"plain","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float32","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":248320,"layout":"plain","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"float32","cols":248320,"layout":"swapped","mode":"pattern","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"41129a2154ca1389342ed8b9f13931c446fe8b9004f95289f3cf46a28a93bbe9"} +{"dtype":"float32","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[3,2],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float32","cols":248320,"layout":"swapped","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[3,2,1],"sha256":"e1dff3054e289b7de4cbf65794c7ca2a6e4b1db78d8cf53ced50388ca71f8a52"} +{"dtype":"float32","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"float32","cols":248320,"layout":"strided","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"e633e107fb71de808178509cffbb7dde644b53424a7531ac27e8834971fcb53b"} +{"dtype":"float32","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":248320,"layout":"strided","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"float32","cols":248320,"layout":"offset","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"99b6e37500089c12238ffce55f84c08fcb4d60112fd767b9a5c94ebe6b2c0c26"} +{"dtype":"float32","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":248320,"layout":"offset","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"06d398222b48471512964b3c04640b875ce42c97b93629b8061bb9d37c90950b"} +{"dtype":"float32","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":248320,"layout":"broadcast","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"b9a36116d1cc030c308e8b04a4379e85c646773430c922261ab83212754d866e"} +{"dtype":"float32","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":248320,"layout":"broadcast","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"9638834d1f629557d9b80fa7eeb64409e238c0ef2e3149a55a39c3796f66e19a"} +{"dtype":"float32","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":false,"shape":[],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":248320,"layout":"vector","mode":"pattern","axis":-1,"keepdims":true,"shape":[1],"sha256":"3e843eb676ebdc8f262642d47c4b0f321affa92f40f3447e137f5f4129416715"} +{"dtype":"float32","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":248320,"layout":"vector","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[1],"sha256":"67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450"} +{"dtype":"float32","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":false,"shape":[2,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float32","cols":248320,"layout":"middle","mode":"pattern","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"90cfc3e17ecc226534c67d7b99fe2aa2ecd07cb3641be0589b5eac537edbb47c"} +{"dtype":"float32","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":false,"shape":[2,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":248320,"layout":"middle","mode":"nonfinite","axis":1,"keepdims":true,"shape":[2,1,3],"sha256":"d2158007a2a3ba3020b17ea12b8326602cac03076678899f0cc244fdd293de39"} +{"dtype":"float32","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"float32","cols":248320,"layout":"reverse","mode":"pattern","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"7abc6919a155b5ddde83f5fd8d8b5c2d1f146f8d8430148b19fa8f5843ccaca3"} +{"dtype":"float32","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":false,"shape":[2,3],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} +{"dtype":"float32","cols":248320,"layout":"reverse","mode":"nonfinite","axis":-1,"keepdims":true,"shape":[2,3,1],"sha256":"5f6328c5377e67a6e3bf43b2d79ef0fd47a12a5ad1e9d453684ec2323907e504"} diff --git a/tests/fixtures/mtplx-sampler-batched.jsonl b/tests/fixtures/mtplx-sampler-batched.jsonl new file mode 100644 index 0000000..bd0581f --- /dev/null +++ b/tests/fixtures/mtplx-sampler-batched.jsonl @@ -0,0 +1,653 @@ +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"95e940ea0caad0a11590d2fa9e74c069823730feb602463b771ed1ed45ca9fb6","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"bae9c4c3cf3d0806be0433716e33d18fb19215aefc07e9f1a86cb38591016e3a"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"c3786edfcc40552f04fde0be1693594591199b8a15267c9ac05a76e92093edee"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"a691c5ae12ceca5cf93af4e58eb92252679cfb365e72789a07b0073ce784213a"}],"lookups":[0,4592431926047128614,0,4593858823498974729,0,0,4581034803236747678,4585308292901223666,4582173453362682550,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"1cd710d461a6ee1ddaf09591c40555b186c76e53a24a55e85c8c1d6b39d7bcca","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"cb1f08707ab90ce62a4c442a0ae433d74cbf7740e7246f2ebbf09c9c2a86d761"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"73d3e2a4493d2fc3e6c48bc3a8f27da44f8d3ee33deff18fe22a16fda85718cd"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"5e50f626e8b87af0638709d3186790bb45de8c58e9d082a522fec958d31d95c0"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"b4fdf21e20d2f54eef3d596c28ee40edfc36c9b163730a2921ff4b01a4d83ab7"}],"lookups":[0,4592431925506992486,0,4593858823785442413,0,0,4581034803548003922,4585308293129940197,4582173452454553029,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ad3da9eb5485f7f8ea12f30a8c2b68dbe7f30cd0bc504d53143befb8556cb26a","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a3c99003b65d2957515007ae851e15e6f9c5823be62b6d395ddd0258ca0b24b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2db540701e15c16aededb06983a5462cd0a34bfe7d49b042a43777c262b25c27"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"e2c5ab5984ccb2ee571676464fc8c1157335869f593710386d4f7ee128792c40"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"08f18e9cc6ebeb35d9b4d389818a8b1b75c8e2be94ead2717754460ed996cc25"}],"lookups":[0,4591812262448297419,4577187367762356417,4593067858497960058,0,0,4582098679894022586,4585780353374756910,4583251350843705508,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"bcc15d8ab90e3aa1c8b98ae66d1c647028d90a3d9fcbc4c09a91bcbf0f3b42e1","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3ad2939a07c982ca599a74795c4cdcc84597b9220f3feda5be9302520643ee54"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"9f14d97274c968dbe4594724f58d7fea03b31218012ef8801ce7872f1d6ecb1b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"abaf13bff71079ee32a8b71bf7572a85b5bd8e9bd5496fd31799a3350b716440"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"cb549c8885f88ac2c90459c276ff48e968438643a474362a2a192164398b8345"}],"lookups":[0,4591812262758790332,4577187368229962638,4593067858290555644,0,0,4582098680114353701,4585780353483236350,4583251351232791176,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2bc5ba91b46b1bff6393ca967c058bd076d5b9b7644d48fe3a033239cdd55b75","probs":"43cc70d5d592c238f3223a8c55d1ff57dfa817fe057f1faaa535ecf7cc381bac","shape":[4,17],"samples":[0,14,7,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,5,0,2,0,7,0,15,0,13,0,14,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"93dbdbaf1e50d6c85e099ac30968ad8caeaa112aa76ea1e5e6d2af3d7e9a6bea"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"73d3e2a4493d2fc3e6c48bc3a8f27da44f8d3ee33deff18fe22a16fda85718cd"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"02705ede8f2ee1a8f2d13ec0afc4a5aa19d67f823937cfd41da33d6d86f44789"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4592431925506992485,0,4593858823785442413,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"920409e6a6e7d2070321d05de7558af938d619eb2e2360847ac7f7dbec5305df","shape":[4,17],"samples":[0,13,6,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,4,0,2,0,6,0,15,0,16,0,13,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3ad2939a07c982ca599a74795c4cdcc84597b9220f3feda5be9302520643ee54"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"39afc2cb69f468bfb59ae2c6b1da88b9b6b94282e5e5ac7d93ef8498d1e89983"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"abaf13bff71079ee32a8b71bf7572a85b5bd8e9bd5496fd31799a3350b716440"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4591812262758790332,4577187368229962638,4593067858290555644,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"86486498d999df0429bc5f8c81bdd4958610a50581a7b632ddd67208b6f2fa3c","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d915556fadaa4b979bea7768f4d4f75a862d3890b4c9e279685404737756b5ee","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"051642a71d515ed947133dbfe91e8f487a9acc538b7ec8886af9ed7b8591916c"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"f4243287af88e63369f99f735e4a1683472d856fe04d77b1ae7679ea3c3846f9"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"8ded529a5ff83d7aae91b05286535ac704aa3fe0871e6b477a293be51361164e"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"2738aaeab226bddb2feb7dd0b4f715a5a7d863a66a94e3db26e6a22cfeba02d5"}],"lookups":[0,4594551319643887265,4581647193272864996,0,0,0,4589189572537241937,0,4591308762060361395,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"9b6c54be4a105e1fccc190615f7430b706d589cbbcf79850a5082b324c602818","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"948dfbeae90a1bf589797ddf71af66b6b00762160ee4bdfc105c5092f6eb38de"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"7a8833ac6b31fff392c1412d0c7d1390ad1dc8ffe0c815bcc2dcb862f18c1e99"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"b18c02f825115a12b286cf97814000de31423c24ce890431c9bcb1a0e6b443eb"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"f2de8e9b214a86072cdc3a6135d724753e77cf34173ce4d2f5396b180bbd7b66"}],"lookups":[0,4594551319496361361,4581647193261826774,0,0,0,4589189572654537137,0,4591308763219517877,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3f762984daf8578c03164e717c632ed35560a4fba3b334702d767437b9270972","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d73aaeb0c7ed0d0eda64292419f50260e3389a0266fc07f84f0d905d93b70a19"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"1c5c8951d2b4dbbc615e142334fbe7a35b943fbea234ad9604c4fc06d1878481"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"34d6dc284feabe2057c670f1d4a5abf3a84bac455b320b8ae69924dcc30f97fd"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2b00ae5b845c8b0b0700be9a2111bd8d4705711e11ab0d4519bb33ad2660a3b4"}],"lookups":[0,4593940714579921353,4582696489755096382,4577563376800080539,0,0,4589106300736221733,4577750486364894548,4590881139564270294,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"6db67a7231c0d52e041d5a575d3574c0f137dcb5bcf7a07676d1de0e89ae3e27","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"5c39581c98cfef62a03e51c9640369b26e49002de4f19f49163c8ea9aab83764"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"630dece2527afcf4746840ee68ba8a512c28bae53bd7e04395a477b98ccbbb4f"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"c0a7d58171018264e9760bfcc69d931265b7b429d9337d2329bb1ead7aa67596"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"6c040471c4cb772b98cb1683c5f21d0b55dbf5f31e02d9027634921d0a24f1d7"}],"lookups":[0,4593940714266855271,4582696489832804903,4577563376925418420,0,0,4589106300794099618,4577750486519920663,4590881139445687768,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"9ee23e9c635e66eccbaa2a4b992586e9721d47aa91337131fb973d0f4a6e5fa6","probs":"ae91df9976213fa559dcdb0e8e38f4c949f160d08723ebd75e96bc0ea73c0013","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,6,1,3,0,14,2,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"948dfbeae90a1bf589797ddf71af66b6b00762160ee4bdfc105c5092f6eb38de"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"e465ce86a9a8198969f8054b97319ef0054faa231e39a5ae20da3d91808ccc04"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"7e0d1928384b31ce754851a9d3509d31fb952b83d1b5492a10a465a6bd2a83b6"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4594551319496361361,4581647193261826774,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"2b3e64c61f47f830eb19b85594460469d1c67031dd0a5d75d2d8153ff7f9dc13","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,5,1,3,0,14,1,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"5c39581c98cfef62a03e51c9640369b26e49002de4f19f49163c8ea9aab83764"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"630dece2527afcf4746840ee68ba8a512c28bae53bd7e04395a477b98ccbbb4f"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"c0a7d58171018264e9760bfcc69d931265b7b429d9337d2329bb1ead7aa67596"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593940714266855271,4582696489832804903,4577563376925418420,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"0470297c3c38e54aaa909c1d5fbe16ed73ace5bdd079ba340d7c630b7c5bbf29","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"6e269bb528af029c6ad63f23876db5e898f0fbb5e513ea85b0a004179484921b","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"7a52d80798e1548175db4067892d32b961484d92cfef94852bf3a2a318e799da"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"b3d45a01c21a16e03a55845e08c164767ba3430ac1ff669b05d50213a030c1c6"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"21d3db3a09b4c262ba06038415a423f99a77ecde40ee8d5c58f37f9fc82d6963"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"feb63a3d7ef542e60b6b43b679ced4e1a82232930ede8a584511fd2d6bd0fa11"}],"lookups":[0,4593858823498974729,4589572902702859374,4592431926047128614,0,0,4582173453362682550,0,4581034803236747678,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ca7df2094df901eb9fb6403ae3e94e4f04c8ee2a4c0a3bc5c36d3be79235fbc5","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"fd1e7e4a13fff63f547f63a986e86a02548c23981cd510b8ca1c2c0f82b1bec7"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"1a0da8fcd19f2081317918d51cbf90d3eca34917b9579ea76581dc29903f9d2d"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"d4608cad53089583c71d61c517482e6f61cb5a74b1574f90f72eb068d83bf761"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"9a3ec98ffc772d6518279aed120628ed9b2a6e8bd8b19ce5bdc287871b573c1f"}],"lookups":[0,4593858823785442413,4589572902083233252,4592431925506992486,0,0,4582173452454553029,0,4581034803548003923,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"5ca4f11fd64562544f2204aa81aa4c32685256e64416badf8861b3340e6b64ff","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"5c3cc5203bc9ef061dd8efb830bd9db356f6d94c8b050c96fcfeac63d036a152"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"329178aad7f546ad2e70ba6ea0578e3595d018f979da16317ecc20e8630fc5a1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"0372fd3772458ea39757862e0145bdae94371b9ece9ae0ed62f75abcf7a38d22"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a8c2716fa16f022c95aec776ebea5ca42fa2e7bca4040b75ccfb4030b6bb20c6"}],"lookups":[0,4593067858497960058,4589487416654259745,4591812262448297419,0,0,4583251350843705508,4579870639441056880,4582098679894022586,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"7b0c3fd4dc5b489bfe629bf507ac5162110beab6522a577156ad10a69b66086e","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"0dc2b0e87c9491867661c575ea8124e219946c9b17c595d9344cb7ad10c5ace0"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"ab4f155ade363ced7137bd6ebb2abc73fde08cf062b832b2ce31e5a4b67ca289"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a8ed5097db5ae5fb5069484a9df1722d6033061709f6e0c83bbc2295733e0e31"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"289294d252460ef107641e9437a95f56a9e1854e6add013c2af314a7fe863862"}],"lookups":[0,4593067858290555643,4589487416740561688,4591812262758790331,0,0,4583251351232791174,4579870639739223858,4582098680114353701,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"97c293b7f305196bea2d654891754563a78786db72ca063387638cdac3bf6f1d","probs":"fabd501093f0349ac950f85e9a53e56bf28bcf5218ad8f6c08a1158aab02075f","shape":[4,17],"samples":[0,7,3,0,1,16,4,0,0,6,5,0,5,4,7,0,16,1,3,0,2,1,3,0,15,1,15,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"66389d3a4d9b4a120a53aeb43030b486d0a591e6e85c2145f778ad31b5c95102"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"1a0da8fcd19f2081317918d51cbf90d3eca34917b9579ea76581dc29903f9d2d"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"d4608cad53089583c71d61c517482e6f61cb5a74b1574f90f72eb068d83bf761"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593858823785442413,4589572902083233251,4592431925506992486,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"a398ca6c30548b5700107cca7b5d058ecd9d4bcfb628acefd22ed783db36c9aa","shape":[4,17],"samples":[0,8,3,0,1,15,3,0,0,7,5,0,6,4,7,0,16,1,3,0,2,1,3,0,15,1,16,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"5af7a97af8499d4e5ab0143935ffa4964f464f4e51b88f4fc8a03927fb0097c0"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"ab4f155ade363ced7137bd6ebb2abc73fde08cf062b832b2ce31e5a4b67ca289"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a8ed5097db5ae5fb5069484a9df1722d6033061709f6e0c83bbc2295733e0e31"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593067858290555642,4589487416740561688,4591812262758790330,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"59ec6035f4669d2aa016677ff13e657eb8e0f0b0f3da73702f8f91dce44c9843","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"42ddf3b5a24de8689261ce54878c4af77a1c115198c5f0ddf6af419d2198ec66","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf"}],"lookups":[0,4592431926047128614,0,4593858823498974729,0,0,4592431926047128614,0,4593858823498974729,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"99e3427ec2e2dbc8577035da40633b38afe84758fe12b77c7654f135ac8b453c","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"cb1f08707ab90ce62a4c442a0ae433d74cbf7740e7246f2ebbf09c9c2a86d761"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"cb1f08707ab90ce62a4c442a0ae433d74cbf7740e7246f2ebbf09c9c2a86d761"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"cb1f08707ab90ce62a4c442a0ae433d74cbf7740e7246f2ebbf09c9c2a86d761"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"cb1f08707ab90ce62a4c442a0ae433d74cbf7740e7246f2ebbf09c9c2a86d761"}],"lookups":[0,4592431925506992486,0,4593858823785442413,0,0,4592431925506992486,0,4593858823785442413,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"00e12afabcd457cce7232980b6a602485c62ee1eff2b26f45f0a0acb065eb231","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a3c99003b65d2957515007ae851e15e6f9c5823be62b6d395ddd0258ca0b24b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a3c99003b65d2957515007ae851e15e6f9c5823be62b6d395ddd0258ca0b24b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a3c99003b65d2957515007ae851e15e6f9c5823be62b6d395ddd0258ca0b24b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a3c99003b65d2957515007ae851e15e6f9c5823be62b6d395ddd0258ca0b24b"}],"lookups":[0,4591812262448297419,4577187367762356417,4593067858497960058,0,0,4591812262448297419,4577187367762356417,4593067858497960058,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"65f19a1374ea807c7c541025b7d09d986600c3fa79c286dae762a54b9ba0c0d9","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7393093e327cd9c8cc032c92076ae30f9b9bba2f8c7ab776c40527bbd387912f"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7393093e327cd9c8cc032c92076ae30f9b9bba2f8c7ab776c40527bbd387912f"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7393093e327cd9c8cc032c92076ae30f9b9bba2f8c7ab776c40527bbd387912f"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7393093e327cd9c8cc032c92076ae30f9b9bba2f8c7ab776c40527bbd387912f"}],"lookups":[0,4591812262758790333,4577187368229962638,4593067858290555645,0,0,4591812262758790333,4577187368229962638,4593067858290555645,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"6f8d73e8a2f40da97cc3e9c003e2eb4498b70074472ef358f25a465dd9f9709e","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"3a87e347c142fe48895d26809b6dcc3782d55118bae2599b3a8c9989c0b55494"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"e2fd870a2e0620d9cdcf890dc8bfc5a10fe23d67a6bcce08f7caba7ab2d7b584"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"fe4579c349bc28165fe375553f8ad1836c4b4ac5a051f8f6e4abb535da55b49d"}],"lookups":[0,4592419361563782668,0,4593862683949524819,0,0,4581038663765150679,4585309891621400276,4582172824844043733,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"95e4899a97dae83faf716d168b3b2770bb2da2375d223284c137390b7003bdde","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"4f26cde120fa59dce00d3a64cfc022f80e665ba9bda17596c5446ae36acf24a7"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"2c0c38f87a25c113170582f134db0dd07e03dfde5a0f83772d56ca1b7eaa1c21"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"504433495e440b06ee618368c0216c0aad654d7d0b845fbd9ccaa33c8383f60d"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"91381fb6fd49c82c9901bd699bb31a587eb70d55115a3c93d4b3be75f823961e"}],"lookups":[0,4592419362359926315,0,4593862684491802387,0,0,4581038662516818819,4585309891382699929,4582172823952117752,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"49f37f7dbc5700d1362451cc84756c0f7dad8206197570a080e9510e89942c71","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f8a122666894fb48fd59db89158519389064ec561dc7a908c888962aaf81fe1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f898b8b082c1bc2e99811433c7cfca20d0462d2654d46d92a5ebc8dc42215a2"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d0af1721f81af2f1b2376b62a965260f54a770eee895c7f4ba73872204ebbc7c"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"1b75006128bdccab26107b27a9f2db1582b00012be0fed0c148d072aba13bfe4"}],"lookups":[0,4591802372697603192,4577195855091422519,4593073810593984908,0,0,4582102795820852953,4585781983240195299,4583250904452236360,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"58ebe6928f5fe5b3b4679cfa45ef0a593e5057e083925bb3bd3f33a4ef5971ac","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"051cdaf4e4125bd01a55f0263fb631f5026a4089940674e8a6c210861e15a6ee"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"497ddf6976f0c8a988f8883583737394a75483f18507b92811c335e4c3681528"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"bf9285989a016f957fc81dbc9bd41be481b3d1e000acd4370f8e4482d0ffdba5"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"eba2dec93da0ebad00f03b0c19f747d5e8c4a83bd4cb53fef54cfd772c8a6ca4"}],"lookups":[0,4591802373085730817,4577195855419970211,4593073810764825108,0,0,4582102795976069306,4585781983315729028,4583250904829079884,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2bc5ba91b46b1bff6393ca967c058bd076d5b9b7644d48fe3a033239cdd55b75","probs":"ca2c65a75e59bb39800e806e0ef2c2c1e787981e93a91c7fcee887d0fc7c38b0","shape":[4,17],"samples":[0,14,7,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,5,0,2,0,7,0,15,0,13,0,14,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"655f261f3e304b21c44cfde4bd59b9d9921db5335176c8e9bdebd5838dd3b84f"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"2c0c38f87a25c113170582f134db0dd07e03dfde5a0f83772d56ca1b7eaa1c21"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"504433495e440b06ee618368c0216c0aad654d7d0b845fbd9ccaa33c8383f60d"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4592419362359926316,0,4593862684491802388,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"8bf75c4aa1788e8adfe4c86fbfdd8447c048269ebd4e73382c2fcc369564bf90","shape":[4,17],"samples":[0,13,6,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,4,0,2,0,6,0,15,0,16,0,13,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"051cdaf4e4125bd01a55f0263fb631f5026a4089940674e8a6c210861e15a6ee"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"497ddf6976f0c8a988f8883583737394a75483f18507b92811c335e4c3681528"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"bf9285989a016f957fc81dbc9bd41be481b3d1e000acd4370f8e4482d0ffdba5"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4591802373085730817,4577195855419970211,4593073810764825108,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"86486498d999df0429bc5f8c81bdd4958610a50581a7b632ddd67208b6f2fa3c","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"55a7ef692e4500bd026ed8b33b4423b59c4ffee846453cd62827acfea18647b3","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"87f1c51aaec780bff5ea0e02c429f8303bc19192d90ee0fe5c076ae2f3fea134"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"8b095c6c7ee856662d4ea415d944d8e98d8a75388e366babb4d4fd8f145367c2"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"f785f84fac35754c3f1461bb9bc6d27f2abc5b2506fdf8491b35e4e2950c74e6"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"d734b7d0e1276d93422c9f136d7566084cebf62bedfd734962b25bc129cb8bcf"}],"lookups":[0,4594549538798678935,4581650087817052665,0,0,0,4589190199547088458,0,4591293480664281333,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"e5e143a66a097bbcda34c59e5969df2898505a4a53aaa5831c24d10428b467d0","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"71a2e4c83339c527792cbe3cfd08cea270f5c274578bd375ea6fcf44735e050d"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"ac1ede51212ecd7d4b90a77ab319099a34b6c58e8dd101e0b6a1a0d64f729ecd"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"37e794d402445d81ede72ab648a8f3f6f2b883be462f7bb75e292dd51061aae9"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"d60ca1f852e39b95ed9a1e7ece5fb64ab6005dbb373cad54fd763d96671b31ae"}],"lookups":[0,4594549538727073991,4581650086830612750,0,0,0,4589190199996719719,0,4591293480354637103,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"f6873677726b44cd9e2822e8e24ea559ca46d73f26faa3793a98c1da845520ca","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"5448731fe9c4260ee4e65b0fa5738d67406e45a019be7d7457f639429c6e0609"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7ae7a28d624c290106be54251209524cc96034beacc888000d678e76e6adc154"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d548c979d2f0db178fedd796e105cc08cf4a9630972cbc32f8f312f2bae70b5e"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"ebf8d13e5dc27409f69bb073fbaf03b7d10bf9db79c94e0ab03d38875b6d4401"}],"lookups":[0,4593939803129962069,4582700056492236221,4577575577249893008,0,0,4589107528412418429,4577755995224797652,4590868995089230872,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"a8fa15d12b80075652d0dfcf41cb13e4d8afa45140d49548335839fc069692f1","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"02714eb6d4283dd378f3e1fe66d05014fe7cab2d2eb563198aaad08438241ef5"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7000eff08366d97ad20fc4102c2d2968fd660b4acb5a6a0993805a9fc9b6aea3"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"04911aa79c14d9d6868f9126b0e898d08c40fb87cbdb2605005571b6bec60414"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"4b284a2223ab0285bbd3993ad51b69ee6b9a9adce39d103316f02c24fc169704"}],"lookups":[0,4593939802819018125,4582700056513058629,4577575577596975519,0,0,4589107528418002527,4577755995678669543,4590868995093103465,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"9ee23e9c635e66eccbaa2a4b992586e9721d47aa91337131fb973d0f4a6e5fa6","probs":"f51630c729b30a4e5e78336b4bd3ea242c8bf1dd592e3100f14a31baeb62669d","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,6,1,3,0,14,2,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"06e17201fd0973aae4600e5b1f1467f2c24f792f7ce59061f1a11b74961de482"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"cc6264f038e8eb88349980b8f65de84c991df13c5ebc0368828cf073134b0d7f"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"37e794d402445d81ede72ab648a8f3f6f2b883be462f7bb75e292dd51061aae9"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4594549538727073992,4581650086830612751,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"dab7dcab0a5e1a2aec6cf1c9171b87ffbdc4a33ba87c6a708d20a7b93b3df6c8","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,5,1,3,0,14,1,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f057f7a66a95a8562b6acbe5b5203bb44ba33f54d0d04ce1824c6e355921610"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"7000eff08366d97ad20fc4102c2d2968fd660b4acb5a6a0993805a9fc9b6aea3"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"04911aa79c14d9d6868f9126b0e898d08c40fb87cbdb2605005571b6bec60414"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593939802819018126,4582700056513058629,4577575577596975520,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"0470297c3c38e54aaa909c1d5fbe16ed73ace5bdd079ba340d7c630b7c5bbf29","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c0542cde9829d387bb8d9892daaf6f918ec2c3f4d5f0cbb81dd3470e3380aea7","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"c07c78d685415be98481539286fd87008d6481a59abda1498e36d94ae7e9ef6d"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"4ea0e3717c4923308cd7baa218cb78a646636b657dd5fea95e9493bde9ab8bd8"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"3a5662f1d2a4e25f00471f038010e7f6166895c26f4d46d89218c5e63b1073ed"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"15aec4313c67a44e7db5a269de64838d68b90b99f33810f7082f429b050440f9"}],"lookups":[0,4593862683949524819,4589570948739990465,4592419361563782668,0,0,4582172824844043733,0,4581038663765150679,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"7e725af722b965e67775b5aefa3abc1c5a3dc0e282ea954be8bb6e33d04ea96d","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"7ef861def96b8913e16e445ca073e28855f4bc610f1b564c27564aabc53bb118"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"fa21e150e37c95e47418760bbfa6558cf0ab5abf0341ae7f4a95b555a295aab1"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"711d12bee09f23ce44d52e09e4569ca4e9cc89617c92c08d078cd31f24352b23"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"2a1fab69bc94bd47a3c29769c78ebc5577371aef27b4320396b042bf9a5e4703"}],"lookups":[0,4593862684491802387,4589570948875192782,4592419362359926316,0,0,4582172823952117752,0,4581038662516818819,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"06e3c8de13dc5afa23364440e38cfb827b7f7e37ceaff733cd0a156f8a775533","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"047b3bc1fd6d4cc4d39f36c3c62e2f870be62ad23de9d4356dd74e308503755d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"6c93188bd550ee11bcbd0329e6be4da37bf03f66d873c68afbc14287478b731b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3e2f07787000d1e8e6a9a6ab6d973e5b053d2091f34a6b8439404e5886e755ae"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f74329697b47a9e0770d75fa52bac7b1ab26bd97432847c6ed232c68423da9c"}],"lookups":[0,4593073810593984908,4589485785802110187,4591802372697603192,0,0,4583250904452236360,4579857975072029316,4582102795820852953,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"393e35a5c25522217557b4e1af97f9e5da4284eed71502250b73a2a702da7e94","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d8c74dc09b9be6a9a9edeb52fd2a96acbe1b4d336a782216871d3255e48be099"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"395e4f72afceb090a87027cc030c118b9367cad9825d32cab49f1608bcfe30d2"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"f2fe5c2a5b9f0509a818cf72b9af9eaefae5eaf5264dcc67b2082192263f6741"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"e2c915ce85951ceecdc6a28b42b6c7913e2e9785c2391cbd2894833f2c95eb82"}],"lookups":[0,4593073810764825107,4589485785735843476,4591802373085730816,0,0,4583250904829079885,4579857975503990875,4582102795976069307,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"97c293b7f305196bea2d654891754563a78786db72ca063387638cdac3bf6f1d","probs":"98e53ea129aa00127491f7c4feb4f11f46ca30a304505815d1b6c7ec0db9c75d","shape":[4,17],"samples":[0,7,3,0,1,16,4,0,0,6,5,0,5,4,7,0,16,1,3,0,2,1,3,0,15,1,15,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"7ef861def96b8913e16e445ca073e28855f4bc610f1b564c27564aabc53bb118"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"afffc1b562eec6ba40de105bd0e3b0456dcca420b7f29180c037c8f502711a68"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"295fcc902e08d98f52ce9a144ecce62cc9b0568b99c89966807011b4a0b27f2e"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593862684491802387,4589570948875192782,4592419362359926316,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"571911e0e028948a23a3eac3e92ba7d044459c7205295e2f17bfcd24992f5184","shape":[4,17],"samples":[0,8,3,0,1,15,3,0,0,7,5,0,6,4,7,0,16,1,3,0,2,1,3,0,15,1,16,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d8c74dc09b9be6a9a9edeb52fd2a96acbe1b4d336a782216871d3255e48be099"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"294f62819b2d0a38096f2c6d773a0abe40da5f6f4d79098182ef219346032fec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"f2fe5c2a5b9f0509a818cf72b9af9eaefae5eaf5264dcc67b2082192263f6741"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593073810764825107,4589485785735843476,4591802373085730816,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"59ec6035f4669d2aa016677ff13e657eb8e0f0b0f3da73702f8f91dce44c9843","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"18f2f19d4d9f60bfffe4e89551324625fd4af67f35c20becd53ee2f39e4e150b","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5"}],"lookups":[0,4592419361563782668,0,4593862683949524819,0,0,4592419361563782668,0,4593862683949524819,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"151e66cd21203ed0798e6531377d12141a7e3bad4ed71a0ab63d14a92fdfd161","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"d8137d1f3e00281898a2a6579511112bd8e6bfe46e1b4bdcd8705827a9168615"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"d8137d1f3e00281898a2a6579511112bd8e6bfe46e1b4bdcd8705827a9168615"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"d8137d1f3e00281898a2a6579511112bd8e6bfe46e1b4bdcd8705827a9168615"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"d8137d1f3e00281898a2a6579511112bd8e6bfe46e1b4bdcd8705827a9168615"}],"lookups":[0,4592419362359926316,0,4593862684491802387,0,0,4592419362359926316,0,4593862684491802387,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"bf59d650beb93de9b2b766de621e751d7e6d8a9ec097dfe4005b4cbc0cbae250","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f8a122666894fb48fd59db89158519389064ec561dc7a908c888962aaf81fe1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f8a122666894fb48fd59db89158519389064ec561dc7a908c888962aaf81fe1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f8a122666894fb48fd59db89158519389064ec561dc7a908c888962aaf81fe1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f8a122666894fb48fd59db89158519389064ec561dc7a908c888962aaf81fe1"}],"lookups":[0,4591802372697603192,4577195855091422519,4593073810593984908,0,0,4591802372697603192,4577195855091422519,4593073810593984908,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3d6a8ea895c8e5cffeef308a99dd2e3a1e547f97120062f0c0bbad0a8066d18d","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"9832fd2031eff6621fb29c78851ae1f61b0dcacec8040dff63196619ab4df168"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"9832fd2031eff6621fb29c78851ae1f61b0dcacec8040dff63196619ab4df168"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"9832fd2031eff6621fb29c78851ae1f61b0dcacec8040dff63196619ab4df168"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"9832fd2031eff6621fb29c78851ae1f61b0dcacec8040dff63196619ab4df168"}],"lookups":[0,4591802373085730816,4577195855419970211,4593073810764825107,0,0,4591802373085730816,4577195855419970211,4593073810764825107,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"de178206f39d468fb8aab5192f98cc684e234e33635b1ecf65d817fb06586fae","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"51030b66a79f37a2306575302f6297f61cbaf6547d5a752b867eb1e6adb2bdf6"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"44d0a45799ff03f80d37dd5befde8fe89b5fc4c7d260f86e0b20e57500b7c591"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"ee4f0ad4bc8a10060a89990cbdd691ab7961adff40afa76492562b641ed2d216"}],"lookups":[0,4592421128387115568,0,4593861858064867347,0,0,4581039736763554420,4585310134418132206,4582171492887323038,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adc92548a1bada537e98a4288675413154f4f91dc5f58e0578b232409e822997","shape":[4,17],"samples":[0,14,7,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,5,7,2,0,7,10,15,0,13,11,14,12,9,4],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"334dfc601023e826631dcbd3790b42be7a005199e3bb3069bb158a707eb94767"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"517a356011e5c92c388af848d283ed3542d82cb89d88aca5eaea0f4372cc2b59"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"7b2115d79951ea9559ab1f0fa597f041b7b9d1d3f25deaa38ce5b07a7812b16a"},{"ids":"5371eaf2ff30065284f929a26be06c99892fcec9511cce23d2ae252403711bac","probs":"78bb445d71c4491476f3ed00bd8d9ecc82e8300f7c52ac4553c29fb9ce25b8ae"}],"lookups":[0,4592421128332663692,0,4593861858182478162,0,0,4581039736107940648,4585310134751824464,4582171492673295624,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"dddf909a645b6c24b8cf35e26cb05099e4880df48df7d9485744b3690c3811c1","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"90bf5033f8e83f3c13c294b96d716c9194d936f22de88a26e489d7d4e0d4b443"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"bd6b29c813e78e23281da9e8c4bdd29c69ffbfbefff47b0f360fa29d30d5e28d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"f7662580efb7d8749975be374bbbd7b49d75654ee148085ebc7ea6ff292a4b6d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a00e76be4e4db55b7e5786c49a355f04877f2b9b060519356853dbd806827d0f"}],"lookups":[0,4591803770167317070,4577194849766905907,4593072546728020788,0,0,4582103857793550729,4585782175807298198,4583249527251872672,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"0e0bb57d2c8eb18fae3dcfca6e4e7304836c88e48f1f5853287f188bbca08f15","shape":[4,17],"samples":[0,13,6,11,1,15,7,5,0,13,10,10,9,11,12,9,16,0,4,7,2,0,6,10,15,0,16,12,13,12,9,3],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"555ce66f9b44f6886101f7b0123376fc148516990e066a3218f4c44d10fe2b40"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"57735855a05d7ec58a730dc0c44167178c94763aeb350a39bcfe5cd2bacfc966"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"b892e7e0e227f70c9b36aeb5e75510d209afa0de4f217cb9e68d2ce98030f9c1"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"d67e7521a56d9a3e609fbcacb63720a4a418a07471a64d7e558b868d1fb47a90"}],"lookups":[0,4591803769947986173,4577194850198599864,4593072546326521755,0,0,4582103857829910716,4585782175886869026,4583249527423990604,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"038bd25b86973adc333f0e0db396fc0db45b5e3eb12095c6139c5985a7506755","shape":[4,17],"samples":[2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11,2,0,13,11],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5fd1b79ebdef9619a57916a3bfc264b54d37a792659b3693f8ab36ec3ebce448","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2bc5ba91b46b1bff6393ca967c058bd076d5b9b7644d48fe3a033239cdd55b75","probs":"5328cdcff7bd4a220c638030b645862eb5532a1492227e9b0ecc93bc63de5b2d","shape":[4,17],"samples":[0,14,7,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,5,0,2,0,7,0,15,0,13,0,14,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"334dfc601023e826631dcbd3790b42be7a005199e3bb3069bb158a707eb94767"},{"ids":"4be6e004b3d60e79b6100515b35748cca10d6342d1b59593830c0893069932a6","probs":"c1f92f131e69d81c421f342cc9dce3b9fdb0c3c19dda954f4d4a74454a9d0ec3"},{"ids":"a5ef6390a7a39e7f8b3f0d1e188384f3b875bdfdd015f04df4660dbd12104092","probs":"7b2115d79951ea9559ab1f0fa597f041b7b9d1d3f25deaa38ce5b07a7812b16a"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4592421128332663692,0,4593861858182478162,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"e297c4efc8a30bf54f0bd8a8b7d5b3fbc5a6b6a47cfd158bd1057d643012fb57","shape":[4,17],"samples":[0,13,6,0,1,15,7,0,0,13,10,0,9,11,12,0,16,0,4,0,2,0,6,0,15,0,16,0,13,12,9,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"555ce66f9b44f6886101f7b0123376fc148516990e066a3218f4c44d10fe2b40"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"57735855a05d7ec58a730dc0c44167178c94763aeb350a39bcfe5cd2bacfc966"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"eae8fe35a207e6f7834b62e92dd927f654a9809149069076e7d4dae99f5612e9"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4591803769947986173,4577194850198599864,4593072546326521755,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"86486498d999df0429bc5f8c81bdd4958610a50581a7b632ddd67208b6f2fa3c","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0,2,0,13,0],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"b0bd73e6922c0d2496dbcb99eac08eb5870090e59f6e06b1eb477d540002a5cd","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"e320b4f10b181e6b18f1049d94b2e69e1ab28efade6a6fe3102a4b51ce9e381b","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"32d2f569dbae313859d98f7c6699283e0ddaeca79fefd214739d453c7ecf077e"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"272403a1d2e88511f7957ebcbf051821928364cb9ce39368d23cf0f803b496d7"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"f26fad41fd012798d114266241e28c2fce27877aff5d28fa7dcfc65f1b120c5a"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"4c3324bd995f01d3a1306fcf4db724c1bc6a9903f9c16be59686e085a31af96e"}],"lookups":[0,4594550445809888962,4581650091654118176,0,0,0,4589189476676976414,0,4591292463022636546,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"abe40f5b132133f0ceb6fee408f02d3b1fc5307684df2106a439ff773b86ee46","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,6,1,3,10,14,2,16,16,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"ea01f3d13212341a57a472b86da329afeededf0046440b2e97499bfcae165dd3"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"81a400f2cafd7e65ed36884e0606eb15690d9a185e2e4a0615de117a2ab8d949"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"573ccdec925191950915e2bd372e72a9d8e99bbc52c6619ff19cbde169000c39"},{"ids":"c4215d7853b535078b682e2f515e049cfac44559414d88e32cd62fbbc3a17e75","probs":"db256cddfaa461b89122368dd87376c9f615e556d8fdf20a16f4bd541d9bb9b9"}],"lookups":[0,4594550446128884374,4581650092299161675,0,0,0,4589189476945724830,0,4591292462429940115,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"46a6ca16f9a6e9cde3b551574d07441c965be280df2f13256f495e22888349c2","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"6b0b497f1f3f4617d66b73dbf8c26819dfa456ba231c10ede8162abddad52ec6"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a7d6f3214786eb408a334d093879863be84485c38cfceb30f2b04251bb718fba"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"88af309a100c2f8c91c2736561ea1f06f27f5687aaac5e99ccf72232691dd788"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"c90d120d15aaf6ea973e10fb0f31b79029332204d3f5df253122efa5afba3ce3"}],"lookups":[0,4593940409529171728,4582699938918312314,4577577180493981316,0,0,4589106346276494868,4577754173645119474,4590868208368361078,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"716af21cf68967ab31730c1d9fb817f0d4ea49c368f132634e34388056492e9f","shape":[4,17],"samples":[0,11,3,14,4,13,3,2,0,10,4,10,8,6,10,9,15,3,2,5,5,1,3,10,14,1,16,15,12,8,4,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"b0524290b6440111d00be41a9a94b3c3f824534d59c894b2d20b45b417f63750"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"e42f0f236e64a5b584d1c05c5974d46d0b59c04987e29f960f8f418f3d7f3e0b"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"69e78e7922332e95467cd22c66afe9fa9ccbb23153af4dd9ef46f0d3ea32cfe4"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"f7429d0723abc2cfb1b7275b039cee234a7f32a5cd46161c39583b9c83dbc68b"}],"lookups":[0,4593940409358815241,4582699939386534177,4577577180921039569,0,0,4589106346359873832,4577754174296776894,4590868208346947597,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ef6e63a16b7df48b7cbb78651a50f41cd74a644bcc2135a5de916ffb006de348","shape":[4,17],"samples":[8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10,8,6,4,10],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"a111f275cc2e7588000001d300a31e76336d15b9d314cd1a1d8f3d3556975eed","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"9ee23e9c635e66eccbaa2a4b992586e9721d47aa91337131fb973d0f4a6e5fa6","probs":"d43f5f671592b7d980e40b8ce6c26f1e8a105b37503b6c558f8bcb37f42176d2","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,6,1,3,0,14,2,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","probs":"9e670b7733403bcbc7b970334f5f6162262f90a25f8c706089b9e3e20c46774a"},{"ids":"1eb75e0537fd277c95769cc2641e06d2c61e2af9784d5530239be2ed8990edf8","probs":"62a2156ea606b14aa90c9e605a9b7282c69a54e53c26902c77616a84aa6319fe"},{"ids":"d95415f5def419f346156ad13749594913564f0e9e8bb055eda0b748e989f1d5","probs":"2e3c2be80cebc006eaabe84b8eb67ab0dc0c18e796a89698db36a7e50db95d90"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4594550446128884374,4581650092299161675,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"f4f514cea3979e9c0db33926b59cd9349a9935e566078e79bd4a51bea90cbfe2","shape":[4,17],"samples":[0,11,3,0,4,13,3,0,0,10,4,0,8,6,10,0,15,3,2,0,5,1,3,0,14,1,16,0,12,8,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"1921ae23d1ea9f831f017eb13363444fd0bab327edc1ea17031f95276f3f2a05"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3a8b093d59e963f9e3f518f48b12ff974ad02f702c78064a911a7393774b8489"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"0af483ca7efad7b66a8929a348b1f82d06b277a03cd7ab3fae3e874c7a890809"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593940409358815240,4582699939386534176,4577577180921039568,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"0470297c3c38e54aaa909c1d5fbe16ed73ace5bdd079ba340d7c630b7c5bbf29","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0,8,6,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"23d7f42b1cdc1f0d492ebd756ed0fe8003995dda554d99418d47a81813650207","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f0a0278e4372459cca6159cd5e71cfee638302a7b9ca9b05c34181ac0a65ac5d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"8bc0cea109f3bcb3726745cdc5f16a2e3bfb0c33fdd7a6e48fbf3f17b23de6f4","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"e28186b602c0dbccc8f1affa0ab01c240009e1c0e638cfe1022d93aa8dbc2cda"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"391ca548dd564665102f8179396a0b9375f91e97e49678805bf44d58d6c4fcdf"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"524e8eae18be36b30358f762e1d6e4f222df2a45fb708ab6768faa7856a9b3a4"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"77b0c0a41e59304e2b508e7a1f1777e720d96226f082a1966b074e821581b46e"}],"lookups":[0,4593861858064867347,4589570831941606662,4592421128387115568,0,0,4582171492887323038,0,4581039736763554420,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"ecee7d0e6fe8af7160b816cb975a56d005f810d83a09e13531de177f8d4a14f9","shape":[4,17],"samples":[0,7,3,11,1,16,4,5,0,6,5,9,5,4,7,8,16,1,3,6,2,1,3,9,15,1,15,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"850de36f941deb901fdc603d8524d7e58ef1afa27c1768d34743a3a735f1fed9"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"1e2bc4321c129a94529843bb0652584ae0d98d7aa546b7bb84343c082534c94c"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"c3647b01eb175ae44afa686af7a1a575b71598cc2ba9d59b010443722f52f784"},{"ids":"5c3a48bc81fc23ad0557ed5efe4d693e1642d7261e845bc9d76a3c0c8a5535da","probs":"ab1580611946242d321d5dabd7335d8e6983970940365da502475779b65411b7"}],"lookups":[0,4593861858182478162,4589570831684407863,4592421128332663692,0,0,4582171492673295624,0,4581039736107940648,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"7402c636d4067215b6c559357e775904bbcdb05747541a4aaf42cce91de02c80","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"395ded83ce8565e84bc09ed4c562067a8d4be8dd11902318112f5b2bcabd2b6d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"cf872cf7cc1320b8b5c10f3575d714090b0128bbbae184c948ba94b62817cd73"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"593ae069fd80c11f36a9ab5dc6879b058587ec989072f74bf120a0d3cf281adc"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"479fb73c7453f6c62fd6304e62a5ea2bacda949b3024ff2bb168e6a1c464c884"}],"lookups":[0,4593072546728020788,4589485689338303914,4591803770167317070,0,0,4583249527251872672,4579860567474908858,4582103857793550729,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c9e24db0bc3ccb75d9819f31fad7b381e56fed588af553db1eb0c348d312a886","shape":[4,17],"samples":[0,8,3,11,1,15,3,5,0,7,5,9,6,4,7,8,16,1,3,6,2,1,3,9,15,1,16,13,14,5,4,5],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"6491eb1e017db85733432d9d78add57d48ca80e95593664bd0f6333360981338"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3f75565d9c5a42938acb32c3dd1b69573a736e82145888f4e427fb8082a4eaa5"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"02b9d34399e0d656b60e5ba0a4b70fff293497b5dc66b4eedc5fb82790c0721a"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"a554b57709fa6dbff1419712055315ff150e76637411740c28aea3a8f4bacde4"}],"lookups":[0,4593072546326521755,4589485689477557739,4591803769947986173,0,0,4583249527423990604,4579860568191270164,4582103857829910716,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"d020b981378bba53f4bf5ca504fd285bd7f7d91147919e9156e11dd3d9a62236","shape":[4,17],"samples":[14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5,14,16,3,5],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"f13ee6ed54ea2aae9fc49a9faeb5da6e8ddef0e12ed5d30d35a624ae813e0485","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"97c293b7f305196bea2d654891754563a78786db72ca063387638cdac3bf6f1d","probs":"060c91d3f25cee5d20db87a857064463425dd61040805405dcaece44d3a9cc3a","shape":[4,17],"samples":[0,7,3,0,1,16,4,0,0,6,5,0,5,4,7,0,16,1,3,0,2,1,3,0,15,1,15,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","probs":"58320f7ff4b20356ef12134f8f330b3b78b869f9223e23289997789a2b412feb"},{"ids":"f066ecf90bc2650055e006a0c8ada96b19b4cb32665f5876c56d0f5f6483dade","probs":"315378ecafdb0a255893816607e3267fdd979a2bd64925d986de125a3cb75ba4"},{"ids":"a67be73569d3f8da8764677e4b9e6858feff780f8a8da61f2f424895266dd676","probs":"c3647b01eb175ae44afa686af7a1a575b71598cc2ba9d59b010443722f52f784"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593861858182478162,4589570831684407864,4592421128332663693,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"53061119ab2c64c16c68da0d5e2dc1764404ccea956975db551a5137feb9d3cc","probs":"86cf5f40ac4c8de4984276bcb051a51f1a5ef3fd11a02f6d1b176b8b3334eab8","shape":[4,17],"samples":[0,8,3,0,1,15,3,0,0,7,5,0,6,4,7,0,16,1,3,0,2,1,3,0,15,1,16,0,14,5,4,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"44595be53caf9c3ccaa8292b5ef2901417721d59325a52f3b300c935f97c51df"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"3f75565d9c5a42938acb32c3dd1b69573a736e82145888f4e427fb8082a4eaa5"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"8703713276316a162951b34db1970d2803f745abf2c0c4c0c66e2c62fedff689"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4593072546326521754,4589485689477557738,4591803769947986172,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"59ec6035f4669d2aa016677ff13e657eb8e0f0b0f3da73702f8f91dce44c9843","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0,14,16,3,0],"next_rng":4594500682135173736,"converted":[{"ids":"18d8d609947c6b82b9607704ae40d3317038e709238514de750b5c7411ba4c20","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"5eb6da0e0e522104c6d50b0748e6893762f7f2c00a7163a46ccbb535bfd61a0d","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35be322d094f9d154a8aba4733b8497f180353bd7ae7b0a15f90b586b549f28b","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"85959ba83db7351851943d5df205e8e7162929a6bd827e4eafa14edcb870c11c","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa"}],"lookups":[0,4592421128387115568,0,4593861858064867347,0,0,4592421128387115568,0,4593861858064867347,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"798b6c0af26d0b282f9d83c66121451928a622283e5560161137a0c0f502a6a0","shape":[4,17],"samples":[0,14,1,15,1,15,1,1,0,13,8,13,9,9,13,12,16,0,1,2,2,0,1,14,15,0,16,16,14,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"702c77acd8f084cbc4a204e16788d89e4b8d632787978e28cf3636a1b67f1dfa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"702c77acd8f084cbc4a204e16788d89e4b8d632787978e28cf3636a1b67f1dfa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"702c77acd8f084cbc4a204e16788d89e4b8d632787978e28cf3636a1b67f1dfa"},{"ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","probs":"702c77acd8f084cbc4a204e16788d89e4b8d632787978e28cf3636a1b67f1dfa"}],"lookups":[0,4592421128332663692,0,4593861858182478162,0,0,4592421128332663692,0,4593861858182478162,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"e3591380001f3438a04216d357618b0fd742ef74355cfeb059b6815e3ed98b9d","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"90bf5033f8e83f3c13c294b96d716c9194d936f22de88a26e489d7d4e0d4b443"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"90bf5033f8e83f3c13c294b96d716c9194d936f22de88a26e489d7d4e0d4b443"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"90bf5033f8e83f3c13c294b96d716c9194d936f22de88a26e489d7d4e0d4b443"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"90bf5033f8e83f3c13c294b96d716c9194d936f22de88a26e489d7d4e0d4b443"}],"lookups":[0,4591803770167317070,4577194849766905907,4593072546728020788,0,0,4591803770167317070,4577194849766905907,4593072546728020788,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c7411e82e0ed976e88bf6f5673502a9ec2f244f92d037f00a679694ced1c535a","shape":[4,17],"samples":[0,13,1,15,1,15,1,1,0,12,8,13,9,8,13,11,16,0,1,2,2,0,1,13,15,0,16,16,13,11,2,1],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"30b25ae65d98116854d82519503d4c9f6e014d65c74d41844f3f936b9be08e4d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"30b25ae65d98116854d82519503d4c9f6e014d65c74d41844f3f936b9be08e4d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"30b25ae65d98116854d82519503d4c9f6e014d65c74d41844f3f936b9be08e4d"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"30b25ae65d98116854d82519503d4c9f6e014d65c74d41844f3f936b9be08e4d"}],"lookups":[0,4591803769947986173,4577194850198599864,4593072546326521755,0,0,4591803769947986173,4577194850198599864,4593072546326521755,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"adb30caf1f933f298ffd336b51395e270a68bbe2b68e2989d665c6d3ed4e9ce6","shape":[4,17],"samples":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"next_rng":4594500682135173736,"converted":[{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"c5719598f73839e42b98f6f62625dab86d98fcda522dcedef935d9a681f37e58","shape":[4,17],"samples":[1,11,3,14,3,14,3,3,1,10,7,11,8,7,11,9,16,1,1,5,4,0,2,11,14,0,16,15,11,9,5,2],"next_rng":4594500682135173736,"converted":[{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"},{"ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","probs":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"}],"lookups":[0,4588638185040256542,4588638185040256542,4588638185040256542,0,0,4588638185040256542,4588638185040256542,4588638185040256542,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"8d6c13665bc3f3453f9f84ac1b01c37513eb70f39aa6cd36537327d4a46a04e7","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"85d193e40c1a92dbe98bcb81389cd2cea4967fab504be1572d3cf2880511872e","probs":"3b7b606ec6c143b991b9ce7f6ddf9c1b9db0a8d1ce2e3f12d3fc60fb75082f82","shape":[4,17],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17},"evals":[[[4,17],[4,17],[4,17]],[[4,17]]],"host_calls":4} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,17],[4,17]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"f1aedf6e661f514b6be4274a6c0b4e08615aca14ae616caf16cf7ca790ad0c22","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"1b8ddc44bb6cbe474bf672c8ce18b7c6d7d4af09706b31ca5710a85049bcaa64"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"1cf6e46fc4364485a17486c4c1e5f61a10d551565df0ee42b675cd36391f8c81"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"739f72b2c947c50564b6991be61f0a21da5d4f590b5264729d4b99d749dc7600"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"eeac6af43640cc5f9982518e874602ab33c9314f098168216060fd666b1d2b02","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"c872ae34151ece25761d96d11ebd426b7b99f2b473b2abcbc693c6ad1fae850b"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"9c5c9d28299051ee38a73fc7e9847ddb1bebf1e8cc48f3cd3b8f6df91cebc449"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"020a12b2672dcf82755e52520077d3020d37be69fd75e2276ca1577ca31f5e71"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"5dfc662ef2ab990fd1103abfd2972d5f563659cbf7f5ab15ffb3fd7b74859f81","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"e20da7db55c4ae61050d148c86aa056d37da2c09287727e45ef49ec81a90dbcb","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4f8ebba9c632ea450176dced2233760ad88ac53f4a9651c1b3c5b6c10f95c09f"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"fa1e61537c9de1a89b84d1ff75027060503a341d01333d7c1621b21d7afe1fb4"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"a58d051f7458897c43241c3fd3151c61a36996fbc4a0d24930de7d28ea781c91"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"fa1e61537c9de1a89b84d1ff75027060503a341d01333d7c1621b21d7afe1fb4"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"96e2a15c4c31695d23488d9832f8f89a5827e0399f0a70960c0aebd03442467d","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"9c5c9d28299051ee38a73fc7e9847ddb1bebf1e8cc48f3cd3b8f6df91cebc449"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"cbe4360fced32ae0550451cc6a4507637d792e7712ddf52d1f4d726a98f96e93","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4f8ebba9c632ea450176dced2233760ad88ac53f4a9651c1b3c5b6c10f95c09f"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"85eb68d5f9a77cdd2ed10379534a96bc1b03d14690fb66b6d55de25140863794"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"4f5a8db94e6e80175d7c040867915897b0e055e80d003aab04c452eb15f7ad6a"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"96436992b6e1962d11eeee31093e4bc65345bf3f7a123a8ad90144f340cd78f7","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"f78e7265215b49f1cba204a09df258dd014f29fbfd403dd0057ed3bdd2e84039","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"171fcbd9aa028dac7c1af33ed8fc137a26b072c26c66c667ec72040dccce1663"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"aab56aa1c56079b593df2ac3bba08c1a0e85010927a6b1737d298b8205fa94f9"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"3c7c2d2f36c6b0a959e0746a3e40be9a7397a085ab1788f6688d15a6cf8f4809"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"07594de9049b868eba6cf99db000d375f71bbcbe20c9f2372130756587c2fee5"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"426e75d301c4cdce89f2357e5a8ec39786922bd35a02dbc8327872a09b84b29f","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"9c5c9d28299051ee38a73fc7e9847ddb1bebf1e8cc48f3cd3b8f6df91cebc449"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"48f82b7f7e439760e03a4c7239928836e8f0416f5240262104e0c0cc68f29d25"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"020a12b2672dcf82755e52520077d3020d37be69fd75e2276ca1577ca31f5e71"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"5dfc662ef2ab990fd1103abfd2972d5f563659cbf7f5ab15ffb3fd7b74859f81","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"64367e91e784b41c473e1ddb02503d62fc76065c0ab9a8c9b08fe4a9d48b47e9"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"39f9b6a404fa892302e276592e972f5ed8c8449c9dd34ac904c5958915daed0e","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"8ea989ce245f6a0c8af74f0af85e3950385f0e7afc30f5e8af7303d46f6b69d1"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"a58d051f7458897c43241c3fd3151c61a36996fbc4a0d24930de7d28ea781c91"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"85eb68d5f9a77cdd2ed10379534a96bc1b03d14690fb66b6d55de25140863794"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"85eb68d5f9a77cdd2ed10379534a96bc1b03d14690fb66b6d55de25140863794"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"e1a8563422bd706b0dfa69b62252d4429c0bfb0f3e940594f29dcde4d00f9f99","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"9c5c9d28299051ee38a73fc7e9847ddb1bebf1e8cc48f3cd3b8f6df91cebc449"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"48f82b7f7e439760e03a4c7239928836e8f0416f5240262104e0c0cc68f29d25"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"f49f454d4f1a1091a298f5ac985a8a7aa9941db1fde8d0520d82a6e7256820a2","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"46e10a7bfb9c4023b330a8b51135912d66977d04854f883bdaddead3bef66c69"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"4f5a8db94e6e80175d7c040867915897b0e055e80d003aab04c452eb15f7ad6a"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"fa1e61537c9de1a89b84d1ff75027060503a341d01333d7c1621b21d7afe1fb4"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"fb567f77ff99d00cb1c588fa3fd1f9f8c27208137dc5ff8e5e74f19dc14d8b1a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"6c9d638b59133ef2279be41643de53e89352b239ce4a933d4223dd6162e91340","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"306f072291a52868ad2c19d0234cdada211f851aa1555b0ea63ee3eff017ac9d"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"b5596b9a975a16d8edf0bf667b8858fff0351d9dd00a8ca496a311f39d283c10"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"6ff34432db0fb740a4eb9f156497d6d2c1bef758c7e3a2d96b65b44a99dafb5c"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"621f6cee908dba05f814a1f9370b1d245944b6958a3c6e620bb62c632add08c5","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"c872ae34151ece25761d96d11ebd426b7b99f2b473b2abcbc693c6ad1fae850b"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"113eb8904f1072332978d09d96239457fb4de21538748f71d4e394cf9f8cdd63"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"092b5b95e962046f68e047669e6d44cc483bfc62cc78f7179c11ef986b32d086"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"113eb8904f1072332978d09d96239457fb4de21538748f71d4e394cf9f8cdd63"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"ff721c940811e5a10e5c77f20490a4271211ab8ac92ea77f2c4fe187be9b1c99","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"a8c6b0f0853851c5e39e2929be4da09007cc6004083291e9ee25f8e4fce022cb"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"a8c6b0f0853851c5e39e2929be4da09007cc6004083291e9ee25f8e4fce022cb"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"a8c6b0f0853851c5e39e2929be4da09007cc6004083291e9ee25f8e4fce022cb"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"4ddf87815fd5227a33c17a32a27b504f2ddf62d9613627e17b90d14a25647eb9","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"4f8ebba9c632ea450176dced2233760ad88ac53f4a9651c1b3c5b6c10f95c09f"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"086d90077eaf200fc785252e134f41956b6f675c25174d6e674e70e957b60778"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"086d90077eaf200fc785252e134f41956b6f675c25174d6e674e70e957b60778"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"086d90077eaf200fc785252e134f41956b6f675c25174d6e674e70e957b60778"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"272e4ed57d0a18e8e44ed2bb90d7b70387528848ceab4d635d85a2aaede4ceb7","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"092b5b95e962046f68e047669e6d44cc483bfc62cc78f7179c11ef986b32d086"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"113eb8904f1072332978d09d96239457fb4de21538748f71d4e394cf9f8cdd63"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"41ecfdb7387fd45bbbcf8c9af8ca168edd783fb09a7f25ffa523d4cb1ef8e18d","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"4f8ebba9c632ea450176dced2233760ad88ac53f4a9651c1b3c5b6c10f95c09f"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"dca366f3ca989383df142b87c935ac3223762545c6c55152f987b958246364a5"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"086d90077eaf200fc785252e134f41956b6f675c25174d6e674e70e957b60778"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"2c3b363ac61f9dd25bbc13e0a13662b85ce38bf5f9bc9364efed84cae3df231f","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"f77d801bfe8997b52fa614cb4a5b62227627abc0bcd7f2d657c12ac66b7f1a46","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"7ad26460579d706be3273cf2cb6b3c42bf9294f86b5bca8c2bfe1659d9433b16","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"0935053eac0ee087b9be465e6f8603bbf0f49819b0f154568edef872a0167b0c","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a201dd5492dfd35e1d2c8b12f0acc04c384bd0aa83e67d06bae188846bfb73b1"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"a107132f3e2a5a89f327e01fcac377c7fa3b68ce2efdbe12d143d54c5377ec30","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"44ad7a4e9afc9cfe18d7122d926fda1ef900c139e811c7ece4a08d92847b733a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"44ad7a4e9afc9cfe18d7122d926fda1ef900c139e811c7ece4a08d92847b733a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"44ad7a4e9afc9cfe18d7122d926fda1ef900c139e811c7ece4a08d92847b733a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"44ad7a4e9afc9cfe18d7122d926fda1ef900c139e811c7ece4a08d92847b733a"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"8112a6b758ab83d75b9902e5cd2d9dceb4dc17e221c50fedd183d27d389b56d0","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"1478618db81a73c4f2da83a8da91315e77b849d03b009e36c257a42c65e93982"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"fce8be466b297e1167e01c3419b7bf77f4f50f8508ad463ebadb10073369d841"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"fd747b902cc7e16a0c38dea783c00dc3b59e9f7911f673bb5b7e127a09965156"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"417530bb1ca242a9454c9d6b91748ff5d9d87ac789c0d7c17470887a170033a2","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"9c5c9d28299051ee38a73fc7e9847ddb1bebf1e8cc48f3cd3b8f6df91cebc449"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"c08abbd13ede1c0ea40a46db35643411b33b24d64c0fdae0468b8807bc6431eb","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"aed40c136b59cde9a712d3bfb5772ce84293d7d16d64ec92f2d6a8d2cc720f43","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"1d746aaa0fbfb2d7bfa8a0a43cf6d4b65188405d2c187599e2db77c43a2ea6b1"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"278df4eff26d9cf16119df9955ce505ca3310d9fcda7f3bed045d02663126326"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"7b892eaf98a67c877cd636844ebb1ab6290cb80e4c60bee7c1938ca640971036"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"606b2d3b44ade6f925ce4d93cc1a8ec8103967922577f2c0ea272443fd2ad7f1"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"a63bbd4e89cd5b4f6ab73347fab8cae0deef86b110440fd6ebe571444774f27f","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"020a12b2672dcf82755e52520077d3020d37be69fd75e2276ca1577ca31f5e71"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"b8bd470a1960249dc264614324efa1011a406e660d820538855c7b79b9e74396","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"a363871ee93ad035c0e924f6a3377e9bed1b665efb6a3818b298c7cdc19f97a0"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"278df4eff26d9cf16119df9955ce505ca3310d9fcda7f3bed045d02663126326"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"57fb30871fa7c1ac553c01e755ed3fa3f12076423a30dbfe18daa14b37d46861"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"96436992b6e1962d11eeee31093e4bc65345bf3f7a123a8ad90144f340cd78f7","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"a0ed929c6055f0e6571e1cbda838b09a79f0fab5b05dd79f78e72476f8f1392d","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"f2854d89845622fc43ec17a5b29897ae10307ed7e29230893cd383aa93f096e8"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"edb667f9a8e0c81be7e0504bf36dcd39573651c67cf3eed507a835369f6f65c8"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"55f3f8aefc0b4a3d51536c05457c70c25372010199ee40f456851c63ca9252b1"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"29eb801ed522e85753ff47c125b486f928a6d58f1ba6eacc5df0877952682e1b"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"128c1260dc7c89147945f4fc7af793fe9f402f955ed4bd939f6792c16836e4b5","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"020a12b2672dcf82755e52520077d3020d37be69fd75e2276ca1577ca31f5e71"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"c08abbd13ede1c0ea40a46db35643411b33b24d64c0fdae0468b8807bc6431eb","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"108227dfdb92b41e47f4c3e07b467cdc3c3df1c1ae9726033465f8b7d61b5468"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"4f6c4abe2e65f672db2661a7ebfeba6ea8867a4b213c7b8cd3391679f8162efe","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"4e2d39618d09068d3fd491d211b98f24f5b59db2fcd95ecd47178a50d3af8301"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"278df4eff26d9cf16119df9955ce505ca3310d9fcda7f3bed045d02663126326"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"216475296a0b3d01affde387c630ad60090c04969fbee2b56761c4139ce7e347"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"a58d051f7458897c43241c3fd3151c61a36996fbc4a0d24930de7d28ea781c91"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"72bd2bb4c15371c66ac5ec69d86cda7b534ef2f14c6b7bdc2dbcdc50a2d61e27","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"54b2feb89399fb81b6483ec64a27112bb964604d84979344e6da6b06dc4f2261"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"c9ce2f5310230e045a56ea0d67c8a7765fbdfe18930c77b354b6e896f30743c3"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"f830d1648b61bf2527a253675230aedc2cabb25f004b2aadc1253dd4e2d6d15d"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"610a0b52774d11cafe9efea6c3eb7afd73bce4d1d23f7caab107daf027f446d5","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"58712a9e9689cc3ee129f45145927443837bcafb12fe2796f7eb25de8136b9a1"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"4f5a8db94e6e80175d7c040867915897b0e055e80d003aab04c452eb15f7ad6a"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"278df4eff26d9cf16119df9955ce505ca3310d9fcda7f3bed045d02663126326"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"fb567f77ff99d00cb1c588fa3fd1f9f8c27208137dc5ff8e5e74f19dc14d8b1a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"323498ac39b29ce7e3a42600e32e9ba1f051408d7d6b36b936412beebeb41c26","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"56fbd432c04b7e3ec9c8c54c21d6d3a675b33fa54b8fdadef6072b235fbe820d"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"6af4c40833be4febc095363c2481ef1e2ec03777a42969706bb854e5994a9f01"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"2445f1950210ca9bc238a65cb68f2940649ccd4bcb6d715d139a80f15cfffadf"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"ea618a7756325a6b4c2d45e021bab430728a0c11e7e10a5b59fa5eda49e5f8db","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"113eb8904f1072332978d09d96239457fb4de21538748f71d4e394cf9f8cdd63"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"092b5b95e962046f68e047669e6d44cc483bfc62cc78f7179c11ef986b32d086"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"6e5fcb53bddf598d57b5f2321b656c5f48ec3f9ba43de7763b9d3b1ea62f0487"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"47f248a5b2fb0a3d4ffc373b93aa4d81a1925310dfb7fddc7749da9177ddf581","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"21b071d7728bdfb1c937b013e87221d645dcdc32e9cbd0a8996b66d11337ea9c"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"21b071d7728bdfb1c937b013e87221d645dcdc32e9cbd0a8996b66d11337ea9c"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"21b071d7728bdfb1c937b013e87221d645dcdc32e9cbd0a8996b66d11337ea9c"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"34703e719f612eea789f70386c18c88168f746c77a53881673d3cd86672b2aa1","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"1d746aaa0fbfb2d7bfa8a0a43cf6d4b65188405d2c187599e2db77c43a2ea6b1"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"456bb940661e76a46138a55873fdf6533348bae890843bcee78ba91e4051dc6f"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"7665556aee018cdf05b9491422e86e40aaf302eeb67a751ef92cecd8e46306c1"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"5177b936ebf04f9dd1647c0683d328cb431374461d5f92bf61efcc8b49cd4705"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"a2fc8044991649c992045b980968a855082386e566105f006e4143c915b24b22","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"3a6761e1bf6303f8c16b1d46695fd3cd0306ab53ae2bfef2bbc08fcfc2577b34"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"6e5fcb53bddf598d57b5f2321b656c5f48ec3f9ba43de7763b9d3b1ea62f0487"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"092b5b95e962046f68e047669e6d44cc483bfc62cc78f7179c11ef986b32d086"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"9ea480e3fb45b49157a1607fea5c4bb8129f0b71d03c8fff1fe57d67a0e06b0a","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"4e2d39618d09068d3fd491d211b98f24f5b59db2fcd95ecd47178a50d3af8301"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"456bb940661e76a46138a55873fdf6533348bae890843bcee78ba91e4051dc6f"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"bd3a2ae1e9039a76943c2deddd12c58f22d15ac31eea027cc1eb6141859c902b"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"2c3b363ac61f9dd25bbc13e0a13662b85ce38bf5f9bc9364efed84cae3df231f","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"97353e29319d04266343ec0ca09560b06906dfbb4f7deb215c27a6fd145ec163","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"416eca248852e521588dc835130779771366827e31c6241f7faf72f17b40ff24","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"26b77a1bbbb66ffd73082fa8d208fef47ffd7c7b3fd21ae2714abe5c10c25c91"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"c7cdc0037bcdcc107be7e5b92a891e3e0fb237f4049af1f085176a4436faf2ae","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7a2b44d28b6a072b15af817ee0256a7cd5b642954e3702a8ee79dfb9049ca7cc"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"52f390bfbce02d8565fc3628aa9ef29052719031709f6201d5cc5362fb2517fd","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"58712a9e9689cc3ee129f45145927443837bcafb12fe2796f7eb25de8136b9a1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"58712a9e9689cc3ee129f45145927443837bcafb12fe2796f7eb25de8136b9a1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"58712a9e9689cc3ee129f45145927443837bcafb12fe2796f7eb25de8136b9a1"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"58712a9e9689cc3ee129f45145927443837bcafb12fe2796f7eb25de8136b9a1"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"9ec22948e0d164d84dc881e11a601efe30bb455a2f3c215db5087d1ea5a18c03","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"c92ebf40ec4a465bd03a7aa42e44323f8fe2327e6420728aa00582ec5da53df3"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"00af519c7603872bdddfbafcea3210a1facee41604930f5e4ea5431242827438"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"507a2a4e815c3d5b57dfc265f1efd51dd275634cc7a25e803a21ab4010fc443f"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"0010301a790310d7a0b3c5a46fb70cab376da1a7394620428fd6b025dd1afcea","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"7cee387479e002bbd706869e4b3fb3c74afaf5df31156322b693c5e3c091145a"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"71c306cc4fff0e7730c2c04e7a60599f09a191213e17350039bc0a508cee4329"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"0ff4e916e3d7af7b8ed747e8990c5a3b399f70bf8df1fa2c54f4918561082def"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"71c306cc4fff0e7730c2c04e7a60599f09a191213e17350039bc0a508cee4329"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"0dd14621731be794dc01192de5f59ee117f88ab514335a715bc8b42f5e23f71e","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4ec240d08b44d24f906a088696a77dfb255cd9fade941b723139cba64ae74fe9","probs":"62f1aba19a3a8b37bf9d09215c15529fc9a9b90ded8d0a69be20dd1c44c1d487","shape":[4,20],"samples":[244,2315,410,3116,501,3086,531,546,244,2058,1045,2345,1272,1287,2330,1831,3842,138,274,803,758,2,410,2345,3071,2,3872,3630,2300,1544,788,289],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f493c3f6f64e28ebc7a748073193b0e9f98a0af7d3e4a7a767e868f2c7ea8d6e"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"3ce2bc2447386491cd2f3084b4c39bd02625a9e07d3785d98831d1328d853554"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"4a3f410edbf6059e53bb356b2376acf8b2b902b09fe2b5e5fb3a96f83a4f0c91"},{"ids":"f3b58f5c7b4fef64ba9b29039dccebb636a2e59440fb6058d4a5c605507194e2","probs":"01de26c0f8b05a6e3f3bc54352267e320567fe00a04d60bf4444435a2be49315"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"164d058bbe8f577af30b2143dde235d5800eca37d6dda59e36c75b844bb9db10","probs":"a22a4e9f71f7aa4203f503a92782fc0e5a95ee36af9fb57f87ac289bf46ae38d","shape":[4,129],"samples":[244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32,244,2,17,32],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"9d4ac218fb54041e3a70a8e14db1ea1af9f570f4842b4702ef9323f1ad8f0ec4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"46b10f8448a0fdfa1aad935c99101a80921be2457f2c565737003117ff09c483","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f750508003b1431101ddd6a313e84d34ab944b1eee5df56f74f65dbdce43efc6"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"0ff4e916e3d7af7b8ed747e8990c5a3b399f70bf8df1fa2c54f4918561082def"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"1912a40741c56e39a8c96fdc500fa49bd08f31e4fe686cdc119e2c6c70c0dc8c"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"1fbb47ba000d237b19b5a9f944637b389f984dddaa5326bc79b569a1e0e6baab","probs":"827a6829411e06dd9a499b7d0e456954664f2d374eca3c5beb1ab89b919aeb9a","shape":[4,20],"samples":[244,2315,410,0,501,3086,531,0,244,2058,1045,0,1272,1287,2330,0,3842,138,274,0,758,2,410,0,3071,2,3872,0,2300,1544,788,0],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f493c3f6f64e28ebc7a748073193b0e9f98a0af7d3e4a7a767e868f2c7ea8d6e"},{"ids":"06e7df145adc20a98d9615c992a3a2f3f72d8d13bb0e7e10d9f6fc5632c40573","probs":"4a3f410edbf6059e53bb356b2376acf8b2b902b09fe2b5e5fb3a96f83a4f0c91"},{"ids":"ccc9d1118b7d914f1b2edf56f63001581de3494bae69320dbceb5582b3140b57","probs":"4a3f410edbf6059e53bb356b2376acf8b2b902b09fe2b5e5fb3a96f83a4f0c91"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"96436992b6e1962d11eeee31093e4bc65345bf3f7a123a8ad90144f340cd78f7","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0,244,2,17,0],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"d86e8112f3c4c4442126f8e9f44f16867da487f29052bf91b810457db34209a4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"35e3a6176b50da27fcb868bf840f0e76290bd9bf55c40545e67bac66353d0674","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"cd9893c4b376833dce5aec31fdf330bc26b4ba764a01f523865c3ffedb5704b8","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"7376de767a0a675256c7a0ce70af821ed0dd2fa0fc8c902a25035f506c3d10e4"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"949dfc31dca692b23532e409317347f241b8e6e378e848652f1e0cebc06404c2"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"b5e7a559d416e62e33c37ebe94a98af9b29fdebc362133c796c026e03cb71829"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"4dca9bd36b11e8bcf2c36034ad2155a5e74366885df5d7b187cf19ee2a0bcfe7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"f7ec8c512be98102c73d53ac94c059c1533b431f29f6fa338cbefbd9fd149bfb","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"84399b7b97a41c7eb7e542d3b195a933a4328180e8053edcce25faf5d77e10c0"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"1912a40741c56e39a8c96fdc500fa49bd08f31e4fe686cdc119e2c6c70c0dc8c"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"11b39980a4e976f855f7615e5823f2cfc37e1fe0e7bf799b5549b61b2b819988"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"0ff4e916e3d7af7b8ed747e8990c5a3b399f70bf8df1fa2c54f4918561082def"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"0dd14621731be794dc01192de5f59ee117f88ab514335a715bc8b42f5e23f71e","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"407104ca2b9fc815594f331abe78c33587e0e3a806a4cab5ca6f1b0a4e3d5c6f"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"a0f3085d11c093a5e20912b5819a19e87e61ac9bca2c249ba558332ca4b4acd2","probs":"9539a0affd5c8fc9252e0ece719249990e2c84d1875581947e3c963615677667","shape":[4,20],"samples":[250,2321,348,3122,507,3092,537,552,250,2064,1051,2351,1278,1293,2336,1837,3848,76,280,809,764,8,348,2351,3077,8,3878,3636,2306,1550,794,295],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"20392984bd4f880a4fc777bb76d183a7f627cf72208f8de543b7d796633fa18d"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"3ce2bc2447386491cd2f3084b4c39bd02625a9e07d3785d98831d1328d853554"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"a51cc6e0e50f9264d4c6d9dd1797f6f7b38d5fd7f3fe9e1f389bde1e782eba9e"},{"ids":"86385e14f61ee09a9619d587a4da36d9e969416a2af5613903b894746bd26e79","probs":"a51cc6e0e50f9264d4c6d9dd1797f6f7b38d5fd7f3fe9e1f389bde1e782eba9e"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"6808d07633bb9e01affab3beb345b8b325a5ef5fd3ba462b14d1c9912ae43756","probs":"cfb65179fdf098ce1469a76bf49a6a391f40d0c4fecb4a454b1f5526c9661ba9","shape":[4,129],"samples":[250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38,250,8,23,38],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"427b4d443e4c7f008af332e9acfc1539b4369ddc4f1915eea321a96caab10798","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"43d70b6929ea70c710f66e03dc8676075b9c368379bc8c6bda512d945422cf3c","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"f750508003b1431101ddd6a313e84d34ab944b1eee5df56f74f65dbdce43efc6"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"0ff4e916e3d7af7b8ed747e8990c5a3b399f70bf8df1fa2c54f4918561082def"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"1912a40741c56e39a8c96fdc500fa49bd08f31e4fe686cdc119e2c6c70c0dc8c"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"05a87ef75d0d70a67978965daa1ddcc18aee9c1d0d79c698af08e2426e035868","probs":"827a6829411e06dd9a499b7d0e456954664f2d374eca3c5beb1ab89b919aeb9a","shape":[4,20],"samples":[250,2321,348,0,507,3092,537,0,250,2064,1051,0,1278,1293,2336,0,3848,76,280,0,764,8,348,0,3077,8,3878,0,2306,1550,794,0],"next_rng":4594500682135173736,"converted":[{"ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","probs":"f493c3f6f64e28ebc7a748073193b0e9f98a0af7d3e4a7a767e868f2c7ea8d6e"},{"ids":"83b961ed426f5d57233580d97456b23f0641b36151792e20268391ff549db553","probs":"4a3f410edbf6059e53bb356b2376acf8b2b902b09fe2b5e5fb3a96f83a4f0c91"},{"ids":"1aa62f1da39a53009a22d1ecfa75473851be951e672e67fad81d32777ba0dac9","probs":"4a3f410edbf6059e53bb356b2376acf8b2b902b09fe2b5e5fb3a96f83a4f0c91"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"fb567f77ff99d00cb1c588fa3fd1f9f8c27208137dc5ff8e5e74f19dc14d8b1a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0,250,8,23,0],"next_rng":4594500682135173736,"converted":[{"ids":"4e8e14f0ac28d4a6840065d73ba438653d810ecc41ec9b7509615e009a5f3da4","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"6cc16abd70eefb90dc0ba0d14fb088630873b2c6ad943f7442356735984c35a3","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"c69a9157638e69fb692d827383c3f27e586e0c98989cffdf8bd4c982ad837a4c","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"6e624ea3e6427731a6d14573bd3c5bd34ff7ed7cf21f5f583a5e25dcd0eed950","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"a6f35f0435769eadd2d08ec44f33be1c5e693c11e93f9853babd99b8556b2f15"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"6fcff1bd1c44889518550c313c2ea7e541051ec54eb1f8c34c6b8b3971dd4c7d"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"eac6d340d36281529fe3fee6724394962d30c3b6252924365b1477854af5efbe"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"df3a71baebb341cc2d4098a93dfbfc04ee166b098806c5b8e0c9d8f2113a8571","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"7cee387479e002bbd706869e4b3fb3c74afaf5df31156322b693c5e3c091145a"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"b578fd483f9c8acad639792fc8d3daf3a0a697e97e6d9821d48b90d6b5db0c62"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"b578fd483f9c8acad639792fc8d3daf3a0a697e97e6d9821d48b90d6b5db0c62"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"05569eeec90b7faf41cbc336f4b5d98c3f65ac09ac060267499fbb47e61370de"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"96fdbc0edef297b1c5c0c9d36fbc688c4e040b1dce8cfbfe47dd5ef0bfab9b7c","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"6ed156879c05dc69e4f70ac77388b52eae0490d46edcd0f95c914e0fa9c9dbf1"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"6ed156879c05dc69e4f70ac77388b52eae0490d46edcd0f95c914e0fa9c9dbf1"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"6ed156879c05dc69e4f70ac77388b52eae0490d46edcd0f95c914e0fa9c9dbf1"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2b3d50ffe0e508f279164f185b5a86eca5b1c632e213ba273e00d4701c9e19c0","probs":"1c6a135f044a20bc36874e18fe7895627fdd0ecb060ad38186eba3dc35d4444d","shape":[4,20],"samples":[254,2552,481,3293,511,3323,602,587,254,2295,1252,2522,1282,1524,2537,2008,3852,239,345,844,768,103,481,2522,3081,103,4079,3807,2310,1781,859,330],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"f493c3f6f64e28ebc7a748073193b0e9f98a0af7d3e4a7a767e868f2c7ea8d6e"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"b7b36705117be913db5b73859bf77d117bc300c86eb10f0f913523a883be13db"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"6c4f1d37d6d3fd7830e882e62b97105a68b07cde2158b3581e32ec174add7839"},{"ids":"a3ebc489816acc020bfc0d97312da1449ce19d1f6185e405c6dc28eb95cdb783","probs":"b7b36705117be913db5b73859bf77d117bc300c86eb10f0f913523a883be13db"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"665063b27b54534e6bf7474221d94006be10ccb1ef4a30bf016839ed56585fe5","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209,254,239,224,209],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"80aabcfd07dcbe96ec24cade9738b1834fbf9f90c62b44dbf8df3f1873a0bb51","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"63dbb15e50aabc8fc94fb0a575c12919bc4b2f937db4fdede247c4005a2a4a2f","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"f750508003b1431101ddd6a313e84d34ab944b1eee5df56f74f65dbdce43efc6"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"b578fd483f9c8acad639792fc8d3daf3a0a697e97e6d9821d48b90d6b5db0c62"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"ba56deb99805c38102ccf84ead9c342372e35764369d9d1c081bee341b1f86a6"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"daa4f3bebb6e1a09dcf67c93f849d05097521913b62c09f8d75638a68ec356be","probs":"3be9db3729d7962c5d0fe513bae12f053f7c5164c3f0bb1ac90ed35ae1dc79d6","shape":[4,20],"samples":[254,2552,481,0,511,3323,602,0,254,2295,1252,0,1282,1524,2537,0,3852,239,345,0,768,103,481,0,3081,103,4079,0,2310,1781,859,0],"next_rng":4594500682135173736,"converted":[{"ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","probs":"f493c3f6f64e28ebc7a748073193b0e9f98a0af7d3e4a7a767e868f2c7ea8d6e"},{"ids":"481c1419ba34a4e50d7f59e2f1a2bd442c7b4de021523d3a5d793c26300334a3","probs":"59f68aeeea856dc27b7b5347b9bb8a4e0f56d2d1ba107fff446f0e9ad5c89f8f"},{"ids":"b9bbedf2fd4130756b32cbecad3d09f6cf693a41e0b976333a9d7d4d636dd20c","probs":"b00a536faeb0fed9fd681297eddf4e4eeb9bb6436615e5355883f531c2d12d80"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"2c3b363ac61f9dd25bbc13e0a13662b85ce38bf5f9bc9364efed84cae3df231f","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0,254,239,224,0],"next_rng":4594500682135173736,"converted":[{"ids":"9955b5881aaa5ec377b4dd1807ab572abf8f7e9aa2afe3024027b1142cdbc567","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"63e7700301c6f6ec50e64c42a35cb70bd2b80ec8a8b215df16a0d613c98ffcc2","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"69a09126689952b095ff6aaa91b2bbd9c2c7bd220ddb5c62ecf1f4e42f61b7fc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"51615d90f33ed6a0bcc33b8231d86af89dcb22d9b435ba24a5ba90b57c4b2da5","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"c917bfe30734a699d1ccdf07fe486792f651ac77d875a8d09fb4bbe19915029e","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"5a290fa99d49ba0f8912032d6197965daf6a77e8e792028f239dc3e3097b0914"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"5a290fa99d49ba0f8912032d6197965daf6a77e8e792028f239dc3e3097b0914"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"5a290fa99d49ba0f8912032d6197965daf6a77e8e792028f239dc3e3097b0914"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"5a290fa99d49ba0f8912032d6197965daf6a77e8e792028f239dc3e3097b0914"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"f4a7dff2a9ffd0a1dcca7b5dc03973f4cfb1f69db635dac6fd5e78ac49aed0cc","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"3c8c48d0a1df29b0dc469c42de07c3e3f8b874579c607e421a4816a232ed95c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"fbff677202dc30d30873925decdd32b33c694bd5f95ff5f6650f695ea598c053","probs":"1f94ad6712b995b65ed83e5b81a0fd09b9d9013e75aafdb6d4c5d42a8c979cfc","shape":[4,20],"samples":[244,2300,501,3071,501,3071,637,637,244,2043,1151,2300,1272,1272,2300,1786,3842,244,380,894,758,123,501,2300,3071,123,3842,3585,2300,1529,894,380],"next_rng":4594500682135173736,"converted":[{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f687ee19746eaecc8c40a7fdb169249513a104074b0795911ee5c16a8dcfcba0"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f687ee19746eaecc8c40a7fdb169249513a104074b0795911ee5c16a8dcfcba0"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f687ee19746eaecc8c40a7fdb169249513a104074b0795911ee5c16a8dcfcba0"},{"ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","probs":"f687ee19746eaecc8c40a7fdb169249513a104074b0795911ee5c16a8dcfcba0"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"cdfd50c227fccda06f00a0e51a3f30a2ebb31097a35bc8bcbc395fe33ba10820","probs":"245528034c65492df827b66cfd94bf0f65b5dc5531f0bc987f71e43a486a671f","shape":[4,129],"samples":[244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244],"next_rng":4594500682135173736,"converted":[{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"24441e546a6e411de671d62f3576c65aa5cf934aa39abceebb27857bf6c80f40","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"a78d22842364d7318e4cea74f5f9004fdd1beb089d5cfb7a4bdc12452a08e953","shape":[4,129],"samples":[1,20,5,24,5,25,6,6,2,18,13,19,14,13,19,16,29,2,3,9,8,0,5,20,24,0,29,27,20,16,10,3],"next_rng":4594500682135173736,"converted":[{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"},{"ids":"394a42f05d4ef71e6c3270cc4fb38075f42683eb24255ab033cbf89ecccf5143","probs":"7167e0f927f7f81d8901d74d1437547d71ad0f644532f700c81bbc439b0aedfe"}],"lookups":[0,4584964660638322961,4584964660638322961,0,0,0,4584964660638322961,4584964660638322961,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"448c8f2bd6fbb536b4d177151dd0542f07e88163cdc33410fb357edeab25be15","shape":[4,129],"samples":[2,28,7,33,7,34,8,8,3,25,18,27,19,18,26,23,40,3,4,13,11,0,7,28,33,1,40,37,28,22,13,4],"next_rng":4594500682135173736,"converted":[{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"},{"ids":"dc56578ae9f1cb6e535727e944b42eb0e38d5939e7b04dc6bccf64e0983b3d68","probs":"7033e4671ce68ccdc5517d645dd25ba35d132708c7899cdcac8e12db9ec86431"}],"lookups":[0,4582687230582855930,4582687230582855930,0,0,0,4582687230582855930,4582687230582855930,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,80],[4,80]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,20]]],"host_calls":0} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":4097},"evals":[[[4,516],[4,516],[4,516]],[[4,4097]]],"host_calls":4} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,4097],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"4036d0cb797c9e2660a3cd681c29d9fc627f35df302d681988fd6f097b81d3a5","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"6755203b946c49924bd539af0e95899e724c967512afd5e04ef3ef0ea0a95e9d","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,1985,385,2383,758,2499,642,584,244,1728,1156,1869,1529,1471,1927,1612,2814,186,385,841,758,186,385,1869,2557,186,2698,2640,2043,1728,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1728,385,2126,501,2242,642,584,244,1728,1156,1612,1272,1214,1670,1355,2557,186,385,841,758,186,385,1612,2300,186,2441,2383,1786,1471,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"cdbd08a8b75183e2029b022c009ce1b820ac2b3cb88013d808d21a138340567e","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"802fb66bc88e339f5419aefdbdd30ac3a0cfd3ea5e3acb7f0a06b75dd566ae5b","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"41c0aff54d4c330fbd7f6d4beab8fe7ae0ca72611106864efa76c28a169add67","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[244,1728,385,0,501,2242,642,0,244,1728,1156,0,1272,1214,1670,0,2557,186,385,0,758,186,385,0,2300,186,2441,0,1786,1471,899,0],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"af4e361722965807d8e18f379a924bf5827781105cb6ce35775c34e4017573c9","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"3a30e527578808e692d1825986242f59541d8c105d0d52351846e80c0e043108","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[250,1991,391,2389,764,2505,648,590,250,1734,1162,1875,1535,1477,1933,1618,2820,192,391,847,764,192,391,1875,2563,192,2704,2646,2049,1734,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"99ec707ded357a62e3176b9beb4b848bfb0f44e056368a785d0b8b5ba3d59f24","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"0a2b7c981f0ce5d845889a7888d23d313e0e233e3a7e13634e4ee94a3f90e74c","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"4dd27be0ecefc757d44eeca2b86ac3c2a7e24b1e34aba58c7cb1e34e3f726500","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9ad5e90d308c3a3a968d27f6edfe08b2f6f49ea944d4c7991d2cb7158ca2efbc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[250,1734,391,2132,507,2248,648,590,250,1734,1162,1618,1278,1220,1676,1361,2563,192,391,847,764,192,391,1618,2306,192,2447,2389,1792,1477,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a71101d111663b02c70e639bbed5a7d9e980adfc4fec04c2fe576d19e1faff64","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"802fb66bc88e339f5419aefdbdd30ac3a0cfd3ea5e3acb7f0a06b75dd566ae5b","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"b40cdb9ba0bdac38a9b45596a41c5cb9bef999c06613e93f0a9718c814acc27c","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"c31e7fb76db9e4adb090939ca506c3b971521072e18c654f71a83889623d8970","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[250,1734,391,0,507,2248,648,0,250,1734,1162,0,1278,1220,1676,0,2563,192,391,0,764,192,391,0,2306,192,2447,0,1792,1477,905,0],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"4036d0cb797c9e2660a3cd681c29d9fc627f35df302d681988fd6f097b81d3a5","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"c37c33dc10b544b2658ed73ecb8f7e52f478596bf5c95d79f003754d11393d64","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[70,1927,443,2557,584,2441,700,758,70,1670,1214,2043,1355,1413,1985,1786,2640,128,443,1015,584,128,443,2043,2383,128,2756,2814,1869,1670,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[70,1670,443,2300,327,2184,700,758,70,1670,1214,1786,1098,1156,1728,1529,2383,128,443,1015,584,128,443,1786,2126,128,2499,2557,1612,1413,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"cdbd08a8b75183e2029b022c009ce1b820ac2b3cb88013d808d21a138340567e","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"b40cdb9ba0bdac38a9b45596a41c5cb9bef999c06613e93f0a9718c814acc27c","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"ad3ec4f5826e7cd0da332bdbadbef4a139aed408c3f3dcf16ad808e67a5e196a","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[70,1670,443,0,327,2184,700,0,70,1670,1214,0,1098,1156,1728,0,2383,128,443,0,584,128,443,0,2126,128,2499,0,1612,1413,957,0],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"834aac64b112bd3c0162257d03bda346628bf7aec76bb639258c1a2ab566f860","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"834aac64b112bd3c0162257d03bda346628bf7aec76bb639258c1a2ab566f860","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,2043,501,2557,758,2557,758,758,244,1786,1272,2043,1529,1529,2043,1786,2814,244,501,1015,758,244,501,2043,2557,244,2814,2814,2043,1786,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1786,501,2300,501,2300,758,758,244,1786,1272,1786,1272,1272,1786,1529,2557,244,501,1015,758,244,501,1786,2300,244,2557,2557,1786,1529,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"f8f082c98f23f6534c78886ffa466ae87e1d01708a6242aec413fbe075244d0c","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"d5148305b03c539e41af6d73f00a1323c7a86218602b06461777ed82933ada23","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,1985,385,2383,758,2499,642,584,244,1728,1156,1869,1529,1471,1927,1612,2814,186,385,841,758,186,385,1869,2557,186,2698,2640,2043,1728,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1728,385,2126,501,2242,642,584,244,1728,1156,1612,1272,1214,1670,1355,2557,186,385,841,758,186,385,1612,2300,186,2441,2383,1786,1471,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"b40cdb9ba0bdac38a9b45596a41c5cb9bef999c06613e93f0a9718c814acc27c","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"802fb66bc88e339f5419aefdbdd30ac3a0cfd3ea5e3acb7f0a06b75dd566ae5b","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"41c0aff54d4c330fbd7f6d4beab8fe7ae0ca72611106864efa76c28a169add67","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[244,1728,385,0,501,2242,642,0,244,1728,1156,0,1272,1214,1670,0,2557,186,385,0,758,186,385,0,2300,186,2441,0,1786,1471,899,0],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"b93cef9f430d8c85e267ce8eb9b4b3271fd05272d0ecb7d6e964518a7c478309","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"1da09ab07b5e5fe7048352b0d51192bcf2e044f9143b1ce3c2051bbeb58a0e2e","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[250,1991,391,2389,764,2505,648,590,250,1734,1162,1875,1535,1477,1933,1618,2820,192,391,847,764,192,391,1875,2563,192,2704,2646,2049,1734,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"99ec707ded357a62e3176b9beb4b848bfb0f44e056368a785d0b8b5ba3d59f24","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"0a2b7c981f0ce5d845889a7888d23d313e0e233e3a7e13634e4ee94a3f90e74c","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"4dd27be0ecefc757d44eeca2b86ac3c2a7e24b1e34aba58c7cb1e34e3f726500","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9ad5e90d308c3a3a968d27f6edfe08b2f6f49ea944d4c7991d2cb7158ca2efbc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[250,1734,391,2132,507,2248,648,590,250,1734,1162,1618,1278,1220,1676,1361,2563,192,391,847,764,192,391,1618,2306,192,2447,2389,1792,1477,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a71101d111663b02c70e639bbed5a7d9e980adfc4fec04c2fe576d19e1faff64","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"cdbd08a8b75183e2029b022c009ce1b820ac2b3cb88013d808d21a138340567e","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"7eda92c3b826bb21f7e162e14a4d2d87089562df1b290301990cfa346ae82c8c","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"c31e7fb76db9e4adb090939ca506c3b971521072e18c654f71a83889623d8970","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[250,1734,391,0,507,2248,648,0,250,1734,1162,0,1278,1220,1676,0,2563,192,391,0,764,192,391,0,2306,192,2447,0,1792,1477,905,0],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"f8f082c98f23f6534c78886ffa466ae87e1d01708a6242aec413fbe075244d0c","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"d5148305b03c539e41af6d73f00a1323c7a86218602b06461777ed82933ada23","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[70,1927,443,2557,584,2441,700,758,70,1670,1214,2043,1355,1413,1985,1786,2640,128,443,1015,584,128,443,2043,2383,128,2756,2814,1869,1670,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[70,1670,443,2300,327,2184,700,758,70,1670,1214,1786,1098,1156,1728,1529,2383,128,443,1015,584,128,443,1786,2126,128,2499,2557,1612,1413,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"b40cdb9ba0bdac38a9b45596a41c5cb9bef999c06613e93f0a9718c814acc27c","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"802fb66bc88e339f5419aefdbdd30ac3a0cfd3ea5e3acb7f0a06b75dd566ae5b","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"ad3ec4f5826e7cd0da332bdbadbef4a139aed408c3f3dcf16ad808e67a5e196a","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[70,1670,443,0,327,2184,700,0,70,1670,1214,0,1098,1156,1728,0,2383,128,443,0,584,128,443,0,2126,128,2499,0,1612,1413,957,0],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"f777476942eaec3929f93ff594529b4c4038a5ae591b4f5109a0b06c3f136488","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"f777476942eaec3929f93ff594529b4c4038a5ae591b4f5109a0b06c3f136488","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,2043,501,2557,758,2557,758,758,244,1786,1272,2043,1529,1529,2043,1786,2814,244,501,1015,758,244,501,2043,2557,244,2814,2814,2043,1786,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1786,501,2300,501,2300,758,758,244,1786,1272,1786,1272,1272,1786,1529,2557,244,501,1015,758,244,501,1786,2300,244,2557,2557,1786,1529,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"1ffc5943c97e8bac0a37b3ab8fbfea6dba29b252efa29d60ae62c883eb3740c1","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"4bd3ef54c101331affcf7f380408ddfce232ed6ce67f13583b736c363da6748e","probs":"29db24aa4f460e3aa3fa3c4c498ec0cc177fb4d140af554f8d533784448ce6f5","shape":[4,20],"samples":[501,3527,899,4182,1015,4298,1156,1098,501,3270,2184,3411,2557,2499,3469,2897,5127,443,642,1612,1529,186,899,3411,4356,186,5011,4696,3585,2756,1670,584],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,1985,385,2383,758,2499,642,584,244,1728,1156,1869,1529,1471,1927,1612,2814,186,385,841,758,186,385,1869,2557,186,2698,2640,2043,1728,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"f0585e6cfb5bbeec30f983c81d6c149ce9e6262e0585d6efcbd8973de187eb94","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1728,385,2126,501,2242,642,584,244,1728,1156,1612,1272,1214,1670,1355,2557,186,385,841,758,186,385,1612,2300,186,2441,2383,1786,1471,899,327],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"cdbd08a8b75183e2029b022c009ce1b820ac2b3cb88013d808d21a138340567e","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"40264148d7811772fcc1034dad035c34f4d62f8d9593f0a16e566902eeb383fd","probs":"4036f4d2e6fb5633d467b865ab5c51bb8d6d81de0c855d8a505c77ba3f6a429a","shape":[4,20],"samples":[501,3527,899,0,1015,4298,1156,0,501,3270,2184,0,2557,2499,3469,0,5127,443,642,0,1529,186,899,0,4356,186,5011,0,3585,2756,1670,0],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"41c0aff54d4c330fbd7f6d4beab8fe7ae0ca72611106864efa76c28a169add67","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[244,1728,385,0,501,2242,642,0,244,1728,1156,0,1272,1214,1670,0,2557,186,385,0,758,186,385,0,2300,186,2441,0,1786,1471,899,0],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"15a7d8e2c2265b7af04a64444e5b3c46502ce121d39914e5cdaf2546048647cb","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"2a472068bdd28d144bba35cb0658fae187877672d91799b970ce09e97a393f82","probs":"ea89786462b7b629b6adff46f7d9d29a1d3d641943c9ce4262181bc785bab324","shape":[4,20],"samples":[507,3533,905,4188,1021,4304,1162,1104,507,3276,2190,3417,2563,2505,3475,2903,5133,449,648,1618,1535,192,905,3417,4362,192,5017,4702,3591,2762,1676,590],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"53264da6975bf1b1bd3493b8499edd94d106a5806b52182544a23abbd0ea5b3b","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[250,1991,391,2389,764,2505,648,590,250,1734,1162,1875,1535,1477,1933,1618,2820,192,391,847,764,192,391,1875,2563,192,2704,2646,2049,1734,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"99ec707ded357a62e3176b9beb4b848bfb0f44e056368a785d0b8b5ba3d59f24","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"0a2b7c981f0ce5d845889a7888d23d313e0e233e3a7e13634e4ee94a3f90e74c","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"4dd27be0ecefc757d44eeca2b86ac3c2a7e24b1e34aba58c7cb1e34e3f726500","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9ad5e90d308c3a3a968d27f6edfe08b2f6f49ea944d4c7991d2cb7158ca2efbc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"4cf703a2e0f1a9ffb4a580846b9cf7611992836a922b722057ef04fcf4100336","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[250,1734,391,2132,507,2248,648,590,250,1734,1162,1618,1278,1220,1676,1361,2563,192,391,847,764,192,391,1618,2306,192,2447,2389,1792,1477,905,333],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a71101d111663b02c70e639bbed5a7d9e980adfc4fec04c2fe576d19e1faff64","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"4036f4d2e6fb5633d467b865ab5c51bb8d6d81de0c855d8a505c77ba3f6a429a","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"83c14976f327d15d6cb0ac5bcd230599860ef3f9593cc7d8dc4b20dab7f08322","probs":"4ba1e536fc037ca81cbe4503c92580125234c030fea578ff9a633c34972b9e2b","shape":[4,20],"samples":[507,3533,905,0,1021,4304,1162,0,507,3276,2190,0,2563,2505,3475,0,5133,449,648,0,1535,192,905,0,4362,192,5017,0,3591,2762,1676,0],"next_rng":4594500682135173736,"converted":[{"ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"4658011d06aae396987b799f40add2ad841f76acdb0d9b16c4b9cd25293af057","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c37427b605e2b71409566ca138fdde00a4ab2333890aa5806ec9fa03a1768db1","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"c31e7fb76db9e4adb090939ca506c3b971521072e18c654f71a83889623d8970","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[250,1734,391,0,507,2248,648,0,250,1734,1162,0,1278,1220,1676,0,2563,192,391,0,764,192,391,0,2306,192,2447,0,1792,1477,905,0],"next_rng":4594500682135173736,"converted":[{"ids":"b9461047e8c0fe773d620c5166c6810d985053bb95e6b4ed1def0d79a98bd9cc","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"a464405e8948cd30006284dd9797071688d694503eac70cb5338cd131072944c","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"91fc11d4f887cf60b316a31132003c6f4c02370c13c7a3fd83581deb737ab473","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"c8c6079109625d5aa2cf7b658435d879c1d3f9877ca0b9bec4c089caf0957ae7","probs":"29db24aa4f460e3aa3fa3c4c498ec0cc177fb4d140af554f8d533784448ce6f5","shape":[4,20],"samples":[327,3469,957,4356,841,4240,1214,1272,327,3212,2242,3585,2383,2441,3527,3071,4953,385,700,1786,1355,128,957,3585,4182,128,5069,4870,3411,2698,1728,758],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[70,1927,443,2557,584,2441,700,758,70,1670,1214,2043,1355,1413,1985,1786,2640,128,443,1015,584,128,443,2043,2383,128,2756,2814,1869,1670,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"f999a10c65fc2cb4d4a552ab6627616ecb5e46ea9560092e2c885718c11e93f9","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"20d62bd02dddf3d671a51dc1f8baf4d7c9b64ce6bef26ee121bc547ac3471ccc","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"015bd7618e0264b70d611535c59a6a9d19400e1046b43176a800a3d07def3602","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"d62cb8c2bec21663f88490fd68271f0fc0458a200affe351e9ee31065094319d","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[70,1670,443,2300,327,2184,700,758,70,1670,1214,1786,1098,1156,1728,1529,2383,128,443,1015,584,128,443,1786,2126,128,2499,2557,1612,1413,957,501],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"4ba1e536fc037ca81cbe4503c92580125234c030fea578ff9a633c34972b9e2b","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"155552a49194cccb18209fc1e8a2ac5bf55fb438c3872f6e89e6ea432999c709","probs":"4036f4d2e6fb5633d467b865ab5c51bb8d6d81de0c855d8a505c77ba3f6a429a","shape":[4,20],"samples":[327,3469,957,0,841,4240,1214,0,327,3212,2242,0,2383,2441,3527,0,4953,385,700,0,1355,128,957,0,4182,128,5069,0,3411,2698,1728,0],"next_rng":4594500682135173736,"converted":[{"ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"fbebfb1389f4ae4c8fb434814d77779bf7396509e629f40717c4c2345e53bc14","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"a3e91afee0190b93a2d0947db36c475422cb529e2114c2fee681d3e1f901556d","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"ad3ec4f5826e7cd0da332bdbadbef4a139aed408c3f3dcf16ad808e67a5e196a","probs":"cba4cebb192b3d4670c469b4af461e1959426dceda0dcb96433b8688429c869c","shape":[4,129],"samples":[70,1670,443,0,327,2184,700,0,70,1670,1214,0,1098,1156,1728,0,2383,128,443,0,584,128,443,0,2126,128,2499,0,1612,1413,957,0],"next_rng":4594500682135173736,"converted":[{"ids":"a987510f85f3bd4a35ff87959191912b4460ed0875ed2afd9d06b356439896d3","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"46df218629973d53afbcfbaf30cd19f3e42395673ccfcc17dc057dca44afd9f0","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"5a680082350a7f7479873cb34c874e568679373b8312944daf61f0e6a8823805","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,0,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"4108868d43e5370954cee8f2a08fae96c416d32cab50a43bfec4b7e942f55b35","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"3663ec811de8680451b1c0890d3a644d0d379dd9ed643064e382e996b3c72143","probs":"834aac64b112bd3c0162257d03bda346628bf7aec76bb639258c1a2ab566f860","shape":[4,20],"samples":[501,3585,1015,4356,1015,4356,1272,1272,501,3328,2300,3585,2557,2557,3585,3071,5127,501,758,1786,1529,244,1015,3585,4356,244,5127,4870,3585,2814,1786,758],"next_rng":4594500682135173736,"converted":[{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"},{"ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","probs":"c9283deca428a6896c34f2ac22f10a53e195b19151ae8da59ef88f8374a1f3d2"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"128a75fa7c8d651029c341cd88b46495f519fc094e69fb7d4686e4fa4bb3ae94","shape":[4,129],"samples":[244,2043,501,2557,758,2557,758,758,244,1786,1272,2043,1529,1529,2043,1786,2814,244,501,1015,758,244,501,2043,2557,244,2814,2814,2043,1786,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"},{"ids":"9f612b9d15980669eb8590bb6456dae11524af9f30e5e8464be9a5a75101e5ec","probs":"d85878d63a88da6afca065078e8bac2dcef052b7463a609f2e34447443e388c7"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"dd45067ee6409f447455c3284ffca803b6b9e3f30a510b83630247bd3cb5681f","probs":"926925b2ce5e2c81b8635c7d0dceb3ac05a8d8e79f926fe6d1b951e386554003","shape":[4,129],"samples":[244,1786,501,2300,501,2300,758,758,244,1786,1272,1786,1272,1272,1786,1529,2557,244,501,1015,758,244,501,1786,2300,244,2557,2557,1786,1529,1015,501],"next_rng":4594500682135173736,"converted":[{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"},{"ids":"e2979c7ec4257cf20b1dfa2e6777fd1249181019fb2cd1b64ed1b8e3bc1bb2a2","probs":"aec75911cfd21467e2b1c9f8bb3fc0dc65c630ff5f47af89c9410c1e04ad6804"}],"lookups":[0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,20],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"ids":"e4092d171a71840f91471954d9af15cafdd11268a69659c8cbbcaba9d99f3dcf","probs":"e5b0820ca69b8c0fbd414357fe0dba851ede7206fe7abc24fde5d1cf9d104bd0","shape":[4,20],"samples":[1,13,3,16,3,16,4,4,1,12,8,13,9,9,13,11,19,1,2,6,5,0,3,13,16,0,19,18,13,10,6,2],"next_rng":4594500682135173736,"converted":[{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"},{"ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","probs":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7"}],"lookups":[0,4587366580439587226,4587366580439587226,0,0,0,4587366580439587226,4587366580439587226,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,129],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"ids":"1c4a7f2bb1965137df60f494e76ec9058df35b98dac18f3bbcadef393ac909ad","probs":"2724625326b09c32cd065e6649789fa232a8babda36ae950cb152b3b05199c7f","shape":[4,129],"samples":[8,88,23,106,24,108,27,26,9,79,57,85,61,58,84,72,126,11,14,41,34,2,22,88,106,3,127,117,89,70,43,15],"next_rng":4594500682135173736,"converted":[{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"},{"ids":"0629241135d0e678fc19132006a62ea71a02eb106572a57948443a57e33e6e37","probs":"b41051c2608de86fc65b00b57d7a3157250fe88a8e216914ea894b6e8da2b92a"}],"lookups":[0,4575587398158387184,4575587398158387184,0,0,0,4575587398158387184,4575587398158387184,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.6,"top_p":0.95,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"serial","result":{"ids":"7a270d11ebe5713aa049a0849f8aeb146380f8a28999ce63e1e874fbdd40b269","probs":"82d07f93da1ac3b2bd053100b4a520f676e92a69a150bc70009a07f147e4c051","shape":[4,20],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,80],[4,80]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":0.7,"top_p":1.0,"k":20,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,20]]],"host_calls":0} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"serial","result":{"ids":"e84eaa9ef115c72823d150900cfef3aad82b7d1eb5e3f8a61f4f5e60040df78a","probs":"1926bd58edd28b8bba68ada71beb28fed99602358eeb345880a99a96f528a384","shape":[4,129],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_rng":4594500682135173736,"converted":[{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":248320},"evals":[[[4,516],[4,516],[4,516]],[[4,248320]]],"host_calls":4} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"mixed","temperature":1e-07,"top_p":0.01,"k":129,"route":"bound","result":{"error":true},"evals":[[[4,248320],[4,129]]],"host_calls":0} +{"constructor":"padded","result":{"ids":"d19cb0301829c582bfa812a479252e4c1d47c1cf8901c5d99bee46cb7c799354","probs":"237e50d7b35702ffacd8720bef36c57320c1c84e0722479d315e2654caabab40","shape":[2,4],"samples":[3,3,0,3,0,3,0,3,3,3,0,3,0,3,0,3,7,3,3,3,0,3,0,3,7,3,7,3,7,3,0,3],"next_rng":4594500682135173736,"converted":[{"ids":"9fc3c9ea36bdd223994f1c4e05a469cb79ffd52aaf02ea97d7c8cfbb80962cec","probs":"3e6005cd4c7df91078c2d119468de3740398c4a849e647ff95f776ddcc9c541a"},{"ids":"0fec49e5cb80c80f848a00237963650b3d777cd7a75e6fadc16db41e7b6b92e1","probs":"ecf29fdb23d55a7613c1cdbdac8b54a853e86b59614d7d92983996f051986379"}],"lookups":[0,4602678819172646912,4595172819793696085,0,0,0,0,4599676419421066581,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17}} +{"constructor":"negative","result":{"ids":"8a813d53c6ae983e366160c0ded43103f5639df9d8c1017bb09344e77c00a891","probs":"b8ebbab313c330871feb1cf2ba690e7ecd621c75009ccbb7c6731980b81df5c0","shape":[2,3],"samples":[null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0,null,0],"next_rng":4606978881747947146,"converted":[{"ids":"c571327cb01ac1de6972713cbf6cc1fc3c2cab8b581ee0bc3fe6d8b56963fd5b","probs":"79280b32ba689bc8ee93f85a95dccc001a2535762bdf15ca3a5371771feb55f7"},{"ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","probs":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"}],"lookups":[0,4607182418800017408,0,0,0,0,4607182418800017408,0,0,0,null,null,null,null,null,null,null,null,null,null],"vocab":17}} +{"constructor":"zero","result":{"error":true}} +{"constructor":"nonfinite","result":{"error":true}} +{"constructor":"mismatch","result":{"error":true}} diff --git a/tests/fixtures/mtplx-sampler-distributions.jsonl b/tests/fixtures/mtplx-sampler-distributions.jsonl new file mode 100644 index 0000000..a575a6e --- /dev/null +++ b/tests/fixtures/mtplx-sampler-distributions.jsonl @@ -0,0 +1,108 @@ +[{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]}] +[{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]}] +[{"ids":[6],"probabilities":[4607182418800017408],"samples":[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],"next_sample":4606569824417127725,"decisions":[[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6],"residual_probabilities":[4607182418800017408]}] +[{"ids":[5,6,12,13],"probabilities":[4590388281897132993,4601247853864154896,4590388281897132993,4601247853864154896],"samples":[6,6,13,13,6,6,13,6,13,13,6,13,13,6,6,13,13,6,13,6,6,6,6,6,6,13,6,6,6,13,13,13],"next_sample":4606569824417127725,"decisions":[[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[6,true,6,4607182418800017408],[12,false,13,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[5,false,13,4595972978929169276],[5,false,13,4595972978929169276],[12,false,6,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[6,true,6,4607182418800017408],[13,true,13,4607182418800017408],[5,false,6,4595972978929169276],[6,true,6,4607182418800017408],[5,true,5,4595972978929169276],[5,true,5,4595972978929169276],[12,false,6,4595972978929169276],[5,false,13,4595972978929169276],[5,false,13,4595972978929169276],[5,false,6,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[5,false,13,4595972978929169276],[12,false,6,4595972978929169276],[5,false,6,4595972978929169276],[13,true,13,4607182418800017408],[5,false,6,4595972978929169276]],"next_verify":4591028414786233216,"residual_ids":[6,13],"residual_probabilities":[4602678819172646912,4602678819172646912]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4536052248854540040,4546817049365924508,4557896736009331364,4568443573990528627,4579488671899631631,4590180649776756513,4600973027278466381,4536052248854540040,4546817049365924508,4557896736009331364,4568443573990528627,4579488671899631631,4590180649776756513,4600973027278466381,4536052248854540040,4546817049365924508,4557896736009331364],"samples":[6,6,13,13,6,6,13,6,13,13,6,13,13,6,6,13,13,6,13,6,5,6,6,6,6,13,6,6,5,13,13,13],"next_sample":4606569824417127725,"decisions":[[3,false,6,4574418346145829752],[10,false,13,4574418346145829752],[3,false,6,4574418346145829752],[10,false,13,4574418346145829752],[4,false,13,4595972982128623864],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,13,4574418346145829752],[10,false,13,4574418346145829752],[11,false,12,4595972982128623864],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[4,false,13,4595972982128623864],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,13,4574418346145829752],[3,false,6,4574418346145829752],[10,false,6,4574418346145829752],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,5,4574418346145829752],[3,false,6,4574418346145829752],[10,false,12,4574418346145829752],[3,false,13,4574418346145829752],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[11,false,6,4595972982128623864],[10,false,6,4574418346145829752],[10,false,12,4574418346145829752],[10,false,6,4574418346145829752],[10,false,6,4574418346145829752]],"next_verify":4606852590134479065,"residual_ids":[1,2,5,6,8,9,12,13,15,16],"residual_probabilities":[4314783066756437375,4558067895956954206,4589471218799475814,4601462680167811234,4314783066756437375,4558067895956954206,4589471218799475814,4601462680167811234,4314783066756437375,4558067895956954206]}] +[{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]}] +[{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]}] +[null] +[null] +[null] +[{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]}] +[{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]}] +[{"ids":[6],"probabilities":[4607182418800017408],"samples":[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],"next_sample":4606569824417127725,"decisions":[[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408],[6,true,6,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6],"residual_probabilities":[4607182418800017408]},{"ids":[3],"probabilities":[4607182418800017408],"samples":[3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[3],"residual_probabilities":[4607182418800017408]},{"ids":[0],"probabilities":[4607182418800017408],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0],"residual_probabilities":[4607182418800017408]},{"ids":[4],"probabilities":[4607182418800017408],"samples":[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],"next_sample":4606569824417127725,"decisions":[[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4],"residual_probabilities":[4607182418800017408]}] +[{"ids":[5,6,12,13],"probabilities":[4590388281897132993,4601247853864154896,4590388281897132993,4601247853864154896],"samples":[6,6,13,13,6,6,13,6,13,13,6,13,13,6,6,13,13,6,13,6,6,6,6,6,6,13,6,6,6,13,13,13],"next_sample":4606569824417127725,"decisions":[[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[6,true,6,4607182418800017408],[12,false,13,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[5,false,13,4595972978929169276],[5,false,13,4595972978929169276],[12,false,6,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[6,true,6,4607182418800017408],[13,true,13,4607182418800017408],[5,false,6,4595972978929169276],[6,true,6,4607182418800017408],[5,true,5,4595972978929169276],[5,true,5,4595972978929169276],[12,false,6,4595972978929169276],[5,false,13,4595972978929169276],[5,false,13,4595972978929169276],[5,false,6,4595972978929169276],[5,true,5,4595972978929169276],[5,false,6,4595972978929169276],[5,false,6,4595972978929169276],[12,false,13,4595972978929169276],[5,false,13,4595972978929169276],[12,false,6,4595972978929169276],[5,false,6,4595972978929169276],[13,true,13,4607182418800017408],[5,false,6,4595972978929169276]],"next_verify":4591028414786233216,"residual_ids":[6,13],"residual_probabilities":[4602678819172646912,4602678819172646912]},{"ids":[2,3,9,10,16],"probabilities":[4589967068207378787,4600690326343566715,4589967068207378787,4600690326343566715,4589967068207378787],"samples":[3,3,10,10,3,3,10,3,10,16,3,16,10,3,3,10,10,3,10,3,3,3,3,9,3,10,3,3,3,10,10,10],"next_sample":4606569824417127725,"decisions":[[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[10,true,10,4607182418800017408],[16,true,16,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[10,true,10,4607182418800017408],[16,true,16,4607182418800017408],[10,true,10,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[10,true,10,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[3,true,3,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[3,true,3,4607182418800017408],[10,true,10,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,3,9,10,16],"residual_probabilities":[4589967068207378787,4600690326343566715,4589967068207378787,4600690326343566715,4589967068207378787]},{"ids":[0,6,7,13,14],"probabilities":[4599004872088330189,4588219389028631140,4599004872088330189,4588219389028631140,4599004872088330189],"samples":[0,6,14,13,7,6,7,0,13,14,0,14,13,0,7,14,13,6,14,0,0,0,6,7,0,14,0,0,0,7,14,7],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[7,true,7,4607182418800017408],[7,true,7,4607182418800017408],[13,true,13,4607182418800017408],[14,true,14,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[14,true,14,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[7,true,7,4607182418800017408],[7,true,7,4607182418800017408],[14,true,14,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[13,true,13,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,6,7,13,14],"residual_probabilities":[4599004872088330189,4588219389028631140,4599004872088330189,4588219389028631140,4599004872088330189]},{"ids":[2,3,4,10,11],"probabilities":[4579674563133038142,4590303674414692977,4601135866026140139,4590303674414692977,4601135866026140139],"samples":[4,4,11,11,4,4,11,4,11,11,4,11,11,4,4,11,11,4,11,4,3,4,4,4,4,11,4,4,3,11,11,11],"next_sample":4606569824417127725,"decisions":[[2,false,11,4585301984355062628],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[2,false,11,4585301984355062628],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[10,true,10,4607182418800017408],[2,false,11,4585301984355062628],[2,false,11,4585301984355062628],[4,true,4,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[2,false,11,4585301984355062628],[2,false,11,4585301984355062628],[3,true,3,4607182418800017408],[10,true,10,4607182418800017408],[2,false,11,4585301984355062628],[3,true,3,4607182418800017408],[2,false,11,4585301984355062628],[2,false,11,4585301984355062628],[2,false,11,4585301984355062628],[4,true,4,4607182418800017408],[2,false,11,4585301984355062628],[2,true,2,4585301984355062628],[2,false,11,4585301984355062628],[10,true,10,4607182418800017408],[2,false,11,4585301984355062628],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4592650773515528408,"residual_ids":[11],"residual_probabilities":[4607182418800017408]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4536052248854540040,4546817049365924508,4557896736009331364,4568443573990528627,4579488671899631631,4590180649776756513,4600973027278466381,4536052248854540040,4546817049365924508,4557896736009331364,4568443573990528627,4579488671899631631,4590180649776756513,4600973027278466381,4536052248854540040,4546817049365924508,4557896736009331364],"samples":[6,6,13,13,6,6,13,6,13,13,6,13,13,6,6,13,13,6,13,6,5,6,6,6,6,13,6,6,5,13,13,13],"next_sample":4606569824417127725,"decisions":[[3,false,6,4574418346145829752],[10,false,13,4574418346145829752],[3,false,6,4574418346145829752],[10,false,13,4574418346145829752],[4,false,13,4595972982128623864],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,13,4574418346145829752],[10,false,13,4574418346145829752],[11,false,12,4595972982128623864],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[4,false,13,4595972982128623864],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,13,4574418346145829752],[3,false,6,4574418346145829752],[10,false,6,4574418346145829752],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[3,false,5,4574418346145829752],[3,false,6,4574418346145829752],[10,false,12,4574418346145829752],[3,false,13,4574418346145829752],[10,false,6,4574418346145829752],[3,false,6,4574418346145829752],[11,false,6,4595972982128623864],[10,false,6,4574418346145829752],[10,false,12,4574418346145829752],[10,false,6,4574418346145829752],[10,false,6,4574418346145829752]],"next_verify":4606852590134479065,"residual_ids":[1,2,5,6,8,9,12,13,15,16],"residual_probabilities":[4314783066756437375,4558067895956954206,4589471218799475814,4601462680167811234,4314783066756437375,4558067895956954206,4589471218799475814,4601462680167811234,4314783066756437375,4558067895956954206]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4567907181734940040,4578778691147389303,4589710776597844320,4600351092363075296,4535589633483163937,4546204721270019922,4557340157899079280,4567907181734940040,4578778691147389303,4589710776597844320,4600351092363075296,4535589633483163937,4546204721270019922,4557340157899079280,4567907181734940040,4578778691147389303,4589710776597844320],"samples":[3,3,10,10,3,3,10,3,10,16,3,16,10,3,3,10,10,3,10,3,2,3,3,8,3,10,3,3,3,10,10,10],"next_sample":4606569824417127725,"decisions":[[0,false,3,4585301986930782907],[13,false,10,4563511809940733642],[6,false,3,4563511809940733642],[13,false,10,4563511809940733642],[7,false,10,4585301986930782907],[13,false,3,4563511809940733642],[6,false,3,4563511809940733642],[0,false,10,4585301986930782907],[13,false,16,4563511809940733642],[13,false,10,4563511809940733642],[6,false,3,4563511809940733642],[6,false,3,4563511809940733642],[6,false,16,4563511809940733642],[0,false,3,4585301986930782907],[0,false,3,4585301986930782907],[6,false,3,4563511809940733642],[0,false,10,4585301986930782907],[0,false,3,4585301986930782907],[13,false,3,4563511809940733642],[13,false,3,4563511809940733642],[0,false,3,4585301986930782907],[6,false,2,4563511809940733642],[6,false,3,4563511809940733642],[13,false,9,4563511809940733642],[6,false,10,4563511809940733642],[13,false,3,4563511809940733642],[6,false,3,4563511809940733642],[14,false,3,4585301986930782907],[13,false,3,4563511809940733642],[13,false,9,4563511809940733642],[13,false,3,4563511809940733642],[13,false,3,4563511809940733642]],"next_verify":4606852590134479065,"residual_ids":[2,3,5,9,10,12,16],"residual_probabilities":[4589822859676559043,4600743024077401891,4545282809939703144,4589822859676559043,4600743024077401891,4545282809939703144,4589822859676559043]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888],"samples":[0,6,14,13,7,6,7,0,13,14,0,14,13,0,7,14,13,6,14,0,0,0,6,7,0,14,0,0,0,7,14,7],"next_sample":4606569824417127725,"decisions":[[2,false,0,4553000092093729775],[16,false,14,4553000092093729775],[2,false,0,4553000092093729775],[9,false,13,4553000092093729775],[9,false,12,4553000092093729775],[9,false,0,4553000092093729775],[2,false,0,4553000092093729775],[2,false,13,4553000092093729775],[16,false,14,4553000092093729775],[16,false,7,4553000092093729775],[3,false,0,4574418347997942739],[3,false,5,4574418347997942739],[9,false,14,4553000092093729775],[2,false,7,4553000092093729775],[2,false,0,4553000092093729775],[9,false,7,4553000092093729775],[2,false,13,4553000092093729775],[2,false,0,4553000092093729775],[16,false,6,4553000092093729775],[10,false,0,4574418347997942739],[2,false,0,4553000092093729775],[3,false,0,4574418347997942739],[9,false,0,4553000092093729775],[16,false,7,4553000092093729775],[2,false,13,4553000092093729775],[16,false,0,4553000092093729775],[3,false,7,4574418347997942739],[16,false,0,4553000092093729775],[9,false,0,4553000092093729775],[9,false,7,4553000092093729775],[13,true,13,4607182418800017408],[9,false,0,4553000092093729775]],"next_verify":4602020588226720182,"residual_ids":[0,5,6,7,12,13,14],"residual_probabilities":[4598918763351413116,4576013399710001522,4588037749389398987,4598918763351413116,4576013399710001522,4588037749389398987,4598918763351413116]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4557816869245007114,4568337860534857784,4579348747212059543,4590088046058204785,4600850454872874506,4535961075521880800,4546696370295061728,4557816869245007114,4568337860534857784,4579348747212059543,4590088046058204785,4600850454872874506,4535961075521880800,4546696370295061728,4557816869245007114,4568337860534857784,4579348747212059543],"samples":[4,4,11,11,4,4,11,4,11,11,4,11,11,4,4,11,11,4,11,4,3,4,4,4,4,11,4,4,3,11,11,11],"next_sample":4606569824417127725,"decisions":[[5,false,4,4541824671844433053],[12,false,11,4541824671844433053],[5,false,3,4541824671844433053],[12,false,11,4541824671844433053],[6,false,11,4563511812039647344],[12,false,4,4541824671844433053],[5,false,4,4541824671844433053],[5,false,11,4541824671844433053],[12,false,16,4541824671844433053],[13,false,10,4563511812039647344],[5,false,4,4541824671844433053],[5,false,4,4541824671844433053],[6,false,11,4563511812039647344],[5,false,4,4541824671844433053],[0,false,4,4585301985705033586],[5,false,4,4541824671844433053],[5,false,11,4541824671844433053],[5,false,4,4541824671844433053],[12,false,4,4541824671844433053],[12,false,4,4541824671844433053],[5,false,4,4541824671844433053],[5,false,3,4541824671844433053],[5,false,4,4541824671844433053],[12,false,10,4541824671844433053],[5,false,11,4541824671844433053],[12,false,4,4541824671844433053],[5,false,4,4541824671844433053],[13,false,4,4563511812039647344],[12,false,3,4541824671844433053],[12,false,10,4541824671844433053],[12,false,4,4541824671844433053],[12,false,4,4541824671844433053]],"next_verify":4606852590134479065,"residual_ids":[1,2,3,4,8,9,10,11,15,16],"residual_probabilities":[4332515483229089971,4579148768307562910,4590144458788383140,4600934037147912228,4332515483229089971,4579148768307562910,4590144458788383140,4600934037147912228,4332515483229089971,4579148768307562910]}] +[{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]},{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]},{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]},{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]}] +[{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]},{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]},{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]},{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]}] +[{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]}] +[null,{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]}] +[null,{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]}] +[null,{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]}] +[{"ids":[0,1],"probabilities":[4602678819172646912,4602678819172646912],"samples":[0,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1],"residual_probabilities":[4602678819172646912,4602678819172646912]},{"ids":[16],"probabilities":[4607182418800017408],"samples":[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],"next_sample":4606569824417127725,"decisions":[[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[16],"residual_probabilities":[4607182418800017408]},{"ids":[0],"probabilities":[4607182418800017408],"samples":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0],"residual_probabilities":[4607182418800017408]},{"ids":[8],"probabilities":[4607182418800017408],"samples":[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8],"next_sample":4606569824417127725,"decisions":[[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[8],"residual_probabilities":[4607182418800017408]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],"samples":[7,9,15,13,10,9,13,6,13,16,7,16,13,4,11,16,14,9,14,7,3,5,9,11,8,15,6,5,4,13,15,13],"next_sample":4606569824417127725,"decisions":[[1,false,12,4597447087718856588],[11,true,11,4607182418800017408],[12,true,12,4607182418800017408],[2,true,2,4598707869521815453],[7,true,7,4604887283653874558],[8,true,8,4606341267940348007],[5,false,15,4602709876231275034],[16,true,16,4607182418800017408],[1,false,13,4597447087718856588],[1,true,1,4597447087718856588],[8,true,8,4606341267940348007],[1,false,16,4597447087718856588],[9,true,9,4607182418800017408],[4,true,4,4601126122967548985],[2,false,15,4598707869521815453],[3,false,15,4599798832942614911],[15,true,15,4607182418800017408],[3,false,9,4599798832942614911],[5,true,5,4602709876231275034],[4,true,4,4601126122967548985],[4,true,4,4601126122967548985],[7,true,7,4604887283653874558],[1,false,13,4597447087718856588],[11,true,11,4607182418800017408],[4,false,12,4601126122967548985],[3,true,3,4599798832942614911],[4,true,4,4601126122967548985],[3,false,10,4599798832942614911],[4,false,11,4601126122967548985],[9,true,9,4607182418800017408],[6,true,6,4603692186056258036],[12,true,12,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4579719796499684327,4586606063751953637,4590069888642730034,4592304736823468661,4594142347547203453,4595344366470700085,4596605798351032227,4597938777143281247]},{"ids":[0,6,7,13,14],"probabilities":[4599004872088330189,4588219389028631140,4599004872088330189,4588219389028631140,4599004872088330189],"samples":[0,6,14,13,7,6,7,0,13,14,0,14,13,0,7,14,13,6,14,0,0,0,6,7,0,14,0,0,0,7,14,7],"next_sample":4606569824417127725,"decisions":[[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[7,true,7,4607182418800017408],[7,true,7,4607182418800017408],[13,true,13,4607182418800017408],[14,true,14,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[14,true,14,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[7,true,7,4607182418800017408],[7,true,7,4607182418800017408],[14,true,14,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[13,true,13,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408],[0,true,0,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,6,7,13,14],"residual_probabilities":[4599004872088330189,4588219389028631140,4599004872088330189,4588219389028631140,4599004872088330189]},{"ids":[1,2,3,4,5,6,7,8,9,10,11,12,13,14],"probabilities":[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],"samples":[6,7,10,9,7,7,8,5,9,13,6,13,9,4,8,11,9,7,10,6,4,5,7,8,6,10,6,5,4,8,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4604629160864339628],[5,false,8,4604629159901507274],[10,true,10,4607182418800017408],[5,true,5,4604629159901507274],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[7,false,8,4604629158870792250],[4,true,4,4604629158987633929],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[10,true,10,4607182418800017408],[14,true,14,4607182418800017408],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[8,true,8,4607182418800017408],[7,true,7,4604629158870792250],[12,true,12,4607182418800017408],[6,true,6,4604629160850101901],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[4,true,4,4604629158987633929],[3,true,3,4604629160864339628],[8,true,8,4607182418800017408],[6,true,6,4604629160850101901],[10,true,10,4607182418800017408],[6,true,6,4604629160850101901],[4,true,4,4604629158987633929],[1,true,1,4604629158968064422],[4,true,4,4604629158987633929],[11,true,11,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[8,9,10,11,12,13,14],"residual_probabilities":[4599326505099284393,4597271817381939188,4594974647714459949,4592985684447481571,4590626861545685933,4588705376014120675,4586283265287307844]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],"samples":[3,5,13,11,6,5,10,3,11,16,4,16,11,1,7,15,11,5,12,3,1,2,5,7,4,13,3,2,1,10,14,10],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[7,true,7,4607182418800017408],[8,true,8,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408],[2,true,2,4607182418800017408],[14,true,14,4607182418800017408],[16,true,16,4607182418800017408],[11,true,11,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[10,true,10,4607182418800017408],[7,true,7,4607182418800017408],[16,true,16,4607182418800017408],[4,true,4,4607182418800017408],[0,true,0,4607182418800017408],[1,true,1,4607182418800017408],[2,true,2,4607182418800017408],[1,true,1,4607182418800017408],[11,true,11,4607182418800017408],[4,true,4,4607182418800017408],[14,true,14,4607182418800017408],[5,true,5,4607182418800017408],[2,true,2,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],"samples":[6,8,15,13,10,9,12,6,13,16,7,16,13,3,10,16,14,8,14,6,3,5,9,11,7,15,6,4,3,12,15,13],"next_sample":4606569824417127725,"decisions":[[0,false,12,4596673932909804520],[11,true,11,4607182418800017408],[11,true,11,4607182418800017408],[1,true,1,4598237550594073977],[7,true,7,4605578666934078029],[7,true,7,4605578666934078029],[4,false,14,4601893982505430598],[16,true,16,4607182418800017408],[0,false,13,4596673932909804520],[0,true,0,4596673932909804520],[8,true,8,4607182418800017407],[0,false,16,4596673932909804520],[8,true,8,4607182418800017407],[3,true,3,4600429972956972023],[1,false,15,4598237550594073977],[2,false,15,4599226632748940046],[14,true,14,4607182418800017408],[2,false,9,4599226632748940046],[4,true,4,4601893982505430598],[3,true,3,4600429972956972023],[3,true,3,4600429972956972023],[6,false,10,4604260466655792296],[2,true,2,4599226632748940046],[11,true,11,4607182418800017408],[3,false,12,4600429972956972023],[2,true,2,4599226632748940046],[4,true,4,4601893982505430598],[2,false,10,4599226632748940046],[3,false,11,4600429972956972023],[9,true,9,4607182418800017408],[5,true,5,4603176974720637904],[11,true,11,4607182418800017408]],"next_verify":4605152798053161102,"residual_ids":[9,10,11,12,13,14,15,16],"residual_probabilities":[4583229623865643612,4587769644431086160,4590416739769862709,4592419981581709828,4594084722675418384,4595170941250606595,4596314903185161385,4597527614901322569]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888],"samples":[0,6,14,13,7,6,7,0,13,14,0,14,13,0,7,14,13,6,14,0,0,0,6,7,0,14,0,0,0,7,14,7],"next_sample":4606569824417127725,"decisions":[[2,false,0,4553000092093729775],[16,false,14,4553000092093729775],[2,false,0,4553000092093729775],[9,false,13,4553000092093729775],[9,false,12,4553000092093729775],[9,false,0,4553000092093729775],[2,false,0,4553000092093729775],[2,false,13,4553000092093729775],[16,false,14,4553000092093729775],[16,false,7,4553000092093729775],[3,false,0,4574418347997942739],[3,false,5,4574418347997942739],[9,false,14,4553000092093729775],[2,false,7,4553000092093729775],[2,false,0,4553000092093729775],[9,false,7,4553000092093729775],[2,false,13,4553000092093729775],[2,false,0,4553000092093729775],[16,false,6,4553000092093729775],[10,false,0,4574418347997942739],[2,false,0,4553000092093729775],[3,false,0,4574418347997942739],[9,false,0,4553000092093729775],[16,false,7,4553000092093729775],[2,false,13,4553000092093729775],[16,false,0,4553000092093729775],[3,false,7,4574418347997942739],[16,false,0,4553000092093729775],[9,false,0,4553000092093729775],[9,false,7,4553000092093729775],[13,true,13,4607182418800017408],[9,false,0,4553000092093729775]],"next_verify":4602020588226720182,"residual_ids":[0,5,6,7,12,13,14],"residual_probabilities":[4598918763351413116,4576013399710001522,4588037749389398987,4598918763351413116,4576013399710001522,4588037749389398987,4598918763351413116]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"probabilities":[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],"samples":[6,7,10,9,7,7,9,5,9,13,6,14,9,4,8,12,9,7,10,6,3,5,7,8,6,11,5,4,4,9,11,9],"next_sample":4606569824417127725,"decisions":[[3,true,3,4607182418800017408],[5,true,5,4607182418800017408],[5,true,5,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[8,true,8,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[15,true,15,4607182418800017408],[4,true,4,4607182418800017408],[6,true,6,4607182418800017408],[5,true,5,4607182418800017408],[11,true,11,4607182418800017408],[16,true,16,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[9,true,9,4607182418800017408],[8,true,8,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[0,true,0,4607182418800017408],[4,true,4,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[9,true,9,4607182418800017408],[7,true,7,4607182418800017408],[11,true,11,4607182418800017408],[7,true,7,4607182418800017408],[5,true,5,4607182418800017408],[1,true,1,4607182418800017408],[4,true,4,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"residual_probabilities":[4580804192411133074,4580804192411133074,4585307792038503570,4585307792038503570,4585307792038503570,4589811391665874066,4589811391665874066,4594314991293244562,4594314991293244562,4594314991293244562,4589811391665874066,4589811391665874066,4585307792038503570,4585307792038503570,4585307792038503570,4580804192411133074,4580804192411133074]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]}] +[{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] +[null] +[null] +[null] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]},{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]},{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]},{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]}] +[{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] +[null,{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[null,{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]}] +[null,{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2048],"probabilities":[4607182418800017408],"samples":[2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048],"next_sample":4606569824417127725,"decisions":[[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2048],"residual_probabilities":[4607182418800017408]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120344910785389],[4080,true,4080,4607134909746125580],[4080,true,4080,4607134909746125580],[4081,true,4081,4607142200542917756],[4078,true,4078,4607120344910785389],[4085,true,4085,4607171434703635259],[4086,true,4086,4607178756294729421],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127622796728242],[4082,true,4082,4607149502505452100],[4080,true,4080,4607134909746125580],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805203765554],[4079,true,4079,4607127622796728242],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171434703635259],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502505452100],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242],[4080,true,4080,4607134909746125580],[4078,true,4078,4607120344910785389],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502505452100],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805203765554],[4080,true,4080,4607134909746125580],[4077,true,4077,4607113069827835851],[4079,true,4079,4607127622796728242]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576916858677544003,4584302902431802182,4587365692835050529,4589708697885214685,4591149507109338309,4592591348431760264,4593851888786894904,4594572499818616333,4595292801220848337,4596013412252569888]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2053,2046,2054,2049,2044,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629160751982212],[2044,false,2048,4604629158319006968],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159928238723],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2047,false,2048,4604629158966407479],[2043,true,2043,4604629160632063529],[2045,true,2045,4604629159928238723],[2044,true,2044,4604629158319006968],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629158966407479],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159928238723],[2039,true,2039,4604629162460119917],[2043,true,2043,4604629160632063529],[2044,true,2044,4604629158319006968],[2042,true,2042,4604629160751982212],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629161046558039],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629161046558039],[2044,true,2044,4604629158319006968],[2040,true,2040,4604629158749185599],[2043,true,2043,4604629160632063529],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"probabilities":[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],"samples":[4081,4083,4092,4090,4084,4083,4088,4080,4090,4095,4081,4095,4090,4078,4085,4094,4090,4083,4091,4081,4078,4080,4083,4086,4082,4093,4080,4079,4078,4088,4094,4089],"next_sample":4606569824417127725,"decisions":[[4078,true,4078,4607120343778774430],[4080,true,4080,4607134911194660013],[4080,true,4080,4607134911194660013],[4081,true,4081,4607142202727552305],[4078,true,4078,4607120343778774430],[4085,true,4085,4607171432536760278],[4086,true,4086,4607178755937884529],[4090,true,4090,4607182418800017408],[4096,true,4096,4607182418800017408],[4079,true,4079,4607127623456482833],[4082,true,4082,4607149502334040101],[4080,true,4080,4607134911194660013],[4093,true,4093,4607182418800017408],[4096,true,4096,4607182418800017408],[4090,true,4090,4607182418800017408],[4083,true,4083,4607156805741422821],[4079,true,4079,4607127623456482833],[4089,true,4089,4607182418800017408],[4085,true,4085,4607171432536760278],[4095,true,4095,4607182418800017408],[4082,true,4082,4607149502334040101],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833],[4080,true,4080,4607134911194660013],[4078,true,4078,4607120343778774430],[4090,true,4090,4607182418800017408],[4082,true,4082,4607149502334040101],[4093,true,4093,4607182418800017408],[4083,true,4083,4607156805741422821],[4080,true,4080,4607134911194660013],[4077,true,4077,4607113067889611372],[4079,true,4079,4607127623456482833]],"next_verify":4606376319297213697,"residual_ids":[4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],"residual_probabilities":[4576917376803799619,4584304543679592360,4587366360636582395,4589708552607617410,4591149493270964540,4592590857323243605,4593851710144536777,4594572393601842163,4595292866795009187,4596013552160537472]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[2046,2047,2050,2049,2047,2047,2049,2045,2049,2054,2046,2054,2049,2043,2048,2052,2049,2047,2050,2046,2043,2045,2047,2048,2046,2051,2045,2044,2043,2049,2051,2049],"next_sample":4606569824417127725,"decisions":[[2042,true,2042,4604629159575418697],[2044,false,2048,4604629159575418696],[2050,true,2050,4607182418800017408],[2045,true,2045,4604629159960103510],[2048,true,2048,4607182418800017408],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2047,false,2048,4604629159767761101],[2043,true,2043,4604629160344788349],[2045,true,2045,4604629159960103510],[2044,true,2044,4604629159575418696],[2050,true,2050,4607182418800017408],[2056,true,2056,4607182418800017408],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2048,true,2048,4607182418800017408],[2047,true,2047,4604629159767761101],[2053,true,2053,4607182418800017408],[2045,true,2045,4604629159960103510],[2038,true,2038,4604629160344788348],[2043,true,2043,4604629160344788349],[2044,true,2044,4604629159575418696],[2042,true,2042,4604629159575418697],[2048,true,2048,4607182418800017408],[2046,true,2046,4604629159767761101],[2050,true,2050,4607182418800017408],[2046,true,2046,4604629159767761101],[2044,true,2044,4604629159575418696],[2040,true,2040,4604629158806049136],[2043,true,2043,4604629160344788349],[2052,true,2052,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]}] +[{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] +[null] +[null] +[null] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[34,48,111,97,55,48,83,27,97,132,34,132,97,13,62,125,97,48,104,34,13,27,48,69,41,118,27,20,13,83,125,90],"next_sample":4606569824417127725,"decisions":[[13,true,13,4607182418800017408],[27,true,27,4607182418800017408],[27,true,27,4607182418800017408],[34,true,34,4607182418800017408],[13,true,13,4607182418800017408],[62,true,62,4607182418800017408],[69,true,69,4607182418800017408],[97,true,97,4607182418800017408],[139,true,139,4607182418800017408],[20,true,20,4607182418800017408],[41,true,41,4607182418800017408],[27,true,27,4607182418800017408],[118,true,118,4607182418800017408],[139,true,139,4607182418800017408],[97,true,97,4607182418800017408],[48,true,48,4607182418800017408],[20,true,20,4607182418800017408],[90,true,90,4607182418800017408],[62,true,62,4607182418800017408],[132,true,132,4607182418800017408],[41,true,41,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408],[27,true,27,4607182418800017408],[13,true,13,4607182418800017408],[97,true,97,4607182418800017408],[41,true,41,4607182418800017408],[118,true,118,4607182418800017408],[48,true,48,4607182418800017408],[27,true,27,4607182418800017408],[6,true,6,4607182418800017408],[20,true,20,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[32,46,109,95,53,46,81,25,95,130,32,130,95,11,60,123,95,46,102,32,11,25,46,67,39,116,25,18,11,81,123,88],"next_sample":4606569824417127725,"decisions":[[11,true,11,4607182418800017408],[25,true,25,4607182418800017408],[25,true,25,4607182418800017408],[32,true,32,4607182418800017408],[11,true,11,4607182418800017408],[60,true,60,4607182418800017408],[67,true,67,4607182418800017408],[95,true,95,4607182418800017408],[137,true,137,4607182418800017408],[18,true,18,4607182418800017408],[39,true,39,4607182418800017408],[25,true,25,4607182418800017408],[116,true,116,4607182418800017408],[137,true,137,4607182418800017408],[95,true,95,4607182418800017408],[46,true,46,4607182418800017408],[18,true,18,4607182418800017408],[88,true,88,4607182418800017408],[60,true,60,4607182418800017408],[130,true,130,4607182418800017408],[39,true,39,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408],[25,true,25,4607182418800017408],[11,true,11,4607182418800017408],[95,true,95,4607182418800017408],[39,true,39,4607182418800017408],[116,true,116,4607182418800017408],[46,true,46,4607182418800017408],[25,true,25,4607182418800017408],[4,true,4,4607182418800017408],[18,true,18,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[28,42,105,91,49,42,77,21,91,126,28,126,91,7,56,119,91,42,98,28,7,21,42,63,35,112,21,14,7,77,119,84],"next_sample":4606569824417127725,"decisions":[[7,true,7,4607182418800017408],[21,true,21,4607182418800017408],[21,true,21,4607182418800017408],[28,true,28,4607182418800017408],[7,true,7,4607182418800017408],[56,true,56,4607182418800017408],[63,true,63,4607182418800017408],[91,true,91,4607182418800017408],[133,true,133,4607182418800017408],[14,true,14,4607182418800017408],[35,true,35,4607182418800017408],[21,true,21,4607182418800017408],[112,true,112,4607182418800017408],[133,true,133,4607182418800017408],[91,true,91,4607182418800017408],[42,true,42,4607182418800017408],[14,true,14,4607182418800017408],[84,true,84,4607182418800017408],[56,true,56,4607182418800017408],[126,true,126,4607182418800017408],[35,true,35,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408],[21,true,21,4607182418800017408],[7,true,7,4607182418800017408],[91,true,91,4607182418800017408],[35,true,35,4607182418800017408],[112,true,112,4607182418800017408],[42,true,42,4607182418800017408],[21,true,21,4607182418800017408],[0,true,0,4607182418800017408],[14,true,14,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]}] +[{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]},{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]},{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]},{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]}] +[{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]},{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]},{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] +[null,{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[null,{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]}] +[null,{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[124160],"probabilities":[4607182418800017408],"samples":[124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160,124160],"next_sample":4606569824417127725,"decisions":[[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[124160],"residual_probabilities":[4607182418800017408]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181387200621120],[248303,true,248303,4607181636674050331],[248303,true,248303,4607181636674050331],[248304,true,248304,4607181758443665710],[248301,true,248301,4607181387200621120],[248308,true,248308,4607182237617968080],[248309,true,248309,4607182359395661970],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181508966710481],[248305,true,248305,4607181878234881132],[248303,true,248303,4607181636674050331],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181998027630369],[248302,true,248302,4607181508966710481],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237617968080],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181878234881132],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481],[248303,true,248303,4607181636674050331],[248301,true,248301,4607181387200621120],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181878234881132],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181998027630369],[248303,true,248303,4607181636674050331],[248300,true,248300,4607181268405974057],[248302,true,248302,4607181508966710481]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576825587202423862,4584306968675757226,4587345310569289610,4589686473379826783,4591116281329741049,4592546089279640397,4593835575168354168,4594597745521821727,4595324466091402737,4596033461769044202]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],"probabilities":[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124165,124158,124166,124161,124156,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629160751982212],[124156,false,124160,4604629158319006968],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159928238723],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124159,false,124160,4604629158966407479],[124155,true,124155,4604629160632063529],[124157,true,124157,4604629159928238723],[124156,true,124156,4604629158319006968],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629158966407479],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159928238723],[124151,true,124151,4604629162460119917],[124155,true,124155,4604629160632063529],[124156,true,124156,4604629158319006968],[124154,true,124154,4604629160751982212],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629161046558039],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629161046558039],[124156,true,124156,4604629158319006968],[124152,true,124152,4604629158749185599],[124155,true,124155,4604629160632063529],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168],"residual_probabilities":[4599045699266803346,4596869405221418570,4594686307183871330,4592572476445021942,4590330783775084293,4588281074834737378,4585979243655152702,4583995381721300832,4581631764659439628]}] +[{"ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[4,6,15,13,7,6,11,3,13,18,4,18,13,1,8,17,13,6,14,4,1,3,6,9,5,16,3,2,1,11,17,12],"next_sample":4606569824417127725,"decisions":[[1,true,1,4607182418800017408],[3,true,3,4607182418800017408],[3,true,3,4607182418800017408],[4,true,4,4607182418800017408],[1,true,1,4607182418800017408],[8,true,8,4607182418800017408],[9,true,9,4607182418800017408],[13,true,13,4607182418800017408],[19,true,19,4607182418800017408],[2,true,2,4607182418800017408],[5,true,5,4607182418800017408],[3,true,3,4607182418800017408],[16,true,16,4607182418800017408],[19,true,19,4607182418800017408],[13,true,13,4607182418800017408],[6,true,6,4607182418800017408],[2,true,2,4607182418800017408],[12,true,12,4607182418800017408],[8,true,8,4607182418800017408],[18,true,18,4607182418800017408],[5,true,5,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408],[3,true,3,4607182418800017408],[1,true,1,4607182418800017408],[13,true,13,4607182418800017408],[5,true,5,4607182418800017408],[16,true,16,4607182418800017408],[6,true,6,4607182418800017408],[3,true,3,4607182418800017408],[0,true,0,4607182418800017408],[2,true,2,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"probabilities":[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],"samples":[248304,248306,248315,248313,248307,248306,248311,248303,248313,248318,248304,248318,248313,248301,248308,248317,248313,248306,248314,248304,248301,248303,248306,248309,248305,248316,248303,248302,248301,248311,248317,248312],"next_sample":4606569824417127725,"decisions":[[248301,true,248301,4607181390214084676],[248303,true,248303,4607181632855293979],[248303,true,248303,4607181632855293979],[248304,true,248304,4607181754178350053],[248301,true,248301,4607181390214084676],[248308,true,248308,4607182237339477044],[248309,true,248309,4607182358670675968],[248313,true,248313,4607182418800017408],[248319,true,248319,4607182418800017408],[248302,true,248302,4607181512607505928],[248305,true,248305,4607181874429363444],[248303,true,248303,4607181632855293979],[248316,true,248316,4607182418800017408],[248319,true,248319,4607182418800017408],[248313,true,248313,4607182418800017408],[248306,true,248306,4607181995755673701],[248302,true,248302,4607181512607505928],[248312,true,248312,4607182418800017408],[248308,true,248308,4607182237339477044],[248318,true,248318,4607182418800017408],[248305,true,248305,4607181874429363444],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928],[248303,true,248303,4607181632855293979],[248301,true,248301,4607181390214084676],[248313,true,248313,4607182418800017408],[248305,true,248305,4607181874429363444],[248316,true,248316,4607182418800017408],[248306,true,248306,4607181995755673701],[248303,true,248303,4607181632855293979],[248300,true,248300,4607181271043141149],[248302,true,248302,4607181512607505928]],"next_verify":4606376319297213697,"residual_ids":[248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],"residual_probabilities":[4576888530765640797,4584310788914189607,4587355059110337509,4589708068297425931,4591154597067090472,4592588323454898966,4593853236114280537,4594570099738151240,4595299764498417829,4596010227146902578]},{"ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],"samples":[30,44,107,93,51,44,79,23,93,128,30,128,93,9,58,121,93,44,100,30,9,23,44,65,37,114,23,16,9,79,121,86],"next_sample":4606569824417127725,"decisions":[[9,true,9,4607182418800017408],[23,true,23,4607182418800017408],[23,true,23,4607182418800017408],[30,true,30,4607182418800017408],[9,true,9,4607182418800017408],[58,true,58,4607182418800017408],[65,true,65,4607182418800017408],[93,true,93,4607182418800017408],[135,true,135,4607182418800017408],[16,true,16,4607182418800017408],[37,true,37,4607182418800017408],[23,true,23,4607182418800017408],[114,true,114,4607182418800017408],[135,true,135,4607182418800017408],[93,true,93,4607182418800017408],[44,true,44,4607182418800017408],[16,true,16,4607182418800017408],[86,true,86,4607182418800017408],[58,true,58,4607182418800017408],[128,true,128,4607182418800017408],[37,true,37,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408],[23,true,23,4607182418800017408],[9,true,9,4607182418800017408],[93,true,93,4607182418800017408],[37,true,37,4607182418800017408],[114,true,114,4607182418800017408],[44,true,44,4607182418800017408],[23,true,23,4607182418800017408],[2,true,2,4607182418800017408],[16,true,16,4607182418800017408]],"next_verify":4606376319297213697,"residual_ids":[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],"residual_probabilities":[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]},{"ids":[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"probabilities":[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],"samples":[124158,124159,124162,124161,124159,124159,124161,124157,124161,124166,124158,124166,124161,124155,124160,124164,124161,124159,124162,124158,124155,124157,124159,124160,124158,124163,124157,124156,124155,124161,124163,124161],"next_sample":4606569824417127725,"decisions":[[124154,true,124154,4604629159575418697],[124156,false,124160,4604629159575418696],[124162,true,124162,4607182418800017408],[124157,true,124157,4604629159960103510],[124160,true,124160,4607182418800017408],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124159,false,124160,4604629159767761101],[124155,true,124155,4604629160344788349],[124157,true,124157,4604629159960103510],[124156,true,124156,4604629159575418696],[124162,true,124162,4607182418800017408],[124168,true,124168,4607182418800017408],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124160,true,124160,4607182418800017408],[124159,true,124159,4604629159767761101],[124165,true,124165,4607182418800017408],[124157,true,124157,4604629159960103510],[124150,true,124150,4604629160344788348],[124155,true,124155,4604629160344788349],[124156,true,124156,4604629159575418696],[124154,true,124154,4604629159575418697],[124160,true,124160,4607182418800017408],[124158,true,124158,4604629159767761101],[124162,true,124162,4607182418800017408],[124158,true,124158,4604629159767761101],[124156,true,124156,4604629159575418696],[124152,true,124152,4604629158806049136],[124155,true,124155,4604629160344788349],[124164,true,124164,4607182418800017408]],"next_verify":4600687212665938992,"residual_ids":[124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],"residual_probabilities":[4598967047028962363,4596756698871015170,4594605545635692525,4592456736315694704,4590247856905762134,4588162237859570984,4585894084763566699,4583873352958341274,4581544332432092157,4579590221206098887]}] diff --git a/tests/fixtures/mtplx-sampler-entry.jsonl b/tests/fixtures/mtplx-sampler-entry.jsonl new file mode 100644 index 0000000..b23a776 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-entry.jsonl @@ -0,0 +1,1080 @@ +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"8ee5c66f018bbcf13185b35e194afe47609b51e96c0cbc345d7617d9ec617992","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"aef22f50dc33ae36b911ed3b89693ea439bb8b5d78825e11f18609935b4ada23","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"d8442f8d2d10fe0bf14c4d6ebe665136915cbdd7add6b7ed3941ff56b8aa34f8","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":1,"kind":"dense","probabilities":"b6dd730287b3ea00c929722cc7ed3d247a2cb3a24b1a74386cdaa29d90f48bc7","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"a740ace43b9782dbc09cb5fd10279547c35eeeb3ba508ef250a0440486f3631e","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"6acaaa890fb810e32a639843bf74902c6c2b20f1f38aab5dd39100d0cd8e8eec","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"7c694567d6bcbe65629863a01842a9d72ee74054f484aa892a975feecd13d63d","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"e20036377a2e9f1d3a76f119fd7fa3ab9b3cc29c037a7a913d5f415d4f60453b","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"417cb816f08ac08f8333aeed7d63a3d929a15bb6485fdae92dc4bab1a3192d11","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"323197cb27b7a332b1c4a0e546f5befc050c85cbec3503c59c0ae12565b0e360","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"512a7de1757d7f555a18d21e787ae4301ae4ed65f7383aa7b0afc70a6d8f884a","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"16b7c7ae97296329a41f4b297534007452fd63bd3a2839757102092140cd4a5d","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"b8d133de73cc18d8adad769d6d9a66717b3d7e182b8f965c5299ddec5fcac4cf","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"8ee5c66f018bbcf13185b35e194afe47609b51e96c0cbc345d7617d9ec617992","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"aef22f50dc33ae36b911ed3b89693ea439bb8b5d78825e11f18609935b4ada23","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"d8442f8d2d10fe0bf14c4d6ebe665136915cbdd7add6b7ed3941ff56b8aa34f8","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"732a4a0c48a7ff9b42124bbde0ab2f7605844c3925cc4b604665fbf8360ef0a6","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":1,"kind":"dense","probabilities":"b6dd730287b3ea00c929722cc7ed3d247a2cb3a24b1a74386cdaa29d90f48bc7","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"a740ace43b9782dbc09cb5fd10279547c35eeeb3ba508ef250a0440486f3631e","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"6acaaa890fb810e32a639843bf74902c6c2b20f1f38aab5dd39100d0cd8e8eec","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"c4344d0a99b33a1608b729eebb0bb813be31fa6c723d638717110064783028d5","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"7c694567d6bcbe65629863a01842a9d72ee74054f484aa892a975feecd13d63d","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"e20036377a2e9f1d3a76f119fd7fa3ab9b3cc29c037a7a913d5f415d4f60453b","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"417cb816f08ac08f8333aeed7d63a3d929a15bb6485fdae92dc4bab1a3192d11","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"323197cb27b7a332b1c4a0e546f5befc050c85cbec3503c59c0ae12565b0e360","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"512a7de1757d7f555a18d21e787ae4301ae4ed65f7383aa7b0afc70a6d8f884a","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"16b7c7ae97296329a41f4b297534007452fd63bd3a2839757102092140cd4a5d","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,5]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":7,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[15,1],[7,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":5,"kind":"sparse","probabilities":"051642a71d515ed947133dbfe91e8f487a9acc538b7ec8886af9ed7b8591916c","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"051642a71d515ed947133dbfe91e8f487a9acc538b7ec8886af9ed7b8591916c","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"051642a71d515ed947133dbfe91e8f487a9acc538b7ec8886af9ed7b8591916c","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"d67b29dce687ef5a16c7a3fb625a9e3f39d9d41e9a02b3ee6d9939a30a85296c","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"5d5ca49b2f72a6adcaa14386d9973f9630c05a6f4ba649bfb95245e884551826","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"226631099c90bad91473d7030b53d15288c0d46df608cc4e3abfc9526db608e8","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"ac52a252b56419e4fa299522673e01abbeb0de263ce90f58ee1db4441721d69a","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"ac52a252b56419e4fa299522673e01abbeb0de263ce90f58ee1db4441721d69a","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"ac52a252b56419e4fa299522673e01abbeb0de263ce90f58ee1db4441721d69a","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":5,"kind":"dense","probabilities":"24194d1237d84e496ec96964ca991523e5eaa979cfe0877813292b2d2566e5a2","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"1729c2de58363b4db0335b86c1b367ee6835440d17cbf7455a22ae9032ef8599","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"a37d5f9ff40d52a84f5e5e53f939d5731ca5750ae2006191c987aef586df5a4b","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"eed0d2aaedb359b87036e9327740fc79c1280b9dfbcc67daae3c01f854293d5c","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"eed0d2aaedb359b87036e9327740fc79c1280b9dfbcc67daae3c01f854293d5c","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"eed0d2aaedb359b87036e9327740fc79c1280b9dfbcc67daae3c01f854293d5c","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":4,"kind":"dense","probabilities":"923406f243c2542479f6a65d703113ddb89f920188069c6d07b158939343c2b1","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"334420a34d9d78bfcc7bc7e39968aa233f608d51cc858952268197f86f91c525","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"e3dbe96459247c00865ce3c1c87ec5adfedaa12ba3337de2f388f52a4b4e0f78","trace":["eval"]}],"counts":[[8,2],[4,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"323197cb27b7a332b1c4a0e546f5befc050c85cbec3503c59c0ae12565b0e360","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"512a7de1757d7f555a18d21e787ae4301ae4ed65f7383aa7b0afc70a6d8f884a","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"16b7c7ae97296329a41f4b297534007452fd63bd3a2839757102092140cd4a5d","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,1],[15,1],[0,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"7a52d80798e1548175db4067892d32b961484d92cfef94852bf3a2a318e799da","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"7a52d80798e1548175db4067892d32b961484d92cfef94852bf3a2a318e799da","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"7a52d80798e1548175db4067892d32b961484d92cfef94852bf3a2a318e799da","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"47299b52899830b4d5381a953b0a65d78b7176fa737282f972c2571de174a91b","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":3,"kind":"sparse","probabilities":"7a598e8ebecace8c7a3844175bb0dccb5163ff0846c879f67187e625c40b1e8c","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"cd8d92e772e3ffcdcc7e193cc37befd475ce0ebe0312d139b8a835fefa1b37d2","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"89163f9df92ceec1c8a4716cb89af648ebbb62bddb97f39169e00c88472aded7","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"89163f9df92ceec1c8a4716cb89af648ebbb62bddb97f39169e00c88472aded7","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"89163f9df92ceec1c8a4716cb89af648ebbb62bddb97f39169e00c88472aded7","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"c979ece6219a380b906bfd7c7e9d9ed6b99faab1a8e6e5e4b1952f841c49301b","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"41dac1518aa69ae099515f5ddfff52d8e48a934bbe82e768dc8359e93d03dd58","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"8fa5ee259622ae3a6f16a1c7189a15eb21864c0a510a7afa848fef5e914b6be3","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":2,"kind":"dense","probabilities":"fbf05b14c59f8e223c8700bb681ccd1be43d5827e3ea24efdf1885b7bfeaee02","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"fbf05b14c59f8e223c8700bb681ccd1be43d5827e3ea24efdf1885b7bfeaee02","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"fbf05b14c59f8e223c8700bb681ccd1be43d5827e3ea24efdf1885b7bfeaee02","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"19f9aff5371de7f69605256cc67dbedfcc85831af5c891d266bcb8d7067e427e","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"889699aced0f43304de4c152c13675acc9e803137d45f32db7136edd4d56d310","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"aca5d4e398fdfc01c410bb8a1f68c8985c18f862de5eb0a31b5cb52f5fae4a41","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"323197cb27b7a332b1c4a0e546f5befc050c85cbec3503c59c0ae12565b0e360","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"512a7de1757d7f555a18d21e787ae4301ae4ed65f7383aa7b0afc70a6d8f884a","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"16b7c7ae97296329a41f4b297534007452fd63bd3a2839757102092140cd4a5d","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"b5f04183cd47fd9eece5b900e8e946f21df2d95091c113500092313efa4df026","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"358ce79755da2b8f8f9b07cd371d3607291921fc7d819af6f036c68ecdb5e879","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"da55cc33bbe88c830e729d924aedaa04504f171813e247508d5f32740c2d1733","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"323197cb27b7a332b1c4a0e546f5befc050c85cbec3503c59c0ae12565b0e360","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"512a7de1757d7f555a18d21e787ae4301ae4ed65f7383aa7b0afc70a6d8f884a","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"16b7c7ae97296329a41f4b297534007452fd63bd3a2839757102092140cd4a5d","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"44597fe85757dea79a2095c53bb06ac88057fafaeec057268cf9b97bf927b0c8","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"fae0362e4dec6c2d3e4fc9a075c662ec02eb4ea1101be13bb5e5e48b0c69e207","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"c34e126562a68af43341a1bce22b42aee318bb50f4b14e25ae9ea04d3a17ce87","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"c1cc39389cb5244e59f878bc006c4ae680a7d5780a6b6d790c609b00115e6847","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"8cee1877cac51f14c5b8c7488373be6ec78fe07e900ffc610a5f5da231658bf9","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea3bfac890becdad95433c859c03c665b85e993069c2528f402413deb0dcd60d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"71a5ad9796d95e22bf3322c0ba829c7adc7c201d6291297ff2fec155c8c3701f","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"1e7cd38b2a7f7dcb011fc952d1784d3e787e55139a4991c1d5c0d34fd97dcee4","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ba60c6ecf9659726afcf07a748f3a61f457262917d1d5975106e48f5208df89c","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"0e957a67b94ed8bb6dc64d92309e7926e7ce6315f6aa15f054a2bc40f8fa626c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"98bd862eea209850a7d47eefaa7b505a9f7318378e6090d66abc8169f5a2b1b8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"682c7a6d5291575393b4ac7e1e20af04b779e6d104864027d767fc6006e43f65","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"16c49290f33a3320167d1f315b6fdd356249073b39cf19a813f72c79973cccc5","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"44597fe85757dea79a2095c53bb06ac88057fafaeec057268cf9b97bf927b0c8","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"fae0362e4dec6c2d3e4fc9a075c662ec02eb4ea1101be13bb5e5e48b0c69e207","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"c34e126562a68af43341a1bce22b42aee318bb50f4b14e25ae9ea04d3a17ce87","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"f380d85397768af3fdd1ca5dd703db82470417bb70828012961d21c3e8178086","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"c1cc39389cb5244e59f878bc006c4ae680a7d5780a6b6d790c609b00115e6847","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"8cee1877cac51f14c5b8c7488373be6ec78fe07e900ffc610a5f5da231658bf9","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea3bfac890becdad95433c859c03c665b85e993069c2528f402413deb0dcd60d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"724e7e8fc81ebe61790855cf0566bc963b8ed176f676a8c7aeff8e95348a9530","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"71a5ad9796d95e22bf3322c0ba829c7adc7c201d6291297ff2fec155c8c3701f","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"1e7cd38b2a7f7dcb011fc952d1784d3e787e55139a4991c1d5c0d34fd97dcee4","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ba60c6ecf9659726afcf07a748f3a61f457262917d1d5975106e48f5208df89c","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"0e957a67b94ed8bb6dc64d92309e7926e7ce6315f6aa15f054a2bc40f8fa626c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"98bd862eea209850a7d47eefaa7b505a9f7318378e6090d66abc8169f5a2b1b8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"682c7a6d5291575393b4ac7e1e20af04b779e6d104864027d767fc6006e43f65","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,5]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":7,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[15,1],[7,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":5,"kind":"sparse","probabilities":"87f1c51aaec780bff5ea0e02c429f8303bc19192d90ee0fe5c076ae2f3fea134","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"87f1c51aaec780bff5ea0e02c429f8303bc19192d90ee0fe5c076ae2f3fea134","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"87f1c51aaec780bff5ea0e02c429f8303bc19192d90ee0fe5c076ae2f3fea134","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"cb2c4ff873fbc61e1e9ac68b2b7d99c94349a5defd9cbafdcf83353f0ff98a42","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"b7e2cfa994b042d0d6054bfe3995678850d4acd90f505644d1440435cfc95f22","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"4a81be3780d6c23e329f66d9f3edb0e4458d1fc3bbd153cc4891dbeaa116ac2a","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"40e873665530c7a3c61a73158c134f12f0db4a51d3d72c6ffc9bb81e848582ba","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"40e873665530c7a3c61a73158c134f12f0db4a51d3d72c6ffc9bb81e848582ba","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"40e873665530c7a3c61a73158c134f12f0db4a51d3d72c6ffc9bb81e848582ba","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":5,"kind":"dense","probabilities":"7ac5692d211f00f2280ed60c4bbe00edbb2a1c30a27e31cb7d32fb2d2118d670","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"315a0c7b9cacade55867a9a14faed5625825147bec49b09785e8016f1fadd7e1","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"ccaea8d5f9c952990161607e78eecefd0ab90336acb0a1a90ec3d0b0b6f51a5a","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"a499d6740e269a582035282d9f7da45c7d744293c60effb8da435db21f809cd9","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"a499d6740e269a582035282d9f7da45c7d744293c60effb8da435db21f809cd9","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"a499d6740e269a582035282d9f7da45c7d744293c60effb8da435db21f809cd9","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":4,"kind":"dense","probabilities":"71d21d07b7715aaad7fa82b6fc26c88b84efaf2a530b0d0830414f667c81930c","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"a46b9161928d0984b161d137c00fbe3fe8ec33c86acf04e734cfd12630e922e9","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"6b4c3dd4c8db2e46339e01093eea004c92094de63cde98014e9b605636aa2da8","trace":["eval"]}],"counts":[[8,2],[4,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"0e957a67b94ed8bb6dc64d92309e7926e7ce6315f6aa15f054a2bc40f8fa626c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"98bd862eea209850a7d47eefaa7b505a9f7318378e6090d66abc8169f5a2b1b8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"682c7a6d5291575393b4ac7e1e20af04b779e6d104864027d767fc6006e43f65","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,1],[15,1],[0,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"c07c78d685415be98481539286fd87008d6481a59abda1498e36d94ae7e9ef6d","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"c07c78d685415be98481539286fd87008d6481a59abda1498e36d94ae7e9ef6d","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"c07c78d685415be98481539286fd87008d6481a59abda1498e36d94ae7e9ef6d","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"783021e813e67abea636f56ea29e8ca24ead29f1c8ffb02cfc9734ac7aceb5a8","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":3,"kind":"sparse","probabilities":"0a8baab0d644321296c4420193cafe51c576a8204e2b225139e84d006d08ed7a","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"5c71ca0101feb892ee8a67e4d3f8a5d4d1e8dd65f1d88a5f976001b795e870b5","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"191632c656998078c67ecde0f0a3509f26826f9d2e524b2b8165010ff59b3165","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"191632c656998078c67ecde0f0a3509f26826f9d2e524b2b8165010ff59b3165","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"191632c656998078c67ecde0f0a3509f26826f9d2e524b2b8165010ff59b3165","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"2b382e3863a1dd7c2b2423578f4330eb82d7cc62610ae436ff7dab6bf1712cd2","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"eee3efd4e62a3b62497dfd40ee0e6f696108409c3f34e76a676aafd83cdba2b7","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"b991ceef4e97413e1cca8b8a218b175fe6880b33069f98c4a77c087cf18083aa","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":2,"kind":"dense","probabilities":"8a4f0d7637e46f86f71903a3cda6ade8a76b6e032a24243be9fc337d4a5a0cbd","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"8a4f0d7637e46f86f71903a3cda6ade8a76b6e032a24243be9fc337d4a5a0cbd","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"8a4f0d7637e46f86f71903a3cda6ade8a76b6e032a24243be9fc337d4a5a0cbd","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"a67f17a02cf0d6a50d39c518fd841d9eaa695ef6dda05e89d8d2c2ab3acf1a8c","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"d60baec450991ac2553120c86e0dc38f57d10423c6a9f7fe0089ff7d6994d333","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"1f9281c9ccc4d405d9f0116d7f93850408c5e5cd6a221c9c246ee3ed8c91edf3","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"0e957a67b94ed8bb6dc64d92309e7926e7ce6315f6aa15f054a2bc40f8fa626c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"98bd862eea209850a7d47eefaa7b505a9f7318378e6090d66abc8169f5a2b1b8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"682c7a6d5291575393b4ac7e1e20af04b779e6d104864027d767fc6006e43f65","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"ba7bcee12d42f21f927cac6b661f3535a65fd7b75c45962e1788aec09c364c4c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"315685a59ccd23c578d566d083258efcbf5e41d5e03ba52caa97729da0a92530","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"1e5419761c43ee5acd011bdf93bac5b218c1744955fc70ce1ab82d6851370aa7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"ee7b0f99ccc9091cf4215ae0faf2ccd8838815d6142790cf4e742ade545682a2","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"c123d6765d79d399edfe960857c418557067c61523f302e944ac56b616d7aa1d","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"3ed6440e46d4d2967bdc4dcf84fc944ddfeaa746fb7c1e5357a9c61707ab78ab","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"db051ec0f9a0f117cb64413292c2c52764d5180fb68cf72d3f9330bfc8b579e1","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"32c6568bc592ce24d58748d77ac2a381470f559143315655f4626e529d3f54a6","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"d909ca1ffa5e56e65e7745ea1a376813c8730200f5b5a067e3112ea9e3474d8e","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"0e957a67b94ed8bb6dc64d92309e7926e7ce6315f6aa15f054a2bc40f8fa626c","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"98bd862eea209850a7d47eefaa7b505a9f7318378e6090d66abc8169f5a2b1b8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"682c7a6d5291575393b4ac7e1e20af04b779e6d104864027d767fc6006e43f65","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"479b5b7b4c1f5422d45d6152582705c47e191ae70664737e3f50ec5f376c457f","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"6e563798e2b29f1cfb673564046d271e8f1b7c2cfa0d4a778217ca399fd41a0f","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"17d37e87be67bcce68b496bc58bf4e7cdd5575548c7465fa55008bd6ee9d5983","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"f2acc660754d6f1fbb0d5677b1b6744cfef81081c8840e23d617cc428d8e94c5","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"bac96fd6a08b265dcaa69aab8d6c82e677cea2c9bcd55da992b5be1f6d24b625","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea1516e28ff8ae16d571b297a17842dfe97c878b275eeaec70e37045a748dbd4","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"54e2bc558b4211b09cfdc39a0415c2b404a9c89520984246b0bf5fe93f57366c","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"183612c287468f5cf677b6fadf3adf6c308f2dec65640777f8c795d3f15a4aad","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"c7641d581397a52c706690e4e3ef351bffff1159f1586c4450c020e3b4c7a433","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"24599cc0162aabac98c3b67b6b6708b25651d01bd6f1e6d813427884d5aad0f7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":16,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[2,1],[16,1],[1,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"c03d4aff327c8021562648b1708ecd997a6a3f2d7b8a0d6ad8a76420adbb1faa","ids":"d4f0a2a94528a346d65d38a4676477d17532ee3b1e04a42398ddd8549e882314","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"479b5b7b4c1f5422d45d6152582705c47e191ae70664737e3f50ec5f376c457f","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"6e563798e2b29f1cfb673564046d271e8f1b7c2cfa0d4a778217ca399fd41a0f","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"17d37e87be67bcce68b496bc58bf4e7cdd5575548c7465fa55008bd6ee9d5983","ids":"065dfe51f3e18e084aba7081cad6cb2d7e93f80aed2f9d61219239263ae23a2d","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea332a2580464adc9b80545377a8ce798ea26efe8de9c3f4e52285c0ce7bfe40","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"f2acc660754d6f1fbb0d5677b1b6744cfef81081c8840e23d617cc428d8e94c5","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"bac96fd6a08b265dcaa69aab8d6c82e677cea2c9bcd55da992b5be1f6d24b625","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"ea1516e28ff8ae16d571b297a17842dfe97c878b275eeaec70e37045a748dbd4","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"f3f8bc928cd7904cff1620659bf7ef27f7f97b10938012b1d2b59d8c92407a47","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"54e2bc558b4211b09cfdc39a0415c2b404a9c89520984246b0bf5fe93f57366c","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"183612c287468f5cf677b6fadf3adf6c308f2dec65640777f8c795d3f15a4aad","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"c7641d581397a52c706690e4e3ef351bffff1159f1586c4450c020e3b4c7a433","trace":["eval"]}],"counts":[[8,2],[2,2],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"24599cc0162aabac98c3b67b6b6708b25651d01bd6f1e6d813427884d5aad0f7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]},{"token":8,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,5]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":7,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[15,1],[7,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":5,"kind":"sparse","probabilities":"32d2f569dbae313859d98f7c6699283e0ddaeca79fefd214739d453c7ecf077e","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"32d2f569dbae313859d98f7c6699283e0ddaeca79fefd214739d453c7ecf077e","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"32d2f569dbae313859d98f7c6699283e0ddaeca79fefd214739d453c7ecf077e","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"f804da0fcce1bb14f61fcca77967634a05952eb24efa205a0022a260d3ee200d","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":6,"kind":"sparse","probabilities":"055946fa41a01dcb2983f3d78649dd27741741fd8d66ee57a6375ec0b34d031e","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]},{"token":14,"kind":"sparse","probabilities":"a8ac59fa3b28b4abda15b5657ddc3b37dd8fddc490af1fe08651877bdcbdc2bc","ids":"de36edc66d43f5afa547b51d750fc58e316f727cd21c301f226de905964e3788","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"823945917a2f6f5accad38d02a4a098cd1c6ba33fef0b313dd74ae813e62d747","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"823945917a2f6f5accad38d02a4a098cd1c6ba33fef0b313dd74ae813e62d747","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"823945917a2f6f5accad38d02a4a098cd1c6ba33fef0b313dd74ae813e62d747","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":5,"kind":"dense","probabilities":"ee3ff2538ab36f4343f3df281351ebc297f8e37768b51f402e9bce2ed18f1313","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"5dfaef27090026bd47783f8cdee12b079132fc0c0bc407b1bdc6141b13aee28f","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"72d0e515a8554d714ed5412414c6477fa49d6dd4b317a87a6d560eacdc7ce3af","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":5,"kind":"dense","probabilities":"d1c459a8f6fe86b25f1db29f707b3c314adc222741a7044f0b3b14a1cba3e4c1","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"d1c459a8f6fe86b25f1db29f707b3c314adc222741a7044f0b3b14a1cba3e4c1","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"d1c459a8f6fe86b25f1db29f707b3c314adc222741a7044f0b3b14a1cba3e4c1","trace":["eval"]}],"counts":[[8,2],[5,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":4,"kind":"dense","probabilities":"258b633501e2ad8549ea252b1fba9531e0a8243b497c45e9e374b02eb416ba98","trace":["eval"]},{"token":6,"kind":"dense","probabilities":"c76c83537d48da3be2264ed55d46a5fb814f34ad4e46b423eb5e44cf8a604c2a","trace":["eval"]},{"token":14,"kind":"dense","probabilities":"462ddac2034a8ff9f9ad145c63f07ac5bcbc6fc57f35fae502c5f209f3da2de9","trace":["eval"]}],"counts":[[8,2],[4,1],[6,1],[14,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"24599cc0162aabac98c3b67b6b6708b25651d01bd6f1e6d813427884d5aad0f7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":14,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":14,"kind":"none","trace":["eval","argmax"]},{"token":15,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[14,1],[15,1],[0,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1,"kind":"sparse","probabilities":"e28186b602c0dbccc8f1affa0ab01c240009e1c0e638cfe1022d93aa8dbc2cda","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":2,"kind":"sparse","probabilities":"e28186b602c0dbccc8f1affa0ab01c240009e1c0e638cfe1022d93aa8dbc2cda","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"e28186b602c0dbccc8f1affa0ab01c240009e1c0e638cfe1022d93aa8dbc2cda","ids":"9cf6a8ce18d4921ceb377ac3f946e7ca488e4627c312090afbd2904806f18fd2","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":2,"kind":"sparse","probabilities":"11c9e772361fe10f9531a0ffa76466a5122b9021615c8323893910c414385f13","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":3,"kind":"sparse","probabilities":"b0a0c9ce720f33a448df22ba87cd36122e37a2786207bfaab6f15b0ec8d3b6a3","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]},{"token":15,"kind":"sparse","probabilities":"a5afa3b1e056ab7a5cfca6008c75db7412ca6b56f70296ef71ee9292754fba17","ids":"d71c1f81388f84640a9ff2f59e70d8c02f506411aeffc3fd1d4fa425db40dbb3","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":1,"kind":"dense","probabilities":"48073c45f00b8795b7d5e4412b613afeca65a99610cd764948d25ea7eb695a05","trace":["eval"]},{"token":2,"kind":"dense","probabilities":"48073c45f00b8795b7d5e4412b613afeca65a99610cd764948d25ea7eb695a05","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"48073c45f00b8795b7d5e4412b613afeca65a99610cd764948d25ea7eb695a05","trace":["eval"]}],"counts":[[8,2],[1,1],[2,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"e9f7d10723e257c03792c2ca2adb351e14d7b9ca1cfdc2be88d061e6bdcb8ead","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"df629b72ea511b94515e6bddadc9cb07f3568f19a854c280a1ab0a0d2827c29c","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"0ba5527443deadc31cb0bae7f265b0b5d91dbdcb89918dffc41934204de5946b","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":2,"kind":"dense","probabilities":"233feeb854f2e2b2a9d3cbcee31d2bb207e3ea790fc0417c430fd355bb5750ce","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"233feeb854f2e2b2a9d3cbcee31d2bb207e3ea790fc0417c430fd355bb5750ce","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"233feeb854f2e2b2a9d3cbcee31d2bb207e3ea790fc0417c430fd355bb5750ce","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":2,"kind":"dense","probabilities":"f7a525aaee73ac33bde56cd7b796f88cb31ec62353651026c2f9b62c3b99a823","trace":["eval"]},{"token":3,"kind":"dense","probabilities":"e05146e61bc794b768e21eada9c1d122f4eeb2548aad900d21ad818602df906e","trace":["eval"]},{"token":15,"kind":"dense","probabilities":"58395ecdddc2808e03e12e15dced27086ff1119efb63e3ba54760eebf8c12711","trace":["eval"]}],"counts":[[8,2],[2,1],[3,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"24599cc0162aabac98c3b67b6b6708b25651d01bd6f1e6d813427884d5aad0f7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"e8a576627816295aaea31dc098c037a9b95805ff983f1ec05ba875012fa99da8","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"ee7b0f99ccc9091cf4215ae0faf2ccd8838815d6142790cf4e742ade545682a2","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"c123d6765d79d399edfe960857c418557067c61523f302e944ac56b616d7aa1d","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"3ed6440e46d4d2967bdc4dcf84fc944ddfeaa746fb7c1e5357a9c61707ab78ab","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"db051ec0f9a0f117cb64413292c2c52764d5180fb68cf72d3f9330bfc8b579e1","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"32c6568bc592ce24d58748d77ac2a381470f559143315655f4626e529d3f54a6","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"d909ca1ffa5e56e65e7745ea1a376813c8730200f5b5a067e3112ea9e3474d8e","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":3,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":3,"kind":"sparse","probabilities":"d1e5022d715d06cdda2294d0ef591a505d1aa4e28f32e1ca890166bcca424860","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":5,"kind":"sparse","probabilities":"c0371c9337035b01364e09ef34fe08041cd161d787003ff25153ab3a47172e0e","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]},{"token":13,"kind":"sparse","probabilities":"24599cc0162aabac98c3b67b6b6708b25651d01bd6f1e6d813427884d5aad0f7","ids":"2d7826fa7f08f1cf44c8a557dd00123a9bbdbe4e62c28c24bace9714b23522a2","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"c404790c6b4c40b3f09243f9c62f6ab2b4fa2de19ce5716eff56f34605aa0dce","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"9393fc8e2a69cb33902f5fd9aaa835196da3ca2d8941613045a423068fa04ea8","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"54b9a96795f2c42f4edc00d832738d918e456ff48b03db32fba001fe31428e85","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":3,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":3,"kind":"dense","probabilities":"458645c12ac90a5ca1554dd8680572d0c588f0ed38ced7c63f1b05727dc08e53","trace":["eval"]},{"token":5,"kind":"dense","probabilities":"fc9d0b59cbbf9d582f4e1ce80b91f8e0f4e1b2882c700f7d2975f0683a9f740e","trace":["eval"]},{"token":13,"kind":"dense","probabilities":"cb06f1771a5506c0e5f8e12c593f460b4de317aae859c73ed7c0b9d1c9f75f9a","trace":["eval"]}],"counts":[[8,2],[3,1],[5,1],[13,1]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[8,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[8,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":17,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[8,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"da7d0e2c6421901e86bcf0fa444ceac603d40a98fa910331a1dc690312ecdb70","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"44a4f312ad010ea4056e1ef3b4f3919761b5f3d9c9bfa2ff9a354360d55116dd","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"5724df5f997f67018b709740564d936784c8b161517225df34f9313bc994dac4","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"ad87c5f6fd70b1306e339ca5ae23521e6c8fae947a2c1b6191a8c1e4db41049d","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"b797f74f92e1a4a7cd253e08ae7774f985f77e63435858283a00d0efba32e7c2","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"cd0ecd485895e0d2bb784bd369fa7a5a748002da874cd80c915bd77959650024","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"58aee3b04f7086deb49f0cb26a0df5c5e74e1ade991489ada736fbe94e83e263","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"f37444a69a69e842bfe29827e7ae2e4dc6e4bb1bd4cbcc4580ca52be036e05b3","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"06e72884d06e02f9f3e450e6c348ef7b3ae6ae7e15dc56a0a8220787fc6e6626","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"da7d0e2c6421901e86bcf0fa444ceac603d40a98fa910331a1dc690312ecdb70","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"44a4f312ad010ea4056e1ef3b4f3919761b5f3d9c9bfa2ff9a354360d55116dd","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"5724df5f997f67018b709740564d936784c8b161517225df34f9313bc994dac4","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"d66634ff790d5ee146d73480d80b003cb61e1a8170d67aec3afa816b88bb2ecf","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"ad87c5f6fd70b1306e339ca5ae23521e6c8fae947a2c1b6191a8c1e4db41049d","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"b797f74f92e1a4a7cd253e08ae7774f985f77e63435858283a00d0efba32e7c2","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"cd0ecd485895e0d2bb784bd369fa7a5a748002da874cd80c915bd77959650024","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"419460c569ba360630d0336cb76e6ed417f59f0bad63d4b0c947c4b37bad8d4e","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"58aee3b04f7086deb49f0cb26a0df5c5e74e1ade991489ada736fbe94e83e263","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"f37444a69a69e842bfe29827e7ae2e4dc6e4bb1bd4cbcc4580ca52be036e05b3","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"06e72884d06e02f9f3e450e6c348ef7b3ae6ae7e15dc56a0a8220787fc6e6626","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":575,"kind":"sparse","probabilities":"171fcbd9aa028dac7c1af33ed8fc137a26b072c26c66c667ec72040dccce1663","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":832,"kind":"sparse","probabilities":"171fcbd9aa028dac7c1af33ed8fc137a26b072c26c66c667ec72040dccce1663","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"171fcbd9aa028dac7c1af33ed8fc137a26b072c26c66c667ec72040dccce1663","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]}],"counts":[[2048,2],[575,1],[832,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":575,"kind":"sparse","probabilities":"0527c9f39f13c3f9240a4a94eef64b179917fb2ca447fe73ce8ea16d5c9fea25","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":1021,"kind":"sparse","probabilities":"9e1b0d0a468b49e46813a2f0c95cbfe521c34c14e588063a6d139cfec68d0eb0","ids":"cb856277a45c0bea75bef56441ad5ee069279a05c8f45de7a01ff5a43dc3fc43","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"b703348f7f34731e4c7e834cc4185a3048749b6fb66d3e9cd8fbc1fd9f06c971","ids":"697e4763cabb116b3872177b8bce39d3a6eef2d97c9e5f0ec68ef4c3748ffaac","trace":["eval"]}],"counts":[[2048,2],[575,1],[1021,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"5a32055ae3adff96e2fb7d06289a04802e54de61d227baac0e1991529bcae523","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"5a32055ae3adff96e2fb7d06289a04802e54de61d227baac0e1991529bcae523","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"5a32055ae3adff96e2fb7d06289a04802e54de61d227baac0e1991529bcae523","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"5793870bcb21f1dcc52039ce934ad8e4afecb8293d945cb200cb0d09ac9ec89e","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"bb73f8a83243e4a435918401cb2b4fb25f45803572bcf8de153f9f27197f9d6d","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"f0b92a84932b8750cd271467d2356d7c00c9a7bf9f207441147ff6ddbcfbdaae","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"a69467aaf32b5b57fdd67ca4cbc36ebb31204f214126bc2702e867933a0beb82","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"a69467aaf32b5b57fdd67ca4cbc36ebb31204f214126bc2702e867933a0beb82","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"a69467aaf32b5b57fdd67ca4cbc36ebb31204f214126bc2702e867933a0beb82","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"d885a82725d1936baa4cd2dd8e2fcbc8d5180d60b0455ca54fec219b3c1a6026","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"f0833aaca40bfb29f8c7651e454f174d1ffac00f2de156ef3e5f87ee67119b92","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"6ecd447bfca2610fdd95e65f422b7fba964678f70e4b878b09e0d514d2499b4c","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":511,"kind":"none","trace":["eval","argmax"]},{"token":768,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,1],[511,1],[768,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":632,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":889,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"dc97bdd31cdf66de5560377201c42c3456537b0211e50a237c8a2291d68e9834","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]}],"counts":[[2048,2],[632,1],[889,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":632,"kind":"sparse","probabilities":"916cc022d12a1f42959f8184e669716ae2c08b859c43b52db5113b8ca6aacb53","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":1025,"kind":"sparse","probabilities":"05fa04218b443a460fe2d07f160b617b866923f5ceacb37f89f98c28c5a19750","ids":"8e877d7427cb5ce4aa06e5852fd71476c0737a43d9ab8d938f031807082fa2c1","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"4eda87234254209536e57b3c6ab9c80f6f5be597f272ce6545fba66c07beeaf8","ids":"65bd972d17cf565dc0551530fc0f94e0eaf735e04e4eaf74c824e9ad7e1a6055","trace":["eval"]}],"counts":[[2048,2],[632,1],[1025,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"3a99f2099ca06be4797a4aecc0675e1d87b2ccd95f851a610f3dafe470efee5e","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"3a99f2099ca06be4797a4aecc0675e1d87b2ccd95f851a610f3dafe470efee5e","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"3a99f2099ca06be4797a4aecc0675e1d87b2ccd95f851a610f3dafe470efee5e","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"3594736d6ce90a7368f866828d91aa46f8d9d46e3344d1f7a856f09d1bf13220","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"0f680b23b28d752ef1d3d2dc4c7a2445753efc4b38c7b4955b2e469c2a1f4366","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"e32fc8ee8f10e6ab0971d2177f7d16a3a8ff16883007f6226c18adbefe72d141","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"7bb4832fd75cfc6d7fbea996d6a1964d6e2c9718a7bfd650dd53d7ef58962331","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"7bb4832fd75cfc6d7fbea996d6a1964d6e2c9718a7bfd650dd53d7ef58962331","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"7bb4832fd75cfc6d7fbea996d6a1964d6e2c9718a7bfd650dd53d7ef58962331","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"27569aab4d7b46dafc9aba437e2eadb8e37589f0fdb2d0260c4fd2ae5c54f893","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"e6f1f98142c9d501286ddfb70b56e21968e35dadca0d97f931bc783140cde905","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"ac210105d04dd5634656f57d3e8e40fd909db50395a83996b7bed58048c9a0db","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"83980304450b9970c5bf1e9600e6331732eafa3d81c24bddf6b17695e26c635a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"e41dba81c54a5816f1893013e9b68e4c0cf6daedce3697640588329f8eb1274b","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"ed0ecb17aae4e14f30d73d4390672c06a1bc45b29a5d5b996f99d4af72344a58","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"2b973a12e2417f1672bed7b31b8a5d4946ad7827f447359e38d71bdeca4c05a2","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"413b0be71809a549cf911aeccf6a54bd0b38d24baf4399b3dcf42b0c6cf66452","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"a0b3a62ecdfb80fc908324cafc4a6e175eecbfe6614107ba478866116be11605","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"bf15b4ea545d106d590f0b259c9ef1ebdfea706c236a59595bbb2c7f2b4ecf21","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"55d90c3a928c0be4ec826f0ad8dd74e359be06bc99292bdab579ce32942d5a1c","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"0e91f7d1de8dddbc59310792b5a28ccdff65a5445a906876be45ef361129e656","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"83980304450b9970c5bf1e9600e6331732eafa3d81c24bddf6b17695e26c635a","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"e41dba81c54a5816f1893013e9b68e4c0cf6daedce3697640588329f8eb1274b","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"ed0ecb17aae4e14f30d73d4390672c06a1bc45b29a5d5b996f99d4af72344a58","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"a89be024ed62a2917ef40c262822b0bea448a2238b64e801ce121468bc651f9b","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"2b973a12e2417f1672bed7b31b8a5d4946ad7827f447359e38d71bdeca4c05a2","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"413b0be71809a549cf911aeccf6a54bd0b38d24baf4399b3dcf42b0c6cf66452","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"a0b3a62ecdfb80fc908324cafc4a6e175eecbfe6614107ba478866116be11605","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"c9e47f1005176ff52944ac7b26dc11c662c3674838fe3256720e0a9e5f2755c8","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"bf15b4ea545d106d590f0b259c9ef1ebdfea706c236a59595bbb2c7f2b4ecf21","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"55d90c3a928c0be4ec826f0ad8dd74e359be06bc99292bdab579ce32942d5a1c","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"0e91f7d1de8dddbc59310792b5a28ccdff65a5445a906876be45ef361129e656","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":575,"kind":"sparse","probabilities":"f2854d89845622fc43ec17a5b29897ae10307ed7e29230893cd383aa93f096e8","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":832,"kind":"sparse","probabilities":"f2854d89845622fc43ec17a5b29897ae10307ed7e29230893cd383aa93f096e8","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"f2854d89845622fc43ec17a5b29897ae10307ed7e29230893cd383aa93f096e8","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]}],"counts":[[2048,2],[575,1],[832,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":575,"kind":"sparse","probabilities":"d919cd92805919b924917665eb31088d72e73781469b5a0a6443addbf043c26f","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":1021,"kind":"sparse","probabilities":"16ae5d7087b3d9b4b8f6527fe132f5f7c8da6fcfeff6ecda96194871d7170950","ids":"cb856277a45c0bea75bef56441ad5ee069279a05c8f45de7a01ff5a43dc3fc43","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"52205983855c725eea477c35f794424f41020999d15f4e43676e2a1ae2769682","ids":"697e4763cabb116b3872177b8bce39d3a6eef2d97c9e5f0ec68ef4c3748ffaac","trace":["eval"]}],"counts":[[2048,2],[575,1],[1021,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"b23f78c3200444bae3b0e5bc6fc1a673b00863b3966fac0bfb85aec98770d415","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"b23f78c3200444bae3b0e5bc6fc1a673b00863b3966fac0bfb85aec98770d415","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"b23f78c3200444bae3b0e5bc6fc1a673b00863b3966fac0bfb85aec98770d415","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"96a574d996d4fa43ffe0220b7bda92975665828318e228a7ca75bd25fc77e396","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"72f35b638c047be359bedeb0cb2ea17d6a01f56a7f52e9933ffefc821af53102","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"1423443cea469fc83fe672f9e17f134e257328ccc2b52294218e293569dafac9","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"e2d6cd1c9d170425ee2c3706712652ab36e6ba928008b980d6dc4e6ed66bb587","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"e2d6cd1c9d170425ee2c3706712652ab36e6ba928008b980d6dc4e6ed66bb587","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"e2d6cd1c9d170425ee2c3706712652ab36e6ba928008b980d6dc4e6ed66bb587","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"2d47b73cbe92c7e4fa6976479f406dd12b4f2ab67ed5380aeb9b291bcfa9b23b","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"15e76851c3e639556ba206c93cb890f8ea41bd0c9442af937fcad4c6f3bb2a72","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"3cc3693d3ffc12e718f59d9db35adf896b9f7360488b58eb108d4107be9a6ad1","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":511,"kind":"none","trace":["eval","argmax"]},{"token":768,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,1],[511,1],[768,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":632,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":889,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"24d58800d59970c18c0bd4458298207891993ca562af6431950f673c4251e18a","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]}],"counts":[[2048,2],[632,1],[889,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":632,"kind":"sparse","probabilities":"0ee2457838d67c964c6d6ef82e74fbdc63d3d36d8b43eaf68eeb0d1d42c73693","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":1025,"kind":"sparse","probabilities":"3183aeffacdf7653936eae4d6c33e2dd911cb6bd368acd91228410c4277df96a","ids":"8e877d7427cb5ce4aa06e5852fd71476c0737a43d9ab8d938f031807082fa2c1","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"27b38d1b028f8548de97cb608a6b93b32c65f62ea51f2d6e51074a3843aa35a6","ids":"65bd972d17cf565dc0551530fc0f94e0eaf735e04e4eaf74c824e9ad7e1a6055","trace":["eval"]}],"counts":[[2048,2],[632,1],[1025,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"b98aa911f65ddfbfbaf947ae9499db3b08418820425f017abb0185cb2486a292","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"b98aa911f65ddfbfbaf947ae9499db3b08418820425f017abb0185cb2486a292","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"b98aa911f65ddfbfbaf947ae9499db3b08418820425f017abb0185cb2486a292","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"e5236c9b64a08568b20822c2f506c3ab18ece7f21ef76b8808733be46bf83aa3","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"0d240c5d68abd9f82bb4a8659da8d95afcd6f9069734646f5335903a5881b791","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"82afb4f0845db6dbb40ad37370144b95f309a16f64d50c89affef3858b41dca5","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"b0f8cfac7852cfee38fdd0df8fadf86602b86efac82d5a821c7a273c50dfb1b7","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"b0f8cfac7852cfee38fdd0df8fadf86602b86efac82d5a821c7a273c50dfb1b7","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"b0f8cfac7852cfee38fdd0df8fadf86602b86efac82d5a821c7a273c50dfb1b7","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"2b68b183b2b6c1435c5bb148b21598f9c8a9097f341c514417b5e7d24c30319a","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"edc669a2539e8c8e38980c9d39fac6c710909ae50d072548e9930d9c2c764173","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"7cc592edb444ed1ae5ca82d69b1f00e23bf81fefb0babe9b4e24210ac3c9d523","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"0ab62664f019b0235f757353841464d4706743cd8f2eb84778c7dfa0d47b65d2","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"cab1d3c9fcff8046a15898f31bb77fd6692b0399b9cce606970a9d26a44010d8","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"0ee5f7fc21b50415130afbf0f1e175fe8c9db49694b234fe085e93a5d792ebe6","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"0f2442a6fae47bbe090da62eafeb0d7cc10bc2ddfa266fa97fce56fa48aeb6dd","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"e5648213270d6d22dd873dbdf6621956f356d5993cc2ece6a565d533c961f6b3","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"c829590faa97fc1e420f7e2a0ca8ecac148d2faa7dfd649750642d552681d62d","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"b7304a72aa6c03beaf8504aaa0e054647759854beec876457f3bed9b7fa78163","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"3fa9eebe59670dd7512b8e4e7b6476552beee38a2712a98bbbfd5857fe97ffcb","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"0326c6ff2eb1547d86aacd0a2412d8e05263aea9b9212f01c6f1fcf9af9d6ac3","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"471c4071ec6872287af3d5f73af2f9638102290fa0c7e717b9ac5eb3e4069c91","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"bf40ddcf971b225e836c0e05482e1ba6ee3a25d4f0cc1f9e45a6f16bb891d699","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"517e64cd81ee7e375712c4268e0901c44f058ae013b8172825fbc364df4430d2","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":637,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":894,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]}],"counts":[[2048,2],[637,1],[894,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":637,"kind":"sparse","probabilities":"0f2442a6fae47bbe090da62eafeb0d7cc10bc2ddfa266fa97fce56fa48aeb6dd","ids":"7fad64ce889bc93c2da45d83eff0b6518c6b0df7f5f4b54469730ae306520658","trace":["eval"]},{"token":1015,"kind":"sparse","probabilities":"e5648213270d6d22dd873dbdf6621956f356d5993cc2ece6a565d533c961f6b3","ids":"7110e2a883556b72ba3773d733ce7b3bee2e748016b1246b37263256f184cd6f","trace":["eval"]},{"token":2814,"kind":"sparse","probabilities":"c829590faa97fc1e420f7e2a0ca8ecac148d2faa7dfd649750642d552681d62d","ids":"5b5a58e67ef95e85f927019fc82b231ea896a77b48ca805fe6c698d1ae992d40","trace":["eval"]}],"counts":[[2048,2],[637,1],[1015,1],[2814,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":924,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"cdd683c12bf7dfb5d77f1f45bb6bf073b3902541c6eac133e566803fdbaa32df","trace":["eval"]}],"counts":[[2048,2],[924,1],[1296,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"b7304a72aa6c03beaf8504aaa0e054647759854beec876457f3bed9b7fa78163","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"3fa9eebe59670dd7512b8e4e7b6476552beee38a2712a98bbbfd5857fe97ffcb","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"0326c6ff2eb1547d86aacd0a2412d8e05263aea9b9212f01c6f1fcf9af9d6ac3","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":928,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"88a051d74f8d6c9a8d9a61012f1bc86c75314f88553f1975b55ae686d0b9ba77","trace":["eval"]}],"counts":[[2048,2],[928,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":929,"kind":"dense","probabilities":"471c4071ec6872287af3d5f73af2f9638102290fa0c7e717b9ac5eb3e4069c91","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"bf40ddcf971b225e836c0e05482e1ba6ee3a25d4f0cc1f9e45a6f16bb891d699","trace":["eval"]},{"token":3264,"kind":"dense","probabilities":"517e64cd81ee7e375712c4268e0901c44f058ae013b8172825fbc364df4430d2","trace":["eval"]}],"counts":[[2048,2],[929,1],[1297,1],[3264,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":575,"kind":"sparse","probabilities":"7376de767a0a675256c7a0ce70af821ed0dd2fa0fc8c902a25035f506c3d10e4","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":832,"kind":"sparse","probabilities":"7376de767a0a675256c7a0ce70af821ed0dd2fa0fc8c902a25035f506c3d10e4","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"7376de767a0a675256c7a0ce70af821ed0dd2fa0fc8c902a25035f506c3d10e4","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]}],"counts":[[2048,2],[575,1],[832,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":575,"kind":"sparse","probabilities":"b89d3c7f14da559bdd2750410b3d60f60704bb898fa20454fd932c1444b9e45f","ids":"6a92af0fd36f1d43c81bfe388246ddd0071e3525684883b1f8dc5c0d7b36f8e0","trace":["eval"]},{"token":1021,"kind":"sparse","probabilities":"d9cf2e272392708985a353636ebb99136c7f6f3c37a5b926fab22bd96c6fe892","ids":"cb856277a45c0bea75bef56441ad5ee069279a05c8f45de7a01ff5a43dc3fc43","trace":["eval"]},{"token":2820,"kind":"sparse","probabilities":"069960fe7ecd3526d23d757135b875660ee3dcbae9d3efaf8a124f7d724077c4","ids":"697e4763cabb116b3872177b8bce39d3a6eef2d97c9e5f0ec68ef4c3748ffaac","trace":["eval"]}],"counts":[[2048,2],[575,1],[1021,1],[2820,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"e5331e74c059223ac06c73ccf2c817d88ee1e702a8adb27c037210e7935219c9","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"e5331e74c059223ac06c73ccf2c817d88ee1e702a8adb27c037210e7935219c9","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"e5331e74c059223ac06c73ccf2c817d88ee1e702a8adb27c037210e7935219c9","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"4a255a0f6261445bacb78ba1b65d771b44d1fdf302b0d8120a926d30f35fc696","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"8bbdb0c3fb3d57f020b9b5e6f3927f29db4be65be844ee77edd5064d090d9452","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"6f2a28d85a24cd7ff03f9ce23bf7822782a836217bb4de8fcfdc3cb97ecafcbd","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":930,"kind":"dense","probabilities":"40d522a4810a775076a8cecac54249de6ec926004ce603b67c0a4f17affaa3e0","trace":["eval"]},{"token":1296,"kind":"dense","probabilities":"40d522a4810a775076a8cecac54249de6ec926004ce603b67c0a4f17affaa3e0","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"40d522a4810a775076a8cecac54249de6ec926004ce603b67c0a4f17affaa3e0","trace":["eval"]}],"counts":[[2048,2],[930,1],[1296,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":930,"kind":"dense","probabilities":"b84e925da0de56164dcfa59add41f5cbcf035831fc99e316e268a0e176aebccf","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"eb738b1ff737af0139f726ba318a326338844b7d84380d3acd5620539db3a35d","trace":["eval"]},{"token":3265,"kind":"dense","probabilities":"81876724b969518e3a9a1a51868097738bd9d4d272966da843a5e4a6cd942487","trace":["eval"]}],"counts":[[2048,2],[930,1],[1297,1],[3265,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":254,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":254,"kind":"none","trace":["eval","argmax"]},{"token":511,"kind":"none","trace":["eval","argmax"]},{"token":768,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[254,1],[511,1],[768,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":632,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":889,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"4cc71cc4537dc609e35703ae619f9a3ec2c3475dd4c990a1fdcd09f0fff11fc5","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]}],"counts":[[2048,2],[632,1],[889,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":632,"kind":"sparse","probabilities":"8aad384b3d96d6eec690783f25efd71a325753c82bfffef398c11e924837462e","ids":"adc3e2dbda41e1c546b8b1748c2a3972d3d676fdb50068d1d50610eac16991bc","trace":["eval"]},{"token":1025,"kind":"sparse","probabilities":"45d432f323d949c39a9fff3b6a4365fcc7141624ff0c908cada71aa721fe64ce","ids":"8e877d7427cb5ce4aa06e5852fd71476c0737a43d9ab8d938f031807082fa2c1","trace":["eval"]},{"token":2824,"kind":"sparse","probabilities":"f98c086a188a207dfe356fefa6c5cb19f5b0f962b91a38a6290e936ba02bc5f5","ids":"65bd972d17cf565dc0551530fc0f94e0eaf735e04e4eaf74c824e9ad7e1a6055","trace":["eval"]}],"counts":[[2048,2],[632,1],[1025,1],[2824,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"77a7e287e8a9f94ebb585533a20a0fd0673b43c1a61fcec38da88c5e47e0830c","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"77a7e287e8a9f94ebb585533a20a0fd0673b43c1a61fcec38da88c5e47e0830c","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"77a7e287e8a9f94ebb585533a20a0fd0673b43c1a61fcec38da88c5e47e0830c","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"a90312a8c8afe314c0946d9be6309f36aeb184c7ceceadc8046df075c2aff29a","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"14f00388a7fb3450bf75654902f3e1108909e689c2078f1fc594b18e88e5628b","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"e02c78b105dadc092d033fca1b5f6728f3df80ed2c9d74fc22daadca7c8efbf1","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":936,"kind":"dense","probabilities":"e16b332f3a5183145436f8a88832524ee0b426534139517efcc35030142269d1","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"e16b332f3a5183145436f8a88832524ee0b426534139517efcc35030142269d1","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"e16b332f3a5183145436f8a88832524ee0b426534139517efcc35030142269d1","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":936,"kind":"dense","probabilities":"2d38fd36dc402e651283c5198d6f7a7eb69609612942ee349df7064e440e6049","trace":["eval"]},{"token":1299,"kind":"dense","probabilities":"81d7aff1f318c92599709402f8f63f3893828a20381ef41b0915687a3c4a05be","trace":["eval"]},{"token":3268,"kind":"dense","probabilities":"2951085a70191265e631d2ee45640c8d562deec09ca22182557c00d36032c6b7","trace":["eval"]}],"counts":[[2048,2],[936,1],[1299,1],[3268,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"0ab62664f019b0235f757353841464d4706743cd8f2eb84778c7dfa0d47b65d2","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"cab1d3c9fcff8046a15898f31bb77fd6692b0399b9cce606970a9d26a44010d8","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"0ee5f7fc21b50415130afbf0f1e175fe8c9db49694b234fe085e93a5d792ebe6","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[2048,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[2048,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":885,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":1233,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]},{"token":3104,"kind":"dense","probabilities":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df","trace":["eval"]}],"counts":[[2048,2],[885,1],[1233,1],[3104,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":885,"kind":"dense","probabilities":"6c70886bb302a91980585c234d2929baf43b76e6a4fc45efdd6a2e805d3de3d2","trace":["eval"]},{"token":1234,"kind":"dense","probabilities":"079c21a133c0b6290b22160672f4577ccf94beb1927f3cc55f9f6248b42f55ee","trace":["eval"]},{"token":3106,"kind":"dense","probabilities":"f704488e93c8be183a1900799b0dea6191915f0a8fa0af43d218e1b516680548","trace":["eval"]}],"counts":[[2048,2],[885,1],[1234,1],[3106,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":931,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]},{"token":3266,"kind":"dense","probabilities":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3266,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":931,"kind":"dense","probabilities":"6d3ac12f0299740cbd17cb32243a5c6990f327919d3e263f6db9f434ab59e773","trace":["eval"]},{"token":1297,"kind":"dense","probabilities":"1b856aea5839164b8f1218a2d3e53776db2b0b20d3e1386d5fcc7c2e321b3ff9","trace":["eval"]},{"token":3267,"kind":"dense","probabilities":"12d3d5a76d4270d5a923c1949de44624326f52b60eb94ea12aece5d8a2bf54ed","trace":["eval"]}],"counts":[[2048,2],[931,1],[1297,1],[3267,1]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[2048,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[2048,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":4097,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[2048,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"1397f01137a5e66c47e1f50caa1d04d35ce0ce075cb6cf90efa41e0a0610a93e","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"723b682954adbb0c6fe4762219a84aa4342b5ed1d667d39176bd63a5122be48d","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"d3ad8d1625df0cf4c53b0be6f6dd138ff25182881a89c2c2d699dc72e5d47230","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"ac770568469db33d09ae659f4a5cbe30d6b852751187a4ea7f194a5a2b42d22d","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"a458286c891636859c42234adcf4320699a4240327ce07f0f9fc26bd2bc925eb","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"540a332a834d7a0c13e97f9b79d26f34e2de4b38116c08a20c0187ef38068ee4","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"c4d0773756c2cdb9f8c87bb81c3155d5666eef24b8e0b90c37818872f20ba24a","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"1397f01137a5e66c47e1f50caa1d04d35ce0ce075cb6cf90efa41e0a0610a93e","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"723b682954adbb0c6fe4762219a84aa4342b5ed1d667d39176bd63a5122be48d","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"d3ad8d1625df0cf4c53b0be6f6dd138ff25182881a89c2c2d699dc72e5d47230","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"8df884eca07c6667466cae6b8334c444f9bcc1012a1186bd15ddd78990fa9896","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"ac770568469db33d09ae659f4a5cbe30d6b852751187a4ea7f194a5a2b42d22d","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"a458286c891636859c42234adcf4320699a4240327ce07f0f9fc26bd2bc925eb","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"540a332a834d7a0c13e97f9b79d26f34e2de4b38116c08a20c0187ef38068ee4","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":1792,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":4105,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[1792,1],[4105,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":2049,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8f6e535883abcc2d05d58b4305d79748fb57e4c6ff53e41fa66f235f6a71d792","trace":["eval","eval"]},{"token":4619,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8c02134cc809f02d840cd5951c912abdddca5128bf636a8a596e45666421749c","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[2049,1],[4619,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"3b81d3e38ea0088eb2b32ff52ccae31f36a90a14fe1e98534c563e433363ea79","trace":["eval"]},{"token":78633,"kind":"dense","probabilities":"3b81d3e38ea0088eb2b32ff52ccae31f36a90a14fe1e98534c563e433363ea79","trace":["eval"]},{"token":197956,"kind":"dense","probabilities":"3b81d3e38ea0088eb2b32ff52ccae31f36a90a14fe1e98534c563e433363ea79","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78633,1],[197956,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56432,"kind":"dense","probabilities":"461d515503b34c98d174d7388560fbcc1a9758981cbc84678bfd4b70d5d01c18","trace":["eval"]},{"token":78633,"kind":"dense","probabilities":"28ce1609d78e38f0475e68a0f13446fa1cf4e0d494166dc2347e649424d51bed","trace":["eval"]},{"token":197956,"kind":"dense","probabilities":"0ffd32efc4e641a8a52f292de3d8e8412c730bd6b1ff7df8ceecf967397adf58","trace":["eval"]}],"counts":[[124160,2],[56432,1],[78633,1],[197956,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56449,"kind":"dense","probabilities":"22dd6fb48435619488905683dc67d4a6b3fd9e43a81d50111575a875bfb19d67","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"22dd6fb48435619488905683dc67d4a6b3fd9e43a81d50111575a875bfb19d67","trace":["eval"]},{"token":198000,"kind":"dense","probabilities":"22dd6fb48435619488905683dc67d4a6b3fd9e43a81d50111575a875bfb19d67","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198000,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56449,"kind":"dense","probabilities":"d44556cd4dabbcd4fb6d99cd66d6e65b864d94f79ded4c64d46a3c4a1e3caa6e","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"f8f6c6223e881672d39626f4f59add14a599eb3660a98b35faf445a0f5fc7bab","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"e557cbea2819fabc6d574e7c935034fe0e1cf9739887f23b600064cb1e2b08df","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":327,"kind":"none","trace":["eval","argmax"]},{"token":584,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,1],[327,1],[584,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1612,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":3925,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1612,1],[3925,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1869,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"64edd9f7d14f012ccdfeb99612a51f96357710a2817dd2ab8dba4de23683caff","trace":["eval","eval"]},{"token":4439,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c1328fcaef690b2d32f54d4283ccf0661624cfbba8f719a029f2e52273bb9834","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1869,1],[4439,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"2c9acf44c1a67ae740a26af1f8621791880e0451e96055feee9fbabfe8959f63","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"2c9acf44c1a67ae740a26af1f8621791880e0451e96055feee9fbabfe8959f63","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"2c9acf44c1a67ae740a26af1f8621791880e0451e96055feee9fbabfe8959f63","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"1b856d43e78487caae46d6ad2a118bad333ffc171eacee65f7e2e8b5a4c3233e","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"4ff94c58ad478b6f69f41ef3ca763c2d6beaaddeeecd61fcac33a9d407fd25a7","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"44a6b4fd68a484069af0a03be33466bc46ae25303a41d5d6d1a150712da65fea","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"98c9902aaacd73c1339f29bc320d3c705c2411fd45eafbf62a49a08dd5f672fe","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"98c9902aaacd73c1339f29bc320d3c705c2411fd45eafbf62a49a08dd5f672fe","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"98c9902aaacd73c1339f29bc320d3c705c2411fd45eafbf62a49a08dd5f672fe","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"e48fbaba3ecf13afe44321996b61f438ce8ec381e078ff105693444ccd1a39d7","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"87ee322e1cccf76a7302d1bdc8ac8d65cc45603e58abcfa8bf5d89efa9873988","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"2cf721baa681009167f45df274cf93741b2d440be254879745f7fcab3b1102e0","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"a533c007720c63e1f1c7c3f47ffefbe5845484fcdeefaeda5f1feb7e4ef2af43","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"251ce8e8c82a5adc9e547b830ab4364dd81f2321d0930afd9d64562b32fae926","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"21a47cb17aef16a6aeffd0ecfb4ab5a34cd5acfcbb2ab0a5b1879852da70ea1d","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"a8cee6df95009d59d94111a812d2f4b3513afc7320f8512fcc78df901d0a9469","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"abffa85c9778504c1e216e7fa97484b0cc1fb6c47a6d2d703ee8b016dd87f3ab","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"da8f9bbbac9e15957c0235d9df31f6d8d793ea88a996967d40128092b76b5cda","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"04d8fdae91e419a93a7c796740dba1478d227079a2328e30e9eaaa78e32568e2","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"a533c007720c63e1f1c7c3f47ffefbe5845484fcdeefaeda5f1feb7e4ef2af43","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"251ce8e8c82a5adc9e547b830ab4364dd81f2321d0930afd9d64562b32fae926","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"21a47cb17aef16a6aeffd0ecfb4ab5a34cd5acfcbb2ab0a5b1879852da70ea1d","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"a17ee24c2d266d60577aba2b1387e8077db1b7aa8e4eb701d027586ffee722ae","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"a8cee6df95009d59d94111a812d2f4b3513afc7320f8512fcc78df901d0a9469","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"abffa85c9778504c1e216e7fa97484b0cc1fb6c47a6d2d703ee8b016dd87f3ab","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"da8f9bbbac9e15957c0235d9df31f6d8d793ea88a996967d40128092b76b5cda","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":1792,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":4105,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[1792,1],[4105,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":2049,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8f6e535883abcc2d05d58b4305d79748fb57e4c6ff53e41fa66f235f6a71d792","trace":["eval","eval"]},{"token":4619,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8c02134cc809f02d840cd5951c912abdddca5128bf636a8a596e45666421749c","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[2049,1],[4619,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"442b125598334ad7b3ae7951433e580f2115b9c09d8e3ba7a8dd5ad639c85653","trace":["eval"]},{"token":78634,"kind":"dense","probabilities":"442b125598334ad7b3ae7951433e580f2115b9c09d8e3ba7a8dd5ad639c85653","trace":["eval"]},{"token":197955,"kind":"dense","probabilities":"442b125598334ad7b3ae7951433e580f2115b9c09d8e3ba7a8dd5ad639c85653","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78634,1],[197955,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"6376118823635de9e648cbc805731d4a2b8eeac6a330781233cfc589555751fe","trace":["eval"]},{"token":78634,"kind":"dense","probabilities":"568a8f86f185eb2d3fba6b7c34fc86a199d3d856d0a9b36a60e2fe5153d98c2c","trace":["eval"]},{"token":197956,"kind":"dense","probabilities":"bd3fdb472b77e2be1480165df6691c1c485609ab98cce8570d5a742ff7a2803d","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78634,1],[197956,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56449,"kind":"dense","probabilities":"ee4c638ce0d5aa742a882c3669b48544d1db672355b8559c671534fa357ed3a7","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"ee4c638ce0d5aa742a882c3669b48544d1db672355b8559c671534fa357ed3a7","trace":["eval"]},{"token":198000,"kind":"dense","probabilities":"ee4c638ce0d5aa742a882c3669b48544d1db672355b8559c671534fa357ed3a7","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198000,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56449,"kind":"dense","probabilities":"af4161cd1db054265dff1aa87e7814f3268bb0f2f765373a2ec90008cff57f4f","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"5191f3ce27fb768df1d62e2f06b12d6a83ea1a05db5df7ad7160a7dca2074191","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"9bdec6c900650eb9f9425c905e0b026d6335e4493746ce10bd7fb5803138311a","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":327,"kind":"none","trace":["eval","argmax"]},{"token":584,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,1],[327,1],[584,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1612,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":3925,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1612,1],[3925,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1869,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"64edd9f7d14f012ccdfeb99612a51f96357710a2817dd2ab8dba4de23683caff","trace":["eval","eval"]},{"token":4439,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c1328fcaef690b2d32f54d4283ccf0661624cfbba8f719a029f2e52273bb9834","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1869,1],[4439,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"c42628aa7eb4bacb58019195293571b677d1982dc1f7530dba76194722614c32","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"c42628aa7eb4bacb58019195293571b677d1982dc1f7530dba76194722614c32","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"c42628aa7eb4bacb58019195293571b677d1982dc1f7530dba76194722614c32","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"18eaab0e235bc6c35e1754e2bd2e09638316bb2e18b3b15976fd3bb09e36d124","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"ae0e9b4050ff46e432570e059615be18b2d3a1486d7e5b643e2c29de045962ea","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"0d1c6e0ff18cea2f49d0c852c85f838e9f7f6a91c4b67af6a137767152d6d014","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"e3ae6ef0648d9869329efb7c24c2fa9db05783af1e13ce241a4a2a4b30504c5b","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e3ae6ef0648d9869329efb7c24c2fa9db05783af1e13ce241a4a2a4b30504c5b","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"e3ae6ef0648d9869329efb7c24c2fa9db05783af1e13ce241a4a2a4b30504c5b","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"7ae4024c0b3cbe5064b7ee6a2193f6539fa9ec59309859c54c6f4c8e9001a089","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"b8a1ed57e0b293fc0c565ec88081c17e82b33cf99f8e9a8d8dc4e3c8f5a59f23","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"e79c04e8ad72c76d480f504b5c80e56815ef411633a51de27a9a3c1ff9b18b7c","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"99fc6d2f7eafdddc6eb52e9bf60635e3ec2305961b82a286beaca078c8002941","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"74cb647e0b829c4e7f176920af5309a4a8d722b199706825f32ffc460e4ffeb1","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"3dc80b814c8143d5050dcaa020a80e4e15e080602827c3776c09e0c476a84e17","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float16","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"4a4c0d9e26dade8d1a18bcd580a94f1edd43882f62423180d7d860ad43b65c10","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"77ade723c0f2c4d6042585f2ffc3fdeea580335acf4d436985e644d442ccac49","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"1347e572949797ff718de3b0db239a74919526472f7751d5c89bab4600949f67","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"ba3b5c907c53ab18627d12dadfb23e9339bcbd5019d1707245fba12719482d19","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"1a7f75ac16f9db3df7c867a7f52cb97fd61e1f45290803a69300001f9daed44a","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"07b1f72d88ea26d719c009002fa9ab36b0ca10cbc2d066b3178e6bb1c4448fff","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"plain","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":244,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":244,"kind":"none","trace":["eval","argmax"]},{"token":501,"kind":"none","trace":["eval","argmax"]},{"token":758,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[244,1],[501,1],[758,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":1786,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":4099,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[1786,1],[4099,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1272,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c2f1876c9c8d2c52bc94fc3c74439e37a0c0801187aa5f9c2349832c8f4ab927","trace":["eval","eval"]},{"token":2043,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"9e2d739c38f3b8456359ffc2e591f490b54c13639e150323b0f3c7e70fd3dcc6","trace":["eval","eval"]},{"token":4613,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e599de043e21bec2ca1bd0d0174a582ceafebc99893bc9eaa3fae6c725b6dfe8","trace":["eval","eval"]}],"counts":[[124160,2],[1272,1],[2043,1],[4613,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"39fb8f20e228f56fb723404d105664c09c6bc8f4c7b59ed3c885e769535dbd45","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"4a4c0d9e26dade8d1a18bcd580a94f1edd43882f62423180d7d860ad43b65c10","trace":["eval"]},{"token":78629,"kind":"dense","probabilities":"77ade723c0f2c4d6042585f2ffc3fdeea580335acf4d436985e644d442ccac49","trace":["eval"]},{"token":197952,"kind":"dense","probabilities":"1347e572949797ff718de3b0db239a74919526472f7751d5c89bab4600949f67","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78629,1],[197952,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]},{"token":198004,"kind":"dense","probabilities":"dfa60a7ca9bb97805b7e9f88395a59d4b59a9f860399577b13053ecf067b2264","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78656,1],[198004,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"ba3b5c907c53ab18627d12dadfb23e9339bcbd5019d1707245fba12719482d19","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"1a7f75ac16f9db3df7c867a7f52cb97fd61e1f45290803a69300001f9daed44a","trace":["eval"]},{"token":198005,"kind":"dense","probabilities":"07b1f72d88ea26d719c009002fa9ab36b0ca10cbc2d066b3178e6bb1c4448fff","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198005,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]},{"token":1,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[1,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"rank3","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":250,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":250,"kind":"none","trace":["eval","argmax"]},{"token":507,"kind":"none","trace":["eval","argmax"]},{"token":764,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[250,1],[507,1],[764,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":1792,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":4105,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[1792,1],[4105,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1278,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"688f42355215626051404e56590fa8370e807af086cf55a7172391081dc147cd","trace":["eval","eval"]},{"token":2049,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8f6e535883abcc2d05d58b4305d79748fb57e4c6ff53e41fa66f235f6a71d792","trace":["eval","eval"]},{"token":4619,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"8c02134cc809f02d840cd5951c912abdddca5128bf636a8a596e45666421749c","trace":["eval","eval"]}],"counts":[[124160,2],[1278,1],[2049,1],[4619,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"15d703bd141437d4d79c9e3546eb93f0a1e9c9ca98277f9e47f515769cef130c","trace":["eval"]},{"token":78634,"kind":"dense","probabilities":"15d703bd141437d4d79c9e3546eb93f0a1e9c9ca98277f9e47f515769cef130c","trace":["eval"]},{"token":197955,"kind":"dense","probabilities":"15d703bd141437d4d79c9e3546eb93f0a1e9c9ca98277f9e47f515769cef130c","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78634,1],[197955,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"56a355bb570e4e12eab2ca3611411dd1bff866258de55c586ffe1b1e5c63a3e7","trace":["eval"]},{"token":78634,"kind":"dense","probabilities":"da86c1231fe7cb3144bb47d0c7e85e1cdb2465d2327afc9329f3d3f34c634982","trace":["eval"]},{"token":197956,"kind":"dense","probabilities":"b8c6177b660620bef99b7fd448672253a8ffd664c1d92515d36beb1663f602c5","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78634,1],[197956,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56449,"kind":"dense","probabilities":"fd8fb4ade5febfbcc8ceba6e597d4dca7bec47d2fc7ed369f860f2202f58df9a","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"fd8fb4ade5febfbcc8ceba6e597d4dca7bec47d2fc7ed369f860f2202f58df9a","trace":["eval"]},{"token":198000,"kind":"dense","probabilities":"fd8fb4ade5febfbcc8ceba6e597d4dca7bec47d2fc7ed369f860f2202f58df9a","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198000,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56449,"kind":"dense","probabilities":"f125cf2bcbf95f763c2d90e1252c67dadf60dd5f0622ff7ebe9080bbb8eb19a8","trace":["eval"]},{"token":78656,"kind":"dense","probabilities":"a37eb28e259967a2f810a8f04e6423b8fbfe54ca9f40e1dc4b0042d4ff967f93","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"98d2a9e7102241b4e9386a219af3cb38d31b0a5f2a485170f4276f0ee3625f64","trace":["eval"]}],"counts":[[124160,2],[56449,1],[78656,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"strided","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":70,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":70,"kind":"none","trace":["eval","argmax"]},{"token":327,"kind":"none","trace":["eval","argmax"]},{"token":584,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[70,1],[327,1],[584,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1612,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":3925,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1612,1],[3925,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":1098,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"bb018d1c3acfbb2c9123db20d3d8e707d1132e237a63225ebb2f0d2d126a54c8","trace":["eval","eval"]},{"token":1869,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"64edd9f7d14f012ccdfeb99612a51f96357710a2817dd2ab8dba4de23683caff","trace":["eval","eval"]},{"token":4439,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"c1328fcaef690b2d32f54d4283ccf0661624cfbba8f719a029f2e52273bb9834","trace":["eval","eval"]}],"counts":[[124160,2],[1098,1],[1869,1],[4439,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":56433,"kind":"dense","probabilities":"671ee0bd02a4e6ee18f0ebf9b9eca7ed2e702cf30de5c1f0f7bc2d79fb64bbbb","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"671ee0bd02a4e6ee18f0ebf9b9eca7ed2e702cf30de5c1f0f7bc2d79fb64bbbb","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"671ee0bd02a4e6ee18f0ebf9b9eca7ed2e702cf30de5c1f0f7bc2d79fb64bbbb","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":56433,"kind":"dense","probabilities":"7c8b061253145eec6b308636606b46f0f4825f5315286caefb0711a5677d1a03","trace":["eval"]},{"token":78637,"kind":"dense","probabilities":"6a3dfd7ac2a0554cd07cbfcefd1c0f059d5d00513fcf9b406fabac49cd5bdc93","trace":["eval"]},{"token":197960,"kind":"dense","probabilities":"8bd1a46eeb7569f440cd4b6b349f4883ead2bd2cc11134fe5a55aefffa438b6a","trace":["eval"]}],"counts":[[124160,2],[56433,1],[78637,1],[197960,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56450,"kind":"dense","probabilities":"6a586d8d7317f1103c019acf0785047ba24b0595edca79f1a298f1f3cf7d9aef","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6a586d8d7317f1103c019acf0785047ba24b0595edca79f1a298f1f3cf7d9aef","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"6a586d8d7317f1103c019acf0785047ba24b0595edca79f1a298f1f3cf7d9aef","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56450,"kind":"dense","probabilities":"5ce065c0a5a97b193819631264c026a4525a9f6298baff952bc1c69d6ee855df","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"d4ee2c6850ce90cc2c54cf5a9e7145ccd79dd822fb62881395cc1cb8403398ce","trace":["eval"]},{"token":198006,"kind":"dense","probabilities":"6640699245f42af6785407acbf9f20887deca6ffe446909e51b3695cbe1ca970","trace":["eval"]}],"counts":[[124160,2],[56450,1],[78657,1],[198006,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"reverse","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"pattern","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"99fc6d2f7eafdddc6eb52e9bf60635e3ec2305961b82a286beaca078c8002941","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"74cb647e0b829c4e7f176920af5309a4a8d722b199706825f32ffc460e4ffeb1","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"3dc80b814c8143d5050dcaa020a80e4e15e080602827c3776c09e0c476a84e17","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":2,"kind":"none","trace":["eval","argmax"]},{"token":3,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,1],[2,1],[3,1]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":false,"steps":[{"token":4,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":6,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]},{"token":15,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"f5c4cb24f4c9b43e624e0a83cb11934f932dbd5db24eee67fed696354ac88a61","trace":["eval","eval"]}],"counts":[[124160,2],[4,1],[6,1],[15,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"sparse","penalties":true,"steps":[{"token":5,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"a695bf9c1f563564ba4d133650cf362f372ea8f8f50290c9e526423ebc89e0a7","trace":["eval","eval"]},{"token":8,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"dc2d743eb8cc7156d770757e0801dea1a86868322607972e897973bfe5d724fd","trace":["eval","eval"]},{"token":18,"kind":"sparse","probabilities":"dab41ff849bcb42483789223c1aa01f11435a7fd9de13f6e9f0697420e1768f7","ids":"e229914d33347e8d96bbb5bb9e6bd48514fcd0f2291f51b9fb87d2891ef24652","trace":["eval","eval"]}],"counts":[[124160,2],[5,1],[8,1],[18,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":false,"steps":[{"token":53629,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":74724,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]},{"token":188102,"kind":"dense","probabilities":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f","trace":["eval"]}],"counts":[[124160,2],[53629,1],[74724,1],[188102,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_top_p","penalties":true,"steps":[{"token":53630,"kind":"dense","probabilities":"aaebba77e4bfb676bd88cb006c0fd069f15049d37bbb7346162f3adb6f3383d6","trace":["eval"]},{"token":74726,"kind":"dense","probabilities":"826a7b7c85c15078e32c149dae3bab3149e60a471b6ae2852f81d26ac0dc6f53","trace":["eval"]},{"token":188104,"kind":"dense","probabilities":"ec5dee801b446b782eadd94401d8f535097b19f5dc42aeeca3cfbdc1eb41eedf","trace":["eval"]}],"counts":[[124160,2],[53630,1],[74726,1],[188104,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":false,"steps":[{"token":56452,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]},{"token":198001,"kind":"dense","probabilities":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198001,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"equal","profile":"dense_all","penalties":true,"steps":[{"token":56452,"kind":"dense","probabilities":"5c58c0069b527fc03ec502455db588032ee432e3319787324b333d2219ad5c76","trace":["eval"]},{"token":78657,"kind":"dense","probabilities":"e13e3f65ddb79b891d4968f3812a68bdc5dcc954b215ce5f872e3fccb623df74","trace":["eval"]},{"token":198002,"kind":"dense","probabilities":"5b5e124250fa7ba7fa8b249ab9fb1aa4d3abdffb3a02aa2c1bf8ae9b73912334","trace":["eval"]}],"counts":[[124160,2],[56452,1],[78657,1],[198002,1]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":false,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"greedy","penalties":true,"steps":[{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]},{"token":0,"kind":"none","trace":["eval","argmax"]}],"counts":[[124160,2],[0,3]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":false,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"sparse","penalties":true,"steps":[{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]},{"token":0,"kind":"sparse","probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","trace":["eval","eval"]}],"counts":[[124160,2],[0,3]],"next_rng":4604266380111679709} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_top_p","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":false,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} +{"vocab":248320,"dtype":"float32","layout":"broadcast","mode":"nonfinite","profile":"dense_all","penalties":true,"steps":[{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]},{"error":true,"trace":["eval"]}],"counts":[[124160,2]],"next_rng":4597358663699103712} diff --git a/tests/fixtures/mtplx-sampler-fallback.jsonl b/tests/fixtures/mtplx-sampler-fallback.jsonl new file mode 100644 index 0000000..9677cb6 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-fallback.jsonl @@ -0,0 +1,150 @@ +{"kind":"sparse","vocab":17,"mode":"unique","top_p":0.95,"ids":[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947]]} +{"kind":"dense","vocab":17,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"2c1fa5b259d733f7be824a9020ad7a3208496346b2f94ee772545880d8cd1091"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"bf2c3bfa895b95ebe675f985d33d3b278975c40104afacb56c3058dd3ac5cfd2"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"2c1fa5b259d733f7be824a9020ad7a3208496346b2f94ee772545880d8cd1091"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"bf2c3bfa895b95ebe675f985d33d3b278975c40104afacb56c3058dd3ac5cfd2"} +{"kind":"sparse","vocab":17,"mode":"unique","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490]]} +{"kind":"dense","vocab":17,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"2c1fa5b259d733f7be824a9020ad7a3208496346b2f94ee772545880d8cd1091"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"0022e50b43c275a9a6815527e41d9c301b9e6f663ce9d8e6301660a339fa41c8"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"2c1fa5b259d733f7be824a9020ad7a3208496346b2f94ee772545880d8cd1091"} +{"kind":"dense","vocab":17,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"0022e50b43c275a9a6815527e41d9c301b9e6f663ce9d8e6301660a339fa41c8"} +{"kind":"sparse","vocab":17,"mode":"sharp","top_p":0.95,"ids":[[1,2,3,4,5,6,7,8,9,10,11,12,13,14],[1,2,3,4,5,6,7,8,9,10,11,12,13,14],[1,2,3,4,5,6,7,8,9,10,11,12,13,14],[1,2,3,4,5,6,7,8,9,10,11,12,13,14]],"probabilities":[[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041],[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041]]} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"fb51e32a55066541a8f799749e1336832f6924d638ed835f3e48e9afb93073f6"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"13d698014630d1b867a5831732695ff8a334448d74b9ad4cabaa4916863ab8f8"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"fb51e32a55066541a8f799749e1336832f6924d638ed835f3e48e9afb93073f6"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"13d698014630d1b867a5831732695ff8a334448d74b9ad4cabaa4916863ab8f8"} +{"kind":"sparse","vocab":17,"mode":"sharp","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295],[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295]]} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"fb51e32a55066541a8f799749e1336832f6924d638ed835f3e48e9afb93073f6"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"66157103ef7c696bf947dac6a660e9c9604f5e142d3749e36d73bda23987f695"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"fb51e32a55066541a8f799749e1336832f6924d638ed835f3e48e9afb93073f6"} +{"kind":"dense","vocab":17,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"66157103ef7c696bf947dac6a660e9c9604f5e142d3749e36d73bda23987f695"} +{"kind":"sparse","vocab":17,"mode":"equal","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]]} +{"kind":"dense","vocab":17,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"sparse","vocab":17,"mode":"equal","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]]} +{"kind":"dense","vocab":17,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"sparse","vocab":17,"mode":"nonfinite","top_p":0.95,"ids":[[0],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4607182418800017408],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947]]} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":17,"mode":"nonfinite","top_p":1.0,"ids":[[0],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4607182418800017408],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490]]} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":17,"mode":"mixed","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,6,7,13,14],[1,2,3,4,5,6,7,8,9,10,11,12,13,14]],"probabilities":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4583470125244317986,4584274903162039981,4584913498231553259,4585403052336341145,4585943033054120046,4586538637394287817,4587195590428162504,4587920214047044866,4588719477018087891,4589384546141931126,4589870747603590315,4590407031337863395,4590998554749504208,4591651008255767288,4592370668642664377,4593164457921865947],[4599004872088330189,4588219389028631140,4599004872088330189,4588219389028631140,4599004872088330189],[4580768600490338939,4582790726519235041,4585138624988093983,4587107904969911643,4589512139625581047,4591429957407444435,4593889053117052968,4595756753343618145,4593889053117052968,4591429957407444435,4589512139625581047,4587107904969911643,4585138624988093983,4582790726519235041]]} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"sparse","vocab":17,"mode":"mixed","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probabilities":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4582570607829064589,4583282728395344946,4584068201681994787,4584799502097317607,4585277314231602385,4585804343898336961,4586385660985805440,4587026857054827540,4587734100187265086,4588514193629108745,4589271330846132655,4589745870388253985,4590269290700165157,4590846625759409239,4591483430587723924,4592185829300413485,4592960580260849490],[4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888,4555408878219671717,4566608055851217256,4577086912921228091,4588014257514573389,4598869114232506300,4533849755359109828,4544745634757256888],[4578175570804590295,4580557181840036195,4582495666525741391,4584932730712411853,4586820556942601969,4589311625937494559,4591150117957085741,4593693780199866366,4595484227115700057,4593693780199866366,4591150117957085741,4589311625937494559,4586820556942601969,4584932730712411853,4582495666525741391,4580557181840036195,4578175570804590295]]} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"} +{"kind":"dense","vocab":17,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"2f75407dafefd0c94d4086fe91d44d2a691b92bf9cdaa3b97d64c43afd203eec"} +{"kind":"sparse","vocab":4097,"mode":"unique","top_p":0.95,"ids":[[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096]],"probabilities":[[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138]]} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"c67271fb8e4375290a2e58e36d5cc6115a0b55958d491c2f39ed99aaeb738324"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"be121b8a9f4af10a470c0cc9be385b89094519e8526414736ee043b6a6e13c69"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"c67271fb8e4375290a2e58e36d5cc6115a0b55958d491c2f39ed99aaeb738324"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"1e5bd7f4c4dca9c26c2dbb0419bf736450148859e2683e7fba1f2d7864207411"} +{"kind":"sparse","vocab":4097,"mode":"unique","top_p":1.0,"ids":[[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096]],"probabilities":[[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627]]} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"c67271fb8e4375290a2e58e36d5cc6115a0b55958d491c2f39ed99aaeb738324"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"b2da1ea43082e953b08bda0dfbf0a7dfbcf8fd986a19eb1453725acce048e50e"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"c67271fb8e4375290a2e58e36d5cc6115a0b55958d491c2f39ed99aaeb738324"} +{"kind":"dense","vocab":4097,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"1e5bd7f4c4dca9c26c2dbb0419bf736450148859e2683e7fba1f2d7864207411"} +{"kind":"sparse","vocab":4097,"mode":"sharp","top_p":0.95,"ids":[[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056],[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056]],"probabilities":[[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355]]} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"06ebaab32e2222b14f4c90dbc5823fd49b605bb1b81747e27220338f0e977de8"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"fb27cd8e6627b709ab424caf568cde9cd728878d77ec1b544a3c855ad222f368"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"06ebaab32e2222b14f4c90dbc5823fd49b605bb1b81747e27220338f0e977de8"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"fb27cd8e6627b709ab424caf568cde9cd728878d77ec1b544a3c855ad222f368"} +{"kind":"sparse","vocab":4097,"mode":"sharp","top_p":1.0,"ids":[[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057],[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057]],"probabilities":[[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712]]} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"06ebaab32e2222b14f4c90dbc5823fd49b605bb1b81747e27220338f0e977de8"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"858b55cfff05e98e8cef1c9260d0e56f3750b18c1e9d7431fee824bd61ee1a59"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"06ebaab32e2222b14f4c90dbc5823fd49b605bb1b81747e27220338f0e977de8"} +{"kind":"dense","vocab":4097,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"2034d42431fec8bbd283270f484b19ce73a22b8ca0f6ae224596fff0fad6afa6"} +{"kind":"sparse","vocab":4097,"mode":"equal","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]]} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"4d8d58c44fe3d255e96f413286bd7688f51a6f13b8f4b100ab6adb8af3f6dc3f"} +{"kind":"sparse","vocab":4097,"mode":"equal","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]]} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"4d8d58c44fe3d255e96f413286bd7688f51a6f13b8f4b100ab6adb8af3f6dc3f"} +{"kind":"sparse","vocab":4097,"mode":"nonfinite","top_p":0.95,"ids":[[0],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096]],"probabilities":[[4607182418800017408],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138]]} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":4097,"mode":"nonfinite","top_p":1.0,"ids":[[0],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096]],"probabilities":[[4607182418800017408],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627]]} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":4097,"mode":"mixed","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587338767903852705,4587341688419326307,4587344608934799908,4587347531969407040,4587350455004014172,4587353380557754835,4587356309470340206,4587359236703503223,4587362165616088595,4587365095368385143,4587368025960392868,4587370958231822947,4587373891342964203,4587376829492372521,4587379761763802600,4587382701592633273,4587385639742041591,4587388579570872263,4587391519399702935,4587394461747667138],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355]]} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"cdfabc6a8bd23dc3d412bf3d0bef9a042e62b28e10b073d5798cc64a2e1559df"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"4d8d58c44fe3d255e96f413286bd7688f51a6f13b8f4b100ab6adb8af3f6dc3f"} +{"kind":"sparse","vocab":4097,"mode":"mixed","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[4077,4078,4079,4080,4081,4082,4083,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093,4094,4095,4096],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587338766723896628,4587341687746433435,4587344609101288761,4587347532501346487,4587350456233993217,4587353382013507009,4587356308125880511,4587359236286787089,4587362164780824304,4587365095325061967,4587368026202701413,4587370959132210035,4587373892395391809,4587376827712112845,4587379763362778620,4587382701068655105,4587385639108748138,4587388579205724687,4587391519637189814,4587394462127212627],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712]]} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"aae2b7d568054610c2c33a2a7bf52a3ef42462797fcd2f39f808664aa720b7ad"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"} +{"kind":"dense","vocab":4097,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"4d8d58c44fe3d255e96f413286bd7688f51a6f13b8f4b100ab6adb8af3f6dc3f"} +{"kind":"sparse","vocab":248320,"mode":"unique","top_p":0.95,"ids":[[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319]],"probabilities":[[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528]]} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"de8cadf0e580e4468fda92d56606ac16a673e481a2b08f266b2998ea2f71dd6c"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"024ab857f425c6804fc9bef654ca592cc2076d8339bdf01bae21b418fa22e924"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"de8cadf0e580e4468fda92d56606ac16a673e481a2b08f266b2998ea2f71dd6c"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"ce7d970755d964a0716d4d2f985283c2ec7145c50993d973e8e69839a9e6b587"} +{"kind":"sparse","vocab":248320,"mode":"unique","top_p":1.0,"ids":[[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319]],"probabilities":[[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679]]} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"de8cadf0e580e4468fda92d56606ac16a673e481a2b08f266b2998ea2f71dd6c"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"99099c8473ded5d1cf82e2693e2f2280579f219ece0ee693fed3cbced54b84c4"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"de8cadf0e580e4468fda92d56606ac16a673e481a2b08f266b2998ea2f71dd6c"} +{"kind":"dense","vocab":248320,"mode":"unique","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"ce7d970755d964a0716d4d2f985283c2ec7145c50993d973e8e69839a9e6b587"} +{"kind":"sparse","vocab":248320,"mode":"sharp","top_p":0.95,"ids":[[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168],[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168]],"probabilities":[[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355]]} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"52a853b47a6dd789cd0e2bea3d2c440e22ef6f5dc9a5c6b9db74a2e677f137d1"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"8977cd3d492cead3d184b186e0e6217f376150eb93dc297d2c11b111348913a8"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"52a853b47a6dd789cd0e2bea3d2c440e22ef6f5dc9a5c6b9db74a2e677f137d1"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"8977cd3d492cead3d184b186e0e6217f376150eb93dc297d2c11b111348913a8"} +{"kind":"sparse","vocab":248320,"mode":"sharp","top_p":1.0,"ids":[[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169],[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169]],"probabilities":[[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712]]} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"52a853b47a6dd789cd0e2bea3d2c440e22ef6f5dc9a5c6b9db74a2e677f137d1"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"9aa09b1b84788e67a1d0a22027eb1c6305d58b4a1f7160d1c79588323529eabb"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"52a853b47a6dd789cd0e2bea3d2c440e22ef6f5dc9a5c6b9db74a2e677f137d1"} +{"kind":"dense","vocab":248320,"mode":"sharp","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"5802e85a5c7d644a8db67e8f7d2a448a41ffab754d7e496fbc63f3391b6872db"} +{"kind":"sparse","vocab":248320,"mode":"equal","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]]} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"dd72f182a8194dbc8d2be121876463ad662c9b3537bd77ad0b5ec9a995109615"} +{"kind":"sparse","vocab":248320,"mode":"equal","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224]]} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"equal","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"dd72f182a8194dbc8d2be121876463ad662c9b3537bd77ad0b5ec9a995109615"} +{"kind":"sparse","vocab":248320,"mode":"nonfinite","top_p":0.95,"ids":[[0],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319]],"probabilities":[[4607182418800017408],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528]]} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":0.95,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":0.95,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":248320,"mode":"nonfinite","top_p":1.0,"ids":[[0],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319]],"probabilities":[[4607182418800017408],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679]]} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":1.0,"top_k":0,"temperature":0.6,"error":true} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"nonfinite","top_p":1.0,"top_k":20,"temperature":0.6,"error":true} +{"kind":"sparse","vocab":248320,"mode":"mixed","top_p":0.95,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366122787014302,4587366170310645966,4587366218626338158,4587366266149969822,4587366315257722542,4587366363573414733,4587366411097046397,4587366459412738589,4587366506936370253,4587366555252062445,4587366602775694109,4587366651883446828,4587366700199139020,4587366747722770684,4587366796038462876,4587366843562094540,4587366891877786731,4587366946529963145,4587366995637715864,4587367043161347528],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4576141533830273465,4578114810977369355,4580514783291187687,4582436496785348703,4584891440835931097,4586762931988664283,4589271415781901807,4591094000197185324,4593637620060095654,4595429575415770263,4593637620060095654,4591094000197185324,4589271415781901807,4586762931988664283,4584891440835931097,4582436496785348703,4580514783291187687,4578114810977369355]]} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":0.95,"top_k":0,"temperature":0.6,"sha256":"4c61bb7e78834cd4caa927e1b63092759f5d8173145e08ca78212d5a716b390f"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":0.95,"top_k":20,"temperature":0.6,"sha256":"dd72f182a8194dbc8d2be121876463ad662c9b3537bd77ad0b5ec9a995109615"} +{"kind":"sparse","vocab":248320,"mode":"mixed","top_p":1.0,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[248300,248301,248302,248303,248304,248305,248306,248307,248308,248309,248310,248311,248312,248313,248314,248315,248316,248317,248318,248319],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[124150,124151,124152,124153,124154,124155,124156,124157,124158,124159,124160,124161,124162,124163,124164,124165,124166,124167,124168,124169]],"probabilities":[[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4587366121016187173,4587366169116914460,4587366218076913066,4587366266178288305,4587366314279984656,4587366363240969637,4587366411343313955,4587366459445979390,4587366507548965947,4587366556511264182,4587366604614898721,4587366652718854388,4587366700823131184,4587366749786742709,4587366798750686938,4587366845996913438,4587366894961511411,4587366943067405357,4587366992032662920,4587367039280156679],[4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224,4587366580439587224],[4573693400060212052,4576068534250915712,4578012934147074595,4580443692951995932,4582337280036070625,4584822207631544915,4586666309569943756,4589203991158308193,4590999901524866384,4593506296560486750,4595337936283513808,4593506296560486750,4590999901524866384,4589203991158308193,4586666309569943756,4584822207631544915,4582337280036070625,4580443692951995932,4578012934147074595,4576068534250915712]]} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":1.0,"top_k":0,"temperature":0.6,"sha256":"6f46aac0b33fcf6d92ebe44511db79afdcb03ca323cddbbd03c07636fe78be61"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.0,"sha256":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"} +{"kind":"dense","vocab":248320,"mode":"mixed","top_p":1.0,"top_k":20,"temperature":0.6,"sha256":"dd72f182a8194dbc8d2be121876463ad662c9b3537bd77ad0b5ec9a995109615"} diff --git a/tests/fixtures/mtplx-sampler-mixed.jsonl b/tests/fixtures/mtplx-sampler-mixed.jsonl new file mode 100644 index 0000000..ecc4f20 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-mixed.jsonl @@ -0,0 +1,100 @@ +{"vocab":1,"mode":"reverse","kinds":"dd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"reverse","kinds":"ds","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"reverse","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"reverse","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"same","kinds":"dd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"same","kinds":"ds","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"same","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"same","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"disjoint","kinds":"dd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"disjoint","kinds":"ds","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"disjoint","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"disjoint","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"nonfinite","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"nonfinite","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"nonfinite","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"nonfinite","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"zero","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"zero","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"zero","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":1,"mode":"zero","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408],[true,0,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"reverse","kinds":"dd","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"68d4bf336aea675e5e28b71c59e87684ebd64f905e71e86a590d9dfefb8d606c"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4598175219545276417],[false,5,4585130310279789464],[true,16,4607182418800017408],[true,6,4604180019048437078],[true,13,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,10,4601392076421969630],[false,3,4594710912139606805],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4602678819172646914],[true,5,4607182418800017408],[true,12,4607182418800017408],[false,16,4598175219545276417],[true,9,4585130310279789464],[true,16,4607182418800017408],[false,14,4604180019048437078],[false,5,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,16,4601392076421969630],[true,11,4594710912139606805],[true,1,4607182418800017408]],"next_verify":4601557188279288624} +{"vocab":17,"mode":"reverse","kinds":"ds","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"68d4bf336aea675e5e28b71c59e87684ebd64f905e71e86a590d9dfefb8d606c"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4598175219545276417],[false,5,4585130310279789464],[true,16,4607182418800017408],[true,6,4604180019048437078],[true,13,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,10,4601392076421969630],[false,3,4594710912139606805],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4602678819172646914],[true,5,4607182418800017408],[true,12,4607182418800017408],[false,16,4598175219545276417],[true,9,4585130310279789464],[true,16,4607182418800017408],[false,14,4604180019048437078],[false,5,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,16,4601392076421969630],[true,11,4594710912139606805],[true,1,4607182418800017408]],"next_verify":4601557188279288624} +{"vocab":17,"mode":"reverse","kinds":"sd","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"68d4bf336aea675e5e28b71c59e87684ebd64f905e71e86a590d9dfefb8d606c"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4598175219545276417],[false,5,4585130310279789464],[true,16,4607182418800017408],[true,6,4604180019048437078],[true,13,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,10,4601392076421969630],[false,3,4594710912139606805],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4602678819172646914],[true,5,4607182418800017408],[true,12,4607182418800017408],[false,16,4598175219545276417],[true,9,4585130310279789464],[true,16,4607182418800017408],[false,14,4604180019048437078],[false,5,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,16,4601392076421969630],[true,11,4594710912139606805],[true,1,4607182418800017408]],"next_verify":4601557188279288624} +{"vocab":17,"mode":"reverse","kinds":"ss","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"ef44641bdfac5c3d6ed2c269013672ff7bd8949f9901f535433f20f251749ff5","ids":"eae02d9aa718a01643cd3e7b114480a40ce77522e367daee28ea1faaa85525dc"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4598175219545276417],[false,5,4585130310279789464],[true,16,4607182418800017408],[true,6,4604180019048437078],[true,13,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,10,4601392076421969630],[false,3,4594710912139606805],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4602678819172646914],[true,5,4607182418800017408],[true,12,4607182418800017408],[false,16,4598175219545276417],[true,9,4585130310279789464],[true,16,4607182418800017408],[false,14,4604180019048437078],[false,5,4599154262942530872],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,4592670820000712479],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,16,4601392076421969630],[true,11,4594710912139606805],[true,1,4607182418800017408]],"next_verify":4601557188279288624} +{"vocab":17,"mode":"same","kinds":"dd","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"b8ad88d08d8d3b59b371e2f9640d3f5a76fa49a13f8c72e672cc0b76354ed19a"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"same","kinds":"ds","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"b8ad88d08d8d3b59b371e2f9640d3f5a76fa49a13f8c72e672cc0b76354ed19a"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"same","kinds":"sd","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"b8ad88d08d8d3b59b371e2f9640d3f5a76fa49a13f8c72e672cc0b76354ed19a"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"same","kinds":"ss","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,1,3,5,7,5,14,3,3,2,10,14,10],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"5b485f26d06dab06b6ec923a488ad5064b7764636524f3a71b912c361f978cb4","ids":"bb25b5201ac6c37409bb181321e5f74ef84fc6dd59cc690d9298e927304684f8"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"disjoint","kinds":"dd","sampled":{"tokens":[8,8,14,14,10,8,12,6,14,16,8,16,14,4,10,16,14,8,14,6,4,6,10,10,8,16,6,4,4,12,16,12],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"f5b1c36d3aec1f80cfd705fbf823c863d7d8118fabfed9819ffa9bed37b0ba16"},"decisions":[[false,14,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,16,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,14,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,12,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,8,0],[false,2,0],[true,8,4607182418800017408],[false,16,0],[false,16,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,10,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,10,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,8,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,4,0],[false,6,0]],"next_verify":4600213299145443516} +{"vocab":17,"mode":"disjoint","kinds":"ds","sampled":{"tokens":[8,8,14,14,10,8,12,6,14,16,8,16,14,4,10,16,14,8,14,6,4,6,10,10,8,16,6,4,4,12,16,12],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"f5b1c36d3aec1f80cfd705fbf823c863d7d8118fabfed9819ffa9bed37b0ba16"},"decisions":[[false,14,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,16,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,14,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,12,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,8,0],[false,2,0],[true,8,4607182418800017408],[false,16,0],[false,16,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,10,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,10,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,8,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,4,0],[false,6,0]],"next_verify":4600213299145443516} +{"vocab":17,"mode":"disjoint","kinds":"sd","sampled":{"tokens":[8,8,14,14,10,8,12,6,14,16,8,16,14,4,10,16,14,8,14,6,4,6,10,10,8,16,6,4,4,12,16,12],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"f5b1c36d3aec1f80cfd705fbf823c863d7d8118fabfed9819ffa9bed37b0ba16"},"decisions":[[false,14,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,16,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,14,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,12,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,8,0],[false,2,0],[true,8,4607182418800017408],[false,16,0],[false,16,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,10,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,10,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,8,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,4,0],[false,6,0]],"next_verify":4600213299145443516} +{"vocab":17,"mode":"disjoint","kinds":"ss","sampled":{"tokens":[8,8,14,14,10,8,12,6,14,16,8,16,14,4,10,16,14,8,14,6,4,6,10,10,8,16,6,4,4,12,16,12],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"1aa224ee5ae50238e70af2ac466672b49805a29319e1b7304afbd8665fbb40da","ids":"40dabe74fd58af339db1ab66ed7ba64367a5be0bc34e39e705c0ed08b151c6d9"},"decisions":[[false,14,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,16,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,14,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,12,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,8,0],[false,2,0],[true,8,4607182418800017408],[false,16,0],[false,16,0],[true,12,4607182418800017408],[true,2,4607182418800017408],[false,10,0],[true,16,4607182418800017408],[true,6,4607182418800017408],[false,12,0],[false,10,0],[true,10,4607182418800017408],[true,0,4607182418800017408],[false,8,0],[true,14,4607182418800017408],[true,4,4607182418800017408],[false,4,0],[false,6,0]],"next_verify":4600213299145443516} +{"vocab":17,"mode":"nonfinite","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,[true,16,4607182418800017408],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[true,16,4607182418800017408],null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":17,"mode":"nonfinite","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],null,[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],null,[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"nonfinite","kinds":"sd","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,2,3,6,7,5,14,3,3,2,10,15,10],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"274f87ddad342b41b3d9cfba4251f1d2143306a8f2cb9165c48fd72cabb256c8"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,7,0],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,10,0],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4603745791242046308} +{"vocab":17,"mode":"nonfinite","kinds":"ss","sampled":{"tokens":[4,5,14,12,7,5,10,3,12,16,5,16,12,2,7,15,12,5,13,4,2,3,6,7,5,14,3,3,2,10,15,10],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"67457fab781d99c8c492c7c4b1e18f0f75a7912065373eb47abee5b3facfbab7","ids":"0d242953c1c1ccca8826a893fc6c51b877e2137d856615aa8ef19fbd0b004672"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4598175219545276416],[false,5,4585130310279789462],[true,16,4607182418800017408],[true,6,4604180019048437076],[true,13,4599154262942530871],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,0],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,10,4601392076421969629],[false,3,4594710912139606803],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4602678819172646912],[true,5,4607182418800017408],[true,12,4607182418800017408],[false,16,4598175219545276416],[true,9,4585130310279789462],[true,16,4607182418800017408],[false,14,4604180019048437076],[false,5,4599154262942530871],[true,3,4607182418800017408],[true,10,4607182418800017408],[false,12,0],[true,7,4607182418800017408],[true,14,4607182418800017408],[false,16,4601392076421969629],[true,11,4594710912139606803],[true,1,4607182418800017408]],"next_verify":4601557188279288624} +{"vocab":17,"mode":"zero","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"zero","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408],[true,8,4607182418800017408],[true,15,4607182418800017408],[true,5,4607182418800017408],[true,12,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,6,4607182418800017408],[true,13,4607182418800017408],[true,3,4607182418800017408],[true,10,4607182418800017408],[true,0,4607182418800017408],[true,7,4607182418800017408],[true,14,4607182418800017408],[true,4,4607182418800017408],[true,11,4607182418800017408],[true,1,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":17,"mode":"zero","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"d5ae40407fdc5f612f7a29be2a4cfd02896ce0bc69b2cb448d70928cd8589dfe"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[true,0,4607182418800017408],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[true,0,4607182418800017408],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4593803838413721144} +{"vocab":17,"mode":"zero","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[true,0,4607182418800017408],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[true,0,4607182418800017408],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4593803838413721144} +{"vocab":129,"mode":"reverse","kinds":"dd","sampled":{"tokens":[28,40,101,86,49,43,77,23,86,120,32,120,85,12,56,112,89,42,94,27,10,19,44,58,34,105,25,16,12,77,109,77],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"016fb306008bf67e7715558607ff212feeb4eb60395bcced17ec45f5d9137180"},"decisions":[[true,5,4607182418800017408],[true,12,4606773000652074634],[true,19,4603512819103641448],[true,26,4607182418800017408],[true,33,4607182418800017408],[false,26,4591215111030249285],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4604064542134914756],[true,68,4607182418800017408],[true,75,4607182418800017408],[false,57,4596373779694328216],[true,89,4607182418800017408],[true,96,4607182418800017408],[false,13,4604660403008689931],[true,110,4601477859272014780],[true,117,4607182418800017408],[true,124,4599676419421066581],[true,2,4607182418800017408],[false,87,4591215111030249285],[true,16,4607182418800017408],[true,23,4607182418800017408],[false,116,4604064542134914756],[true,37,4607182418800017408],[true,44,4607182418800017408],[false,15,4596373779694328216],[true,58,4607182418800017408],[true,65,4607182418800017408],[true,72,4604660403008689931],[true,79,4601477859272014780],[true,86,4607182418800017408],[false,119,4599676419421066581]],"next_verify":4587559244767229904} +{"vocab":129,"mode":"reverse","kinds":"ds","sampled":{"tokens":[28,40,101,86,49,43,77,23,86,120,32,120,85,12,56,112,89,42,94,27,10,19,44,58,34,105,25,16,12,77,109,77],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"95fb6b0d021fee5af43a64377f31a0c9de0be74e84675713dce47256fd1eb898"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[false,108,4594288198107389753],[false,23,4578601153151023370],[true,47,4597808320356477103],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,23,4607182418800017408],[true,30,4607182418800017408],[true,37,4607182418800017408],[true,44,4607182418800017408],[true,51,4607182418800017408],[true,58,4607182418800017408],[true,65,4607182418800017408],[true,72,4607182418800017408],[true,79,4607182418800017408],[true,86,4607182418800017408],[true,93,4607182418800017408]],"next_verify":4603745791242046308} +{"vocab":129,"mode":"reverse","kinds":"sd","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,47,121,94,26,80,114,94,67,101,47,20,47,67,80,53,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"dda7c63540eded4df14712cef1adc729b5bb3a01844f8c60f91d5b44c28d898e"},"decisions":[[false,94,0],[false,107,0],[false,107,0],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4603853864037681221],[true,47,4607182418800017408],[false,94,0],[false,80,0],[false,80,0],[false,26,0],[false,67,0],[false,6,0],[false,94,0],[false,6,0],[false,114,0],[false,80,0],[false,26,0],[false,67,0],[false,67,0],[false,87,0],[false,6,0],[false,74,0],[false,74,0],[false,74,0],[false,67,0],[false,87,0],[false,6,0],[false,53,0],[false,67,0],[false,94,0],[false,53,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"reverse","kinds":"ss","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,47,121,94,26,80,114,94,67,101,47,20,47,67,80,53,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"335f6687b66259e30a93b86bb64b3ec9a7a45e083c86b0ee8805a8ea5e2da31b","ids":"fe68f66b5f04994e7a5737e3c722fa01015bad70e4131ed9bbd40e88531e9f6a"},"decisions":[[false,80,0],[false,87,0],[false,87,0],[true,26,4607182418800017408],[true,33,4607052350940743170],[true,40,4591120516223504384],[true,47,4607182418800017408],[false,80,0],[false,67,0],[false,80,0],[false,6,0],[false,47,0],[false,6,0],[false,80,0],[false,6,0],[false,107,0],[false,67,0],[false,6,0],[false,47,0],[false,26,0],[false,80,0],[false,6,0],[false,47,0],[false,47,0],[false,47,0],[false,47,0],[false,80,0],[false,6,0],[false,26,0],[false,47,0],[false,80,0],[false,26,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"same","kinds":"dd","sampled":{"tokens":[28,40,101,86,49,43,77,23,86,120,32,120,85,12,56,112,89,42,94,27,10,19,44,58,34,105,25,16,12,77,109,77],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"ec800aa24779d0b04bb4717b01f6c8fc94fdb5d18a260822f5cc7e0184ae4994"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,23,4607182418800017408],[true,30,4607182418800017408],[true,37,4607182418800017408],[true,44,4607182418800017408],[true,51,4607182418800017408],[true,58,4607182418800017408],[true,65,4607182418800017408],[true,72,4607182418800017408],[true,79,4607182418800017408],[true,86,4607182418800017408],[true,93,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":129,"mode":"same","kinds":"ds","sampled":{"tokens":[28,40,101,86,49,43,77,23,86,120,32,120,85,12,56,112,89,42,94,27,10,19,44,58,34,105,25,16,12,77,109,77],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"e3a1b4811fab775197fd7198d59952b38f248e1ded0963f523a7bdbd1b358ad4"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[false,23,4594363219027783222],[false,24,4594363219027783222],[false,8,4594363219027783222],[false,54,4594363219027783222],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,23,4607182418800017408],[true,30,4607182418800017408],[true,37,4607182418800017408],[true,44,4607182418800017408],[true,51,4607182418800017408],[true,58,4607182418800017408],[true,65,4607182418800017408],[true,72,4607182418800017408],[true,79,4607182418800017408],[true,86,4607182418800017408],[true,93,4607182418800017408]],"next_verify":4601378275428787136} +{"vocab":129,"mode":"same","kinds":"sd","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,47,121,94,26,80,114,94,67,101,47,20,47,67,80,53,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"d1d793fd700ccde976e4fe9cf4b505a173bf6a4c9abe36570c30d4280e0ff658"},"decisions":[[false,94,0],[false,107,0],[false,107,0],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[false,94,0],[false,80,0],[false,87,0],[false,26,0],[false,67,0],[false,6,0],[false,94,0],[false,6,0],[false,114,0],[false,87,0],[false,26,0],[false,67,0],[false,67,0],[false,87,0],[false,6,0],[false,80,0],[false,80,0],[false,74,0],[false,74,0],[false,87,0],[false,6,0],[false,53,0],[false,67,0],[false,94,0],[false,67,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"same","kinds":"ss","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,47,121,94,26,80,114,94,67,101,47,20,47,67,80,53,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"16951c80556267c4d503a17a312f3a27dc1e04c0763df73fd96d8050dd56fdb0","ids":"089ef2ebbe591b9724d5fbd9c3f215f771e3fd55591390018515d6320f496c47"},"decisions":[[false,94,0],[false,107,0],[false,107,0],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[false,94,0],[false,80,0],[false,87,0],[false,26,0],[false,67,0],[false,6,0],[false,94,0],[false,6,0],[false,114,0],[false,87,0],[false,26,0],[false,67,0],[false,67,0],[false,87,0],[false,6,0],[false,80,0],[false,80,0],[false,74,0],[false,74,0],[false,87,0],[false,6,0],[false,53,0],[false,67,0],[false,94,0],[false,67,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"disjoint","kinds":"dd","sampled":{"tokens":[30,38,98,86,50,38,76,24,86,118,32,118,84,14,56,114,90,38,94,30,12,18,42,58,34,100,26,16,14,76,110,76],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"4d8d5d8fdcd5c0dca347eb56cabff906ee3fdf4941eba25af36d45e5c7515f9f"},"decisions":[[false,88,0],[true,12,4607182418800017408],[false,26,0],[true,26,4607182418800017408],[false,28,0],[true,40,4607182418800017408],[false,56,0],[true,54,4607182418800017408],[false,56,0],[true,68,4607182418800017408],[false,120,0],[true,82,4607182418800017408],[false,38,0],[true,96,4607182418800017408],[false,18,0],[true,110,4607182418800017408],[false,6,0],[true,124,4607182418800017408],[true,2,4607182418800017408],[false,72,0],[true,16,4607182418800017408],[false,18,0],[true,30,4607182418800017408],[false,36,0],[true,44,4607182418800017408],[false,118,0],[true,58,4607182418800017408],[false,56,0],[true,72,4607182418800017408],[false,16,0],[true,86,4607182418800017408],[false,48,0]],"next_verify":4588938197893757664} +{"vocab":129,"mode":"disjoint","kinds":"ds","sampled":{"tokens":[30,38,98,86,50,38,76,24,86,118,32,118,84,14,56,114,90,38,94,30,12,18,42,58,34,100,26,16,14,76,110,76],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"4d8d5d8fdcd5c0dca347eb56cabff906ee3fdf4941eba25af36d45e5c7515f9f"},"decisions":[[false,88,0],[true,12,4607182418800017408],[false,26,0],[true,26,4607182418800017408],[false,28,0],[true,40,4607182418800017408],[false,56,0],[true,54,4607182418800017408],[false,56,0],[true,68,4607182418800017408],[false,120,0],[true,82,4607182418800017408],[false,38,0],[true,96,4607182418800017408],[false,18,0],[true,110,4607182418800017408],[false,6,0],[true,124,4607182418800017408],[true,2,4607182418800017408],[false,72,0],[true,16,4607182418800017408],[false,18,0],[true,30,4607182418800017408],[false,36,0],[true,44,4607182418800017408],[false,118,0],[true,58,4607182418800017408],[false,56,0],[true,72,4607182418800017408],[false,16,0],[true,86,4607182418800017408],[false,48,0]],"next_verify":4588938197893757664} +{"vocab":129,"mode":"disjoint","kinds":"sd","sampled":{"tokens":[74,74,114,94,80,74,80,26,94,128,74,128,94,6,80,114,94,74,94,40,6,26,74,80,74,114,26,20,6,80,114,80],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"702e7f7a0b77a676d67f19e816c485a20923cd7375bcb7c28fb7cb2cf0e7ef18"},"decisions":[[false,94,0],[false,114,0],[false,114,0],[true,26,4607182418800017408],[false,6,0],[true,40,4607182418800017408],[false,94,0],[false,80,0],[false,80,0],[false,6,0],[false,74,0],[false,0,0],[false,94,0],[false,6,0],[false,114,0],[false,80,0],[false,20,0],[false,74,0],[false,74,0],[false,94,0],[false,6,0],[false,80,0],[false,80,0],[false,74,0],[false,74,0],[false,80,0],[false,6,0],[false,74,0],[false,74,0],[false,94,0],[false,74,0],[false,80,0]],"next_verify":4593803838413721144} +{"vocab":129,"mode":"disjoint","kinds":"ss","sampled":{"tokens":[74,74,114,94,80,74,80,26,94,128,74,128,94,6,80,114,94,74,94,40,6,26,74,80,74,114,26,20,6,80,114,80],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"1d5e355894041c094c7438e40a48b257e9600a2b281313673da838873ffe3ec5","ids":"bed535bbfc0207ae26a816646257190967b7e2ef0ceb7e51eee8163b0613ae7d"},"decisions":[[false,94,0],[false,114,0],[false,114,0],[true,26,4607182418800017408],[false,6,0],[true,40,4607182418800017408],[false,94,0],[false,80,0],[false,80,0],[false,6,0],[false,74,0],[false,0,0],[false,94,0],[false,6,0],[false,114,0],[false,80,0],[false,20,0],[false,74,0],[false,74,0],[false,94,0],[false,6,0],[false,80,0],[false,80,0],[false,74,0],[false,74,0],[false,80,0],[false,6,0],[false,74,0],[false,74,0],[false,94,0],[false,74,0],[false,80,0]],"next_verify":4593803838413721144} +{"vocab":129,"mode":"nonfinite","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":129,"mode":"nonfinite","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":129,"mode":"nonfinite","kinds":"sd","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,53,121,94,26,80,114,94,67,101,47,26,47,67,80,67,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"b57f7f470f60c4e1ad9ee5ae3bd4ea1da6c6bd203be03cacc47898e6794aadb0"},"decisions":[[false,94,0],[false,107,0],[false,107,0],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[false,94,0],[false,80,0],[false,87,0],[false,26,0],[false,67,0],[false,6,0],[false,94,0],[false,6,0],[false,114,0],[false,80,0],[false,26,0],[false,67,0],[false,67,0],[false,87,0],[false,13,0],[false,74,0],[false,74,0],[false,74,0],[false,67,0],[false,87,0],[false,6,0],[false,53,0],[false,67,0],[false,94,0],[false,67,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"nonfinite","kinds":"ss","sampled":{"tokens":[47,67,107,94,74,67,87,47,94,121,53,121,94,26,80,114,94,67,101,47,26,47,67,80,67,107,47,33,26,87,114,87],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"58d85c3e8d65305be21fcd4e719739135cf579f2d8fd00cfc4aead2cbcd6ee9e","ids":"fe68f66b5f04994e7a5737e3c722fa01015bad70e4131ed9bbd40e88531e9f6a"},"decisions":[[false,80,0],[false,87,0],[false,107,0],[true,26,4607182418800017408],[true,33,4607050926840094181],[true,40,4591119480513941483],[true,47,4607182418800017408],[false,80,0],[false,67,0],[false,80,0],[false,6,0],[false,47,0],[false,6,0],[false,80,0],[false,6,0],[false,128,0],[false,80,0],[false,6,0],[false,47,0],[false,47,0],[false,80,0],[false,6,0],[false,67,0],[false,67,0],[false,47,0],[false,47,0],[false,80,0],[false,6,0],[false,26,0],[false,47,0],[false,80,0],[false,26,0]],"next_verify":4581739469254677216} +{"vocab":129,"mode":"zero","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],null,[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,2,4607182418800017408],[true,9,4607182418800017408],[true,16,4607182418800017408],[true,23,4607182418800017408],[true,30,4607182418800017408],null,[true,44,4607182418800017408],[true,51,4607182418800017408],[true,58,4607182418800017408],[true,65,4607182418800017408],[true,72,4607182418800017408],[true,79,4607182418800017408],[true,86,4607182418800017408],[true,93,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":129,"mode":"zero","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":129,"mode":"zero","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"859d151a3f6998b0733367528721fe9269dc5d88b0a9131b0151c5d91c2413d5"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} +{"vocab":129,"mode":"zero","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"reverse","kinds":"dd","sampled":{"tokens":[931,1297,3266,2770,1601,1363,2451,763,2755,3858,1017,3887,2733,391,1810,3632,2857,1338,3006,902,334,655,1392,1905,1091,3341,791,530,375,2452,3500,2465],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"43316ff9414c1bc6eca29a6a66421cf4ea5564987376ea1776e8b0e6d670f479"},"decisions":[[true,5,4607182418800017408],[true,12,4606773000652074634],[true,19,4603512819103641447],[true,26,4607182418800017408],[true,33,4607182418800017407],[false,855,4591215111030249284],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4604064542134914756],[true,68,4607182418800017408],[true,75,4607182418800017408],[false,1867,4596373779694328216],[true,89,4607182418800017408],[true,96,4607182418800017408],[false,367,4604660403008689930],[true,110,4601477859272014779],[true,117,4607182418800017408],[true,124,4599676419421066580],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4605305918955279701],[false,109,4602368226094897222],[true,159,4607182418800017408],[false,2848,4602678819172646910],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4606007566723312060],[true,194,4603000504860316233],[true,201,4607182418800017408],[true,208,4604608933298662837],[false,1752,0],[true,222,4607182418800017408]],"next_verify":4606672374948657776} +{"vocab":4097,"mode":"reverse","kinds":"ds","sampled":{"tokens":[931,1297,3266,2770,1601,1363,2451,763,2755,3858,1017,3887,2733,391,1810,3632,2857,1338,3006,902,334,655,1392,1905,1091,3341,791,530,375,2452,3500,2465],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"36b4e4006ce128f1cd7066e294caef8cc5dd64653b971efdc8519afa2185fec0"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,483,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":4097,"mode":"reverse","kinds":"sd","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,862,2586,3880,1077,3880,2586,646,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1077,3449,1077,862,646,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"5c282d0279ff03540c0b125e68d58982536e3aa4f4a829f54fc959cdc32d9d92"},"decisions":[[false,2802,0],[false,3449,0],[false,3664,0],[false,1077,0],[false,2155,0],[false,2586,0],[false,1940,0],[false,2155,0],[false,646,0],[false,1509,0],[false,431,0],[false,2802,0],[false,431,0],[false,3880,0],[false,2155,0],[false,862,0],[false,1509,0],[false,1509,0],[false,2371,0],[false,431,0],[false,1940,0],[false,1940,0],[false,1724,0],[false,1724,0],[false,2155,0],[false,431,0],[false,1077,0],[false,1724,0],[false,2802,0],[false,1293,0],[false,1724,0],[false,1509,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"reverse","kinds":"ss","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,862,2586,3880,1077,3880,2586,646,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1077,3449,1077,862,646,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"0502ec1c878f64f4585c6b0c8fa728f588076ce251c561525a93de9eb52792fd","ids":"765b82390f7e7e1daaed43fcd137dfd9f1004fe4ef45ec7c12a9c28ccd6da253"},"decisions":[[false,3664,0],[false,3880,0],[false,3880,0],[false,862,0],[false,2371,0],[false,2586,0],[false,2155,0],[false,2371,0],[false,646,0],[false,1940,0],[false,646,0],[false,3664,0],[false,646,0],[false,3880,0],[false,2155,0],[false,646,0],[false,1940,0],[false,1940,0],[false,2371,0],[false,646,0],[false,2155,0],[false,2155,0],[false,1940,0],[false,1940,0],[false,2371,0],[false,646,0],[false,1940,0],[false,1940,0],[false,3664,0],[false,1940,0],[false,1940,0],[false,1940,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"same","kinds":"dd","sampled":{"tokens":[931,1297,3266,2770,1601,1363,2451,763,2755,3858,1017,3887,2733,391,1810,3632,2857,1338,3006,902,334,655,1392,1905,1091,3341,791,530,375,2452,3500,2465],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"e06c58919bdf9e0d22a2d20d4582739494d77a5262d2ce62bdc8bd1e364b3ce3"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,484,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":4097,"mode":"same","kinds":"ds","sampled":{"tokens":[931,1297,3266,2770,1601,1363,2451,763,2755,3858,1017,3887,2733,391,1810,3632,2857,1338,3006,902,334,655,1392,1905,1091,3341,791,530,375,2452,3500,2465],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"a195709fc310b0e4fffd3674a34bd36ba2d256df511f0b77edd0b5b8f46093b8"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,483,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":4097,"mode":"same","kinds":"sd","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,862,2586,3880,1077,3880,2586,646,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1077,3449,1077,862,646,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"5c8505481b23fd421be75baa12a611cd97cf6fc0ee927a8387521f4d0ae573ee"},"decisions":[[false,2802,0],[false,3449,0],[false,3664,0],[false,1077,0],[false,2155,0],[false,2586,0],[false,1940,0],[false,2155,0],[false,646,0],[false,1509,0],[false,431,0],[false,2802,0],[false,431,0],[false,3880,0],[false,2155,0],[false,862,0],[false,1509,0],[false,1509,0],[false,2371,0],[false,431,0],[false,1940,0],[false,1940,0],[false,1724,0],[false,1724,0],[false,2155,0],[false,431,0],[false,1077,0],[false,1724,0],[false,2802,0],[false,1293,0],[false,1724,0],[false,1509,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"same","kinds":"ss","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,862,2586,3880,1077,3880,2586,646,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1077,3449,1077,862,646,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"02172d05cd235b1f94138c66c403f09374f5a36025d9de54a331b6325a0972c0","ids":"54274949b6ea6c79f8d6cd468eb77f0cc0915520bfebc1efe0901f1b79e50086"},"decisions":[[false,2802,0],[false,3449,0],[false,3664,0],[false,1077,0],[false,2155,0],[false,2586,0],[false,1940,0],[false,2155,0],[false,646,0],[false,1509,0],[false,431,0],[false,2802,0],[false,431,0],[false,3880,0],[false,2155,0],[false,862,0],[false,1509,0],[false,1509,0],[false,2371,0],[false,431,0],[false,1940,0],[false,1940,0],[false,1724,0],[false,1724,0],[false,2155,0],[false,431,0],[false,1077,0],[false,1724,0],[false,2802,0],[false,1293,0],[false,1724,0],[false,1509,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"disjoint","kinds":"dd","sampled":{"tokens":[932,1296,3262,2766,1602,1360,2450,762,2756,3858,1018,3882,2734,390,1810,3630,2858,1336,3006,902,336,654,1394,1906,1090,3340,794,530,378,2452,3502,2464],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"89bdcba31e70d9c670858df7f97126db28a781c556bffc6d40c6d98a7c193aa8"},"decisions":[[false,2820,0],[true,12,4607182418800017408],[false,792,0],[true,26,4607182418800017408],[false,836,0],[true,40,4607182418800017408],[false,1828,0],[true,54,4607182418800017408],[false,1872,0],[true,68,4607182418800017408],[false,4002,0],[true,82,4607182418800017408],[false,1308,0],[true,96,4607182418800017408],[false,704,0],[true,110,4607182418800017408],[false,112,0],[true,124,4607182418800017408],[false,2848,0],[true,138,4607182418800017408],[false,486,0],[true,152,4607182418800017408],[false,2534,0],[true,166,4607182418800017408],[false,2586,0],[true,180,4607182418800017408],[false,1146,0],[true,194,4607182418800017408],[false,1812,0],[true,208,4607182418800017408],[false,678,0],[true,222,4607182418800017408]],"next_verify":4588938197893757664} +{"vocab":4097,"mode":"disjoint","kinds":"ds","sampled":{"tokens":[932,1296,3262,2766,1602,1360,2450,762,2756,3858,1018,3882,2734,390,1810,3630,2858,1336,3006,902,336,654,1394,1906,1090,3340,794,530,378,2452,3502,2464],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"89bdcba31e70d9c670858df7f97126db28a781c556bffc6d40c6d98a7c193aa8"},"decisions":[[false,2820,0],[true,12,4607182418800017408],[false,792,0],[true,26,4607182418800017408],[false,836,0],[true,40,4607182418800017408],[false,1828,0],[true,54,4607182418800017408],[false,1872,0],[true,68,4607182418800017408],[false,4002,0],[true,82,4607182418800017408],[false,1308,0],[true,96,4607182418800017408],[false,704,0],[true,110,4607182418800017408],[false,112,0],[true,124,4607182418800017408],[false,2848,0],[true,138,4607182418800017408],[false,486,0],[true,152,4607182418800017408],[false,2534,0],[true,166,4607182418800017408],[false,2586,0],[true,180,4607182418800017408],[false,1146,0],[true,194,4607182418800017408],[false,1812,0],[true,208,4607182418800017408],[false,678,0],[true,222,4607182418800017408]],"next_verify":4588938197893757664} +{"vocab":4097,"mode":"disjoint","kinds":"sd","sampled":{"tokens":[862,1724,3880,2802,1940,1724,2802,862,2802,3880,1724,4096,2802,862,1940,3880,3018,1724,3664,862,646,862,1940,1940,1724,3880,862,862,862,2802,3880,2802],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"73bc02499ef5bfcf48cefe57fa469e4d9cfd0c9839aee5dde2a83ba7af6aa494"},"decisions":[[false,2802,0],[false,3880,0],[false,3880,0],[false,862,0],[false,2802,0],[false,2802,0],[false,1940,0],[false,2802,0],[false,862,0],[false,1724,0],[false,646,0],[false,2802,0],[false,646,0],[false,3880,0],[false,2586,0],[false,862,0],[false,1724,0],[false,1724,0],[false,2802,0],[false,646,0],[false,1940,0],[false,1940,0],[false,1940,0],[false,1940,0],[false,2802,0],[false,646,0],[false,1724,0],[false,1940,0],[false,2802,0],[false,1724,0],[false,1940,0],[false,1724,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"disjoint","kinds":"ss","sampled":{"tokens":[862,1724,3880,2802,1940,1724,2802,862,2802,3880,1724,4096,2802,862,1940,3880,3018,1724,3664,862,646,862,1940,1940,1724,3880,862,862,862,2802,3880,2802],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"428176732355113997fc4f054d3258b817137964632d40f0e787b7c9217b6d80","ids":"ca8399d2b9f9865fae0a17c937fabbc83a88ed2cfa60edb5f9f933fd4b9acb4f"},"decisions":[[false,2802,0],[false,3880,0],[false,3880,0],[false,862,0],[false,2802,0],[false,2802,0],[false,1940,0],[false,2802,0],[false,862,0],[false,1724,0],[false,646,0],[false,2802,0],[false,646,0],[false,3880,0],[false,2586,0],[false,862,0],[false,1724,0],[false,1724,0],[false,2802,0],[false,646,0],[false,1940,0],[false,1940,0],[false,1940,0],[false,1940,0],[false,2802,0],[false,646,0],[false,1724,0],[false,1940,0],[false,2802,0],[false,1724,0],[false,1940,0],[false,1724,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"nonfinite","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":4097,"mode":"nonfinite","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[true,215,4607182418800017408],null],"next_verify":4594500682135173736} +{"vocab":4097,"mode":"nonfinite","kinds":"sd","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,1077,2586,3880,1077,3880,2586,862,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1293,3449,1077,862,862,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"2eaa259160ceed457958c9bbb56df22269703729991a5ab178c25d60c03ab74e"},"decisions":[[false,2586,0],[false,3449,0],[false,3449,0],[false,1077,0],[false,2155,0],[false,2371,0],[false,1940,0],[false,2155,0],[false,646,0],[false,1509,0],[false,431,0],[false,2586,0],[false,431,0],[false,3880,0],[false,2155,0],[false,862,0],[false,1509,0],[false,1509,0],[false,2155,0],[false,431,0],[false,1940,0],[false,1940,0],[false,1724,0],[false,1724,0],[false,2155,0],[false,431,0],[false,1077,0],[false,1509,0],[false,2586,0],[false,1293,0],[false,1724,0],[false,1509,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"nonfinite","kinds":"ss","sampled":{"tokens":[1077,1509,3449,2586,1724,1509,2155,1077,2586,3880,1077,3880,2586,862,1940,3880,2802,1509,2802,1077,646,862,1509,1940,1293,3449,1077,862,862,2155,3664,2155],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"9b46e3847ae5ae724db330b627925abde37f548c0d7077fb222666562ec8089e","ids":"765b82390f7e7e1daaed43fcd137dfd9f1004fe4ef45ec7c12a9c28ccd6da253"},"decisions":[[false,3664,0],[false,3880,0],[false,3880,0],[false,1077,0],[false,2371,0],[false,3664,0],[false,2155,0],[false,2371,0],[false,646,0],[false,1940,0],[false,646,0],[false,3664,0],[false,646,0],[false,4096,0],[false,2371,0],[false,862,0],[false,1940,0],[false,1940,0],[false,2586,0],[false,646,0],[false,2155,0],[false,2155,0],[false,1940,0],[false,1940,0],[false,2371,0],[false,646,0],[false,1940,0],[false,1940,0],[false,3664,0],[false,1940,0],[false,1940,0],[false,1940,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"zero","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],null,[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[true,215,4607182418800017408],[true,222,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":4097,"mode":"zero","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[true,215,4607182418800017408],null],"next_verify":4594500682135173736} +{"vocab":4097,"mode":"zero","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"b4a11e26a2208a02277a02d7a15fbf135fa00d16bddb5e7b70010c709433f9a9"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} +{"vocab":4097,"mode":"zero","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"reverse","kinds":"dd","sampled":{"tokens":[56452,78657,198002,167928,97119,82643,148570,46370,167058,233869,61644,235625,165688,23813,109716,220130,173191,81070,182248,54664,20261,39705,84453,115516,66158,202572,47998,32150,22761,148635,212249,149394],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"dd197241a2b10ca226037362a6b85290b24a99a3265921865eb4b54aff241285"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4605760229444005673],[false,47911,4601928219234751830],[false,51992,4596622254156527970],[true,40,4599676419421066581],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4606682018841420685],[false,118221,4602874627852097803],[false,161847,4598175219545276416],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4603497655468532456],[true,117,4599009219476270953],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4604180019048437078],[false,226852,4599907373248111223],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4604930618986332161],[true,201,4600877379321698714],[false,74044,4595172819793696085],[false,156805,0],[true,222,4607182418800017408]],"next_verify":4587559244767229904} +{"vocab":248320,"mode":"reverse","kinds":"ds","sampled":{"tokens":[56452,78657,198002,167928,97119,82643,148570,46370,167058,233869,61644,235625,165688,23813,109716,220130,173191,81070,182248,54664,20261,39705,84453,115516,66158,202572,47998,32150,22761,148635,212249,149394],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"50af936e58541d1fcf87f8e046583d29daa4752a3efe554131e0f2b6b562cc61"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,29451,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":248320,"mode":"reverse","kinds":"sd","sampled":{"tokens":[26138,65347,209110,143763,91485,65347,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,26138,13069,26138,78416,104555,52277,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"16470dc8389c537891e99a0e055a99e53d1a85c5c453abcfcd0e230d83d76341"},"decisions":[[false,156833,0],[false,209110,0],[false,222180,0],[false,26138,0],[false,143763,0],[false,143763,0],[false,104555,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,13069,0],[false,156833,0],[false,13069,0],[false,222180,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,65347,0],[false,143763,0],[false,13069,0],[false,104555,0],[false,104555,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,13069,0],[false,52277,0],[false,78416,0],[false,156833,0],[false,52277,0],[false,91485,0],[false,65347,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"reverse","kinds":"ss","sampled":{"tokens":[26138,65347,209110,143763,91485,65347,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,26138,13069,26138,78416,104555,52277,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"92cc9f59f858b98ecaa3abe2f5a527b8835eda903c43ff617cf485da1c7f3654","ids":"d96784fcbee239149030b1858ca414a21fb8425004a20341210d64e9eff09ae5"},"decisions":[[false,143763,0],[false,143763,0],[false,222180,0],[false,13069,0],[false,117624,0],[false,143763,0],[false,26138,0],[false,104555,0],[false,13069,0],[false,26138,0],[false,13069,0],[false,143763,0],[false,13069,0],[false,222180,0],[false,104555,0],[false,13069,0],[false,26138,0],[false,26138,0],[false,117624,0],[false,13069,0],[false,26138,0],[false,26138,0],[false,26138,0],[false,26138,0],[false,104555,0],[false,13069,0],[false,13069,0],[false,26138,0],[false,143763,0],[false,13069,0],[false,26138,0],[false,26138,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"same","kinds":"dd","sampled":{"tokens":[56452,78657,198002,167928,97119,82643,148570,46370,167058,233869,61644,235625,165688,23813,109716,220130,173191,81070,182248,54664,20261,39705,84453,115516,66158,202572,47998,32150,22761,148635,212249,149394],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"7702d2059254747a4e4a9b539a7861b1a40196b3ce1cd7694537639d8c8720dd"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,29449,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":248320,"mode":"same","kinds":"ds","sampled":{"tokens":[56452,78657,198002,167928,97119,82643,148570,46370,167058,233869,61644,235625,165688,23813,109716,220130,173191,81070,182248,54664,20261,39705,84453,115516,66158,202572,47998,32150,22761,148635,212249,149394],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"d86610e3536ebd570b12486631c505bd204c634b5f22e37a9737673faff7f309"},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],[true,166,4607182418800017408],[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[false,29451,0],[true,222,4607182418800017408]],"next_verify":4599226383852258898} +{"vocab":248320,"mode":"same","kinds":"sd","sampled":{"tokens":[26138,65347,209110,143763,91485,65347,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,26138,13069,26138,78416,104555,52277,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"902827aaedd2423e7edd80ebdfd03313a7d1a6219a685389d7c6a4062a7de650"},"decisions":[[false,156833,0],[false,209110,0],[false,222180,0],[false,26138,0],[false,143763,0],[false,143763,0],[false,104555,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,13069,0],[false,156833,0],[false,13069,0],[false,222180,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,65347,0],[false,143763,0],[false,13069,0],[false,104555,0],[false,104555,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,13069,0],[false,52277,0],[false,78416,0],[false,156833,0],[false,52277,0],[false,91485,0],[false,65347,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"same","kinds":"ss","sampled":{"tokens":[26138,65347,209110,143763,91485,65347,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,26138,13069,26138,78416,104555,52277,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"s","borrowed":true,"probabilities":"1ad9d3d51ac7e0479f37497f8ca0ab31f83ffe4d651365374727940872c297bc","ids":"7bc3a9eeb5d10402baee296785739754fa6878d9425a26a2e1f8c8ebb57f02d7"},"decisions":[[false,156833,0],[false,209110,0],[false,222180,0],[false,26138,0],[false,143763,0],[false,143763,0],[false,104555,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,13069,0],[false,156833,0],[false,13069,0],[false,222180,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,65347,0],[false,143763,0],[false,13069,0],[false,104555,0],[false,104555,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,13069,0],[false,52277,0],[false,78416,0],[false,156833,0],[false,52277,0],[false,91485,0],[false,65347,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"disjoint","kinds":"dd","sampled":{"tokens":[56452,78654,198000,167926,97120,82642,148568,46370,167058,233866,61644,235622,165682,23816,109714,220128,173188,81068,182248,54660,20262,39706,84454,115518,66160,202570,48000,32150,22764,148632,212244,149392],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"877beb77ef76e381ac35a708a2ede93ed13175e101c3f2988df687fca8ae0844"},"decisions":[[false,170936,0],[true,12,4607182418800017408],[false,47914,0],[true,26,4607182418800017408],[false,50640,0],[true,40,4607182418800017408],[false,110826,0],[true,54,4607182418800017408],[false,113478,0],[true,68,4607182418800017408],[false,242704,0],[true,82,4607182418800017408],[false,79160,0],[true,96,4607182418800017408],[false,42736,0],[true,110,4607182418800017408],[false,6714,0],[true,124,4607182418800017408],[false,172952,0],[true,138,4607182418800017408],[false,29446,0],[true,152,4607182418800017408],[false,153570,0],[true,166,4607182418800017408],[false,156806,0],[true,180,4607182418800017408],[false,69412,0],[true,194,4607182418800017408],[false,109900,0],[true,208,4607182418800017408],[false,41218,0],[true,222,4607182418800017408]],"next_verify":4588938197893757664} +{"vocab":248320,"mode":"disjoint","kinds":"ds","sampled":{"tokens":[56452,78654,198000,167926,97120,82642,148568,46370,167058,233866,61644,235622,165682,23816,109714,220128,173188,81068,182248,54660,20262,39706,84454,115518,66160,202570,48000,32150,22764,148632,212244,149392],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"877beb77ef76e381ac35a708a2ede93ed13175e101c3f2988df687fca8ae0844"},"decisions":[[false,170936,0],[true,12,4607182418800017408],[false,47914,0],[true,26,4607182418800017408],[false,50640,0],[true,40,4607182418800017408],[false,110826,0],[true,54,4607182418800017408],[false,113478,0],[true,68,4607182418800017408],[false,242704,0],[true,82,4607182418800017408],[false,79160,0],[true,96,4607182418800017408],[false,42736,0],[true,110,4607182418800017408],[false,6714,0],[true,124,4607182418800017408],[false,172952,0],[true,138,4607182418800017408],[false,29446,0],[true,152,4607182418800017408],[false,153570,0],[true,166,4607182418800017408],[false,156806,0],[true,180,4607182418800017408],[false,69412,0],[true,194,4607182418800017408],[false,109900,0],[true,208,4607182418800017408],[false,41218,0],[true,222,4607182418800017408]],"next_verify":4588938197893757664} +{"vocab":248320,"mode":"disjoint","kinds":"sd","sampled":{"tokens":[26138,39208,222180,169902,78416,39208,117624,26138,169902,222180,26138,222180,169902,26138,78416,222180,209110,39208,209110,26138,26138,26138,39208,78416,26138,222180,26138,26138,26138,117624,222180,117624],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"d6d1c6bdaa743a0bfcab006b1374dc3401fb581fb3134f7fd65efe0017815350"},"decisions":[[false,169902,0],[false,222180,0],[false,222180,0],[false,26138,0],[false,117624,0],[false,169902,0],[false,78416,0],[false,117624,0],[false,26138,0],[false,39208,0],[false,0,0],[false,169902,0],[false,0,0],[false,222180,0],[false,117624,0],[false,26138,0],[false,39208,0],[false,39208,0],[false,117624,0],[false,26138,0],[false,78416,0],[false,78416,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,26138,0],[false,26138,0],[false,78416,0],[false,169902,0],[false,26138,0],[false,78416,0],[false,39208,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"disjoint","kinds":"ss","sampled":{"tokens":[26138,39208,222180,169902,78416,39208,117624,26138,169902,222180,26138,222180,169902,26138,78416,222180,209110,39208,209110,26138,26138,26138,39208,78416,26138,222180,26138,26138,26138,117624,222180,117624],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"2b96965ad06869b8eb87ada9111ea60f99197b6af42cf97ccb57c97b8c273010","ids":"f68105ed1d81d54f4385517c59a594fac676d5db578efaa10aa036c235df91c9"},"decisions":[[false,169902,0],[false,222180,0],[false,222180,0],[false,26138,0],[false,117624,0],[false,169902,0],[false,78416,0],[false,117624,0],[false,26138,0],[false,39208,0],[false,0,0],[false,169902,0],[false,0,0],[false,222180,0],[false,117624,0],[false,26138,0],[false,39208,0],[false,39208,0],[false,117624,0],[false,26138,0],[false,78416,0],[false,78416,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,26138,0],[false,26138,0],[false,78416,0],[false,169902,0],[false,26138,0],[false,78416,0],[false,39208,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"nonfinite","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":248320,"mode":"nonfinite","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":248320,"mode":"nonfinite","kinds":"sd","sampled":{"tokens":[39208,65347,209110,143763,91485,78416,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,39208,13069,26138,78416,104555,65347,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"e1e3fedd7d84890b40431d55711855737f32ef66441c1519f6618ebbffca48a0"},"decisions":[[false,156833,0],[false,209110,0],[false,222180,0],[false,26138,0],[false,143763,0],[false,143763,0],[false,104555,0],[false,117624,0],[false,13069,0],[false,65347,0],[false,13069,0],[false,156833,0],[false,13069,0],[false,222180,0],[false,117624,0],[false,26138,0],[false,65347,0],[false,65347,0],[false,143763,0],[false,13069,0],[false,104555,0],[false,104555,0],[false,78416,0],[false,78416,0],[false,117624,0],[false,13069,0],[false,52277,0],[false,78416,0],[false,156833,0],[false,65347,0],[false,91485,0],[false,65347,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"nonfinite","kinds":"ss","sampled":{"tokens":[39208,65347,209110,143763,91485,78416,143763,26138,143763,235249,39208,235249,143763,13069,104555,222180,156833,65347,169902,39208,13069,26138,78416,104555,65347,209110,26138,26138,13069,143763,222180,143763],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"b4bed38f61f0aacd81dabb052355f74eec58367f88019e0d3acba868c4dcea67","ids":"1853c0d6cb4ca804b7ff3c57bfbc6da9717bb6eeb2bfc7e8dca13cd918dc8ae3"},"decisions":[[false,143763,0],[false,222180,0],[false,222180,0],[false,13069,0],[false,117624,0],[false,143763,0],[false,52277,0],[false,104555,0],[false,13069,0],[false,26138,0],[false,13069,0],[false,143763,0],[false,13069,0],[false,222180,0],[false,104555,0],[false,13069,0],[false,26138,0],[false,26138,0],[false,143763,0],[false,13069,0],[false,26138,0],[false,52277,0],[false,26138,0],[false,26138,0],[false,104555,0],[false,13069,0],[false,26138,0],[false,26138,0],[false,143763,0],[false,26138,0],[false,26138,0],[false,26138,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"zero","kinds":"dd","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[[true,5,4607182418800017408],[true,12,4607182418800017408],[true,19,4607182418800017408],[true,26,4607182418800017408],[true,33,4607182418800017408],[true,40,4607182418800017408],[true,47,4607182418800017408],[true,54,4607182418800017408],[true,61,4607182418800017408],[true,68,4607182418800017408],[true,75,4607182418800017408],[true,82,4607182418800017408],[true,89,4607182418800017408],[true,96,4607182418800017408],[true,103,4607182418800017408],[true,110,4607182418800017408],[true,117,4607182418800017408],[true,124,4607182418800017408],[true,131,4607182418800017408],[true,138,4607182418800017408],[true,145,4607182418800017408],[true,152,4607182418800017408],[true,159,4607182418800017408],null,[true,173,4607182418800017408],[true,180,4607182418800017408],[true,187,4607182418800017408],[true,194,4607182418800017408],[true,201,4607182418800017408],[true,208,4607182418800017408],[true,215,4607182418800017408],[true,222,4607182418800017408]],"next_verify":4594500682135173736} +{"vocab":248320,"mode":"zero","kinds":"ds","sampled":{"error":true,"next":4597358663699103712},"residual":{"error":true},"decisions":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"next_verify":4594500682135173736} +{"vocab":248320,"mode":"zero","kinds":"sd","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"d","borrowed":false,"probabilities":"a781d9dc26dcafd56743703f36a26ed788d7941813aba3686dc5ecd68927c969"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} +{"vocab":248320,"mode":"zero","kinds":"ss","sampled":{"tokens":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"next":4606569824417127725},"residual":{"kind":"s","borrowed":false,"probabilities":"6c3c396ed6b5c36dcae172271f462051b1266b851e92df3deea8ac65478fd712","ids":"af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"},"decisions":[[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0],[false,0,0]],"next_verify":4606376319297213697} diff --git a/tests/fixtures/mtplx-sampler-penalties.jsonl b/tests/fixtures/mtplx-sampler-penalties.jsonl new file mode 100644 index 0000000..852cb1d --- /dev/null +++ b/tests/fixtures/mtplx-sampler-penalties.jsonl @@ -0,0 +1,360 @@ +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"f7b22d1282ce8324c2d09fa8a75b3fefeee191e14662f4a6c3c3f091e46296f2","cpu":"38548298d9809391aba5314d8ce822c5ecdea0892221161f953a3b5116f99177"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"f7b22d1282ce8324c2d09fa8a75b3fefeee191e14662f4a6c3c3f091e46296f2","cpu":"38548298d9809391aba5314d8ce822c5ecdea0892221161f953a3b5116f99177"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"e99664a3af8632b18338fe2d0631e76bd22a4d6f53f7d899cc19185993ebf599","cpu":"d9dc433e5b20abf62ed88bbe59b58179de935106572d171a7218fe3d8fb6dbfe"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"84ae21adcd722210d12963d455e2c4bc81c7e9aa0ebc09794c36793f7f60a8c7","cpu":"76d3e0fefbf8e2dcafee0cf9f606b32fa50b829e121ed1491daf2294ad7f0b39"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"adc4c0f53f409bdeb0fa9ca5ac9929c467d9a5e24bc43724b23be07f23dd89c9","cpu":"e07c984551da8467d819d4b9e9a5424c778b7facc08a36b4db14440daf4ea9cb"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7d767f12f50c403b4a4a3adeabfb76b67527444295c7c0fdf61812cdb19c4632","cpu":"e5a794778a09a5c58fbc4578cabdd9ec7238ef053df38132ab42eb930edd1144"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"f7b22d1282ce8324c2d09fa8a75b3fefeee191e14662f4a6c3c3f091e46296f2","cpu":"38548298d9809391aba5314d8ce822c5ecdea0892221161f953a3b5116f99177"} +{"vocab":17,"dtype":"bfloat16","layout":"plain","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"feb0c78b540530e62ff163a9b3928b86f3b74cd48dc71be964b56f5c48050712","cpu":"fdae25a96ef19a9d8fd9369c8dc639fe056781e80f6761354164bb19cee2a98b"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"70a21e0cd9e63707cc18dbc6fb2802e05c7fa99099e7a7202890797db5014c4b","cpu":"f7545756b212add57777d514d10b1fe3d5eb91173abaab9f550b36c169ccb72c"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"70a21e0cd9e63707cc18dbc6fb2802e05c7fa99099e7a7202890797db5014c4b","cpu":"f7545756b212add57777d514d10b1fe3d5eb91173abaab9f550b36c169ccb72c"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ab54540c7a7ffe023ed02d705904bcf3ec7e884a42dba3b35db93cc31ac5c7f2","cpu":"f3882b66a4c2180b37c6f49434b656058302961e181950aca5ec6e0dc571b4c1"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ba9a48cfbb85f2c497c5950eb78af989140faad371751bf8c7b88e6e973dc283","cpu":"9d5a28e9fc568f3f92e5704180d704e8ca5a5ce4e4c546228d180e28cefbedbc"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"f5f1d81b215cc62d4bdb380eaf7f93b553ce8be97b9aeddd97d7d9e1ff280ec2","cpu":"0be50ea931724dac18579df300bf205c39adf96a41c4a7e537b77f76def10c3f"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b2dea2e6bc248c9efda0c530e58babb444ed5132d22b53eb9f1b0fc650f29680","cpu":"b0fd3717af5cb4745725d91208e48441db4ab96ca21521d53d61c3ab29e65815"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"70a21e0cd9e63707cc18dbc6fb2802e05c7fa99099e7a7202890797db5014c4b","cpu":"f7545756b212add57777d514d10b1fe3d5eb91173abaab9f550b36c169ccb72c"} +{"vocab":17,"dtype":"bfloat16","layout":"strided","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4b61736f07381296ad7477a77081660f0e1ae0f55fa262fce50945541c562346","cpu":"5d6fc71bb120195736956c30a4a9b0830202e2f553359847d8980428144064dd"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"f86c5bc33b33f8fd0aafddd3822812e4e324b5f72150b9b7adcc15557f2e915c","cpu":"e6a841f69b1878610da39b15ef1230e955d7f4d69a48a5d88687d2326f48f0a3"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"f86c5bc33b33f8fd0aafddd3822812e4e324b5f72150b9b7adcc15557f2e915c","cpu":"e6a841f69b1878610da39b15ef1230e955d7f4d69a48a5d88687d2326f48f0a3"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"7cfcc3d29ba1da09fd73d458fb45b6ca019e07f9c7368a77aa531cdca89a1f79","cpu":"ced61ffa72db66c1e85364063f95a146d0b9f8f75a9efcbc729f67ccfd5ffbf7"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"958e51e6a0cec84fdad06be5b2846b2aea387ba43eff1309358f963299528952","cpu":"c6f015dd8eba05cca9af9204aaf29fb52f133027e4c1a0fccaaef88dfda98bd0"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"927e6c199817f116af6ff161fbbbb53e38868cf1d06884a55811a43703494d6d","cpu":"7004a1f87888e3976a482c5127da3bc3770e005b8d3247c85f6bbcec8078882c"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ae701090ba93a05a0566a82194d4a702bfc2bf65ae2cfa67228dde1d8848e320","cpu":"6c41e16ca9fca1a073154d5782b756c5d7a2a199793bc0d261bd56381ba89750"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"f86c5bc33b33f8fd0aafddd3822812e4e324b5f72150b9b7adcc15557f2e915c","cpu":"e6a841f69b1878610da39b15ef1230e955d7f4d69a48a5d88687d2326f48f0a3"} +{"vocab":17,"dtype":"bfloat16","layout":"offset","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"95c4ca2eca8a58004c5be0dd6fd021afdd7e89dd457010583c5256812a7ad1f7","cpu":"999b93cff6ac737a026ac299cc0bbbfaca9eb22498ddf778298862eaecb5e7e8"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"72e1efadaef950e26e45a6b538396e76066df98f196b9ab148537e93dcda6d5f","cpu":"fd82edc5699889c1f172eb2de990fc1fec37d669168d6b2b86943c1782b96ad0"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"72e1efadaef950e26e45a6b538396e76066df98f196b9ab148537e93dcda6d5f","cpu":"fd82edc5699889c1f172eb2de990fc1fec37d669168d6b2b86943c1782b96ad0"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"7e79145edc74f98ce6e38ffe395397a9fc080868e3f936a20e5ba6ecc80f8d17","cpu":"b6e9b60657d0f06dcbcea9da3a2210aafe7c76fd34e1271c5d9e2568a9228ab6"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"eda732fa7fafde97178326bf65b8f509354db98997997a42befd200522d46ee5","cpu":"55274a03aa726084ae0270c5de20328fea9b45b4063121a3cdbba6d7a7b7b465"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"899bb2174701831afd51cdc6f26792f74c913a8b1c5e5af4fb4a5bb4bac05f06","cpu":"6726e016d9eeb2fb6edc3a7661a21a3d3ea132f621c3ce5a0fa3579742530f33"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1d2659cc1edf6b3904232d62edbdafb7d7cd5e35e276772ab8bbb374867144a1","cpu":"fbf2b6961ca4aa94d744c3dff01ac7e064aac38fb95fc25b13613c54f4c9d5dd"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"72e1efadaef950e26e45a6b538396e76066df98f196b9ab148537e93dcda6d5f","cpu":"fd82edc5699889c1f172eb2de990fc1fec37d669168d6b2b86943c1782b96ad0"} +{"vocab":17,"dtype":"bfloat16","layout":"reverse","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4fcb177a0187cf51cedc1effce5aeecbed11c457e45f10368608570ddf64a08f","cpu":"52b34e38f2ac993c7cb44fc4f094ff733dc1566d2cf448784ade5090eb5afedb"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"cc0be1789b68dded2586d0a05b938b394aee05338e71fb8554ecf5139439432d","cpu":"88d882846eb1aac63785642a0a23a988b51a934155898c2a3213a281c473b5b8"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"cc0be1789b68dded2586d0a05b938b394aee05338e71fb8554ecf5139439432d","cpu":"88d882846eb1aac63785642a0a23a988b51a934155898c2a3213a281c473b5b8"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"2ec80d06e07b9f7d7afd3672af3ddc4c1790bf2de1ce22bbb154622c0e9a33e6","cpu":"870e130d4db795a92e29bc328938dcfebcedcc22223062a3946c49019fb5f607"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"45f70f466af31962aa02b6231c3283787c36cb685473d2f0afa59857e6a9e85d","cpu":"02882e36fd2049924b3738360d8f88821678e364940164d039918a24b0635344"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"13a380eece7361c2b5d97990457c7b50d8904316bfaf9612017d5c16d8559f68","cpu":"08f9b9054d8bdb3740655716cc0e2088aff1ebfd0bdd56f55648f97abe3f7589"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"4e56cd47bb36c9fc19f97b1b58243ace13560c693f7d3e372dc5199852f4995c","cpu":"b11f0bff7b2863aa75b2f6e70985c4948cd0adc0ae34e7e80d6dd90199ae4d99"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"cc0be1789b68dded2586d0a05b938b394aee05338e71fb8554ecf5139439432d","cpu":"88d882846eb1aac63785642a0a23a988b51a934155898c2a3213a281c473b5b8"} +{"vocab":17,"dtype":"bfloat16","layout":"broadcast","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"c374ab2f5068f21c59afaf9496943e704164742f0e62ef1212c7c917d2e04a04","cpu":"43fafb30744a0eef30382ae98d419e9727c3e22701577e6575cf95b362f175a5"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"d585a921f569686388a9def59daf051d9ef01aa1659607ac644d29a4272887ec","cpu":"fd094a0f0d372087dc75bccbdaeefa97895785c6852ba6c423b44f06099a951a"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"d585a921f569686388a9def59daf051d9ef01aa1659607ac644d29a4272887ec","cpu":"fd094a0f0d372087dc75bccbdaeefa97895785c6852ba6c423b44f06099a951a"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"5d2ab1317880a6a5f1e8bf7a17a0847a01e7451b1cc27a0b217bb44bd3e7027d","cpu":"58f54bd045319dd86c40ed56c3c55a835e944a952a3335bb3cacf30d45b8fa81"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"639e741737c1811dc83078991e2823f71c3bbc9a931d16d8cb8be42181f296df","cpu":"5df541f17fa925087c70b7620eb2aad8431f9f9021eea1a82e6e360af74388c9"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ec8c652ca5e011b0f02f0327b81848c53dd6793bf7bb3fe50617a79fdbce789b","cpu":"6dbcceccf90aa5a88e71cda208f0ce765ced087a7e6c58f3e3102af0fe4b9d2c"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"09d4599b69626c36b72e058f64ff15622aacc7349f408bbd96af43e620a7e17f","cpu":"992755c4a02b6de83965847083d11092282d29249c8e1fb7dac7bbf06159ce12"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"d585a921f569686388a9def59daf051d9ef01aa1659607ac644d29a4272887ec","cpu":"fd094a0f0d372087dc75bccbdaeefa97895785c6852ba6c423b44f06099a951a"} +{"vocab":17,"dtype":"float16","layout":"plain","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"714f7968e3bc59665d31d6ce6378047f0ed99b262a543fefdbeaa8ebb3a22c74","cpu":"e93959ff38be7ca1230f58f2e930b88e63fcc8b4955e178bebf8d6603074492e"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2392f69fbaf7a0a5c293cb5b19af262ce925d9d8bc727cf1d599fe039d12510c","cpu":"0898fd49b8b56dd9655815af090797b126ed06c47dee470aaa2f2dea01eb46f6"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2392f69fbaf7a0a5c293cb5b19af262ce925d9d8bc727cf1d599fe039d12510c","cpu":"0898fd49b8b56dd9655815af090797b126ed06c47dee470aaa2f2dea01eb46f6"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"8495fb0f812d146881a3e5d7c5a0bb04d6c19651c5ad5adc2db2050808f1659e","cpu":"8c3ffd564c4861635c9c185dbe4bbcec06abe76c1696b647b29d5a8609b935ae"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7968a5ca8bad3985c72ee2abbc66445cd91fd3c1d827b9689cba627cb1058259","cpu":"ae5cc84a7ee58b40f0dd85b762620452b96e08d14e4f4ec4587c3c6b740215a6"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1d1241a5451315b8b79f77a8a04d6bcbee0cc1d22d72ad7739a42abddac7e5d6","cpu":"cf42565a0edc774cc3b61f3d5b60001d636a50dcf947f9ba0bf586c15688684f"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"46f3826f83d3bf8d473929afb1229787a246eed951fb62371fe851e0e03b0fac","cpu":"c5e5c68d829251edf1f0977fcd625d387b327251ee39f19521635263e9669493"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"2392f69fbaf7a0a5c293cb5b19af262ce925d9d8bc727cf1d599fe039d12510c","cpu":"0898fd49b8b56dd9655815af090797b126ed06c47dee470aaa2f2dea01eb46f6"} +{"vocab":17,"dtype":"float16","layout":"strided","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"0a2529c0ab81ee6769e87b7343448e00a9de8ceff9a37475a3347a6dce740823","cpu":"beea5cfec82e8fc207dfaba0b7eaceab21ab4ba4291410dd969f851fa745962b"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"5939fee9d6d6e18026d8afe4260f9c1e739108d0bf7fac45ba86f7018ef8e486","cpu":"e0a03ed40c1355634ab4813ae01daf6b4318caf8e6267852b3a76c25f66b12a1"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"5939fee9d6d6e18026d8afe4260f9c1e739108d0bf7fac45ba86f7018ef8e486","cpu":"e0a03ed40c1355634ab4813ae01daf6b4318caf8e6267852b3a76c25f66b12a1"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"99a3e8dcd1953c665ee30f4d369896a4e4e5659b2bc1ff9fbf5059c6b4a31951","cpu":"98bfc15524bb61007a05f1d08b696dfdb370d0022ebca817746f40eb8f9a92db"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"cfbe6bbb5690d9d4188ac7512a23bd8d69a99d076dec9a5b29df7704847f7634","cpu":"3ec71c01e239456ed16c3fe718f1f1db8c3185ca84aaf5921e483ab90037596f"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"bb1de0800233f201a8b8e26894aecae268acda1c52d64d0de0b4b2cbfa67c2fd","cpu":"c7820db6fb12ad1906ac7e20bbd3ea001071137f0404d7996b5536a29056057c"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"3611416be091083550eef72f66df51225ce934afa4e3d87238265820aff1b436","cpu":"c73ef94bd4a563a938a06f6c70c8af300afc747257a8f1b991eb03be8697fa8d"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"5939fee9d6d6e18026d8afe4260f9c1e739108d0bf7fac45ba86f7018ef8e486","cpu":"e0a03ed40c1355634ab4813ae01daf6b4318caf8e6267852b3a76c25f66b12a1"} +{"vocab":17,"dtype":"float16","layout":"offset","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4fa077b6e71aba6b203b4753c76cdacf294d2b83a8f4893b1ab6b7c9227ea63c","cpu":"8109f3c96e6d86023f23343c27c8ea3e1deccf74123c4f79db2df707acab2619"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"41af76912c884d64b8a726c4ea5856f4e008a890355d8bb0842a1408801ba0f1","cpu":"d9453f94090003d4c4dd1777a9140d19f33730e06bd73857c2c8be17f5a4ad61"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"41af76912c884d64b8a726c4ea5856f4e008a890355d8bb0842a1408801ba0f1","cpu":"d9453f94090003d4c4dd1777a9140d19f33730e06bd73857c2c8be17f5a4ad61"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"e56cdc2876ee9f9fa28ea5bfffe236cac02ac4862aca39f9e2af42ab23cdf474","cpu":"6b3ba509d7a1f801182c8475c625df24edfd5133d485a91d4cb3abfb788b2278"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"606eab7ab64f79a58f5e346963824a3a11bd06d9ea8603ff43a0c917e2b61506","cpu":"a99a24f03166558e52ec82644bdd2c13a99806dd8f18e131378b92a3b324b7ae"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"f44def758726548ec95b0b5a776db5797ec4c4b7f55d1a3dbfbe522f9bb30cc1","cpu":"5510e261646ea3bb43ac5efc7633a727a5943cbe71356c125366b817f2558e63"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"898493696b15d401897d17578a0d86eb54295a8f821f9ed2147e6dfc520b375c","cpu":"c60997bd96fa1a13b7830917f478cf25a861706e8c1b3afb6b6663827c848d65"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"41af76912c884d64b8a726c4ea5856f4e008a890355d8bb0842a1408801ba0f1","cpu":"d9453f94090003d4c4dd1777a9140d19f33730e06bd73857c2c8be17f5a4ad61"} +{"vocab":17,"dtype":"float16","layout":"reverse","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"05aeac8ec42df2ebc0879430c909a74c42b9d28e435272cf4d404348128d057a","cpu":"6e6b7aa9d1e7e6d79f26340a004ef7788ce47d586eed17ba3eb4e1710c75b0a5"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b49e2c6c41bfbe9d9d543f6913eaa3921e23bdb206bd18ef2184ea3c7ec1c7e8","cpu":"334d409389c284021372c6c1756de57aa6232f5243bfbd4df73dd4c867457174"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b49e2c6c41bfbe9d9d543f6913eaa3921e23bdb206bd18ef2184ea3c7ec1c7e8","cpu":"334d409389c284021372c6c1756de57aa6232f5243bfbd4df73dd4c867457174"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6f4bcab6c87cee0530e9e86b82714bd9d65aa0b4e8daa88624e4ec1703b722a9","cpu":"2f20520b627ef70932f68de644c32c42b93e54e57ee5a0a4fa9ec5256e9d7bfe"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ad7da68d3126f89a69fb8f5bd32fbea2ac9c7b085b6b185c3812afc3e84cf90a","cpu":"cce86deec31b3dcce7ae9abae214435368646732df070297db60800d1dfc0c81"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"d100e445e575713d3c424e42d12a45294fd3dce30878cb0e2ebab5eef314ea4c","cpu":"968ca8b26dbdc52d20cfce094a6fd36775eaf2df9e4f28c12887b862f0d14494"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1b47b409a56bbede626fc98b2c2c1b4652fdfeba7e96e54e64e2b38af3c915cc","cpu":"4993a712a252716ae695c4006d64f4e63c45fea0106a7fc6233324bbedbaaa23"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"b49e2c6c41bfbe9d9d543f6913eaa3921e23bdb206bd18ef2184ea3c7ec1c7e8","cpu":"334d409389c284021372c6c1756de57aa6232f5243bfbd4df73dd4c867457174"} +{"vocab":17,"dtype":"float16","layout":"broadcast","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"67a755c5718658a952470475ce61125a90a3d58ca27ab4a8e21d2213ebf16721","cpu":"8a47b6b1d2a91df534f6783f38907588abfe6b9687b6f3daaf1a50d0f09e364a"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"7bb86ef91e893a44c27bb468a57affea37589c89ede61929f5ffea0f2255d080","cpu":"6c2793be363f2596f811bdfb813066efa67049688d515ebd731d3eb4ab482d6e"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"7bb86ef91e893a44c27bb468a57affea37589c89ede61929f5ffea0f2255d080","cpu":"6c2793be363f2596f811bdfb813066efa67049688d515ebd731d3eb4ab482d6e"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1313d0b981f27d60e7daa59669f501ab11f5d381b37a54c6f5f5e7e0f7daa2ff","cpu":"95482f6ea5c64d26858dfda538dea1318494f94723a714102e5e55a11232c707"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"675d38c23d4a66ce9914590bc5cd2d811fd9669fec369fa0a2d474a5c665c280","cpu":"53a582ebd06fcfc4ef99e4dc34e6d570bd3c674f2445550237ec1cd5ddcd69c3"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"d103a2c7c0090270bda2273ad0610f87e481c580979777aa0a920a1d5bd8ee1c","cpu":"844382cce9090613c0b576adf0fa6dd2bdda6bde865784ba206623942cbf87f4"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"a503ba1b1dc5103f86b8ef0ba6fd81cd8ea85bbb78a1d0c414b5c16c2abb717c","cpu":"14710eabf9a2048c5d6250bcbebf39c4fd7ef9851c443f965b48abc8daa4bf8c"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"7bb86ef91e893a44c27bb468a57affea37589c89ede61929f5ffea0f2255d080","cpu":"6c2793be363f2596f811bdfb813066efa67049688d515ebd731d3eb4ab482d6e"} +{"vocab":17,"dtype":"float32","layout":"plain","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"355bbe1d87540e80180b53813a9f4078dd05dab265161e6b79527bea6b791cad","cpu":"2d64380c690c0b9a33b83d407d4b78a6e8c10d6c44a6e9270859b7dd78495556"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"3c379b1ecfd6b69f7826a97b39f2c24d73897f428ee18d8dc20cedca40a550c4","cpu":"bfb886e114fc6db1d9005c9a2f96d36cfc85dba396637d105569ce3a05ae84c6"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"3c379b1ecfd6b69f7826a97b39f2c24d73897f428ee18d8dc20cedca40a550c4","cpu":"bfb886e114fc6db1d9005c9a2f96d36cfc85dba396637d105569ce3a05ae84c6"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"13ad6b95275b7413bee8fb083247d36be04027959791dcfeea0ac8862edcb52a","cpu":"290f99ba1a073831341e7079eac79c40164ee046e1d477878ffb4313495a706a"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"10412228b742d793dd889eb5dbeba0b9592eab888631af898a13af474b3372ee","cpu":"b8ced69bf773a90461aae82c4c82036525b83a151814501cc5a83149ae36ca06"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"51085d3aa7c342c9eb0879aa5541b399902e6c8bed0ad3373b25258fe862074e","cpu":"23d72ad8c8e35c5bb1d925065ee81fa7a66d4cf5f2000c2d271a8cacf18fbb64"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"60078a0195058420a63f03044c919402983a31735c991c3aa80d60a58396e99c","cpu":"dce493ee1bc6b2654d0802745085fff775acc8e3dcd5246eab57475094d312b5"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"3c379b1ecfd6b69f7826a97b39f2c24d73897f428ee18d8dc20cedca40a550c4","cpu":"bfb886e114fc6db1d9005c9a2f96d36cfc85dba396637d105569ce3a05ae84c6"} +{"vocab":17,"dtype":"float32","layout":"strided","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"2631dc8caf1e4209833f1ad15b77beba63d398a1e0dc5d32198dc121ea026435","cpu":"b5f6a17869426c20d1471139dafe386b938758954e785f81c04378629523c7ba"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e0234da573e261cacab8066774cc5b677ef677ed00d02718e9fa010a21c153a0","cpu":"1fad2264f06a4e7882f8fa1c0405e50bba597608eb59d1316064b60093aef46a"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e0234da573e261cacab8066774cc5b677ef677ed00d02718e9fa010a21c153a0","cpu":"1fad2264f06a4e7882f8fa1c0405e50bba597608eb59d1316064b60093aef46a"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"e634c8b061885f79beea266740356f606416319e31308fe3ac38b953de3addb2","cpu":"dff01fdf74ef6e8f480a7aa959ca697e341d77a04c91cc886204a255a04a338f"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"97e32cdb76eeebd1735a05b791abea6ae47410055f4c7e298904c2f55ccdde78","cpu":"aeadc3172063929fec444e96ab71cfee8e0648f19498a2b673abc93ef5f74ef1"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"624f2f3e3ae974be4b854204d6babc6983e8fa73d6339f6fae32cb64fe3d6e91","cpu":"89a4e17e85de7ab3863b98b4e0ac77813b710344b3eaf6ae53fce2e4ff34121f"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"86a1d5ab2ab8bc382639ccbe4d224c22fb4cde5959e403cd60ee2d800a4fd31f","cpu":"f2264d71f24d1fabeddf606549d502f02bd10c0b97b1f15b09cdb014b7f75888"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"e0234da573e261cacab8066774cc5b677ef677ed00d02718e9fa010a21c153a0","cpu":"1fad2264f06a4e7882f8fa1c0405e50bba597608eb59d1316064b60093aef46a"} +{"vocab":17,"dtype":"float32","layout":"offset","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"748d046f37034d3dfba7f31e744ebe6503dc9dcfeccb9e11326b1b59fc890cd2","cpu":"95ca8f9b3d7ba5a663c639d63a5504f2729857f592d50393f30ab872fea7fa40"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c43482c27ff20f6ca2564abaf7b0d77c2711880cae1ae2eea5f3ec07d9d96358","cpu":"6454fb0c665a494b8b83e46ac7dfa025830ebe7b58226a73b10c0bb8ebb90729"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c43482c27ff20f6ca2564abaf7b0d77c2711880cae1ae2eea5f3ec07d9d96358","cpu":"6454fb0c665a494b8b83e46ac7dfa025830ebe7b58226a73b10c0bb8ebb90729"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"39950264d7fc17a2c5f4204109cbc7b2224eb6b4f91eded19448355eda03c205","cpu":"3b75a7c72cae4ea12b00f5173824ab09dda5998a4c2e6e65363a8990e436fb49"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1f73ea99de9e5899c209a36f174f151b19a537418a11f1fa68fdee814459ad31","cpu":"8e2e360557e3de9fba9eb024ff5ad69b510a25ed4f6d898421f85114e4d17185"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"a81cad3ec40aac8cbd54ebe7f7b714e71e1c5153d212485cc478488264c31064","cpu":"1fcc86bacc2d37534a209fb16eda554fcd9bab826ab5d77bfb9533a4e346ebad"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"62a56d1a2e7614b24c02665571234dba9a6a66026bdcb4223d132a7f3b609a09","cpu":"88dbb8ce77f476cc96816cc9206f4c7277f345ff69b6bee946cedd208515c945"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"c43482c27ff20f6ca2564abaf7b0d77c2711880cae1ae2eea5f3ec07d9d96358","cpu":"6454fb0c665a494b8b83e46ac7dfa025830ebe7b58226a73b10c0bb8ebb90729"} +{"vocab":17,"dtype":"float32","layout":"reverse","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"9cfdf4c73377fe5dc71784f3fcf149938082b73da1000aaf2222a0d9a5918c82","cpu":"740ffd8d75a1e071fc85ad0563d6879f63580f8d91f60e342c63bf3158581f50"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"noop","counts":[[0,0],[8,3],[16,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"d8a33cecc223b6af9b50af26787f24241cd7bfa170cc5164468c75325d36e49a","cpu":"8cbc6bb4f2593681df1569e71757d32312f55c6b66d14bfeb3b6830a03060984"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"d8a33cecc223b6af9b50af26787f24241cd7bfa170cc5164468c75325d36e49a","cpu":"8cbc6bb4f2593681df1569e71757d32312f55c6b66d14bfeb3b6830a03060984"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"counts","counts":[[0,0],[8,3],[16,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"cbae442aa74ea17bf95312dee52d4a43c7293069e7cfba393b101b6242f8b7d3","cpu":"fd2ef3c6c0c0454af40ad3c0d3f688026efdf4294e81df66d94674882c447b8f"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"0ae935afc8790aa6547da7d5ba444e262045d36e4185a7856cabfbfe29b5bf11","cpu":"c4015a7987b653b75a30b29655313ddf98b13160c868f4f3a5ee1eaadcdab4fa"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"both","counts":[[0,0],[8,3],[16,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"f5e40163eecd232351a8e88d41f447c8c9f09d6758a9cce9e4b11fd3db492ae7","cpu":"e102cfd18bae817658b4294de29fe416770181b44b38889c593df9a237d4ea48"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"clamped","counts":[[0,0],[8,3],[16,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[8,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1237f105c5f82f8a9a4e547d706f5abd093719e4c82ed9f353ec00e95a3f5c1d","cpu":"4298beeb0ae8b0c6d132cef1034fa09f8f09fbaa517c4aff59c096af820f0338"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[8,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"d8a33cecc223b6af9b50af26787f24241cd7bfa170cc5164468c75325d36e49a","cpu":"8cbc6bb4f2593681df1569e71757d32312f55c6b66d14bfeb3b6830a03060984"} +{"vocab":17,"dtype":"float32","layout":"broadcast","profile":"single","counts":[[8,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6fdd844df9bc54ca8fd2b46640992a3337e8d88453c6cf8d6c6704324f4bb90b","cpu":"cf88449bba6f72f02493615023d1f0fe7e60f195cb232796b484fc2aed3d41c1"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"0ff723690ee160505f7424f2075936c99777c09b8c6d9af63d81fa7c7c2c708e","cpu":"6bb503cb3d8733638db9f28e251bd4e5322135da53e8ff8fb5e53801788300e6"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"0ff723690ee160505f7424f2075936c99777c09b8c6d9af63d81fa7c7c2c708e","cpu":"6bb503cb3d8733638db9f28e251bd4e5322135da53e8ff8fb5e53801788300e6"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ec4c169e2f27d2951d53f62e5047ae91e12cf8982575669888c56f5817f11f2d","cpu":"54a4076bc567bdb0c09255c8c171fa8d622d15e2bcdc53be68274c6606dcb7ae"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"5b5a6d7a9b6778330d1bc4389d3016118b9b613df2396100c348e0ca09f6d8b7","cpu":"7c85bab3946225955fe224e2e0024d64e8e13eff338f06eae6629cd32ef74ed5"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ab9f74cd9a9c7a1a52271d026eb21024bb44385ba120f6b86218fb42018dc0df","cpu":"a88972b32a315e44dfc35783a856f735c58d6e1014c7cf61d00bfd8d03194375"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"207e0e1ed57381762942fc131cacf2801bce0d2c59c2f8cfe72e949b9f405122","cpu":"c40df5ca434a858de2c4f24c18bec641468dd93432783e18acf7d7f0efb76d0a"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"0ff723690ee160505f7424f2075936c99777c09b8c6d9af63d81fa7c7c2c708e","cpu":"6bb503cb3d8733638db9f28e251bd4e5322135da53e8ff8fb5e53801788300e6"} +{"vocab":4097,"dtype":"bfloat16","layout":"plain","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"a25a445a0a540fc6c9c543ab51668b854569bdc36f36d86502b8a5178b15a9c3","cpu":"78fc212d9c05690fb61968383a1a568c6600b9299c42f260699d0f411329d0f4"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b86628b66414c3e66e7c53501a965c54ddb802a2f95fba8efe16951b59b17a51","cpu":"5266eb9b4b567b4653f7ac0f99e71e2eb34a7cc8b507b8392f3d34499a10b5be"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b86628b66414c3e66e7c53501a965c54ddb802a2f95fba8efe16951b59b17a51","cpu":"5266eb9b4b567b4653f7ac0f99e71e2eb34a7cc8b507b8392f3d34499a10b5be"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"393ef2c725ff08f600dff29a3ece5ee87503ac32fb66593c3c2f35ca13074246","cpu":"4d753fe897e86ccfeb56166aed7193a88145ae93429e3e6770df9f2a0287fd35"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"38fed9e0a80491a8e71c4c858fe7813144a0c1d0c4088efe2127d386b90ea4c8","cpu":"96a013f9f969965f7c88ce4661ea8d0d970d961862bf0b311626859e113fa361"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"c2107a56ef207c31983dbe3934d41ec1b093566b2819a01176ed312bb45e0728","cpu":"25351ebd51016633d85266f4943209fdcdf1c92723e916f5dc0c0c45b09879fb"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"22845262751cfe138f22e67c8b5620bdc1350fad2e5796c77d6ece8100fedf1f","cpu":"2cef0190affae0eec1a29f79d4833a2a45cef0c72f71aa19cd3edc27acda4e68"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"b86628b66414c3e66e7c53501a965c54ddb802a2f95fba8efe16951b59b17a51","cpu":"5266eb9b4b567b4653f7ac0f99e71e2eb34a7cc8b507b8392f3d34499a10b5be"} +{"vocab":4097,"dtype":"bfloat16","layout":"strided","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"d3acda20ef5a718049e3fbdb02a9ba6054213a7c8ecaee6dbd0a47dd4e460b14","cpu":"fb22e33e9e1aa0f3eb7e06a76519d48e33d7c19c0f7f00e5e206e36c57a10b41"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e047f2ea9d1015638cb59d890665c8da199c8f47abfa8ca319fdd6800e9d101d","cpu":"96be8529892cd83044c78af24ee10609438314b383a2a71dfc62a882e1370768"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e047f2ea9d1015638cb59d890665c8da199c8f47abfa8ca319fdd6800e9d101d","cpu":"96be8529892cd83044c78af24ee10609438314b383a2a71dfc62a882e1370768"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"d2bb91e29ac22255cdf55045440cdbd26f3087c8542909dd514fae7c859a4b62","cpu":"65ddefeb15c1000bd95fbf1142603ff5c0763cbeb2a618b2ab01d25b1a2e1339"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7d5614af480cddd2190847cb94de56938a9cd1e2207068c07606d05c68f9e4d3","cpu":"0967aaf2f1c595afceabd940e88d9ce85353ebc938ceebd864b6e91ad82b7ec6"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"54eb4af619652c74b2578b72df800d94da1a74f160aac7bb896168417e33763c","cpu":"791a5a6622850cbb1e75eabaf83b41342333ac3ad4a4ee11551d45ea1f013ee3"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"dba64dd6ad182cb872bd973654057f4a1531dab5e27395814bb623d5e8ea7b55","cpu":"29324ade24bd6faa7ce792e3a3f4aa2c01804c0b189715d56031e3402bafa624"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"e047f2ea9d1015638cb59d890665c8da199c8f47abfa8ca319fdd6800e9d101d","cpu":"96be8529892cd83044c78af24ee10609438314b383a2a71dfc62a882e1370768"} +{"vocab":4097,"dtype":"bfloat16","layout":"offset","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"37d19b738ea8a12f80f19c9cd915a024968d457afc706658adf237dc527b6ee0","cpu":"9a5232b7fd544c36e8f326b0255b9475f75581d8681b2ba995ba9f2ea5b7bdac"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"21cb10246413649901c73cd1cf1d56a514e206c0dfda31965bddd567305e8f59","cpu":"e214a52b9557b017ddc6e39c25cdd6ff4c4ce01557adc63d1e2c8574990d22a6"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"21cb10246413649901c73cd1cf1d56a514e206c0dfda31965bddd567305e8f59","cpu":"e214a52b9557b017ddc6e39c25cdd6ff4c4ce01557adc63d1e2c8574990d22a6"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ef1cba1f14c6680c79b7630038bd9b7cb0be6d8b8e9429d8ea33f456e67039af","cpu":"346c833a97d6aa70afdb31e48735e031f9ed9662173fdaf6f018442f711ed3d9"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ecb8c02fb446732174a9dc3017ed2438a558dd5cf642623b674d91bd4ff3370e","cpu":"5d3465bb917c0cb22c49501e1150c0b88c467d90a9a9ea62cb3db2751d5b803b"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"84fce35cfaa5448e81ba7ee86325b54a863f5c05f2b8664ee83a88af37bc029f","cpu":"f8bd3f87fd711a33e8aa18265509a6d93523a10e64e0660f8618b2f65badd807"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"f1a498dd834cd7a0c30ccecc5feb0b59d29781c74cd86ed25c489b2c9e90b85a","cpu":"998303ce46287e7876ddbf5137a8a8587bcf1e0027f7876c316f24df5a4b64b7"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"21cb10246413649901c73cd1cf1d56a514e206c0dfda31965bddd567305e8f59","cpu":"e214a52b9557b017ddc6e39c25cdd6ff4c4ce01557adc63d1e2c8574990d22a6"} +{"vocab":4097,"dtype":"bfloat16","layout":"reverse","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"7e2c38fa5fd3a480c2c2abdeefc5a860444b6cfaee499f3ab807a396d7d84719","cpu":"32d5d1710316862c10c900762bae8c0b0a96e4a77aef066758b5c97a7152e54f"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2d56f0bb31faee37f88e22fd8665631f8dcc23981f4201aff231f98ab44f1d81","cpu":"e04ed479e58a0564c67e92bb270a854562f7556b74a7490d2f9b90db5060acbc"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2d56f0bb31faee37f88e22fd8665631f8dcc23981f4201aff231f98ab44f1d81","cpu":"e04ed479e58a0564c67e92bb270a854562f7556b74a7490d2f9b90db5060acbc"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"c87df4612b19513e7c48e3fe8905b7eec1baad8fb9420f6feaa5de3a6b206d75","cpu":"4f11d271ca0586073523f7b8bfee63212f2afac1e34f6fe698b08a353df213bc"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"023c2236092606e3e3be65b2c382c487a7cb9afed513ec620796cfed0ea83fb3","cpu":"5ca0652b4256764845dfe2d40ed69b25c126a9a29f98d3ec5a13f60a767cd778"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7914b97ec10768636796fd6f22c32b9eb61770c7ac5618364b662be7598577b2","cpu":"ada443c3f2eaea36bfe0951b5aef196f47887b9a37b2ff5bbe3d33dd2bcc1215"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"bfc82638710bb6685370b1cf117401e40cf5654c662057286f634c739024c5c1","cpu":"67206ab050b10dafddca4af965e390cc288526babcac13b1d6bbdb9871580487"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"2d56f0bb31faee37f88e22fd8665631f8dcc23981f4201aff231f98ab44f1d81","cpu":"e04ed479e58a0564c67e92bb270a854562f7556b74a7490d2f9b90db5060acbc"} +{"vocab":4097,"dtype":"bfloat16","layout":"broadcast","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"0fc3b7ed8e6f7192efc1bbae4ae8f6006cfee66d05a525e9ab53ba0831c95927","cpu":"aecc7caa08c4396e825f4d77fee7344654853d7444ed8cc8e025963c4eacce04"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c3cc5c2e2e64d52b9eb0bcabb294b81f1c746f09a512fee7ba45ce170843be6d","cpu":"2f525e56899ef4cd3ef354a7bafdc0fe6bd0740d5f8872e15eb90ebd839afc72"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c3cc5c2e2e64d52b9eb0bcabb294b81f1c746f09a512fee7ba45ce170843be6d","cpu":"2f525e56899ef4cd3ef354a7bafdc0fe6bd0740d5f8872e15eb90ebd839afc72"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"d3e3ae555888500cf83b49d20cd683af4b1d52892a7b0df1cbcab5967f54a3d0","cpu":"d182a14ee45355b83f36dc5c9af326d0b29107fc76de187de4422b4666a054a4"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"d966967155fe0539042757561887159c93b23af6957d880999f4a30cc7e999e0","cpu":"5cbbb761d94a8b494334afee7140b8e1509a87c8cfb37f4cb34225939fe3c5f0"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"bbc2ffc0329ed25d339c02ed76c6b89dec33ae6c4fec31f438e7447aeda6ee79","cpu":"feb48692c6920d780ca59828e201ef7e815a1fc9ca406fe192293252938a03b9"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b6c8a72c8ab57456b01a15b1634189fc2f31630349d8eb7587ee78ad0a6ab155","cpu":"816bfda8d6ef39337d90926562279ee9475d829043153272e70ee307c6a04755"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"c3cc5c2e2e64d52b9eb0bcabb294b81f1c746f09a512fee7ba45ce170843be6d","cpu":"2f525e56899ef4cd3ef354a7bafdc0fe6bd0740d5f8872e15eb90ebd839afc72"} +{"vocab":4097,"dtype":"float16","layout":"plain","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"0ae1f6f7f63665a6c2dfaf34884f923a2b675684b502ef737bef1875443d85d2","cpu":"84c5c7b234d9d1f7f9f94416bc7aa15822de2def6fc56d7384694ea3ddb250a1"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"0e41fca07d9a9d62af720754b266ca36dbe93444329209a99bc438a62192b74d","cpu":"35657b2e3c583c0bcef12559aa0b1828931e03a766daca2b1248f7a066cf4c0c"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"0e41fca07d9a9d62af720754b266ca36dbe93444329209a99bc438a62192b74d","cpu":"35657b2e3c583c0bcef12559aa0b1828931e03a766daca2b1248f7a066cf4c0c"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"d6af5979b078654adf913994d66cc1d5c63cf09f1c5df4dbff3daaa55b720824","cpu":"00e1f9219ae454e930dda6f860a3df1a881336d46cf4f0136803c25ea5e8cb96"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ca928f6453023e14e3e7639d444f99368aa0d2095cac9c8e1f42e560a8df5e72","cpu":"6b85cf5821806054d872365ddafa4edc6a895f5b8f59a6dc6604d2af909973b3"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"46c964ec81ab8b5408f7dafbb513cc33064e89f53d12ed9aead6fe404d8c26c5","cpu":"0c87a5fe414ead6529e81396d6cb3feb8e107ffdde2499463ef13c022c7f74dc"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7b38a0a95aa81951ac9532f8f87632da0153b00ef4ad00089e1a6394c1753cb5","cpu":"1d91c2b9e82203b676c22cf3346f0579df521a6af9280e60a642bba65fb7c6b0"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"0e41fca07d9a9d62af720754b266ca36dbe93444329209a99bc438a62192b74d","cpu":"35657b2e3c583c0bcef12559aa0b1828931e03a766daca2b1248f7a066cf4c0c"} +{"vocab":4097,"dtype":"float16","layout":"strided","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4403f8209bcc6dc1e13f1e3a83d1239e408b35f4335eace27ce979041bfe2853","cpu":"f4f100a97cd5bd5748a91960a20121d37e531e0fed6cea29f0d65c1955ea95a1"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"293a2c720cfa77620238069de85fac85960847f8b855f68f7001d6aad0971caf","cpu":"302ba29eb0f450060147d0b8eeee115bf27c17312e2ebe2d40dc28d9c37b445d"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"293a2c720cfa77620238069de85fac85960847f8b855f68f7001d6aad0971caf","cpu":"302ba29eb0f450060147d0b8eeee115bf27c17312e2ebe2d40dc28d9c37b445d"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"9284e61bcc504dec5153a25bba96344599386c15c6760904e1691fc71bafb3b4","cpu":"9bc6763352d455acddba037972f694cc0ef0f7701c67c5d73110e9c1e45858cb"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1b4c1a95bd4f8116e406487fe3f0975ec1d86e30f6e9958f4364c13f123c2837","cpu":"ee140d0898ba2d2bcc1095528380fd7a07c0ba2f8249e16bd820e21cde3392d0"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"e6f28d3d1fa8d9ffd3fac1fd9d36e92f26a7ae8aae4513b01481b09ecf78a060","cpu":"9bd138c3445b26d7732bccf7b4d90cd966ea67ad4cd93a588afba2ea69bcd1f0"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b39bc35b65038281e5c5f88fdd7ff632c89bfe8a54002ad275751dec5ec3ca76","cpu":"6f79a4915de2d855660773af6957121e393f733200bae2acb4e93010ea89824f"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"293a2c720cfa77620238069de85fac85960847f8b855f68f7001d6aad0971caf","cpu":"302ba29eb0f450060147d0b8eeee115bf27c17312e2ebe2d40dc28d9c37b445d"} +{"vocab":4097,"dtype":"float16","layout":"offset","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"3dae6335a46bf9e63f5c1ccd03067c0ff79209200beec6c9781d9799c27aac3f","cpu":"8e13867cacc9a65b98700553bda56a15538eafd5de570106f9be6ab138bba8ee"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"45cc691e671eace5bd9bc9dc7035b25b6b25db580fc39c276c4041edbd3dce1c","cpu":"bc8cb01c36334cbc459510f28a032a4cccb0009a91abe79437ec6f18347dbc0b"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"45cc691e671eace5bd9bc9dc7035b25b6b25db580fc39c276c4041edbd3dce1c","cpu":"bc8cb01c36334cbc459510f28a032a4cccb0009a91abe79437ec6f18347dbc0b"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6a84f71bd6308ed8b57fa223904afbf507cd4c4504e22f7660d6750eec883ef7","cpu":"361ce3329feddfb42c2bd9433855b61fd77ab0ef685dd374433cb876351b9ae8"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"85bc3e2c9d98b42d5b4e858ec4e2c6a0f66fc96ddd600f50f9182cd5adf0012f","cpu":"92d271cf09c63972aa1386a9ce50b83664165b1c6a590339f5c43afc089602cd"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"80bfc6951e2b419dcc04f69b33519e0397cff7902adb1a33faff3d16573a7040","cpu":"0670134be1e55f346f2e2394cacde9756023f3c1a5764328a8fd459a400ed919"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"4d9bd0f923d6b7773ac5bf25a610b4157baa45ca4752a00f8495f5ed69116b11","cpu":"0e92476a3a7295df5b2050774d4a96cc6186c5053950d68cc75d69c109eb1ea9"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"45cc691e671eace5bd9bc9dc7035b25b6b25db580fc39c276c4041edbd3dce1c","cpu":"bc8cb01c36334cbc459510f28a032a4cccb0009a91abe79437ec6f18347dbc0b"} +{"vocab":4097,"dtype":"float16","layout":"reverse","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"9ee9fd2e70742c29ec78828cb573d7f4a075880c58dd9bd6ecd96ef663efd9fa","cpu":"cb231eff3fbd946c458adc6b8226c7f4c1a71220ef3cf6b09de18b837500e0b5"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"5180ed4566795dc556dc7200c5022283048e86813886390ac9fb46c5191305c8","cpu":"deb4037437cddc283ca9c1af87290adc018ea33c0ecd17975b30a00f0fef54fd"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"5180ed4566795dc556dc7200c5022283048e86813886390ac9fb46c5191305c8","cpu":"deb4037437cddc283ca9c1af87290adc018ea33c0ecd17975b30a00f0fef54fd"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"f309b3bd4e6966a671d782a9fecfa9247e55009acc28cc6c79f038cad6c1cc59","cpu":"6f2b442f75475a36a14fe92213b231f26d31d4898ef38b52c27b88b4f454e18e"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ae2e25fa12cc69aaba39dfb0978cb4e93d0ab7c92415b5e0e6d353231914f7de","cpu":"d1cbf4215afed7260d614bd8b3c3550db53cdd4b0dadbce175a6626752124ae8"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"76e19280d19298e1f44219cb707e3b5d01baff46df9ef27573ef9cd6d988b92d","cpu":"58ce527f1ce8fc7c103102866643da26cf6389bf00aa47decc91e79729a81250"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"68d5a0defbd2008ab3f0c3646948116be549fea3813ccb4206e6d782b54f6fcb","cpu":"06f0ffa0f297f3c2bf02cc5acad92ee1abcc7d9362bfbe9ea012aca5446f0074"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"5180ed4566795dc556dc7200c5022283048e86813886390ac9fb46c5191305c8","cpu":"deb4037437cddc283ca9c1af87290adc018ea33c0ecd17975b30a00f0fef54fd"} +{"vocab":4097,"dtype":"float16","layout":"broadcast","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ec3ea25bf050ba078e6868acdd27f5338d39a3b2f43b1b111050c6f84d90cd74","cpu":"e06922d265ac2e2e14af037e573bb99043ce0dc3b4cba67452eaf5517ed985c6"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"7672446e227da1956ccca12122d368aaec34268e414b3af69b216be5b5bc7069","cpu":"587536a765a1e5823c4230ea9436e588051b714b0a1cc477b43d2ee1a61d54f7"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"7672446e227da1956ccca12122d368aaec34268e414b3af69b216be5b5bc7069","cpu":"587536a765a1e5823c4230ea9436e588051b714b0a1cc477b43d2ee1a61d54f7"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ebb132edf37d9fa711c5c3cb48fc34f6996088826e0d86b6671275cecd718118","cpu":"127956dabe9c1f56b5d8e281e74895b1d0ae06509e38e6e82bfd83e095eff341"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"29b6daa5cce434ce3f2667b572c5b151cc5e00e9effa2f63d4fbe96ae6382854","cpu":"406c3b8a2bfbcf39a84b6393e379bfa1c9395d93633ee1ea38a187ceb582627a"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1f93f0a283158da4715309a0d5688fef1b51790859f025a504bab6d299aac3f1","cpu":"daf2cf866a5a5c20a46009e066c401dd4c89b44f869cc81d82fbf28fd54f5652"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"5bdcc737b6525e4d3e961a0c9ad1330ca4abd56d39b6c87803dcf037b6c16fa2","cpu":"a3bad61e57d813205c4fe3a86e57e5b8e77a3a07c245167d964db6dd22c57549"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"7672446e227da1956ccca12122d368aaec34268e414b3af69b216be5b5bc7069","cpu":"587536a765a1e5823c4230ea9436e588051b714b0a1cc477b43d2ee1a61d54f7"} +{"vocab":4097,"dtype":"float32","layout":"plain","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"bcfe3070965e9f109f00063043c21e5b6a0e876c632f8e786002e0a3aa028f1b","cpu":"27603fdaa2eaa6cf93296b406b4cd840f2ccc9f969d63a17e4dc79d328688e98"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"52f3169e09193b0db4fd080b8169a016c2d7d1c2a01182478b74f1bc3d0edacd","cpu":"80454473589b8f658a4ca21237650c35f4d09806ad9513cbbf4fe89aea2cdee1"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"52f3169e09193b0db4fd080b8169a016c2d7d1c2a01182478b74f1bc3d0edacd","cpu":"80454473589b8f658a4ca21237650c35f4d09806ad9513cbbf4fe89aea2cdee1"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"ca97eb559214a0eeb34c4fdb258efdfcb2c3d53b6d2ad6b1fad23d0bc936ac38","cpu":"fa06f77d114c18ed52fe7807ff49a6711d4ff111c1068bfd124e4b7f7ba02eb6"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b9756b3943a1703cd051ed5e6b3010d0eef29ea76149b801d3ffd8030a2d68eb","cpu":"d199c8621d4a7dd968e93b9d83afcd1758863c4a478f19703a87757b1c8fce0f"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b59b6e26c4ea45b9fbd27e79a7acd6570fd211d58af3d9159a6211b4cbc8d8c4","cpu":"c8c84c2229952dc345aa710c668b392c3a5bfe6114773299caad89ea75c5dca0"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ca6a6d8773f876ec9cf6f111973ee89ec628d2107663c30be268955952ea7a82","cpu":"1b5656d86835902f675e5a7f75898c812fbbcfaec8a3142d12f14896f777f1cb"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"52f3169e09193b0db4fd080b8169a016c2d7d1c2a01182478b74f1bc3d0edacd","cpu":"80454473589b8f658a4ca21237650c35f4d09806ad9513cbbf4fe89aea2cdee1"} +{"vocab":4097,"dtype":"float32","layout":"strided","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6b7a407755bf6cc588708ee053eb54e33f16e4d07e4b6362e7d912b1919fbeca","cpu":"19c778bbaa00c107485f113e5ae121fbe25cd59eeebba0db42b55e2bdf2c569f"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"93bbb733844a237480a1c41af4665bd1871461315425a7cf6fc32e822e3c4474","cpu":"20e729b258a75290ea75103b41ee02cd3c8dfc77442f98e41032d55bf0b18ae4"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"93bbb733844a237480a1c41af4665bd1871461315425a7cf6fc32e822e3c4474","cpu":"20e729b258a75290ea75103b41ee02cd3c8dfc77442f98e41032d55bf0b18ae4"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1a238cc519c73ac7f74432532a75090c20ad17d9f8f877e7690aa7bfe9479091","cpu":"5cd7b39e8f850f6207b157e8a10179bed0e27ad24af217d24a03354a3ac4e0d6"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"1bfe9a01548d4a8986aa3ec06843e21d0400e3d5d65d40a16fda09722f946bee","cpu":"ea38d8bb752b86cb8ba2839399425ac63b8fba8a0d94f273045fbf53ae45f58e"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"06658c29d3bd2631f79bd5f4c0c353f4fc573f626b72bc2822630fa3fba8ac28","cpu":"8d8e0b4693de497b3923a16f089b7277c5ad6a7f8ee13b8459d619720b953c96"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"cf0d354ed3cef9d0b15be2374acb286e1dc4c76dc66bc42349cf800fe53ec4a6","cpu":"dd81174ad1c500e46680ed634943e30804a6b9b15108c54230c500faebe4cb2b"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"93bbb733844a237480a1c41af4665bd1871461315425a7cf6fc32e822e3c4474","cpu":"20e729b258a75290ea75103b41ee02cd3c8dfc77442f98e41032d55bf0b18ae4"} +{"vocab":4097,"dtype":"float32","layout":"offset","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"06b13d2e04f9af6ba3ae1bd2835609358179644c8a1f16b832d56f3e86494ed7","cpu":"899ff7da4ab44672b2957ff65123f28c86c57dff358fc9659e8da3d825cdf9a6"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2025da7b53f08cdcf43765e630b4b4d3ad9813f2ab029567d905f8ce2ca1fbf7","cpu":"31a827e441ed48e461ee6f759b0904b05058f2006cb9b26d9f35192a9a9a1b4d"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"2025da7b53f08cdcf43765e630b4b4d3ad9813f2ab029567d905f8ce2ca1fbf7","cpu":"31a827e441ed48e461ee6f759b0904b05058f2006cb9b26d9f35192a9a9a1b4d"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4e4e9c85b99a1257f3c24777ccb0db0b281516b37324ed5326faca671fca0c24","cpu":"80ea817880cdb51c02648568d7583158d9a36ede6b45de39e3cf125f8c8554d7"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7c9404e94eb78edc215a791d8ab172d629d927faa0573516a8ba75979d62cda4","cpu":"75c2dc382e25b1273544dfe1f6b0195d272e18c8757eaef1ebac43b6f167b735"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"11fba13fbb67b08d4450170c23899e2dd68eeac232032e6b0ea9f7107c10334d","cpu":"301681a707ec671e06f88a0581aaf1691705b359554bbfc6b1bba3b1d12b33e5"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"30ad3742bf9a9bf7c43d0610c6c939463fc0d27c02455ee69c3fe3b2b3c3de95","cpu":"d0d205b9bd2b6984072800ab6f6516535e340648ef9f5a4098bd7af5b0d77b3c"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"2025da7b53f08cdcf43765e630b4b4d3ad9813f2ab029567d905f8ce2ca1fbf7","cpu":"31a827e441ed48e461ee6f759b0904b05058f2006cb9b26d9f35192a9a9a1b4d"} +{"vocab":4097,"dtype":"float32","layout":"reverse","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"99a8b8458d42a0f4a6c81c7047d1fc1e291b0ae238a356dddef42d6f3d8318c4","cpu":"f7dc86f103039bf8f5512e9a4e31a32df44abe57c1a248a497528307ae0dc32d"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"noop","counts":[[0,0],[2048,3],[4096,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"4be961ee45b3ecea2fbbab911bcaeb3c3d89a005a20d801edb5a176a02b667b6","cpu":"a7a40d044af4281c349dcdc5447b85919962e7958c4847d662acb8a359e0b066"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"4be961ee45b3ecea2fbbab911bcaeb3c3d89a005a20d801edb5a176a02b667b6","cpu":"a7a40d044af4281c349dcdc5447b85919962e7958c4847d662acb8a359e0b066"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"counts","counts":[[0,0],[2048,3],[4096,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"c48732b61c1c15c98adfdeae4593a32a5cb6baf73702d2e02fb711c606d847af","cpu":"6d272755592341d32ff9327fe35f7340954821eb1f70a2bdde8f4b1f307dfc8d"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"a63fc3f243b7f81ff0f8c5a8c38f49e0cea451a7ac3b9964a76fce547501c03a","cpu":"ab7879a8a1b17507c05d112d1e5b42d9b61b3c8189ab6e484152c5bc372e57a5"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"both","counts":[[0,0],[2048,3],[4096,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"ae1c8a7babdf8d18e7ca5a9f51c3a57acde4b909ea793cfa3071d77ebcef7404","cpu":"511372dd24137646e622acd51edad8b8ce5ec8330799de44b88760a51679eb5b"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"clamped","counts":[[0,0],[2048,3],[4096,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[2048,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"0be3c753b32fc80edbb4a719e833458ab6aea29cda397a28e6a8c7fef84a5fad","cpu":"496bdc807cee0f66dc61635a4124111d6fae4c8b27c7cd1bd91d4e8902851d7c"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[2048,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"4be961ee45b3ecea2fbbab911bcaeb3c3d89a005a20d801edb5a176a02b667b6","cpu":"a7a40d044af4281c349dcdc5447b85919962e7958c4847d662acb8a359e0b066"} +{"vocab":4097,"dtype":"float32","layout":"broadcast","profile":"single","counts":[[2048,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"5cc29df914876966f49d003e1ba9a5d926df668d586ce404724852b1963c3e66","cpu":"6a6b25937f4eaa00579a32851a2f614c270bf40a7c17a7d998ca671005c0905b"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"56b40a7950f63cf7b3d0be418c383b31f5d52ae495d33973333cdfaecd7ebfcd","cpu":"44c4b57bb3458965fe4a4bf96b0a4efc832cae13fcda2d8c59828c5250acb7f1"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"56b40a7950f63cf7b3d0be418c383b31f5d52ae495d33973333cdfaecd7ebfcd","cpu":"44c4b57bb3458965fe4a4bf96b0a4efc832cae13fcda2d8c59828c5250acb7f1"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6683b192201160925c86ebdb1039360326203b91e94cf213d9f847ff3109b917","cpu":"735b9ece538198139ea477bf872fbb6a59905f6790ed55745958b8fc58b53af2"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7ea3a74435be38ec41468af2ec10bbd4fa5c0c01742acf7dfaeeee9bd4ad8255","cpu":"b89ceb4f3b1655d6538e5d9d8b4ac8cd89957330369ba005027cab92563336bf"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"81087c3f9673ad455faeeb7f05221a2254670e6619dc1a3920ef8307407cf319","cpu":"65831967c5b69a4c4474360693090f190900905e03e714be8c2920179e1e0a82"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"6496a986de538e4895cc4481be449fc4fe0166c4623920093eff6f225e84f398","cpu":"07bfaf9469fd8d4eb34a70bd471dacbe9edb9f1c9ebcc51a4bf3103aa47b3336"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"56b40a7950f63cf7b3d0be418c383b31f5d52ae495d33973333cdfaecd7ebfcd","cpu":"44c4b57bb3458965fe4a4bf96b0a4efc832cae13fcda2d8c59828c5250acb7f1"} +{"vocab":248320,"dtype":"bfloat16","layout":"plain","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"5e4f36389a0a099150f985e55e46b44960c0d2fe7df08a267021c68cc7ae6c61","cpu":"924cae4be871bb46bfe0fc351886c76935292871730fc65b6526b5fbc78d966e"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"ffefcb0139cd785f4cccfd832fb2633f1b325d086cad6ab979a5ff3d6d70dd6c","cpu":"ff6944fb65c64ad5bb69c9f296463ec558dc5e0284ff853f8ee5c8cbfa82ad31"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"ffefcb0139cd785f4cccfd832fb2633f1b325d086cad6ab979a5ff3d6d70dd6c","cpu":"ff6944fb65c64ad5bb69c9f296463ec558dc5e0284ff853f8ee5c8cbfa82ad31"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"edf793e841a9d009d2a8718c9ca092c326198dba6ac9f7a7eeeb94f678eacd58","cpu":"003b85a6e4a02567df3c38a6a131bbc80e43c01b56e0c131912dacd42884a9bc"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"431dad45b75be4ae34cdbe7dfc7a1abe672118f1c77eeddd07ede1e72a3c50d1","cpu":"2321d55d1d6df429abc1a1d2e85ebd38efe14a45a2060f6e45ca388b8a00a025"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"125be7bf6a06e4991a525e859e10872d5d676426bb69b25815a0d5f645e39651","cpu":"dd7b1ee4f1a9f624671a4481e37246f92c3565ece2ccd5e3988ca077ca77fe6f"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"d13dce4ff5b70c1e19aa9b88cf91e48de87cf3bff1733e2fceb01f5102798ff5","cpu":"29a122c38a86fa7c6757c7d14a8d152e02ef215a9f68935b0819e50fd9e98cbf"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"ffefcb0139cd785f4cccfd832fb2633f1b325d086cad6ab979a5ff3d6d70dd6c","cpu":"ff6944fb65c64ad5bb69c9f296463ec558dc5e0284ff853f8ee5c8cbfa82ad31"} +{"vocab":248320,"dtype":"bfloat16","layout":"strided","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1e90d5e7b8e735867086739643fe8574e878cbc816d2fcc25965b63d0a235066","cpu":"dd98946e22169bab74a100b5d56e2fb0e4147d4aac6f4921086ecba5ec609f01"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"bbd68ed5afedcdfbc485034e3333fc613fb8bba97a32c27f4a365a554ea59916","cpu":"371a15a6d3bc8fa703845fbaef67e634a58c22f604b18611f2f6afee49564990"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"bbd68ed5afedcdfbc485034e3333fc613fb8bba97a32c27f4a365a554ea59916","cpu":"371a15a6d3bc8fa703845fbaef67e634a58c22f604b18611f2f6afee49564990"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"7f84949c7865b962a4a2955673e6bf3d1753098c2ffe5b4eddbd06fcb33fb52e","cpu":"38480c7e858ea276bf8fd572e1036c4fd5c5a5511c75f8aeb8df8301bdd56575"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"3879ce43f1070caaeee74b4e4be673b2e8b87cf6d1a4d6e140e4dfca0b41cade","cpu":"cc24d3297cf668acbde8705d8f9d58966222117d3b37c9b06e1ea78cd5d6c710"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"4a5e095718c8acb9a3eece16aa9afc4f5999fbd21a3ee0f04fbad40e691b2983","cpu":"01739906aa7a58bae7bd110bd2a39a5714805d5c1a92f203894081e35d1302d6"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"163c57181005bdca1b597c60ce6e89dbbe0e4bccd7848f9ffa9343b2639005cb","cpu":"e05eace693dc6c5e0d48016caf26a0b754cd42e2640cca4b8ccfc31f84b6d478"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"bbd68ed5afedcdfbc485034e3333fc613fb8bba97a32c27f4a365a554ea59916","cpu":"371a15a6d3bc8fa703845fbaef67e634a58c22f604b18611f2f6afee49564990"} +{"vocab":248320,"dtype":"bfloat16","layout":"offset","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"fc28c9e3572b2d4613b9153a3de682b8a93a1387502d1a97c3a11832fdb0e61b","cpu":"ab9c2c6f1e8011f2e0fbfb17753ff603b467ece6ceb22bf26afb470ac9cffe1b"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"23f84598690186e38ebd22662d480fe080a7e615cbe518e2783bb7d3047e6aaa","cpu":"74c0737fd03e71a78c1e7a294bfad9202f4696e8360e11aec53345103457fd14"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"23f84598690186e38ebd22662d480fe080a7e615cbe518e2783bb7d3047e6aaa","cpu":"74c0737fd03e71a78c1e7a294bfad9202f4696e8360e11aec53345103457fd14"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"2cce81e65d36aace38395ae9b4813281c0b60661a643d28dd2a437b1d9df031d","cpu":"e2a29cf12947845b525fe8b5fad87ab5fa267392e4bf602bc206b373ac734502"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"90bb0c2903ab3204d91a05e49b21529e931e27f2995bf5f582d193b7ee55a114","cpu":"7c782d4353e86f2413565271a87e9bb90a6bdb0d9f5886df8297b6add626addb"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"371254c8465f482fd8a44b620e630c706171c170f908790dfe96eed6b579bbff","cpu":"f2df293ea241a8f7d63d64b2f740d5f0bac7ca9174e2a104919fe00e12fdf83f"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"38352a4b380301dbea6800a1f25535ccaab518ecbba48df9365bc3f27e25bf6a","cpu":"bf195b6015db97fc21e7e4eb954226caf8da04b051ca373e403d5aaf040f1f1d"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"23f84598690186e38ebd22662d480fe080a7e615cbe518e2783bb7d3047e6aaa","cpu":"74c0737fd03e71a78c1e7a294bfad9202f4696e8360e11aec53345103457fd14"} +{"vocab":248320,"dtype":"bfloat16","layout":"reverse","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"e5cfe8db787109c3f4ed4d42250e9c3d3fb5c409b1bee91b35b98c2398d17982","cpu":"7d16e40abc666ffbd08eab3d04af5ded6b15fe459772d22536b428cdf6257a7c"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"fd9cda2b503144ab9e2f5202d0869603c5358e4ea33241aa9d2b8c089ee961ed","cpu":"5d00166b049ac08ad086bdc676a6f1fa4dc96451ff238ae077d424b0d5c01c22"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"fd9cda2b503144ab9e2f5202d0869603c5358e4ea33241aa9d2b8c089ee961ed","cpu":"5d00166b049ac08ad086bdc676a6f1fa4dc96451ff238ae077d424b0d5c01c22"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"21a646f1329f67d46ae346ff9cf0808594285f9432e5c665317407c1454d7c71","cpu":"0695683c0599d07ea409ca55a567b3073e56cb54c11e091e335f4fb551f349e7"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b9236dc5474e4d59ec50cdacac48eda7413122d8520f5ba4f758322a75ffcce4","cpu":"dbdda1a0d5d25b72c67e6341e9b985c4dad42136925ff4d1070f480991b7abbe"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"fcce57d3b292126147e03302cdd04e76056cf47edf47a4b142771785f5cbb31a","cpu":"548bf96b3c33cae3b28089b96aecf6dffa9261cd5e3425bc9c7e5446f0b3f4fe"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"59dd6e36383a8385c257267e07e7b773dcc536a610f119157bb2bea9bb6ae183","cpu":"2b9e97e27c65158e8b49656e4991f673c310c853754742793de9715a0ef62c1e"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"fd9cda2b503144ab9e2f5202d0869603c5358e4ea33241aa9d2b8c089ee961ed","cpu":"5d00166b049ac08ad086bdc676a6f1fa4dc96451ff238ae077d424b0d5c01c22"} +{"vocab":248320,"dtype":"bfloat16","layout":"broadcast","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1537d260a911cc9f94ad04537c8078fcbd79589ba1f1d7ad04b0720c203d14b5","cpu":"667d38601568f7480dfed19ccc676b0fd96918f49c244f03a45f4f099183f450"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"1a2b8c24fa8f2462390326f0602d559054f784ccaa6be14ac66d786984bd23b3","cpu":"05b0e0c0829300bb5dc2c0aa694e1b6f051bce3c07029dfe1b591a4a31156198"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"1a2b8c24fa8f2462390326f0602d559054f784ccaa6be14ac66d786984bd23b3","cpu":"05b0e0c0829300bb5dc2c0aa694e1b6f051bce3c07029dfe1b591a4a31156198"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"d126c4007f0aa64f33b40258b33f1396af0f01e803187f454d52d2e6cd61bdc6","cpu":"7bcf52c8ed47ec60bbfa2ddff21272b22064d37ac550051e1cff3b818e075414"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"e4e19dc6c9788b8a8dbdbeaf76f2e273f79b58bae363b1a7286d3d6b3623b5e1","cpu":"737a9bf6c0e87e17ae03c52ac82d56cc5caf544142b1783f6308671cd5b1c4c8"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"f8091003e38575f838a0cda8b84c54d3bed5e92418d836f11430bd36701eec29","cpu":"c57b881e455aa1b734f71326a44953ae8d9423b380b8c2a706b90bfefdd8aeb7"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"3dc60399f4fcc8d9bcdc67c85bcd7feaf355f4c14bdbedae307ff3fbafc757da","cpu":"ed1a9ee0b67f60af1adad5607eca9abc640aeb2def88cf7c755b8393d5cb4c4c"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"1a2b8c24fa8f2462390326f0602d559054f784ccaa6be14ac66d786984bd23b3","cpu":"05b0e0c0829300bb5dc2c0aa694e1b6f051bce3c07029dfe1b591a4a31156198"} +{"vocab":248320,"dtype":"float16","layout":"plain","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"4d7838d49fca6b6ee836cf94647ac70cfe35d9b98c45c768e5654d33a33d6e56","cpu":"0d3b3a6e3cf6ab174012d9930004ef3c9f6c0a3313ad86e5362222a2466a697f"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e1bd76436568231fba698d2e96749c5493edc2ec43ac77f2a7893f9583e5fd72","cpu":"850d520ab933ac280688ccc0140471622f4723828d4492fc9de349f3fd5c62dd"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"e1bd76436568231fba698d2e96749c5493edc2ec43ac77f2a7893f9583e5fd72","cpu":"850d520ab933ac280688ccc0140471622f4723828d4492fc9de349f3fd5c62dd"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6a828415466ef24160a430ecc1da42114436902d5b2c02f0206c02f685fe6856","cpu":"69f8109e98a1f8553ca022b93db868b27cd7ed0e81b0cffb90a30af214156185"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"81bf213f1e5a0741d90b4887349131a064fbb28d52c5280aec7292330354d5b2","cpu":"531bc47f18d19020f72b6e6b9da0f29e7e6e1748ca5992b167b2526d26137805"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b31a3aa0986b375122a68a683c4b109ac0dd9b95d6dff8f1ceb17f8a21944c43","cpu":"64d3945332dfb876467f2764dac37610e5ad6ebaac615b4ab915ecf1b12b621a"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"2b95fa38fff96e4d7f3c882fb50e2adba122a67a2420a4c973999842e975ade0","cpu":"2408a2d571aa6d9801ff07e4ff20a2b295fa2e21ac4435f411367ba453e38c1c"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"e1bd76436568231fba698d2e96749c5493edc2ec43ac77f2a7893f9583e5fd72","cpu":"850d520ab933ac280688ccc0140471622f4723828d4492fc9de349f3fd5c62dd"} +{"vocab":248320,"dtype":"float16","layout":"strided","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1945fc70f37c915164edf01c6d5c6a7364dbfd681c8b9bec207ea0390630f451","cpu":"2604075252f3f7dbc10eebd96bb05fcc6f8d0437bd1d9449a6a60904de25c30e"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c9cfdcbaf2cf9fe2ea3e170a56dc836b1bcd82f472689ac1b829dd6067efd5d7","cpu":"5401166d42fe0f5de49e71fbfccca24103524d0bdd73723b045e43488ed2bc96"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"c9cfdcbaf2cf9fe2ea3e170a56dc836b1bcd82f472689ac1b829dd6067efd5d7","cpu":"5401166d42fe0f5de49e71fbfccca24103524d0bdd73723b045e43488ed2bc96"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"2275fb1d54b9e2620db5f7ce4c61976705e298758ed223cdc2632e7f702037e2","cpu":"915b5a88104c7c35238a8f56102946725c7b6ff4c20c2d8e99ff310f61a2e6c0"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"8d815fcf63058d4993861c08a13c6dc1c155d8e7f66be5e2e7f414b88b06858f","cpu":"eec5a1b5645cc89a49274aa9d2e6a8b0a3f8be150a61faeb5b14a8c956592fe0"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"5292219706894c1db55f80b269ee8862529b93153687678b7f7fba14d0687839","cpu":"de5d13ccf6801941eb1a394378341167daafe4074f57ed67c1bb65ebb43349f5"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"bb82e167934ffb89ae88ae16dcc191ba8670a90712d9577c2eb7654490f4e445","cpu":"590a113aa88f73d77d5fc48d59e2f7285a0dcf58a642855ae38a3711cb059d85"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"c9cfdcbaf2cf9fe2ea3e170a56dc836b1bcd82f472689ac1b829dd6067efd5d7","cpu":"5401166d42fe0f5de49e71fbfccca24103524d0bdd73723b045e43488ed2bc96"} +{"vocab":248320,"dtype":"float16","layout":"offset","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"7743f3c42bd3e8587b9b986ccff0c35fd7030576e7bf171f910f41c67511a868","cpu":"d531e0402b4f789c6a0a35b98b45f1b2f46e5424570cc02140e57051d0beab40"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"fe5d83924de37a59bf0ca4e05f97bfbb552a52b5638de71f3632ad16c622ae45","cpu":"fcaf6d0d22ab3a0eee2d4c33a897709098ccfc65841e0d324c06ea241c9db790"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"fe5d83924de37a59bf0ca4e05f97bfbb552a52b5638de71f3632ad16c622ae45","cpu":"fcaf6d0d22ab3a0eee2d4c33a897709098ccfc65841e0d324c06ea241c9db790"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"53b5e6aba1134d82a61172cb540e402db76c8ad8f736a2782d0cc6cde75a00ad","cpu":"07ad83054659f0dd085758b0cfe7d97a1d8479f27a9076a3eebf3550c8b35a90"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"47b21d2d03f0c6fd10182bdab4769c2bd42a1968c363b9ba225ac42d68360688","cpu":"ab49cd26ac05857dff30e46cc86e4198c30ad6b50da1ab555d554eb6f68a15e9"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"81e6336bd29b24352b932d4ec14af87390ba5b6174343432de8d62e531f8b1d3","cpu":"d990dfc4489e7731d814e34449bc25bc6dc362d5a0f11a7af145ad75c87ff6cb"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"77d48bebd66ab1c49f8cc409b4a501428d7faaa6d4ae32fe16e19884316bb29e","cpu":"437b471450d2680d5c79b56f5cf8b649e07ae6a31bf25eeca4ffd375b2f47a7b"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"fe5d83924de37a59bf0ca4e05f97bfbb552a52b5638de71f3632ad16c622ae45","cpu":"fcaf6d0d22ab3a0eee2d4c33a897709098ccfc65841e0d324c06ea241c9db790"} +{"vocab":248320,"dtype":"float16","layout":"reverse","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"61da59e4b7d17841b994fa66289d7bc5bb5d6de8dd32212d13bf20dc668245e3","cpu":"68d2c958adef303f8d563318435e537edf9aeb43efaa530bf742af79c2de3408"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"43f17797af442923c0a22fc4aac8a160b90b62a8745bf46671b70069e333c1ad","cpu":"701ad4310f814f7a3e7ceb82d54b243daa94dc5b33ab398db96af6308dfed369"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"43f17797af442923c0a22fc4aac8a160b90b62a8745bf46671b70069e333c1ad","cpu":"701ad4310f814f7a3e7ceb82d54b243daa94dc5b33ab398db96af6308dfed369"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"515730ad9ac205874f975b8e652c6611af7c2484dc52f1008654b93bb2283189","cpu":"fa40ea9adbf3e09320d445ad2dd577d1c8c7309b763da6fb842b1b1e64a2be72"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"2a41c13f02d0b6b478e02e00f8de2e6d4b0341c18dca855b299f23b5599be47e","cpu":"fd7a645372274fa8a4079bccd3166fa42a8ad9b2483dc1f0a954ef7637797116"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"009fbc50aa03bdcb4fdb844c992a3b4da4a725b5bca880d92b8e2a2004b30584","cpu":"1b1075a2bd0d823d255832c3e4bf359dfb7047fc32f6c7c05482e7730314ed92"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"6a06741f912b5de15160fc4ea5653d7e1608da3748cd1fbe3397afa8024ed88b","cpu":"f52d5f647282bbdbd8bd0c858abedd5bd22925c4cd9c8509d184afc512e99ebf"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"43f17797af442923c0a22fc4aac8a160b90b62a8745bf46671b70069e333c1ad","cpu":"701ad4310f814f7a3e7ceb82d54b243daa94dc5b33ab398db96af6308dfed369"} +{"vocab":248320,"dtype":"float16","layout":"broadcast","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"546b005b8680e1de632bcd0e11c7967a32b30e4fb56435ea510a850fc88743b0","cpu":"152441dd1d672d5fa4de695e55ec4650851765c689697f9ab65f5383edd14f1a"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"aaf8acac3ba2c166a6c95c3831b0cb34488f51645e7c34c91d37a598e8b9371a","cpu":"be193df77248651620b0d41db20d8b7e20be0a69f04381cdc77d1d722232698d"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"aaf8acac3ba2c166a6c95c3831b0cb34488f51645e7c34c91d37a598e8b9371a","cpu":"be193df77248651620b0d41db20d8b7e20be0a69f04381cdc77d1d722232698d"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"6b1428c8daa45e38f2dd090d00338b17e979fdd645a5c0beba1afa571fa0f083","cpu":"7da7699d2280dbf6ab36ed9cb12dc4b5122ae8683a09403e4be9eefc09a19207"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"24f5cfe9d73e9b30f816749f93e9191ce1c8e48ff69cf1a8b6ba7f432e878486","cpu":"0b0a93b0ee90622da9a09ffb85a9445d53fff196aa65548ee56f54f6e142bde2"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"568fb37d5f46b40706a068079504a42866f8ad67d5c7d252ac7af774dc8506d7","cpu":"279e7f91d8f079b6f44b882090c49f5499787bd2bf910b21595ff42172942451"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"38672e260fe4fbee7645f68949d3aa33c0bd75472e51f4403098f90c969eb984","cpu":"84c53bfdbc452e865e6f1901917be7852fd9ab74f120a517f3885c48e4f48ac7"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"aaf8acac3ba2c166a6c95c3831b0cb34488f51645e7c34c91d37a598e8b9371a","cpu":"be193df77248651620b0d41db20d8b7e20be0a69f04381cdc77d1d722232698d"} +{"vocab":248320,"dtype":"float32","layout":"plain","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"0c32ac4c58565c1de54a7bc196592d6792d446b07853f267028c083c3bdb9702","cpu":"bb47c07ae911d2eba9acce59ab0b3b7f45de7ce81ad960988bc61b4ea9870da3"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b83e9a2a896615ffad4a21f0a2342f6ea6ec9e573034853b319f1e102a9ee548","cpu":"0009f570a4e2f4327e968f8a97c657383611a98825d42f6103c3a8e4f3bb76c3"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"b83e9a2a896615ffad4a21f0a2342f6ea6ec9e573034853b319f1e102a9ee548","cpu":"0009f570a4e2f4327e968f8a97c657383611a98825d42f6103c3a8e4f3bb76c3"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"0bc51d396eb52d6f2f22608da59ff87390f22b3d9d584bb44f034bf3cd031eff","cpu":"65621af5681376126b76ab2c688c549f014f33fe64bdcd6cf435fa36c5412990"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"3d6f0b19180f20ca14af82b4b367c5c0a67b5692d312e4f51eb8b76e4c694f59","cpu":"85220a4fc561eaeca7c1c0f5cd323a9a0874893c6f853239e16a7572ad1801d6"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"8d20feb55f19c1dc95dee80f4004ae60e5da501ca88d1065ee0bcdc9f3d9b1f4","cpu":"5b69e861b6a3d485e3d6eccc80caefe6f6246ce936b4f1e4ecaa20a419d8c21e"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"e2f59f484a7cc6c33a285a2e2fc0af63511bdcb1d40c6d056f05a198e60a8ed7","cpu":"7d49d271df821f2152304cd065308553e1a397466e342484a0fc2d0763b3ccaa"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"b83e9a2a896615ffad4a21f0a2342f6ea6ec9e573034853b319f1e102a9ee548","cpu":"0009f570a4e2f4327e968f8a97c657383611a98825d42f6103c3a8e4f3bb76c3"} +{"vocab":248320,"dtype":"float32","layout":"strided","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"91820050f74f97e4af7cded7d5b02da3f3311b0e882923c0847e58a277e887e2","cpu":"01275b4ed44905a43230dfb2b60abfd3d0adf9670b963c805a70474ce7fa1f85"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"27a61ad3aaf33bc6fa185891fba8ad5c22a24c047f9c41d80c2a937da75c67f8","cpu":"b34b854c911e0e7b694a2401b34cdea1a8af628c36adbad12f521724b11b6d80"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"27a61ad3aaf33bc6fa185891fba8ad5c22a24c047f9c41d80c2a937da75c67f8","cpu":"b34b854c911e0e7b694a2401b34cdea1a8af628c36adbad12f521724b11b6d80"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"e659ed12a79b080c045911955d39123a4c39299406b6c40d46299d0e709d9ff3","cpu":"38872e91c01ffa2144ed978649cc38e8b066399caac1d9fbe8451c5a36f4a52c"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"def0c5fbbe324451343152c1cf3d6acde479dc2a750ecb38f5d0a517f7697ca0","cpu":"b24b29962ef1bb85c27d0cc93e68002c61f177e28bc5c0811f0583cfcba5d01f"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"b8aec4c56ff0f601604fd31ec10ac585051cc1895cfdb94e9c6928be680b234c","cpu":"b712a3c64353ac194e2f310d557d34dc51618b6b60e24bdd3b812e19916050c8"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"06626bf6f13a5ffadd264769d291e0da748b7e753640a67287fd28aa5c0e7be4","cpu":"dbfe84825375c5b0e446725b8abfbc866c4a4b3e3a9f01ac36094bc8b4472acd"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"27a61ad3aaf33bc6fa185891fba8ad5c22a24c047f9c41d80c2a937da75c67f8","cpu":"b34b854c911e0e7b694a2401b34cdea1a8af628c36adbad12f521724b11b6d80"} +{"vocab":248320,"dtype":"float32","layout":"offset","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"f3e9d5245bbe5bc535a27ca021a400f01d1d8d5b50b79588c0c2b872bc57005a","cpu":"e52c8584e523de1e91cf55ed55eaf31fe4a7b9d8a26e79e4e710cb1a3120ae59"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"6c14261078a734baeb43261fe8ac751d1d18a7d5d1911207f77608b199c410ac","cpu":"8f1c85029363cca16db314179b4b38de058554538e07fec1bc899162da60b9e6"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"6c14261078a734baeb43261fe8ac751d1d18a7d5d1911207f77608b199c410ac","cpu":"8f1c85029363cca16db314179b4b38de058554538e07fec1bc899162da60b9e6"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"11efbb4d7546473ca9f4c20ae252ff6ce5e94e9f1c4d7c993d20f6c87d993296","cpu":"93af755aeb3bbb0a964b51146b721d18cf527771bac4e7bb68194a1d663334a6"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"bb153bb75f3b8a4bae8f019a776c22872266774e57968789dd77954a2793f62f","cpu":"b1cc7d6fa8bf429a4fcea64a5e74427d78eeca141be365ab76013a1d768d3445"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"7956834376f039b4db4abda90bc96638ed71ff5fa96c2b170b5a172c42909a96","cpu":"51d009c8b73535097825b389ee115df5b236b16467e44efa9aa2c60211e801f8"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"690335498201a399873b651bf5fe293e8916bf0820b89e8643aee1738c50479d","cpu":"9ebe8da2ad06f0416a75134a2fd7b157714a465672168d1dc2ae313552a45637"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"6c14261078a734baeb43261fe8ac751d1d18a7d5d1911207f77608b199c410ac","cpu":"8f1c85029363cca16db314179b4b38de058554538e07fec1bc899162da60b9e6"} +{"vocab":248320,"dtype":"float32","layout":"reverse","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"1a759cb24db9955d01d6c11059af30f3f4d90051bae17182c860de94e2aedac3","cpu":"d58cf6144f375902869a7a00b4f407264769d25e8e16a1282474ff6bd209235d"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"noop","counts":[[0,0],[124160,3],[248319,1]],"presence":0.0,"frequency":0.0,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"51b7d69a0cd68bb93c21f8e83778c57b6abc944569bb6c9963235b828e8422ef","cpu":"dc5582438b7fb044f93977e881946174c6d0294df4a5aa9384d85eabf51cc9b7"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"no_counts","counts":[],"presence":1.3,"frequency":0.4,"overlay":[],"gpu_identity":true,"cpu_identity":true,"gpu":"51b7d69a0cd68bb93c21f8e83778c57b6abc944569bb6c9963235b828e8422ef","cpu":"dc5582438b7fb044f93977e881946174c6d0294df4a5aa9384d85eabf51cc9b7"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"counts","counts":[[0,0],[124160,3],[248319,1]],"presence":0.17,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"5152c39d6279e486bdce65ccbaf09b18d213310a161da478d160628f6680f73e","cpu":"3154f532422ee5d5202447a7c6dd8bfb0a90f71fe4fc2fadf5a4db28451551e6"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"794189a3142cbe6748e0d33815de7064c624e8a3a094ef3991ee7b95fa50e0fa","cpu":"adac2547e5153bf6d0e874a539271603480b09c5edee8db0df38e9c1d6ce0a8a"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"both","counts":[[0,0],[124160,3],[248319,1]],"presence":-0.7,"frequency":1.3,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"0016c35c76c2ec8f7ae4a53f66839c37b2b008e055c0c0a1a280d9b84a23173c","cpu":"2514e5dd0cd200b34bf0af82094538f6f4184b15ab31732798d160546f3b48a6"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"clamped","counts":[[0,0],[124160,3],[248319,1]],"presence":4.5,"frequency":-3.7,"overlay":[[1,0.00031],[124160,0.10009],[-1,3.14159]],"gpu_identity":false,"cpu_identity":false,"gpu":"9a4ca5b5ae6c10b886a92a0f81935ebdb75df727ba6eb6f8ee00fde0f1dbc157","cpu":"a22e9c6db53223a0e3b1fda6b700186df92b832c7f5392f6939ee4ef87e79ad3"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"zero_overlay","counts":[],"presence":0.0,"frequency":0.0,"overlay":[[124160,0.0]],"gpu_identity":false,"cpu_identity":false,"gpu":"51b7d69a0cd68bb93c21f8e83778c57b6abc944569bb6c9963235b828e8422ef","cpu":"dc5582438b7fb044f93977e881946174c6d0294df4a5aa9384d85eabf51cc9b7"} +{"vocab":248320,"dtype":"float32","layout":"broadcast","profile":"single","counts":[[124160,2]],"presence":0.4,"frequency":0.13,"overlay":[],"gpu_identity":false,"cpu_identity":false,"gpu":"a95fb51a3330862bc88815c29350e5e5028a5acf05a7726bca5c65f13b809bb5","cpu":"666ea6183570823826f598a8e408508a342b9248601828fb91a98e05ce58570f"} diff --git a/tests/fixtures/mtplx-sampler-prefix.jsonl b/tests/fixtures/mtplx-sampler-prefix.jsonl new file mode 100644 index 0000000..999a402 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-prefix.jsonl @@ -0,0 +1,162 @@ +{"vocab": 17, "dtype": "bfloat16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [11], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [14], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [10], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [2], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [8], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [0], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [2], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [2], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [6], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [5], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [16], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [16], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [16], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [16], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [16], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [16, 14, 11, 3], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 15, 13, 11], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 5, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 10, 6, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 6, 11], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 8, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 14, 9, 8], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [15, 5, 3, 7], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15, 13, 4, 10], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [8, 13, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [7, 3, 16, 10], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [8, 6, 3, 7], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 5, 2, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [7, 5, 2, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [7, 4, 16, 14], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 7, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [5, 9, 7, 14], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 5, 1, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [7, 5, 4, 16], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [16, 16, 16, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 1, 12, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 13, 12, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 16, 15, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [11], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [14], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [10], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [2], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [8], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [0], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [2], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [2], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [6], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [5], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [16], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [16], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [16], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [16], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [16], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [16, 14, 11, 3], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 15, 13, 11], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 5, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 10, 6, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 6, 11], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 8, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 14, 9, 8], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [15, 5, 3, 7], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15, 13, 4, 10], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [8, 13, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [7, 3, 16, 10], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [8, 6, 3, 7], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 5, 2, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [7, 5, 2, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [7, 4, 16, 14], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 7, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [5, 9, 7, 14], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 5, 1, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [7, 5, 4, 16], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [16, 16, 16, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 1, 12, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 13, 12, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 16, 15, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [11], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [14], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [10], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [12], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [2], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [13], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [13], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [8], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [0], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [2], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [2], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [2], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [2], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [2], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [6], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [13], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [7], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [5], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [16], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [16], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [16], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [16], "shape": [1], "key": [1072857790, 2955594651]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [16], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [16], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [16, 14, 11, 3], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 15, 13, 11], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 5, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 10, 6, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 6, 11], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 0, 13, 11], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 8, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 14, 9, 8], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 5, 2, 6], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [15, 5, 3, 7], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [15, 13, 4, 10], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [8, 13, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [7, 3, 16, 10], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [8, 6, 4, 10], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [8, 6, 3, 7], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 5, 2, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 4, 1, 5], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [7, 5, 2, 5], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [7, 4, 16, 14], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 7, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [5, 9, 7, 14], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [5, 3, 16, 14], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 5, 1, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [7, 5, 4, 16], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [3, 0, 4, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [16, 16, 16, 11], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [16, 1, 12, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 15, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 13, 12, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [2, 2, 2, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 16, 15, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [14, 7, 2, 8], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [2, 6, 7, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 7, 4, 7], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3, 6, 7, 11], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [7, 5, 1, 15], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [10, 15, 0, 11], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [15, 2, 16, 3], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [1072857790, 2955594651]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [637], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1922], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3191], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [3842], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1423], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3195], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1427], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [4096], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [4096], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 516, 531, 168], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 2965, 2587, 32], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3615, 2224], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 2, 153, 3373], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 522, 537, 106], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1934, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1089, 2903, 2593, 38], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1535, 8, 3621, 2162], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [318, 8, 91, 3379], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3550, 738, 753, 375], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 1449, 3036], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [844, 2915, 2809, 254], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1615, 88, 3701, 2174], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [73, 224, 103, 3595], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 380], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 3207, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3585, 2179], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 244, 380, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [637], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1922], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3191], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [3842], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1423], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3195], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1427], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [4096], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [4096], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 516, 531, 168], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 2965, 2587, 32], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3615, 2224], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 2, 153, 3373], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 522, 537, 106], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1934, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1089, 2903, 2593, 38], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1535, 8, 3621, 2162], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [318, 8, 91, 3379], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3550, 738, 753, 375], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 1449, 3036], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [844, 2915, 2809, 254], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1615, 88, 3701, 2174], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [73, 224, 103, 3595], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 380], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 3207, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3585, 2179], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 244, 380, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [637], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1922], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [2855], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [3415], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3191], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [3842], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [244], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1423], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [3195], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [1427], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [4096], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [4096], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 516, 531, 168], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 2965, 2587, 32], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3615, 2224], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 2, 17, 32], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 2, 153, 3373], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 522, 537, 106], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1934, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1089, 2903, 2593, 38], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1535, 8, 3621, 2162], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 8, 23, 38], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [318, 8, 91, 3379], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3550, 738, 753, 375], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 1449, 3036], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [844, 2915, 2809, 254], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1615, 88, 3701, 2174], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [209, 224, 239, 254], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [73, 224, 103, 3595], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 380], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 3358, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1151, 3207, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1529, 2, 3585, 2179], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 2566], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [380, 244, 380, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1496, 1177, 2667, 1689], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [591, 2176, 1202, 3269], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [4613], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [4356], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1529], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [43556], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [7313], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193658], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8211], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [758], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86504], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193659], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86506], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [248319], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [248319], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 23501], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 50118, 218094, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 706, 648, 4188], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 171184], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5133, 7131, 2704, 76], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3591, 192, 7587, 4702], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1535, 1477, 905, 76], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [16576, 81901, 149088, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4362, 192, 4246, 3417], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 4356], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 196770, 19457], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7183, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 244, 7697, 4870], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1529, 1015, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 244, 4356, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [4613], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [4356], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1529], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [43556], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [7313], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193658], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8211], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [758], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86504], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193659], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86506], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [248319], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [248319], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 23501], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 50118, 218094, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 706, 648, 4188], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 171184], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5133, 7131, 2704, 76], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3591, 192, 7587, 4702], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1535, 1477, 905, 76], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [16576, 81901, 149088, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4362, 192, 4246, 3417], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 4356], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 196770, 19457], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7183, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 244, 7697, 4870], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1529, 1015, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 244, 4356, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "vector", "mode": "pattern", "outputs": [{"tokens": [4613], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1529], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [4356], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1529], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [43556], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [2814], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "vector", "mode": "equal", "outputs": [{"tokens": [17], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [125348], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [5], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [16], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [15], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [7313], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [10], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "vector", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [], "key": [2080213578, 3926408945]}, {"tokens": [1], "shape": [], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [], "key": [853908896, 4248439504]}, {"tokens": [1], "shape": [], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "singleton", "mode": "pattern", "outputs": [{"tokens": [2043], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [244], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193658], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [3585], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [8211], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [758], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [244], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86504], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [244], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "singleton", "mode": "equal", "outputs": [{"tokens": [7], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [0], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [193659], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [13], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [31], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [3], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [0], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [86506], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [0], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "singleton", "mode": "nonfinite", "outputs": [{"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"tokens": [1], "shape": [1], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [248319], "shape": [1], "key": [922178191, 3000281748]}, {"tokens": [1], "shape": [1], "key": [2080213578, 3926408945]}, {"tokens": [218], "shape": [1], "key": [2551412405, 735919746]}, {"tokens": [1], "shape": [1], "key": [2553671977, 1863297125]}, {"tokens": [1], "shape": [1], "key": [853908896, 4248439504]}, {"tokens": [248319], "shape": [1], "key": [3551324505, 639333478]}, {"tokens": [1], "shape": [1], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "prefix", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 23501], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 50118, 218094, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "prefix", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "prefix", "mode": "nonfinite", "outputs": [{"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 6, 4, 2], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "pattern", "outputs": [{"tokens": [3591, 706, 648, 4188], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 171184], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5133, 7131, 2704, 76], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3591, 192, 7587, 4702], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1535, 1477, 905, 76], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [250, 192, 134, 76], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [16576, 81901, 149088, 218968], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4362, 192, 4246, 3417], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "outputs": [{"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [0, 5, 3, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "pattern", "outputs": [{"tokens": [3585, 700, 642, 4182], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 116035, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7125, 2698, 70], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 186, 7581, 4696], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1471, 899, 70], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 186, 128, 70], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 186, 4240, 3411], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "outputs": [{"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [6, 4, 2, 0], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "outputs": [{"tokens": [3585, 758, 758, 4356], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 196770, 19457], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [5127, 7183, 2814, 244], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [3585, 244, 7697, 4870], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1529, 1529, 1015, 244], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [244, 244, 244, 244], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [4356, 244, 4356, 3585], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "equal", "outputs": [{"tokens": [13, 2, 2, 16], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [73114, 58246, 122216, 119031], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [19, 27, 10, 0], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [13, 0, 29, 18], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [5, 5, 3, 0], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [0, 0, 0, 0], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [32392, 81901, 149088, 211089], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [16, 0, 16, 13], "shape": [2, 2], "key": [713304240, 706461522]}]} +{"vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "outputs": [{"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3725146706, 585507189]}, {"none": true, "key": [3725146706, 585507189]}, {"error": "device top-p sampling requires top_k <= 32", "key": [3725146706, 585507189]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [922178191, 3000281748]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2080213578, 3926408945]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2551412405, 735919746]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [2553671977, 1863297125]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [853908896, 4248439504]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [3551324505, 639333478]}, {"tokens": [1, 1, 1, 1], "shape": [2, 2], "key": [713304240, 706461522]}]} diff --git a/tests/fixtures/mtplx-sampler-resident.jsonl b/tests/fixtures/mtplx-sampler-resident.jsonl new file mode 100644 index 0000000..0c8becc --- /dev/null +++ b/tests/fixtures/mtplx-sampler-resident.jsonl @@ -0,0 +1,387 @@ +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [1], "bits": "37444ace930e6b2370ca2b46b9a0e518d4b00b9f5c98f984c8b45dd775d4e5cf", "uniform": "3caf95f96db026f3dd9f6a1ca0e41724382473528b4684bb2a0aa27c6862e7b5", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [2], "bits": "b07641ba7253d3c83f5df80d39861aad1fd18518222408a59f2b168e4b1e6eb5", "uniform": "625efdaf1e98702fb92bf337e094098a4bd20a503083089e58d40c929cbabf01", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [3], "bits": "597f6b6aaf5d7711f3b21c5610d02c29601c6749a96e9bb845b5b4ce9e100806", "uniform": "d1084d7669a40a203f19d8b6bf09f925fe6f9fed38112b7a5463555304085336", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [127], "bits": "9e15f3fbead54c8ed0ae1782e871710a789ee804607428faa228053dcecc7655", "uniform": "fd8104578e7e4fddac84904b46fbca70ad5db84e490561786257bdfc60617e59", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [4097], "bits": "b00c6d49f7d15c23d9dd562b7cded984f20d17a88be8c385e2a926095000a051", "uniform": "12b7b1b71ae89fb5cd5cf711b1a81cfbff5d1b49a4352d3404f4c8f622a73207", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "plain", "shape": [2, 3], "bits": "4c587e07f604ee381c7356170a4d200b59707f0f64bce71725615cb05ff18ed1", "uniform": "74fb2435ca67e9be50d6ad9b977e02a348c0ab0dc4a32cb170905e355c218835", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [1], "bits": "37444ace930e6b2370ca2b46b9a0e518d4b00b9f5c98f984c8b45dd775d4e5cf", "uniform": "3caf95f96db026f3dd9f6a1ca0e41724382473528b4684bb2a0aa27c6862e7b5", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [2], "bits": "b07641ba7253d3c83f5df80d39861aad1fd18518222408a59f2b168e4b1e6eb5", "uniform": "625efdaf1e98702fb92bf337e094098a4bd20a503083089e58d40c929cbabf01", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [3], "bits": "597f6b6aaf5d7711f3b21c5610d02c29601c6749a96e9bb845b5b4ce9e100806", "uniform": "d1084d7669a40a203f19d8b6bf09f925fe6f9fed38112b7a5463555304085336", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [127], "bits": "9e15f3fbead54c8ed0ae1782e871710a789ee804607428faa228053dcecc7655", "uniform": "fd8104578e7e4fddac84904b46fbca70ad5db84e490561786257bdfc60617e59", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [4097], "bits": "b00c6d49f7d15c23d9dd562b7cded984f20d17a88be8c385e2a926095000a051", "uniform": "12b7b1b71ae89fb5cd5cf711b1a81cfbff5d1b49a4352d3404f4c8f622a73207", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "strided", "shape": [2, 3], "bits": "4c587e07f604ee381c7356170a4d200b59707f0f64bce71725615cb05ff18ed1", "uniform": "74fb2435ca67e9be50d6ad9b977e02a348c0ab0dc4a32cb170905e355c218835", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [1], "bits": "37444ace930e6b2370ca2b46b9a0e518d4b00b9f5c98f984c8b45dd775d4e5cf", "uniform": "3caf95f96db026f3dd9f6a1ca0e41724382473528b4684bb2a0aa27c6862e7b5", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [2], "bits": "b07641ba7253d3c83f5df80d39861aad1fd18518222408a59f2b168e4b1e6eb5", "uniform": "625efdaf1e98702fb92bf337e094098a4bd20a503083089e58d40c929cbabf01", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [3], "bits": "597f6b6aaf5d7711f3b21c5610d02c29601c6749a96e9bb845b5b4ce9e100806", "uniform": "d1084d7669a40a203f19d8b6bf09f925fe6f9fed38112b7a5463555304085336", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [127], "bits": "9e15f3fbead54c8ed0ae1782e871710a789ee804607428faa228053dcecc7655", "uniform": "fd8104578e7e4fddac84904b46fbca70ad5db84e490561786257bdfc60617e59", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [4097], "bits": "b00c6d49f7d15c23d9dd562b7cded984f20d17a88be8c385e2a926095000a051", "uniform": "12b7b1b71ae89fb5cd5cf711b1a81cfbff5d1b49a4352d3404f4c8f622a73207", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 0, "layout": "reverse", "shape": [2, 3], "bits": "4c587e07f604ee381c7356170a4d200b59707f0f64bce71725615cb05ff18ed1", "uniform": "74fb2435ca67e9be50d6ad9b977e02a348c0ab0dc4a32cb170905e355c218835", "keys": [[2718843009, 1272950319], [1278412471, 2182328957], [4104543539, 3483300570], [1194623263, 2038155241]], "final_key": [1226047270, 2014510724]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [1], "bits": "266a065964d65244369b4c614463f2ab8cb5feddfab9161a7c26f4c0decc0a5f", "uniform": "de7b33300c65c8c79d465942555f4d563033891df34cb441c0162e1487d19fdd", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [2], "bits": "c218fe3785a76b2c4af1e1734dc4ea4024b0225086f0f59cbdf4882a933d712b", "uniform": "34121f4d4354c59ee1856490ba934c1703299e690b15d625256f22b366e3688c", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [3], "bits": "491a44279f7efae46f9dee770992111e311d6c050079b2c2d792f8dfa97a41b8", "uniform": "58b2f4daea339fa00387afab747ae927789265a385a40cb0be88a8ce043604b9", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [127], "bits": "cd3a9762a257a4a8a4af96392468e2511e82fc7be7836386f4561bb43592a80b", "uniform": "356c72885ed04e375e4eeeea15ba281c83be5eb04bf096a55efd977090c2db58", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [4097], "bits": "20ccd89a816cab5ea2e08061d910c6067a027ed8e6b7034b7ecc85be5b750bcc", "uniform": "0782f4c801b305dba70aa038cd08b39cea2abdf5b262d4496a82f92bd7b435d7", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "plain", "shape": [2, 3], "bits": "55fe0f5c7875059b7a7d31a50239f50bb09a61d396389907989cf6f157a852f8", "uniform": "b1789d32d42060aac8d0b838146d65f5aa5cc70805eb3eb61ff65136bac88c1a", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [1], "bits": "266a065964d65244369b4c614463f2ab8cb5feddfab9161a7c26f4c0decc0a5f", "uniform": "de7b33300c65c8c79d465942555f4d563033891df34cb441c0162e1487d19fdd", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [2], "bits": "c218fe3785a76b2c4af1e1734dc4ea4024b0225086f0f59cbdf4882a933d712b", "uniform": "34121f4d4354c59ee1856490ba934c1703299e690b15d625256f22b366e3688c", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [3], "bits": "491a44279f7efae46f9dee770992111e311d6c050079b2c2d792f8dfa97a41b8", "uniform": "58b2f4daea339fa00387afab747ae927789265a385a40cb0be88a8ce043604b9", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [127], "bits": "cd3a9762a257a4a8a4af96392468e2511e82fc7be7836386f4561bb43592a80b", "uniform": "356c72885ed04e375e4eeeea15ba281c83be5eb04bf096a55efd977090c2db58", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [4097], "bits": "20ccd89a816cab5ea2e08061d910c6067a027ed8e6b7034b7ecc85be5b750bcc", "uniform": "0782f4c801b305dba70aa038cd08b39cea2abdf5b262d4496a82f92bd7b435d7", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "strided", "shape": [2, 3], "bits": "55fe0f5c7875059b7a7d31a50239f50bb09a61d396389907989cf6f157a852f8", "uniform": "b1789d32d42060aac8d0b838146d65f5aa5cc70805eb3eb61ff65136bac88c1a", "keys": [[1349634643, 2414313812], [1291966780, 111799702], [694379995, 3367358977], [81146398, 2261671643]], "final_key": [2551412405, 735919746]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [1], "bits": "6e74c041a8e2a55a411aa9cafa91421e4a20c4a62601202edc4dee5dba56fdd3", "uniform": "9e7258e9e5d7f29e44c8be76a03bbfafb72722e0b859415a588352bae96b24a2", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [2], "bits": "aafed52d2e711be69c76f5608a4b3a859ba96b031d3e13e04204727b5b6a79d7", "uniform": "928aea0d4b3abf01737a4f3a335a25f07f6a5fb153c97bcbc85fb7af27c6566a", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [3], "bits": "9ed8f58f4e5e1041112234e74cab076454d1e53684083d79c003b0908ee7325f", "uniform": "38cb2ddd491002e2c53487d4a16c0d6294bf119783ff415b19d9b0c29d801003", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [127], "bits": "b053cf20e353203555282eefee015ace4797fcaa8a84ee5d1cb870f8412435a8", "uniform": "e0dc3bd72e24473b2e1222052aa0cede94d7c4552db57c612630ac1762af4b9a", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [4097], "bits": "e61716213670fb7b90e276b0ff9af7239f9543dcc8d851cde103080c27627315", "uniform": "3885660a51c4071b93c95ff3b20db86fd3106740227c7f255306db72dc1c8945", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 4294967297, "layout": "reverse", "shape": [2, 3], "bits": "76eaa732bd46d296ae5cafe9aea6ddcc1a1faa1e5c16de4ec6716e223b81c05a", "uniform": "26a2d000420477c0a23d9f94a79c7b22160a5c2f38d00d4e79d48e61ad2a559e", "keys": [[980767767, 2821402401], [2380864529, 767935841], [749284114, 1462344114], [4069177991, 11563817]], "final_key": [1776561958, 158206988]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [1], "bits": "69106dbbcbf77fecfeef24667a462dec0b73fa243863e10c1e5444aad644d860", "uniform": "dfda2a62db0631ab30b3fece2ce24502baf17aeb5e013f89d514f74730ba8d9b", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [2], "bits": "c2d635d9c39f01abdf56a7a06a7b9ed7ed8fc9599e4b37b0ce7b9c71e57e01d2", "uniform": "5a0568eed1b7353b894a44d3a0498382e311eeba926d14c0551a1501a82ceb2d", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [3], "bits": "a99e1fa0f6dab535e431e3f92a6a0ab47eb4d05109fb37059576d0753ee37b16", "uniform": "02df5ba9e3fb8cb1eb289fad95c118391e2d7a1bcd8f300d204d8efeca27e911", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [127], "bits": "147a3b8b94cd11cf4dcb1bf29010fe0d8dec7e77e4c5c8f771c49ce9a41e1f53", "uniform": "719c5029f031c995de2b1ea2a226620d73c7012a82112b2e53ee8058bf39fb05", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [4097], "bits": "6e91625c07e7308b8fe0c920b7d4cdb0ebeb46329db25ccef81735abbb15a00c", "uniform": "de38e61c4de821529a87d8ca8abd07466a807ad96f8b518185368ff3edea8e8c", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "plain", "shape": [2, 3], "bits": "1396ef3b175a1245537f9198c548787d8ff9d5f47dc2335cb6279412764e5ac3", "uniform": "f9c5f44a940a243c63dd523abd4163db829ca73d8c20b5e41c5e82accc634792", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [1], "bits": "69106dbbcbf77fecfeef24667a462dec0b73fa243863e10c1e5444aad644d860", "uniform": "dfda2a62db0631ab30b3fece2ce24502baf17aeb5e013f89d514f74730ba8d9b", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [2], "bits": "c2d635d9c39f01abdf56a7a06a7b9ed7ed8fc9599e4b37b0ce7b9c71e57e01d2", "uniform": "5a0568eed1b7353b894a44d3a0498382e311eeba926d14c0551a1501a82ceb2d", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [3], "bits": "a99e1fa0f6dab535e431e3f92a6a0ab47eb4d05109fb37059576d0753ee37b16", "uniform": "02df5ba9e3fb8cb1eb289fad95c118391e2d7a1bcd8f300d204d8efeca27e911", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [127], "bits": "147a3b8b94cd11cf4dcb1bf29010fe0d8dec7e77e4c5c8f771c49ce9a41e1f53", "uniform": "719c5029f031c995de2b1ea2a226620d73c7012a82112b2e53ee8058bf39fb05", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [4097], "bits": "6e91625c07e7308b8fe0c920b7d4cdb0ebeb46329db25ccef81735abbb15a00c", "uniform": "de38e61c4de821529a87d8ca8abd07466a807ad96f8b518185368ff3edea8e8c", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "strided", "shape": [2, 3], "bits": "1396ef3b175a1245537f9198c548787d8ff9d5f47dc2335cb6279412764e5ac3", "uniform": "f9c5f44a940a243c63dd523abd4163db829ca73d8c20b5e41c5e82accc634792", "keys": [[1719144391, 478544778], [2012438383, 2430434483], [2204646043, 3846284841], [506995551, 552243771]], "final_key": [2518650313, 853911490]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [0], "bits": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "uniform": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [1], "bits": "ba84d9ccd79ff7765cf98fb838346470d8227de7ee98cbfbabed257a731d6fc5", "uniform": "142b6fc003c1f2a043b5dea1342f843c0037e583d512bb1a8fa8011e5f5ab34f", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [2], "bits": "54a0dc8e98f49fcf7579a8c5438bd04cba33bf6270a2534607284752ea5fd7da", "uniform": "ece0543dea2719f4a76048f309db80231b9f7a0fecaa35ea831869cef6622e67", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [3], "bits": "feb3a7cd18d195dc7471e351567410c6b13fdf9f8f3fca1eedd9391f11c17f65", "uniform": "9fc2065f3d2ff87759471c4e24852ec1644cc356ae4878d06afdc34ad7d4fd17", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [127], "bits": "d314b55eeae3e3f90967f6f9d98c58783141595eb159cd6df535b77abd81fda5", "uniform": "f56e22175d0243b551c30bd916e0d37fb32326bf73efe57cebe957460aff81bf", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [4097], "bits": "e98b978717b825cf5a9f09903daca1d3266fe587156a4c974401c0b375fdf241", "uniform": "b302cfc96a0e58d0f6ed65d25a714a5a189c28e790a8602798ee9884403b6fe5", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "rng", "seed": 18446744073709551615, "layout": "reverse", "shape": [2, 3], "bits": "7480314b39a395a0f610b39ee644ab0cf9b8c61d3d67b1db032760f8aec319ef", "uniform": "1b526928716b250c3258ce2258203642fdea4d24913ade00e7f1fe6584c366da", "keys": [[954623157, 2789749237], [273637936, 2799894986], [4082399671, 150658701], [3901315218, 1982846338]], "final_key": [3365489355, 2025950433]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 16, 2, 10], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 2, 2, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [2, 2, 2, 2], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [7, 15, 8, 12], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [0, 8, 8, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [8, 8, 8, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 0, 14, 6], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [15, 14, 14, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [14, 14, 14, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 16, 2, 10], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 2, 2, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [2, 2, 2, 2], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [7, 15, 8, 12], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [0, 8, 8, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [8, 8, 8, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 0, 14, 6], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [15, 14, 14, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [14, 14, 14, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 16, 2, 10], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 2, 2, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [2, 2, 2, 2], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [7, 15, 8, 12], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [0, 8, 8, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [8, 8, 8, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 0, 14, 6], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [15, 14, 14, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [14, 14, 14, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [8, 5, 0, 14], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 17, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 16, "tokens": [15, 15, 15, 15], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 637], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [244, 244, 244, 244], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 575], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [250, 250, 250, 250], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2824, 1796, 254, 632], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [511, 254, 254, 511], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [254, 254, 254, 254], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 637], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [244, 244, 244, 244], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 575], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [250, 250, 250, 250], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2824, 1796, 254, 632], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [511, 254, 254, 511], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [254, 254, 254, 254], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 637], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [244, 244, 244, 244], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 575], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [250, 250, 250, 250], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2824, 1796, 254, 632], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [511, 254, 254, 511], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [254, 254, 254, 254], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 4097, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 4613], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 4619], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2640, 1612, 70, 4439], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "bfloat16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 4613], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 4619], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2640, 1612, 70, 4439], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float16", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2814, 1786, 244, 4613], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [501, 244, 244, 501], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [8, 1, 1, 8], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "plain", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2820, 1792, 250, 4619], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [507, 250, 250, 507], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "strided", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [2640, 1612, 70, 4439], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [327, 70, 70, 327], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [7, 0, 0, 7], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "reverse", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [0, 0, 0, 0], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "pattern", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [10, 6, 0, 17], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "equal", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [1, 0, 0, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 0.6, "top_p": 0.95, "k": 20, "tokens": [19, 19, 19, 19], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1.0, "top_p": 1.0, "k": 2, "tokens": [1, 1, 1, 1], "final_key": [3606756744, 2997378523]} +{"kind": "sampler", "vocab": 248320, "dtype": "float32", "layout": "broadcast", "mode": "nonfinite", "temperature": 1e-07, "top_p": 0.01, "k": 129, "tokens": [128, 128, 128, 128], "final_key": [3606756744, 2997378523]} diff --git a/tests/fixtures/mtplx-sampler-selection.jsonl b/tests/fixtures/mtplx-sampler-selection.jsonl new file mode 100644 index 0000000..96f3d21 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-selection.jsonl @@ -0,0 +1,48 @@ +{"kernel":"sampler_selection_v17_b1_pattern_k1","sha256":["d88c86f15bbea365d658ad95a81d45367c465f7af6f7264fb077f01747ddc77d","e12eb784319bd6e027b7ad2f3367208463d601ad23842570b2b8bde7deb6e034"],"vocab":17,"batch":1,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v17_b1_pattern_k17","sha256":["094f0d27bb8dbfef68038b7bd8c29b7798e154e774d6cf1afea098ff7f5b0b52","bb575d360d30285cdba6991d8cee73e06a02278a1a4f3b7c2fba0ea076e6e20b"],"vocab":17,"batch":1,"mode":"pattern","top_k":17} +{"kernel":"sampler_selection_v17_b1_ties_k1","sha256":["fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4","fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4"],"vocab":17,"batch":1,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v17_b1_ties_k17","sha256":["0e025b1d6a903ca938d9af5b817f013f2daf07a44b21bc63e2b2981330f5512f","6acb6d3cc7a5c43390e230b6981d7503caee5f718288c77bd5c05ea9e7439687"],"vocab":17,"batch":1,"mode":"ties","top_k":17} +{"kernel":"sampler_selection_v17_b1_equal_k1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"vocab":17,"batch":1,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v17_b1_equal_k17","sha256":["b578392a98eb1802e897b008cffe3b3cc7cddf1b9211bbce6663dfa87e0b4f85","a384cb79a3c2a477eecd4d6f6a5c9960d6064280f00f0a996d8682cd862b8ce5"],"vocab":17,"batch":1,"mode":"equal","top_k":17} +{"kernel":"sampler_selection_v17_b1_nonfinite_k1","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","d7173dd8a9e81deded3f2e4719ef149effbd21afd81da9d10ed50b5dff69a708"],"vocab":17,"batch":1,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v17_b1_nonfinite_k17","sha256":["b578392a98eb1802e897b008cffe3b3cc7cddf1b9211bbce6663dfa87e0b4f85","4df1d14d733383009ade18ea1f2a09b0cab70de3bdb287b365f085c5c82048bb"],"vocab":17,"batch":1,"mode":"nonfinite","top_k":17} +{"kernel":"sampler_selection_v17_b4_pattern_k1","sha256":["d3e4281db676498685d4474441505b8d27eb410fd336428bfa6d3aef7969d5c5","b7e9412d68e8fc449b84333b91ec8e0a917e68561aac0593d1878bd7374debfa"],"vocab":17,"batch":4,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v17_b4_pattern_k17","sha256":["232fe29a3ab69a562931f51ddb2aa52f52e7fefd56cefa053dd154ecefd59067","acd8213b3fffe902cf0eb11fd5a3f089770b857186c6d7d18a100b5587041ee4"],"vocab":17,"batch":4,"mode":"pattern","top_k":17} +{"kernel":"sampler_selection_v17_b4_ties_k1","sha256":["d1e3000867c50098f80312ca2d07c39c24b6c1d962bd5942bc56d9816f30ae23","cb5435a00323c2d1eda61e1ea1c83a7e8ac417dc87b54ec84b97cd941eb9ac57"],"vocab":17,"batch":4,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v17_b4_ties_k17","sha256":["0b0259e93e9befaa39351dc7f9da9308df1347f412cc50a3901938aa20c37df6","8c9d2bb9b732e4ec2bbbbc8d6dcd37432b0a4a9aa67584b5622f3108864687c3"],"vocab":17,"batch":4,"mode":"ties","top_k":17} +{"kernel":"sampler_selection_v17_b4_equal_k1","sha256":["374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb","f6bb1294da2f78cd935b01c7656280df5eaa0439e9d97bc03775825a41a508e4"],"vocab":17,"batch":4,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v17_b4_equal_k17","sha256":["b1d35d990c1df795e778a55dae485fce3b2d49f6c564cfa4ec4e3c0c3f179762","0e90afb9e946e89ed47ed69dae714f711572bc5c85dfb4ab25629e745f4125d2"],"vocab":17,"batch":4,"mode":"equal","top_k":17} +{"kernel":"sampler_selection_v17_b4_nonfinite_k1","sha256":["0d951e44c0e94e02ab23b2e675d065b1345f761eb26a5789c00f7878f8574435","9a98333db133902b1b75ebe66258a43b9e68b8bf55d28c49e905d498fbc7940c"],"vocab":17,"batch":4,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v17_b4_nonfinite_k17","sha256":["31c22dbbf7aa8d61583bc2265aa3bb28a1ec5460bea2d8202381dc0273116d0d","b1c726e72ba851076ecf0bb1fa1334e670b331da845286ffba032740e85bd6fa"],"vocab":17,"batch":4,"mode":"nonfinite","top_k":17} +{"kernel":"sampler_selection_v4097_b1_pattern_k1","sha256":["559f1eb651051f9dac29c50bd565fca6efa242f6b55c4165c70947211a59241b","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"vocab":4097,"batch":1,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v4097_b1_pattern_k20","sha256":["20bf3c256bf07bf3bffce6f80ce544f2c44fcb372e4669da27e8af9f9c638d96","d7704e8b77d3b0302ef90d143521830bcb426b0e927d41e443e09b4ef34523ce"],"vocab":4097,"batch":1,"mode":"pattern","top_k":20} +{"kernel":"sampler_selection_v4097_b1_ties_k1","sha256":["fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4","fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4"],"vocab":4097,"batch":1,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v4097_b1_ties_k20","sha256":["4ac965aa708ffcdbeb9a3ec60f2723ddf8143d5f22af2411d870ce9f5b3e7cfd","32e290bda248438227a2e027c3e425e1c2b99f4a7621701eae270129d3e4b61a"],"vocab":4097,"batch":1,"mode":"ties","top_k":20} +{"kernel":"sampler_selection_v4097_b1_equal_k1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"vocab":4097,"batch":1,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v4097_b1_equal_k20","sha256":["e8f41b3baa7b95cfb55e51fdf1713bfcf5f976511c9dd8458abd78e549ba022c","822d06342bcaebfe6cffcbf978ac916b9b7e7fc9e7b788b5e9d74af71c2e5eef"],"vocab":4097,"batch":1,"mode":"equal","top_k":20} +{"kernel":"sampler_selection_v4097_b1_nonfinite_k1","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","d7173dd8a9e81deded3f2e4719ef149effbd21afd81da9d10ed50b5dff69a708"],"vocab":4097,"batch":1,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v4097_b1_nonfinite_k20","sha256":["a5d5458a7318bed64ae0028ff6c8cc500e6461a80b7543fa424ca185ceb5ad24","52f4959123ac17100f129e82f139297c0d6bba5ee0db242f7a146928b73da517"],"vocab":4097,"batch":1,"mode":"nonfinite","top_k":20} +{"kernel":"sampler_selection_v4097_b4_pattern_k1","sha256":["3f34876b2aa182365a53083366ba01fc9ee22ce889124e24bef391a859794cd1","f6bb1294da2f78cd935b01c7656280df5eaa0439e9d97bc03775825a41a508e4"],"vocab":4097,"batch":4,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v4097_b4_pattern_k20","sha256":["e48d53f586dd8fcae734cf3aa0af4921f44f207530fba9158cd235638971ac30","aaa579534297a70460adc5188121d52f7bfa12bbdccad65a531a0779f7cdd9c4"],"vocab":4097,"batch":4,"mode":"pattern","top_k":20} +{"kernel":"sampler_selection_v4097_b4_ties_k1","sha256":["7d86a9d2c27d6335b969e764304f85a9206636ec10a87800bfae70c7e9d0cb1a","cb5435a00323c2d1eda61e1ea1c83a7e8ac417dc87b54ec84b97cd941eb9ac57"],"vocab":4097,"batch":4,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v4097_b4_ties_k20","sha256":["cf6d21048126ffe7e8e230be8a05f8e3d83b472fd649a5965a798f6527b31193","052440fa586c34b260171e6bba3f8ecff2591a775f1e9cdc79ad222e4bec9776"],"vocab":4097,"batch":4,"mode":"ties","top_k":20} +{"kernel":"sampler_selection_v4097_b4_equal_k1","sha256":["374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb","f6bb1294da2f78cd935b01c7656280df5eaa0439e9d97bc03775825a41a508e4"],"vocab":4097,"batch":4,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v4097_b4_equal_k20","sha256":["720c418b31781a7d251dada4922a13b5df9353341aa86ea1e4ad51ac75330419","beea08e0b2386530f2625dfcc037b7237b4ca13ad5732e9798f5bbc619054fc2"],"vocab":4097,"batch":4,"mode":"equal","top_k":20} +{"kernel":"sampler_selection_v4097_b4_nonfinite_k1","sha256":["015093323a3e493fbf8c7789f7bb806ae316a570174548411f212a6b5d1e076b","039a0e81e9615a4fec52911ee99a4a12485ad75883717aa00f6022b6874757b4"],"vocab":4097,"batch":4,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v4097_b4_nonfinite_k20","sha256":["c495f4354c553780725a858ccdd1899b6f19b0ef66130bd5df06bd12114e733c","d81178eb438cd4fca96bcf27c6ca67b0f4bbbc358857de9373582301746be0e2"],"vocab":4097,"batch":4,"mode":"nonfinite","top_k":20} +{"kernel":"sampler_selection_v248320_b1_pattern_k1","sha256":["559f1eb651051f9dac29c50bd565fca6efa242f6b55c4165c70947211a59241b","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"vocab":248320,"batch":1,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v248320_b1_pattern_k20","sha256":["a9f97018da895b244c7a75d6eb6f25eb9cce4bf9f01f80d328c365167db79e6c","822d06342bcaebfe6cffcbf978ac916b9b7e7fc9e7b788b5e9d74af71c2e5eef"],"vocab":248320,"batch":1,"mode":"pattern","top_k":20} +{"kernel":"sampler_selection_v248320_b1_ties_k1","sha256":["fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4","fedcca07b1ccdacce623cb6d8afdeed0314e8508d763e228871f18d4e0ebb7c4"],"vocab":248320,"batch":1,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v248320_b1_ties_k20","sha256":["4ac965aa708ffcdbeb9a3ec60f2723ddf8143d5f22af2411d870ce9f5b3e7cfd","32e290bda248438227a2e027c3e425e1c2b99f4a7621701eae270129d3e4b61a"],"vocab":248320,"batch":1,"mode":"ties","top_k":20} +{"kernel":"sampler_selection_v248320_b1_equal_k1","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c"],"vocab":248320,"batch":1,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v248320_b1_equal_k20","sha256":["e8f41b3baa7b95cfb55e51fdf1713bfcf5f976511c9dd8458abd78e549ba022c","822d06342bcaebfe6cffcbf978ac916b9b7e7fc9e7b788b5e9d74af71c2e5eef"],"vocab":248320,"batch":1,"mode":"equal","top_k":20} +{"kernel":"sampler_selection_v248320_b1_nonfinite_k1","sha256":["e00e5eb9444182f352323374ef4e08ebcb784725fdd4fd612d7730540b3e0c8c","d7173dd8a9e81deded3f2e4719ef149effbd21afd81da9d10ed50b5dff69a708"],"vocab":248320,"batch":1,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v248320_b1_nonfinite_k20","sha256":["8a96db8a0facf253045bcab88d87113a393d5f83015497bef5e93bd9a35cc8e3","5fc23895d514dbf63c970b604b14a7aa8a36de28535f2c60b7e199938a26ce60"],"vocab":248320,"batch":1,"mode":"nonfinite","top_k":20} +{"kernel":"sampler_selection_v248320_b4_pattern_k1","sha256":["7e4b597f2ec118d39e8b1732d896684fe89afe395dc1035f161c3454cc1e3693","f6bb1294da2f78cd935b01c7656280df5eaa0439e9d97bc03775825a41a508e4"],"vocab":248320,"batch":4,"mode":"pattern","top_k":1} +{"kernel":"sampler_selection_v248320_b4_pattern_k20","sha256":["7b8a9cb8a872d3a763f65387f232a843f1c364bbb800d01c3761be1d793786a5","beea08e0b2386530f2625dfcc037b7237b4ca13ad5732e9798f5bbc619054fc2"],"vocab":248320,"batch":4,"mode":"pattern","top_k":20} +{"kernel":"sampler_selection_v248320_b4_ties_k1","sha256":["7d86a9d2c27d6335b969e764304f85a9206636ec10a87800bfae70c7e9d0cb1a","cb5435a00323c2d1eda61e1ea1c83a7e8ac417dc87b54ec84b97cd941eb9ac57"],"vocab":248320,"batch":4,"mode":"ties","top_k":1} +{"kernel":"sampler_selection_v248320_b4_ties_k20","sha256":["cf6d21048126ffe7e8e230be8a05f8e3d83b472fd649a5965a798f6527b31193","052440fa586c34b260171e6bba3f8ecff2591a775f1e9cdc79ad222e4bec9776"],"vocab":248320,"batch":4,"mode":"ties","top_k":20} +{"kernel":"sampler_selection_v248320_b4_equal_k1","sha256":["374708fff7719dd5979ec875d56cd2286f6d3cf7ec317a3b25632aab28ec37bb","f6bb1294da2f78cd935b01c7656280df5eaa0439e9d97bc03775825a41a508e4"],"vocab":248320,"batch":4,"mode":"equal","top_k":1} +{"kernel":"sampler_selection_v248320_b4_equal_k20","sha256":["720c418b31781a7d251dada4922a13b5df9353341aa86ea1e4ad51ac75330419","beea08e0b2386530f2625dfcc037b7237b4ca13ad5732e9798f5bbc619054fc2"],"vocab":248320,"batch":4,"mode":"equal","top_k":20} +{"kernel":"sampler_selection_v248320_b4_nonfinite_k1","sha256":["0666f61c3d2ecfc74fde532b362e15794c43bb2431e0f3553c4e275cffa2c479","039a0e81e9615a4fec52911ee99a4a12485ad75883717aa00f6022b6874757b4"],"vocab":248320,"batch":4,"mode":"nonfinite","top_k":1} +{"kernel":"sampler_selection_v248320_b4_nonfinite_k20","sha256":["e4976a395407527b52c17a8aef303b0a3e6ae4a380894c24a1f621588b4af337","20472a04f278b4d48cb8f2cfba7cfb88e6af1dddc8a9c41e0c7784c6505d3857"],"vocab":248320,"batch":4,"mode":"nonfinite","top_k":20} diff --git a/tests/fixtures/mtplx-sampler-serial.jsonl b/tests/fixtures/mtplx-sampler-serial.jsonl new file mode 100644 index 0000000..9d598b9 --- /dev/null +++ b/tests/fixtures/mtplx-sampler-serial.jsonl @@ -0,0 +1,108 @@ +{"vocab":17,"batch":1,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14]],"probability_bits":[[4600973030498238464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14]],"probability_bits":[[4600973030498238464,4600973030498238464,4590180652246106112,4590180652246106112,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14]],"probability_bits":[[4600973027278466380,4600973027278466380,4590180649776756512,4590180649776756512,4579488671899631630,4579488671899631630,4568443573990528626,4568443573990528626,4557896736009331363,4557896736009331363,4557896736009331363,4546817049365924507,4546817049365924507,4546817049365924507,4536052248854540039,4536052248854540039,4536052248854540039]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":1,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14],[3,10,2,9,16,1,8,15,0,7,14,6,13,5,12,4,11],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[4,11,3,10,2,9,16,1,8,15,0,7,14,6,13,5,12]],"probability_bits":[[4600973030498238464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4600351094000844800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4598869116072230912,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4600850454279094272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14],[3,10,2,9,16,1,8,15,0,7,14,6,13,5,12,4,11],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[4,11,3,10,2,9,16,1,8,15,0,7,14,6,13,5,12]],"probability_bits":[[4600973030498238464,4600973030498238464,4590180652246106112,4590180652246106112,0,0,0,0,0,0,0,0,0,0,0,0,0],[4600351094000844800,4600351094000844800,4589710777455214592,4589710777455214592,4589710777455214592,0,0,0,0,0,0,0,0,0,0,0,0],[4598869116072230912,4598869116072230912,4598869116072230912,4588014261078327296,4588014261078327296,0,0,0,0,0,0,0,0,0,0,0,0],[4600850454279094272,4600850454279094272,4590088045235011584,4590088045235011584,4579348746336206848,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,5,12,4,11,3,10,2,9,16,1,8,15,0,7,14],[3,10,2,9,16,1,8,15,0,7,14,6,13,5,12,4,11],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[4,11,3,10,2,9,16,1,8,15,0,7,14,6,13,5,12]],"probability_bits":[[4600973027278466380,4600973027278466380,4590180649776756512,4590180649776756512,4579488671899631630,4579488671899631630,4568443573990528626,4568443573990528626,4557896736009331363,4557896736009331363,4557896736009331363,4546817049365924507,4546817049365924507,4546817049365924507,4536052248854540039,4536052248854540039,4536052248854540039],[4600351092363075297,4600351092363075297,4589710776597844321,4589710776597844321,4589710776597844321,4578778691147389305,4578778691147389305,4578778691147389305,4567907181734940041,4567907181734940041,4567907181734940041,4557340157899079282,4557340157899079282,4546204721270019923,4546204721270019923,4535589633483163938,4535589633483163938],[4598869114232506300,4598869114232506300,4598869114232506300,4588014257514573389,4588014257514573389,4577086912921228091,4577086912921228091,4566608055851217256,4566608055851217256,4555408878219671717,4555408878219671717,4544745634757256888,4544745634757256888,4544745634757256888,4533849755359109828,4533849755359109828,4533849755359109828],[4600850454872874506,4600850454872874506,4590088046058204785,4590088046058204785,4579348747212059543,4579348747212059543,4579348747212059543,4568337860534857784,4568337860534857784,4568337860534857784,4557816869245007114,4557816869245007114,4557816869245007114,4546696370295061728,4546696370295061728,4535961075521880800,4535961075521880800]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096],[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096],[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096],[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]],"probability_bits":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0],[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0],[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0],[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293],[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293],[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293],[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4588638185608708096,4588638185608708096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4592960580028989440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4598869116072230912,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595484228187062272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096,4588638185608708096],[4592960580028989440,4592185830205816832,4591483431254228992,4590846627190669312,4590269291781160960,4589745871096119296,4589271331433873408,4588514193124098048,4587734100898480128,4587026857760653312,4586385662093033472,4585804343638228992,4585277314643787776,4584799502753333248,4584068203503681536,4583282728610299904,0],[4598869116072230912,4598869116072230912,4598869116072230912,4588014261078327296,4588014261078327296,0,0,0,0,0,0,0,0,0,0,0,0],[4595484228187062272,4593693780338540544,4593693780338540544,4591150119243481088,4591150119243481088,4589311626817044480,4589311626817044480,4586820557596524544,4586820557596524544,4584932731565113344,4584932731565113344,4582495668337115136,4582495668337115136,4580557182092705792,0,0,0]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":17,"batch":4,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0],[0,7,14,6,13,5,12,4,11,3,10,2,9,16,1,8,15],[8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,16]],"probability_bits":[[4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542,4588638185040256542],[4592960580260849488,4592185829300413483,4591483430587723922,4590846625759409238,4590269290700165156,4589745870388253984,4589271330846132654,4588514193629108743,4587734100187265084,4587026857054827538,4586385660985805439,4585804343898336960,4585277314231602384,4584799502097317606,4584068201681994785,4583282728395344944,4582570607829064587],[4598869114232506300,4598869114232506300,4598869114232506300,4588014257514573389,4588014257514573389,4577086912921228091,4577086912921228091,4566608055851217256,4566608055851217256,4555408878219671717,4555408878219671717,4544745634757256888,4544745634757256888,4544745634757256888,4533849755359109828,4533849755359109828,4533849755359109828],[4595484227115700055,4593693780199866364,4593693780199866364,4591150117957085739,4591150117957085739,4589311625937494557,4589311625937494557,4586820556942601967,4586820556942601967,4584932730712411851,4584932730712411851,4582495666525741389,4582495666525741389,4580557181840036193,4580557181840036193,4578175570804590293,4578175570804590293]],"vocabulary":17,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":1,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":1,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864],[4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832],[4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640],[4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864,4564037157324324864],[4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832,4564037084309880832],[4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640],[4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192,4564028309154824192]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631]],"vocabulary":4097,"eval_calls":1,"selector_calls":0} +{"vocab":4097,"batch":4,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816,4553137024785186816],[4557764064993869824,4557762183798194176,4557760304213131264,4557758424628068352,4557756546116747264,4557754666531684352,4557752791778459648,4557750913267138560,4557749037977042944,4557747163223818240,4557745289544335360,4557743416401723392,4557741543795982336,4557739672263983104,4557737799658242048,4557735929199984640,4557734060352339968,4557732191504695296,4557730324267663360,4557728457030631424],[4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640,4564035169828208640],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":4097,"batch":4,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[4096,4095,4094,4093,4092,4091,4090,4089,4088,4087,4086,4085,4084,4083,4082,4081,4080,4079,4078,4077],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[2048,2047,2049,2046,2050,2045,2051,2044,2052,2043,2053,2042,2054,2041,2055,2040,2056,2039,2057,2038]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587394462127212630,4587391519637189817,4587388579205724690,4587385639108748141,4587382701068655108,4587379763362778623,4587376827712112848,4587373892395391812,4587370959132210038,4587368026202701416,4587365095325061970,4587362164780824307,4587359236286787092,4587356308125880514,4587353382013507012,4587350456233993220,4587347532501346490,4587344609101288764,4587341687746433438,4587338766723896631],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":4097,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":1,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":1,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"unique","top_p":0.1,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"unique","top_p":0.95,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"unique","top_p":1.0,"temperature":0.6,"ids":[[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"ties","top_p":0.1,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376],[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376],[4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712],[4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"ties","top_p":0.95,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376],[4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376,4537369934090469376],[4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712],[4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720,4537369779471646720]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"ties","top_p":1.0,"temperature":0.6,"ids":[[6,13,20,27,34,41,48,55,62,69,76,83,90,97,104,111,118,125,132,139],[4,11,18,25,32,39,46,53,60,67,74,81,88,95,102,109,116,123,130,137],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[0,7,14,21,28,35,42,49,56,63,70,77,84,91,98,105,112,119,126,133]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"equal","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"equal","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"equal","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"sharp","top_p":0.1,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"sharp","top_p":0.95,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"sharp","top_p":1.0,"temperature":0.6,"ids":[[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"nonfinite","top_p":0.1,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"nonfinite","top_p":0.95,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[9221120237041090560,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"nonfinite","top_p":1.0,"temperature":0.6,"ids":[[1,248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300]],"probability_bits":[[9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560,9221120237041090560],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172]],"vocabulary":248320,"eval_calls":1,"selector_calls":0} +{"vocab":248320,"batch":4,"mode":"mixed","top_p":0.1,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712],[4595117830969491456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"mixed","top_p":0.95,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480,4526368344223252480],[4531002114645688320,4531002082433433600,4531002049147437056,4531002012103344128,4531001979354218496,4531001947141963776,4531001914392838144,4531001882180583424,4531001849431457792,4531001816145461248,4531001783933206528,4531001751184080896,4531001718971826176,4531001686222700544,4531001654010445824,4531001621261320192,4531001587975323648,4531001555763068928,4531001523013943296,4531001490801688576],[4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712,4537369895435763712],[4595117830969491456,4593190870806691840,4593190870806691840,4590773890308898816,4590773890308898816,4588916073750855680,4588916073750855680,4586434232267571200,4586434232267571200,4584647413666414592,4584647413666414592,4582098976567721984,4582098976567721984,4580272939546443776,4580272939546443776,4577768233804759040,4577768233804759040,4575893200333438976,0,0]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} +{"vocab":248320,"batch":4,"mode":"mixed","top_p":1.0,"temperature":0.6,"ids":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],[248319,248318,248317,248316,248315,248314,248313,248312,248311,248310,248309,248308,248307,248306,248305,248304,248303,248302,248301,248300],[2,9,16,23,30,37,44,51,58,65,72,79,86,93,100,107,114,121,128,135],[124160,124159,124161,124158,124162,124157,124163,124156,124164,124155,124165,124154,124166,124153,124167,124152,124168,124151,124169,124150]],"probability_bits":[[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4587367039280156678,4587366992032662919,4587366943067405356,4587366894961511410,4587366845996913437,4587366798750686937,4587366749786742708,4587366700823131183,4587366652718854387,4587366604614898720,4587366556511264181,4587366507548965946,4587366459445979389,4587366411343313954,4587366363240969636,4587366314279984655,4587366266178288304,4587366218076913065,4587366169116914459,4587366121016187172],[4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408,4587366580546961408],[4595337936283513808,4593506296560486750,4593506296560486750,4590999901524866384,4590999901524866384,4589203991158308193,4589203991158308193,4586666309569943756,4586666309569943756,4584822207631544915,4584822207631544915,4582337280036070625,4582337280036070625,4580443692951995932,4580443692951995932,4578012934147074595,4578012934147074595,4576068534250915712,4576068534250915712,4573693400060212052]],"vocabulary":248320,"eval_calls":2,"selector_calls":1} diff --git a/tests/fixtures/mtplx-scatter-axis.jsonl b/tests/fixtures/mtplx-scatter-axis.jsonl new file mode 100644 index 0000000..c3123fc --- /dev/null +++ b/tests/fixtures/mtplx-scatter-axis.jsonl @@ -0,0 +1,64 @@ +{"kernel":"scatter_axis_(7,)_0_False_False_plain","sha256":["10018c66e4bc1be395b9bdf899d6222e38dc5a4e4c2093c6e1269edd88661444"],"shape":[7],"axis":0,"strided":false,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(7,)_0_False_False_scalar","sha256":["5b9b333da9aef69a1da1e68744424578726c887215c97076e3529c2a6bc0b019"],"shape":[7],"axis":0,"strided":false,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(7,)_0_False_False_offset","sha256":["0d01308760c6c636dbd1c6c6a98b2f9256ff1a2a26cf539c9e28bf0e95df7b77"],"shape":[7],"axis":0,"strided":false,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(7,)_0_False_False_strided","sha256":["10018c66e4bc1be395b9bdf899d6222e38dc5a4e4c2093c6e1269edd88661444"],"shape":[7],"axis":0,"strided":false,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(7,)_0_False_True_plain","sha256":["fbd3f58324ba0441280b1ca11731a0aa81d54584ff8b3087372edee8bf1c57fb"],"shape":[7],"axis":0,"strided":false,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(7,)_0_False_True_scalar","sha256":["a6038e71b268e2a7939aef53c8705ddcc884268ccd905e9d5513d32454dc4399"],"shape":[7],"axis":0,"strided":false,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(7,)_0_False_True_offset","sha256":["bbf18ee6d2f84113186e0cef373c64860586480f3504dec0984328cf49e45665"],"shape":[7],"axis":0,"strided":false,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(7,)_0_False_True_strided","sha256":["fbd3f58324ba0441280b1ca11731a0aa81d54584ff8b3087372edee8bf1c57fb"],"shape":[7],"axis":0,"strided":false,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(7,)_0_True_False_plain","sha256":["10018c66e4bc1be395b9bdf899d6222e38dc5a4e4c2093c6e1269edd88661444"],"shape":[7],"axis":0,"strided":true,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(7,)_0_True_False_scalar","sha256":["5b9b333da9aef69a1da1e68744424578726c887215c97076e3529c2a6bc0b019"],"shape":[7],"axis":0,"strided":true,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(7,)_0_True_False_offset","sha256":["0d01308760c6c636dbd1c6c6a98b2f9256ff1a2a26cf539c9e28bf0e95df7b77"],"shape":[7],"axis":0,"strided":true,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(7,)_0_True_False_strided","sha256":["10018c66e4bc1be395b9bdf899d6222e38dc5a4e4c2093c6e1269edd88661444"],"shape":[7],"axis":0,"strided":true,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(7,)_0_True_True_plain","sha256":["fbd3f58324ba0441280b1ca11731a0aa81d54584ff8b3087372edee8bf1c57fb"],"shape":[7],"axis":0,"strided":true,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(7,)_0_True_True_scalar","sha256":["a6038e71b268e2a7939aef53c8705ddcc884268ccd905e9d5513d32454dc4399"],"shape":[7],"axis":0,"strided":true,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(7,)_0_True_True_offset","sha256":["bbf18ee6d2f84113186e0cef373c64860586480f3504dec0984328cf49e45665"],"shape":[7],"axis":0,"strided":true,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(7,)_0_True_True_strided","sha256":["fbd3f58324ba0441280b1ca11731a0aa81d54584ff8b3087372edee8bf1c57fb"],"shape":[7],"axis":0,"strided":true,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_0_False_False_plain","sha256":["f79191a149bbf6fb5fe69e5acb0afdce3fc0625ca27e965ace55e93bb59b28e0"],"shape":[3,5],"axis":0,"strided":false,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_0_False_False_scalar","sha256":["1ebee3a7d9b8b74d8d69b6137c87b66a6bec47a9d07287edbf3198d014711ee5"],"shape":[3,5],"axis":0,"strided":false,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_0_False_False_offset","sha256":["0bb7c9eecea51bd7b7eb62f7d4d111bd99d23b31b5f50d112e8b1235682bdf23"],"shape":[3,5],"axis":0,"strided":false,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_0_False_False_strided","sha256":["f79191a149bbf6fb5fe69e5acb0afdce3fc0625ca27e965ace55e93bb59b28e0"],"shape":[3,5],"axis":0,"strided":false,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_0_False_True_plain","sha256":["69baed178104894a7f5abb4617dfdfb48470c7d150d9fd6c64eb3e9953ceb5bc"],"shape":[3,5],"axis":0,"strided":false,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_0_False_True_scalar","sha256":["dcd86419ab9f530e5eb1ad3d26474f1cf16ee907d37b47f9a06a2c5c6482e20e"],"shape":[3,5],"axis":0,"strided":false,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_0_False_True_offset","sha256":["09d06f549f15e650ef8280be099986bdac077e55464bbd42c7217cb0241ac6e4"],"shape":[3,5],"axis":0,"strided":false,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_0_False_True_strided","sha256":["69baed178104894a7f5abb4617dfdfb48470c7d150d9fd6c64eb3e9953ceb5bc"],"shape":[3,5],"axis":0,"strided":false,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_0_True_False_plain","sha256":["f79191a149bbf6fb5fe69e5acb0afdce3fc0625ca27e965ace55e93bb59b28e0"],"shape":[3,5],"axis":0,"strided":true,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_0_True_False_scalar","sha256":["1ebee3a7d9b8b74d8d69b6137c87b66a6bec47a9d07287edbf3198d014711ee5"],"shape":[3,5],"axis":0,"strided":true,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_0_True_False_offset","sha256":["0bb7c9eecea51bd7b7eb62f7d4d111bd99d23b31b5f50d112e8b1235682bdf23"],"shape":[3,5],"axis":0,"strided":true,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_0_True_False_strided","sha256":["f79191a149bbf6fb5fe69e5acb0afdce3fc0625ca27e965ace55e93bb59b28e0"],"shape":[3,5],"axis":0,"strided":true,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_0_True_True_plain","sha256":["69baed178104894a7f5abb4617dfdfb48470c7d150d9fd6c64eb3e9953ceb5bc"],"shape":[3,5],"axis":0,"strided":true,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_0_True_True_scalar","sha256":["dcd86419ab9f530e5eb1ad3d26474f1cf16ee907d37b47f9a06a2c5c6482e20e"],"shape":[3,5],"axis":0,"strided":true,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_0_True_True_offset","sha256":["09d06f549f15e650ef8280be099986bdac077e55464bbd42c7217cb0241ac6e4"],"shape":[3,5],"axis":0,"strided":true,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_0_True_True_strided","sha256":["69baed178104894a7f5abb4617dfdfb48470c7d150d9fd6c64eb3e9953ceb5bc"],"shape":[3,5],"axis":0,"strided":true,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_1_False_False_plain","sha256":["69ad5ec8eee280c06b909d80e9edac5721f84c269732c10aa4dfe3a0a7608235"],"shape":[3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_1_False_False_scalar","sha256":["4b1ebabb6c2308ea7ab24749aa5e4908f015de1158864733ded5d26609d3c41f"],"shape":[3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_1_False_False_offset","sha256":["e2204191728930e76e4d3cc18e669686f867406f6b081b274c1540558fd58c0a"],"shape":[3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_1_False_False_strided","sha256":["69ad5ec8eee280c06b909d80e9edac5721f84c269732c10aa4dfe3a0a7608235"],"shape":[3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_1_False_True_plain","sha256":["2b306b2057b58e0f8e2912d6d275b0c29ef7a45c9fc136059d643dd8e9cdffc9"],"shape":[3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_1_False_True_scalar","sha256":["9aeee49ccbfd491ba404e1f3c0cb8a89a68290a87d2a864dc1e0d86de70590af"],"shape":[3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_1_False_True_offset","sha256":["c3a72c89306c00eac4f79dcc710f9304f05a7a49fbb3cb17348493a667f97048"],"shape":[3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_1_False_True_strided","sha256":["2b306b2057b58e0f8e2912d6d275b0c29ef7a45c9fc136059d643dd8e9cdffc9"],"shape":[3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_1_True_False_plain","sha256":["69ad5ec8eee280c06b909d80e9edac5721f84c269732c10aa4dfe3a0a7608235"],"shape":[3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_1_True_False_scalar","sha256":["4b1ebabb6c2308ea7ab24749aa5e4908f015de1158864733ded5d26609d3c41f"],"shape":[3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_1_True_False_offset","sha256":["e2204191728930e76e4d3cc18e669686f867406f6b081b274c1540558fd58c0a"],"shape":[3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_1_True_False_strided","sha256":["69ad5ec8eee280c06b909d80e9edac5721f84c269732c10aa4dfe3a0a7608235"],"shape":[3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(3, 5)_1_True_True_plain","sha256":["2b306b2057b58e0f8e2912d6d275b0c29ef7a45c9fc136059d643dd8e9cdffc9"],"shape":[3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(3, 5)_1_True_True_scalar","sha256":["9aeee49ccbfd491ba404e1f3c0cb8a89a68290a87d2a864dc1e0d86de70590af"],"shape":[3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(3, 5)_1_True_True_offset","sha256":["c3a72c89306c00eac4f79dcc710f9304f05a7a49fbb3cb17348493a667f97048"],"shape":[3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(3, 5)_1_True_True_strided","sha256":["2b306b2057b58e0f8e2912d6d275b0c29ef7a45c9fc136059d643dd8e9cdffc9"],"shape":[3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_False_plain","sha256":["3061caeb597e45adf744ab6fa7892eb8450915e3aeed61cf100269b6f708f3d8"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_False_scalar","sha256":["d68c213ae1e7e1ffe75fec463c8813c3863929b3c03db85d1387eedb2ddf3e30"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_False_offset","sha256":["01a0b2e8abf2b27c9b7e65b7d3a545bb226c8b2473bdd0af5a2691ce19535878"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_False_strided","sha256":["3061caeb597e45adf744ab6fa7892eb8450915e3aeed61cf100269b6f708f3d8"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_True_plain","sha256":["43e9bc68f34bbfdb751c96c6c400a47e6b34b9ebdb8a4be49f92ec2fea567b49"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_True_scalar","sha256":["29214e0537157f589741965a8ff56d1cbeba4d85ae3b72c9845b485b18293599"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_True_offset","sha256":["5657051c7b6016dfc9b98ed798261cc745b2be9bfed87313668f02f3935f7891"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(2, 3, 5)_1_False_True_strided","sha256":["43e9bc68f34bbfdb751c96c6c400a47e6b34b9ebdb8a4be49f92ec2fea567b49"],"shape":[2,3,5],"axis":1,"strided":false,"scalar":true,"src_layout":"strided"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_False_plain","sha256":["3061caeb597e45adf744ab6fa7892eb8450915e3aeed61cf100269b6f708f3d8"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"plain"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_False_scalar","sha256":["d68c213ae1e7e1ffe75fec463c8813c3863929b3c03db85d1387eedb2ddf3e30"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"scalar"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_False_offset","sha256":["01a0b2e8abf2b27c9b7e65b7d3a545bb226c8b2473bdd0af5a2691ce19535878"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"offset"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_False_strided","sha256":["3061caeb597e45adf744ab6fa7892eb8450915e3aeed61cf100269b6f708f3d8"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":false,"src_layout":"strided"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_True_plain","sha256":["43e9bc68f34bbfdb751c96c6c400a47e6b34b9ebdb8a4be49f92ec2fea567b49"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"plain"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_True_scalar","sha256":["29214e0537157f589741965a8ff56d1cbeba4d85ae3b72c9845b485b18293599"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"scalar"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_True_offset","sha256":["5657051c7b6016dfc9b98ed798261cc745b2be9bfed87313668f02f3935f7891"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"offset"} +{"kernel":"scatter_axis_(2, 3, 5)_1_True_True_strided","sha256":["43e9bc68f34bbfdb751c96c6c400a47e6b34b9ebdb8a4be49f92ec2fea567b49"],"shape":[2,3,5],"axis":1,"strided":true,"scalar":true,"src_layout":"strided"} diff --git a/tests/fixtures/mtplx-sdpa-fallback.jsonl b/tests/fixtures/mtplx-sdpa-fallback.jsonl new file mode 100644 index 0000000..611cae9 --- /dev/null +++ b/tests/fixtures/mtplx-sdpa-fallback.jsonl @@ -0,0 +1,21 @@ +{"kernel":"sdpa_fallback_B1_h24_r3_t17_none","sha256":["f453ccbdd8e2c7e074fba3c6934a412debabe30e30138d61537d1edb9143bc3c"],"batch":1,"heads":24,"rows":3,"total":17,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h24_r3_t17_bool","sha256":["8e2db08d3c07d3098d9db10476a11ab3e963fd6f681487c42a01ee89194aeabb"],"batch":1,"heads":24,"rows":3,"total":17,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h24_r3_t17_add","sha256":["7a0754539287c0af65cac25aba193cd1eeda24afd820089738d87699d1c9c311"],"batch":1,"heads":24,"rows":3,"total":17,"mode":"add"} +{"kernel":"sdpa_fallback_B1_h24_r4_t1025_none","sha256":["5dc5a1319d65ee75093dbeb21ef08070bb258c48d268e2ad98519e45df439192"],"batch":1,"heads":24,"rows":4,"total":1025,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h24_r4_t1025_bool","sha256":["62e3fede554021c1b35301c2f9262672627e553999fb82c2e25d02aae6185d43"],"batch":1,"heads":24,"rows":4,"total":1025,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h24_r4_t1025_add","sha256":["d9cf42d3ed5f8859a5727f182eeb4ffc22ae460beb54f01825cd9832b6918cad"],"batch":1,"heads":24,"rows":4,"total":1025,"mode":"add"} +{"kernel":"sdpa_fallback_B1_h24_r8_t4097_none","sha256":["31d0ca3ff4d9119a2b3fbb836bc54f0bac8789ce044b3a1d5b4d5cabd65f858b"],"batch":1,"heads":24,"rows":8,"total":4097,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h24_r8_t4097_bool","sha256":["4495e4ed91f99e2963f4eb608713fde464f74c6e876d7378f7908a94c2d40763"],"batch":1,"heads":24,"rows":8,"total":4097,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h24_r8_t4097_add","sha256":["46af8bfe87019b821a3b58385ddf70ae08bcc76a1f697682f2c3cc46920a5b35"],"batch":1,"heads":24,"rows":8,"total":4097,"mode":"add"} +{"kernel":"sdpa_fallback_B1_h24_r16_t33_none","sha256":["a2ebc8052edeeb64cca03b2837d0222da4a09e39dc39341779bf25e6705ce729"],"batch":1,"heads":24,"rows":16,"total":33,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h24_r16_t33_bool","sha256":["0f64ae4291719da5df09998ab1ac0c28c7e603f8eb6c09339d34869b5ed5a764"],"batch":1,"heads":24,"rows":16,"total":33,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h24_r16_t33_add","sha256":["7fb96ab6aea9ac3dcaaa9afb461e27d328064a0a6f81e2383ff0b793dd6a7031"],"batch":1,"heads":24,"rows":16,"total":33,"mode":"add"} +{"kernel":"sdpa_fallback_B1_h24_r2048_t2048_none","sha256":["2dddd748f43c5fc59724ec2130c66618337400778ffba9704b6d85acc16b9d14"],"batch":1,"heads":24,"rows":2048,"total":2048,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h24_r2048_t2048_bool","sha256":["3ba2b20f7cd18140096b9e4c9bc4327147b7d0885460817b72be6a0785b511fd"],"batch":1,"heads":24,"rows":2048,"total":2048,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h24_r2048_t2048_add","sha256":["14baaf2ac5dcc5e0737dd03dd6af13f3134f6f5d493a267d5621bcb94714eb73"],"batch":1,"heads":24,"rows":2048,"total":2048,"mode":"add"} +{"kernel":"sdpa_fallback_B2_h24_r3_t17_none","sha256":["db923a3baee40bb040ff4e68da7c4ef832387b23fb4eb09ca723563cc245efa0"],"batch":2,"heads":24,"rows":3,"total":17,"mode":"none"} +{"kernel":"sdpa_fallback_B2_h24_r3_t17_bool","sha256":["9339f1a301bcaf7c427aa177a19bcc7a8e7dbcfd253b7c47659d9bf68bb288a2"],"batch":2,"heads":24,"rows":3,"total":17,"mode":"bool"} +{"kernel":"sdpa_fallback_B2_h24_r3_t17_add","sha256":["b6c3995d468c5ba5220a247a9c09de67fc7366d85fc66b1db4a72923f3727131"],"batch":2,"heads":24,"rows":3,"total":17,"mode":"add"} +{"kernel":"sdpa_fallback_B1_h2_r16_t33_none","sha256":["b07dc12c974a1e4e5cda6fed20681f04ab27577c31ad39599d93d1e73ce4b218"],"batch":1,"heads":2,"rows":16,"total":33,"mode":"none"} +{"kernel":"sdpa_fallback_B1_h2_r16_t33_bool","sha256":["092b828af0bd8392660d984e0985e7ce5a17519ea20bb6891130f8d615436263"],"batch":1,"heads":2,"rows":16,"total":33,"mode":"bool"} +{"kernel":"sdpa_fallback_B1_h2_r16_t33_add","sha256":["718b980c3ecd77042d6a825ac9c87f2b1c63eb13fdd6ed5e8543891358a2f1cf"],"batch":1,"heads":2,"rows":16,"total":33,"mode":"add"} diff --git a/tests/fixtures/mtplx-sdpa-vector.jsonl b/tests/fixtures/mtplx-sdpa-vector.jsonl new file mode 100644 index 0000000..29d55b6 --- /dev/null +++ b/tests/fixtures/mtplx-sdpa-vector.jsonl @@ -0,0 +1,48 @@ +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy0_none","sha256":["903c0fb19081da750a1af581c21f242b7bcc639baae37c6e138fa9ea0f8e6bec"],"batch":1,"heads":24,"rows":1,"total":17,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy0_bool","sha256":["d2e186eb374d3719eaafeff6b08651af03d0dd23cff186f28db696a7bafbb77e"],"batch":1,"heads":24,"rows":1,"total":17,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy0_add","sha256":["637f3740754a2e6b5509da88b8d1183f0c044f30900fafd6b20ad29c7b770e3a"],"batch":1,"heads":24,"rows":1,"total":17,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy0_causal","sha256":["903c0fb19081da750a1af581c21f242b7bcc639baae37c6e138fa9ea0f8e6bec"],"batch":1,"heads":24,"rows":1,"total":17,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy1_none","sha256":["c72fdd7fc7f5353c232980f3f8239b5946c88f7a3ea84d06ba66a693f2b7dae8"],"batch":1,"heads":24,"rows":1,"total":17,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy1_bool","sha256":["5bbf62b35506a4d05f3ec6ab8e65fb2f4160c618c46253127a5e22aded681028"],"batch":1,"heads":24,"rows":1,"total":17,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy1_add","sha256":["40b993ed565c2c839d524877df09b4332c06c8adc9cc4d392a4eab5b421cda2b"],"batch":1,"heads":24,"rows":1,"total":17,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s1_t17_copy1_causal","sha256":["c72fdd7fc7f5353c232980f3f8239b5946c88f7a3ea84d06ba66a693f2b7dae8"],"batch":1,"heads":24,"rows":1,"total":17,"copied":true,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy0_none","sha256":["8b45e6005148bbb2b5551ac1b5ba62fac31f452f592fe1c70a5f43ab6c6da4b7"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy0_bool","sha256":["35b5c2ea82749c5ba0713a97140e276fcb82e4e2937897caa1f194582619b6d9"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy0_add","sha256":["a65bae6ba0a1f40c74b8cf510e5acbb7e8dde1460c7c50f5c9c8cda7159891b6"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy0_causal","sha256":["d54fd26fe0d32ae4c19d9ae66616f2e9b23ba1844cee44fc67ac68f15145d1c1"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy1_none","sha256":["8d20f26599bb2fe16813ceabc97d6c6d2b836fd3545ab388702ee77fa0d7c5b9"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy1_bool","sha256":["d19690565098e719166adab6748f121140dcc7febcbad3864a8c76f23e326ae4"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy1_add","sha256":["0a0c5d761ecb77dbf34e3662e8b6938199ecedc3b7f0b3809e653db94b2b2760"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t1023_copy1_causal","sha256":["f04d57f085f2450686c68f2ce4002bcb63e673cd781398defae746a44b582992"],"batch":1,"heads":24,"rows":2,"total":1023,"copied":true,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy0_none","sha256":["d81081029ccaa01697bad24963d319e25c82d48a5d04474dc16dacd7a2441495"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy0_bool","sha256":["f10af69d4a25103e0da150d4fe3fa97841ffe551634382ee509d87508a3fc96a"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy0_add","sha256":["47a3896ee38260b2cf0fcf0f82683d552aa37c9c16c380865964cb5716dd3eb3"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy0_causal","sha256":["efde5ee983fa8fa434a65e8b82b720ff04326eab51928c1ab27b211c503588fc"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy1_none","sha256":["40157423e5ae39255921ef471d54f814ae02e38e2cd038f296f728cbd9d9e76d"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy1_bool","sha256":["6fe65cf2f000fd3b2231c6159962bbb5a4d648c72aa0d73defb1a376b5dad79b"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy1_add","sha256":["626d3f3e0f90537d62b5680bce15d52e8f118a24e9f473bce0af99f183486ca9"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t1024_copy1_causal","sha256":["2f642439985c6c562868d425ca68e75b041cc8a7f2cbe487dffab7fedabe6605"],"batch":1,"heads":24,"rows":2,"total":1024,"copied":true,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy0_none","sha256":["8f13850080df81aae41d63d321bf1707354dd19e11808fd855cfb3ebc1e219a9"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy0_bool","sha256":["b8c19c95c79be20a77e672d046b254f7f6fb227fd44112204c173636b3dffee0"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy0_add","sha256":["e87d086050e9bd234c2412a659c4bcd6688464d54565db6aacafdca6d9cbe092"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy0_causal","sha256":["3abbc396b3fd918cb748256fc3f9bd8a1ce3247ca3ae765910251bc0971b4861"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy1_none","sha256":["7898bbfbec39af63e89c266230c387e17a6dff1ed259042f3bee7323a8a096e5"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy1_bool","sha256":["03b93db1dcfb077e37b243530518dddfff9b68eaf696a2d0d911dae133a40ae9"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy1_add","sha256":["bf9549449485983ebc0b7f93981ba471fd5651401e94b9270d2a8f033a980b8e"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s2_t16384_copy1_causal","sha256":["7e3e9ccb0f00cfae726ea7e77eaf557d6e2670634293fbed107e753e00a3831e"],"batch":1,"heads":24,"rows":2,"total":16384,"copied":true,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy0_none","sha256":["d20936cc16e9b65f1a2ca94af629a42778c239254650386e66779b1d8c56160a"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy0_bool","sha256":["67af79094eabd0d546dc6c454eb92d07163c20e7134637f3d289eca440e4a226"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy0_add","sha256":["ce4c009de97c03bed2e4678a6e1c0769ca9f22d350a12dee88035b1beccfecf7"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy0_causal","sha256":["d20936cc16e9b65f1a2ca94af629a42778c239254650386e66779b1d8c56160a"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy1_none","sha256":["fddfcf07d7985bc9b347ace96b016ecd10ce98c4bd7f93e81ee1bace1a5e5c50"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy1_bool","sha256":["d9b3b4236f90b2f2a137e420b62ea16284715488d5850130c2cb94a06f4e3404"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy1_add","sha256":["9f45e25c338f48b904c655473d5bc257b74b093e29abf8a8764c324967598c69"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b1_h24_s1_t65536_copy1_causal","sha256":["fddfcf07d7985bc9b347ace96b016ecd10ce98c4bd7f93e81ee1bace1a5e5c50"],"batch":1,"heads":24,"rows":1,"total":65536,"copied":true,"mode":"causal"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy0_none","sha256":["d1da39e67d1996e8b2cbaa4e2a3c8366268c2bceecf3a3a89178f4fc677feee7"],"batch":2,"heads":24,"rows":2,"total":33,"copied":false,"mode":"none"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy0_bool","sha256":["99bb43520535d66acace2b5a75d6c93df745c627d0dfae21436f54c5018aeb68"],"batch":2,"heads":24,"rows":2,"total":33,"copied":false,"mode":"bool"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy0_add","sha256":["425d013f95be2f6fe21a6379240531ee01820f8fe9a04f4b39c0b1c78ec30c0a"],"batch":2,"heads":24,"rows":2,"total":33,"copied":false,"mode":"add"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy0_causal","sha256":["7bfbeda88cdaaaeff9f9e4d47d8b9e27c4eb420b4182a5ae7f9c4adfc0eb0cbf"],"batch":2,"heads":24,"rows":2,"total":33,"copied":false,"mode":"causal"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy1_none","sha256":["55ac8298f3cee17a1be65eac92b50190edf9e83d733fa2712ef2fd1ad2cb22a7"],"batch":2,"heads":24,"rows":2,"total":33,"copied":true,"mode":"none"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy1_bool","sha256":["542fb417b1adf25e39426468a144f5b7fad05691946d2df41bebe34c5d73d45c"],"batch":2,"heads":24,"rows":2,"total":33,"copied":true,"mode":"bool"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy1_add","sha256":["ed86a6ddb84c0afbe0b5939a2935d8360e019cf9a63bea21a706fbb46c2a2a4c"],"batch":2,"heads":24,"rows":2,"total":33,"copied":true,"mode":"add"} +{"kernel":"sdpa_vector_b2_h24_s2_t33_copy1_causal","sha256":["4775fbf3d26de4beb636946c46e285fde77f0eab571df5adfc2f096c5b4901e1"],"batch":2,"heads":24,"rows":2,"total":33,"copied":true,"mode":"causal"} diff --git a/tests/fixtures/mtplx-shared-mlp.jsonl b/tests/fixtures/mtplx-shared-mlp.jsonl new file mode 100644 index 0000000..0ada716 --- /dev/null +++ b/tests/fixtures/mtplx-shared-mlp.jsonl @@ -0,0 +1,24 @@ +{"kernel":"shared_mlp_r1_k128_i64_b4_g32","sha256":["a23c328c1bc1028ec23200c82383b97c3f631e094b22f921852a545dbcca9c0c"],"rows":1,"k":128,"intermediate":64,"bits":4,"group":32} +{"kernel":"shared_mlp_r1_k128_i64_b4_g64","sha256":["aa4cca58317c8ffaf2ad97e661231d406b933f1f56f421c06e578557c83e1c1d"],"rows":1,"k":128,"intermediate":64,"bits":4,"group":64} +{"kernel":"shared_mlp_r1_k128_i64_b8_g32","sha256":["182f25c3fc0a3dc8e248a70e667573cef7cad0a100f328437f15bb5852c80eda"],"rows":1,"k":128,"intermediate":64,"bits":8,"group":32} +{"kernel":"shared_mlp_r1_k128_i64_b8_g64","sha256":["d3c31eb48347239570a58ddd6b09033b09aa4d403a6087b48b9f816ccba3d13d"],"rows":1,"k":128,"intermediate":64,"bits":8,"group":64} +{"kernel":"shared_mlp_r7_k128_i64_b4_g32","sha256":["3d4fd024edffe7a5cc75c52eeabdae19f0a5c0132afc4f1b3b6317a9109102e8"],"rows":7,"k":128,"intermediate":64,"bits":4,"group":32} +{"kernel":"shared_mlp_r7_k128_i64_b4_g64","sha256":["9b0a96afe08ec2f261700846b85ba496d66defbdf75cc501e5608264a35fb23d"],"rows":7,"k":128,"intermediate":64,"bits":4,"group":64} +{"kernel":"shared_mlp_r7_k128_i64_b8_g32","sha256":["196e3b6a89c13da1e847465dde87f1c2983c451208788223ebf3cf06fe3dcaec"],"rows":7,"k":128,"intermediate":64,"bits":8,"group":32} +{"kernel":"shared_mlp_r7_k128_i64_b8_g64","sha256":["a30a13c4ae44359d365c85dd78d0d2ce9cc93d272d38b0c99af0e79b20781cd8"],"rows":7,"k":128,"intermediate":64,"bits":8,"group":64} +{"kernel":"shared_mlp_r1_k2560_i640_b4_g32","sha256":["5edf423711451a3036862563684fa64f92773cb9b07889a2b8f3b8a809063b0d"],"rows":1,"k":2560,"intermediate":640,"bits":4,"group":32} +{"kernel":"shared_mlp_r1_k2560_i640_b4_g64","sha256":["90c6379ba90727b581c3d70bae0327fb7329a71fd6e11f59872679dcd10c6229"],"rows":1,"k":2560,"intermediate":640,"bits":4,"group":64} +{"kernel":"shared_mlp_r1_k2560_i640_b8_g32","sha256":["34509b97204186633f64dcf6d6d3169375ace68d774380c0aa0f5d3aef25a192"],"rows":1,"k":2560,"intermediate":640,"bits":8,"group":32} +{"kernel":"shared_mlp_r1_k2560_i640_b8_g64","sha256":["6acb2ee9feba8b9b6033997ec510447dab7eab6063702d47788075f26f7f42af"],"rows":1,"k":2560,"intermediate":640,"bits":8,"group":64} +{"kernel":"shared_mlp_r4_k2560_i640_b4_g32","sha256":["bb0d38b31f7b4850cab6fa54a35bc7e0e3c9aa1427b23b7360f6b1ba775a8d9b"],"rows":4,"k":2560,"intermediate":640,"bits":4,"group":32} +{"kernel":"shared_mlp_r4_k2560_i640_b4_g64","sha256":["d1a8905507ac8f7ce5f98d4573dba0adf36490b36c0433e061a4eb30542ef8ab"],"rows":4,"k":2560,"intermediate":640,"bits":4,"group":64} +{"kernel":"shared_mlp_r4_k2560_i640_b8_g32","sha256":["30fe016ec1ee7c96d023411da9704ac3c247102e75ece70a8d6f535a2bace08c"],"rows":4,"k":2560,"intermediate":640,"bits":8,"group":32} +{"kernel":"shared_mlp_r4_k2560_i640_b8_g64","sha256":["6cf03f25d2a9840f8e2b417510306840a370f0e7c93c113e67e802f98724e338"],"rows":4,"k":2560,"intermediate":640,"bits":8,"group":64} +{"kernel":"shared_mlp_r7_k2560_i640_b4_g32","sha256":["2a93b0ecd83f39c446383b6466f756887f9b6de59b6644a8a5bfb6d1095a707d"],"rows":7,"k":2560,"intermediate":640,"bits":4,"group":32} +{"kernel":"shared_mlp_r7_k2560_i640_b4_g64","sha256":["270cbf3f28e518ec10a67008f78e7b10584312e35fa0abf6828f274de00b4972"],"rows":7,"k":2560,"intermediate":640,"bits":4,"group":64} +{"kernel":"shared_mlp_r7_k2560_i640_b8_g32","sha256":["1898bdcbfd0d9a728000d7c77f0b10d97dc58b7d5d7ac84264c26ac10d7367aa"],"rows":7,"k":2560,"intermediate":640,"bits":8,"group":32} +{"kernel":"shared_mlp_r7_k2560_i640_b8_g64","sha256":["63a8c9e43e158c5c9418776119d6e2cefa1851134bd6c3bc74eed9e60a9088a2"],"rows":7,"k":2560,"intermediate":640,"bits":8,"group":64} +{"kernel":"shared_mlp_r2048_k2560_i640_b4_g32","sha256":["f657fe6f484dbd37462adda285fc394f64d90188bbf508bf4a49f6ec80d6540b"],"rows":2048,"k":2560,"intermediate":640,"bits":4,"group":32} +{"kernel":"shared_mlp_r2048_k2560_i640_b4_g64","sha256":["c9ac4084dc81b6c07a0d1feb65a7447ff3edd351f1526a9be621ce4824149bdd"],"rows":2048,"k":2560,"intermediate":640,"bits":4,"group":64} +{"kernel":"shared_mlp_r2048_k2560_i640_b8_g32","sha256":["473452a7efdd29a8f66533d337e0440b56b9025be2b74bfec25763323ee3757c"],"rows":2048,"k":2560,"intermediate":640,"bits":8,"group":32} +{"kernel":"shared_mlp_r2048_k2560_i640_b8_g64","sha256":["570c359ec08ba998740c70b788f6297b1fbb4f6e2e30a4fbbc8c27533b58ac74"],"rows":2048,"k":2560,"intermediate":640,"bits":8,"group":64} diff --git a/tests/fixtures/mtplx-silu-jit.json b/tests/fixtures/mtplx-silu-jit.json new file mode 100644 index 0000000..326c7d1 --- /dev/null +++ b/tests/fixtures/mtplx-silu-jit.json @@ -0,0 +1 @@ +{"source_sha256":"76cafb45db55a91efba66503dde59b37628ea360f220f35dd860f4ac3c3d0111","kernels":"[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous(\n device const bfloat16_t* A [[buffer(0)]],\n device bfloat16_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_n\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_n(\n device const bfloat16_t* A [[buffer(0)]],\n device bfloat16_t* B [[buffer(1)]],\n constant const uint& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n uint index = N_ * pos.x;\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_contiguous_large(\n device const bfloat16_t* A [[buffer(0)]],\n device bfloat16_t* B [[buffer(1)]],\n constant const int64_t& size [[buffer(2)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y));\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_1(pos.x, in_strides[0]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_1_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_2_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_3(pos, in_strides + 0);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_3_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_3(pos, in_strides + 0);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[3];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[3];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_4_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[3];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[3];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[4];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[4];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_5_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[4];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[4];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[5];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[5];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_6_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[5];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[5];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[6];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[6];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_7_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[6];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[6];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n constant const int& ndim [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[ndim - 1];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[0 * ndim + ndim - 1];\n index++;\n }\n}\n[[host_name(\"BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic_large\")]]\n[[kernel]] void BV2ISigmoidACV2IBroadcastABDV2IBroadcastBAEV2OMultiplyCD_V_V2_11160318154034397263_strided_dynamic_large(\n device const bfloat16_t* A [[buffer(0)]],\n constant const int64_t* in_strides [[buffer(1)]],\n device bfloat16_t* B [[buffer(2)]],\n constant const int* output_shape [[buffer(3)]],\n constant const int& ndim [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[ndim - 1];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_C = Sigmoid()(tmp_A);\n bfloat16_t tmp_D = cast_to(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_C);\n bfloat16_t tmp_B = Multiply()(tmp_D, tmp_E);\n B[index] = tmp_B;\n index_A += in_strides[0 * ndim + ndim - 1];\n index++;\n }\n}\n"} diff --git a/tests/fixtures/mtplx-softmax-graph.jsonl b/tests/fixtures/mtplx-softmax-graph.jsonl new file mode 100644 index 0000000..def74c5 --- /dev/null +++ b/tests/fixtures/mtplx-softmax-graph.jsonl @@ -0,0 +1,48 @@ +{"kernel":"softmax_graph_bfloat16_0_17_plain","sha256":["52490da249e3c8b9560fd955b357029147ebe372c30b078db45f72579d76cd32"],"dtype":"bfloat16","precise":false,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_bfloat16_0_17_swapped","sha256":["6a96dc7704330792f6bdb1d9c547125725945eb2f22dfcbe203876134602f22f"],"dtype":"bfloat16","precise":false,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_bfloat16_0_17_strided","sha256":["94709ffd500078c39ac847a4ea4e7685ee5307c548d3190d626cf562292e07a1"],"dtype":"bfloat16","precise":false,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_bfloat16_0_17_offset","sha256":["1501e44052147d82f75eb5e5556eb4e521f098e035aadb76c6bc85f0baea0f19"],"dtype":"bfloat16","precise":false,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_bfloat16_0_4097_plain","sha256":["f636bf87ae84eebeb8addde555b32ac37c9da63f5253fd340da482774515840a"],"dtype":"bfloat16","precise":false,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_bfloat16_0_4097_swapped","sha256":["aa5769176942dd375b8244822caa269f123a82660afd3c9e54a60b0009b4a3a0"],"dtype":"bfloat16","precise":false,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_bfloat16_0_4097_strided","sha256":["bbe20c051ce70faa11948016359fd1b2018c9edeccb3d177df153094ab1ba7ac"],"dtype":"bfloat16","precise":false,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_bfloat16_0_4097_offset","sha256":["a2d1c59e24b47c37b12fc7939398633c168c15ae6c877a7b634d4d0433e3e45d"],"dtype":"bfloat16","precise":false,"cols":4097,"layout":"offset"} +{"kernel":"softmax_graph_bfloat16_1_17_plain","sha256":["f8719ce4e5793132628b269b4f4b12f64d5ec23df3d66584b5302c4f1dfb76ee"],"dtype":"bfloat16","precise":true,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_bfloat16_1_17_swapped","sha256":["cec6c359d2603c145fa757d1aa2f93bdd19053983fb3cb7d49d9051d2ab69752"],"dtype":"bfloat16","precise":true,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_bfloat16_1_17_strided","sha256":["ea02947380cfff2c68511cb6037aa64ca6190847525f9b1f91d5d02f6185c262"],"dtype":"bfloat16","precise":true,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_bfloat16_1_17_offset","sha256":["c065f83f43a8bfcf30299a86bf34c86452a05a93ef667c05c9e23e470ad41762"],"dtype":"bfloat16","precise":true,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_bfloat16_1_4097_plain","sha256":["b4c4408dc4394385a1145b09aef8561af4b2855072fdda3ea573e8d155850797"],"dtype":"bfloat16","precise":true,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_bfloat16_1_4097_swapped","sha256":["d763350efaff27f68194b27213fe9df8dde86665267e6628257b1951a4f41d7f"],"dtype":"bfloat16","precise":true,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_bfloat16_1_4097_strided","sha256":["b6b05fd521dc4af205faae06e1062cfeaeff230d38ebbc9c66403bac43c09afe"],"dtype":"bfloat16","precise":true,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_bfloat16_1_4097_offset","sha256":["b7eb6cf44a8a7704a9669423e10d5c42246f8247d700db5e2a1298120607e024"],"dtype":"bfloat16","precise":true,"cols":4097,"layout":"offset"} +{"kernel":"softmax_graph_float16_0_17_plain","sha256":["5291f728c00abadc2f8b684359268e1d3ee0c0f7eea8b8bdaa40758c612ac6ee"],"dtype":"float16","precise":false,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_float16_0_17_swapped","sha256":["d936363a86a8ded31b7e19f4309f0d826c552fa5406391daf3f87fc9f509bb2c"],"dtype":"float16","precise":false,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_float16_0_17_strided","sha256":["88ebe43c227b25076e16e715eac1ca65441c1f0a5dd680b049e06018052e0c89"],"dtype":"float16","precise":false,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_float16_0_17_offset","sha256":["d80ed9da78a92e443728c0ce89876b1947fe92fd6cf3b025fc6b0a6ec5949be5"],"dtype":"float16","precise":false,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_float16_0_4097_plain","sha256":["e36b4e5c1f64667941ca67f553b4c1b613cc21e955b29660bdfe05fe1dcd574f"],"dtype":"float16","precise":false,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_float16_0_4097_swapped","sha256":["4e9b111e92ce4515ef03f8d8718de0128d7804715da694d720e0e8199b56cfd9"],"dtype":"float16","precise":false,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_float16_0_4097_strided","sha256":["316f20fe25173a8e55221296e24e9cd0b596b1fc6ee51203fe98e24c3ec2083b"],"dtype":"float16","precise":false,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_float16_0_4097_offset","sha256":["11dfc8caec5f4a77e5296f70339af806889fd7c5ce0ed3324f063027e1139e09"],"dtype":"float16","precise":false,"cols":4097,"layout":"offset"} +{"kernel":"softmax_graph_float16_1_17_plain","sha256":["8f794281de623ddecb6449c66db13a5b72306d08b35f893d5306afe75b5f0fe3"],"dtype":"float16","precise":true,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_float16_1_17_swapped","sha256":["49ff39cfeb27c4686080e48d80b56d3e9129b1c8af39f1ef55b75cab8a1ba785"],"dtype":"float16","precise":true,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_float16_1_17_strided","sha256":["521773e9f0847bb45775fe9f31ef18c911585fcb5039fb86f136dbc6aa9e17bf"],"dtype":"float16","precise":true,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_float16_1_17_offset","sha256":["a10c5fd19dc56ea09648b5e843d657f227f59a334d2320009956dc6913279b5d"],"dtype":"float16","precise":true,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_float16_1_4097_plain","sha256":["2182724e243796f3c0e4cf8dc7250623bf6f5ed7917d8132acc626854c71fdbc"],"dtype":"float16","precise":true,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_float16_1_4097_swapped","sha256":["62166e91c226252be1e286634d86b95c8b7a6b4a3adb5624f6780083a33049d6"],"dtype":"float16","precise":true,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_float16_1_4097_strided","sha256":["bedef663071900cca5538ca702b1c2a2cf841155a3dfdcec383ac21cfc0ceb03"],"dtype":"float16","precise":true,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_float16_1_4097_offset","sha256":["65d34bbc358053075ed4a5afa9aea9c216b28b86a033ec0989edfd5532ff9a0a"],"dtype":"float16","precise":true,"cols":4097,"layout":"offset"} +{"kernel":"softmax_graph_float32_0_17_plain","sha256":["e40c8f4cd578d62e786bab90a706411ed9f7989ef0af044c63cbdd4a2e57a825"],"dtype":"float32","precise":false,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_float32_0_17_swapped","sha256":["0e9617653ac08d0902982fae003aff0379c679b3161a26806d7d403693884760"],"dtype":"float32","precise":false,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_float32_0_17_strided","sha256":["924c41d280e90b94b007c3b40687db825377b7a4ee961df2f2f1fb837d753071"],"dtype":"float32","precise":false,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_float32_0_17_offset","sha256":["4872256180c443515018b84819f618a21d6101fda2c3d620b9ed35638724322b"],"dtype":"float32","precise":false,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_float32_0_4097_plain","sha256":["650c1264834e430f01eb343d721801e62fbffd6b1251b45e5432a576cbac3897"],"dtype":"float32","precise":false,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_float32_0_4097_swapped","sha256":["34d5a4f6cfc059166483d5d71a8c9bb5fd1de8887828888364a0a6e5410c775f"],"dtype":"float32","precise":false,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_float32_0_4097_strided","sha256":["c14991bf8c27deae7643dde06ec670a9a3cd52240acbd4baeb2f9c75e0821707"],"dtype":"float32","precise":false,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_float32_0_4097_offset","sha256":["7ee00c4cf7894c86868ac562ebe44020ba94485d72c600543014f7ff57aa890e"],"dtype":"float32","precise":false,"cols":4097,"layout":"offset"} +{"kernel":"softmax_graph_float32_1_17_plain","sha256":["e40c8f4cd578d62e786bab90a706411ed9f7989ef0af044c63cbdd4a2e57a825"],"dtype":"float32","precise":true,"cols":17,"layout":"plain"} +{"kernel":"softmax_graph_float32_1_17_swapped","sha256":["0e9617653ac08d0902982fae003aff0379c679b3161a26806d7d403693884760"],"dtype":"float32","precise":true,"cols":17,"layout":"swapped"} +{"kernel":"softmax_graph_float32_1_17_strided","sha256":["924c41d280e90b94b007c3b40687db825377b7a4ee961df2f2f1fb837d753071"],"dtype":"float32","precise":true,"cols":17,"layout":"strided"} +{"kernel":"softmax_graph_float32_1_17_offset","sha256":["4872256180c443515018b84819f618a21d6101fda2c3d620b9ed35638724322b"],"dtype":"float32","precise":true,"cols":17,"layout":"offset"} +{"kernel":"softmax_graph_float32_1_4097_plain","sha256":["650c1264834e430f01eb343d721801e62fbffd6b1251b45e5432a576cbac3897"],"dtype":"float32","precise":true,"cols":4097,"layout":"plain"} +{"kernel":"softmax_graph_float32_1_4097_swapped","sha256":["34d5a4f6cfc059166483d5d71a8c9bb5fd1de8887828888364a0a6e5410c775f"],"dtype":"float32","precise":true,"cols":4097,"layout":"swapped"} +{"kernel":"softmax_graph_float32_1_4097_strided","sha256":["c14991bf8c27deae7643dde06ec670a9a3cd52240acbd4baeb2f9c75e0821707"],"dtype":"float32","precise":true,"cols":4097,"layout":"strided"} +{"kernel":"softmax_graph_float32_1_4097_offset","sha256":["7ee00c4cf7894c86868ac562ebe44020ba94485d72c600543014f7ff57aa890e"],"dtype":"float32","precise":true,"cols":4097,"layout":"offset"} diff --git a/tests/fixtures/mtplx-sort-graph.jsonl b/tests/fixtures/mtplx-sort-graph.jsonl new file mode 100644 index 0000000..519b9ca --- /dev/null +++ b/tests/fixtures/mtplx-sort-graph.jsonl @@ -0,0 +1,161 @@ +{"kernel":"sort_graph_bfloat16_0","sha256":["b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"bfloat16","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_bfloat16_1","sha256":["f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"bfloat16","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_bfloat16_2","sha256":["4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"bfloat16","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_bfloat16_3","sha256":["3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"bfloat16","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_bfloat16_4","sha256":["19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"bfloat16","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_bfloat16_5","sha256":["c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"bfloat16","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_bfloat16_6","sha256":["4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"bfloat16","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_bfloat16_7","sha256":["972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"bfloat16","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_bfloat16_8","sha256":["66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"bfloat16","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_bfloat16_9","sha256":["4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"bfloat16","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_bfloat16_10","sha256":["9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"bfloat16","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_bfloat16_11","sha256":["07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"bfloat16","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_bfloat16_12","sha256":["daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"bfloat16","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_bfloat16_13","sha256":["f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"bfloat16","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_bfloat16_14","sha256":["87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"bfloat16","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_bfloat16_15","sha256":["1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"bfloat16","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_bfloat16_16","sha256":["203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"bfloat16","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_bfloat16_17","sha256":["5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"bfloat16","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_bfloat16_18","sha256":["9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"bfloat16","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_bfloat16_19","sha256":["ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"bfloat16","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_bfloat16_20","sha256":["a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"bfloat16","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_bfloat16_21","sha256":["d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"bfloat16","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_bfloat16_22","sha256":["f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"bfloat16","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_float16_0","sha256":["b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"float16","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_float16_1","sha256":["f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"float16","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_float16_2","sha256":["4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"float16","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_float16_3","sha256":["3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"float16","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_float16_4","sha256":["19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"float16","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_float16_5","sha256":["c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"float16","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_float16_6","sha256":["4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"float16","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_float16_7","sha256":["972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"float16","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_float16_8","sha256":["66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"float16","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_float16_9","sha256":["4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"float16","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_float16_10","sha256":["9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"float16","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_float16_11","sha256":["07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"float16","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_float16_12","sha256":["daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"float16","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_float16_13","sha256":["f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"float16","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float16_14","sha256":["87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"float16","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float16_15","sha256":["1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"float16","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_float16_16","sha256":["203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"float16","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float16_17","sha256":["5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"float16","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float16_18","sha256":["9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"float16","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float16_19","sha256":["ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"float16","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_float16_20","sha256":["a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"float16","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_float16_21","sha256":["d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"float16","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_float16_22","sha256":["f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"float16","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_float32_0","sha256":["b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"float32","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_float32_1","sha256":["f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"float32","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_float32_2","sha256":["4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"float32","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_float32_3","sha256":["3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"float32","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_float32_4","sha256":["19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"float32","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_float32_5","sha256":["c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"float32","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_float32_6","sha256":["4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"float32","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_float32_7","sha256":["972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"float32","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_float32_8","sha256":["66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"float32","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_float32_9","sha256":["4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"float32","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_float32_10","sha256":["9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"float32","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_float32_11","sha256":["07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"float32","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_float32_12","sha256":["daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"float32","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_float32_13","sha256":["f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"float32","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float32_14","sha256":["87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"float32","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float32_15","sha256":["1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"float32","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_float32_16","sha256":["203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"float32","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float32_17","sha256":["5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"float32","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float32_18","sha256":["9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"float32","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_float32_19","sha256":["ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"float32","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_float32_20","sha256":["a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"float32","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_float32_21","sha256":["d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"float32","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_float32_22","sha256":["f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"float32","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_int32_0","sha256":["b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"int32","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_int32_1","sha256":["f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"int32","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_int32_2","sha256":["4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"int32","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_int32_3","sha256":["3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"int32","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_int32_4","sha256":["19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"int32","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_int32_5","sha256":["c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"int32","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_int32_6","sha256":["4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"int32","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_int32_7","sha256":["972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"int32","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_int32_8","sha256":["66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"int32","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_int32_9","sha256":["4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"int32","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_int32_10","sha256":["9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"int32","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_int32_11","sha256":["07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"int32","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_int32_12","sha256":["daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"int32","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_int32_13","sha256":["f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"int32","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int32_14","sha256":["87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"int32","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int32_15","sha256":["1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"int32","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_int32_16","sha256":["203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"int32","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int32_17","sha256":["5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"int32","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int32_18","sha256":["9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"int32","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int32_19","sha256":["ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"int32","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_int32_20","sha256":["a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"int32","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_int32_21","sha256":["d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"int32","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_int32_22","sha256":["f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"int32","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_uint32_0","sha256":["d193d60e12a6cce8686140a96af876cbd46a7ad979bdb8a158ff8cd02495e668","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","d193d60e12a6cce8686140a96af876cbd46a7ad979bdb8a158ff8cd02495e668","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"uint32","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_uint32_1","sha256":["d6bd5ee9e6e5dbaddff5b3acb22f8d159ec4bf671da6ad66c49c34fecb4548ed","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","d6bd5ee9e6e5dbaddff5b3acb22f8d159ec4bf671da6ad66c49c34fecb4548ed","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"uint32","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_uint32_2","sha256":["2e21201e34c0202d7b54cb1276e21a8ac56cc2843bc29ec8218bffdedcc38b4d","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","2e21201e34c0202d7b54cb1276e21a8ac56cc2843bc29ec8218bffdedcc38b4d","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"uint32","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_uint32_3","sha256":["7a7b9f4bc5b89e918c11a4b6e2e9ebabe34644483564630dccde6844effb3029","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","7a7b9f4bc5b89e918c11a4b6e2e9ebabe34644483564630dccde6844effb3029","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"uint32","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_uint32_4","sha256":["5381fa58bf49b69f11f91364ecf81dd2fe807319517c9a3add5ff7a1e265dfc1","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","5381fa58bf49b69f11f91364ecf81dd2fe807319517c9a3add5ff7a1e265dfc1","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"uint32","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_uint32_5","sha256":["0cb9915041dd61c9c4cf707885b636c8c225a8af37cca61a33011bdd0652d7e4","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","0cb9915041dd61c9c4cf707885b636c8c225a8af37cca61a33011bdd0652d7e4","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"uint32","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_uint32_6","sha256":["c5ad75e83eb2bb191ef0ec9611ca189efc4d57cf994a77348c40306b98262792","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","c5ad75e83eb2bb191ef0ec9611ca189efc4d57cf994a77348c40306b98262792","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"uint32","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_uint32_7","sha256":["29d39f28d89b8c1745a4176989b03cc8ddfeb1eccba6a34c6aebf82cbfa40d2f","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","29d39f28d89b8c1745a4176989b03cc8ddfeb1eccba6a34c6aebf82cbfa40d2f","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"uint32","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_uint32_8","sha256":["f30f8d8e42c7eccef8a0e5780fc2e2477ef49a6eac916bfe90f160bbe240ec0e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","f30f8d8e42c7eccef8a0e5780fc2e2477ef49a6eac916bfe90f160bbe240ec0e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"uint32","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_uint32_9","sha256":["04114d74fa9f814f707766e3212f4bfc4f787577ff7a05000d8dc3e5b09aeeff","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","04114d74fa9f814f707766e3212f4bfc4f787577ff7a05000d8dc3e5b09aeeff","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"uint32","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_uint32_10","sha256":["3b3f01d0238490f2ff3463679ada3662dd91910d9c819e1be88c5afdb71b3f89","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","3b3f01d0238490f2ff3463679ada3662dd91910d9c819e1be88c5afdb71b3f89","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"uint32","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_uint32_11","sha256":["0208dd21f5156f7d2e3d3d36353ae2088b7a0fc5d2cb1f1e1fc37b90ffaa6dd2","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","0208dd21f5156f7d2e3d3d36353ae2088b7a0fc5d2cb1f1e1fc37b90ffaa6dd2","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"uint32","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_uint32_12","sha256":["d0b21d4130926ff5bfc5469477ecbbc15b4fcfd244f9c2275dee2ca39efe519d","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","d0b21d4130926ff5bfc5469477ecbbc15b4fcfd244f9c2275dee2ca39efe519d","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"uint32","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_uint32_13","sha256":["970e1ebe6c43b70e1f7a515339d1165203d8133e19ffc8145710fe38eb340454","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","970e1ebe6c43b70e1f7a515339d1165203d8133e19ffc8145710fe38eb340454","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"uint32","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint32_14","sha256":["48adeaaf2265225724f2b4bee46364b2096820622b470aacadf700a9303a9524","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","48adeaaf2265225724f2b4bee46364b2096820622b470aacadf700a9303a9524","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"uint32","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint32_15","sha256":["083f8a5148e68b28ff6c03f4790c340b743cca06ab503a140fea3260fece39b8","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","083f8a5148e68b28ff6c03f4790c340b743cca06ab503a140fea3260fece39b8","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"uint32","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_uint32_16","sha256":["adcc6c85ae8ebab9a3921e7ad20890913b4553f985b9aea0ffd33a3e743d7256","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","adcc6c85ae8ebab9a3921e7ad20890913b4553f985b9aea0ffd33a3e743d7256","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"uint32","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint32_17","sha256":["6168942714284a3dfc3d9bfd1a11e054cd12be434276909c68bc75f540ed5ad7","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","6168942714284a3dfc3d9bfd1a11e054cd12be434276909c68bc75f540ed5ad7","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"uint32","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint32_18","sha256":["10d18bea41ca0c22a53fb852c2f7264f6e874d4b4395fe06e9ffc8ca45b74b0d","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","10d18bea41ca0c22a53fb852c2f7264f6e874d4b4395fe06e9ffc8ca45b74b0d","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"uint32","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint32_19","sha256":["a0efb663e641375b5e9cc86f7ad911a456d3ef6f0cd8adcd1a2f91e089c3eb38","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","a0efb663e641375b5e9cc86f7ad911a456d3ef6f0cd8adcd1a2f91e089c3eb38","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"uint32","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_uint32_20","sha256":["e8129d773ed240b9e695499913d16bea7cd1473885cd80cf459fd4b0e1248407","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","e8129d773ed240b9e695499913d16bea7cd1473885cd80cf459fd4b0e1248407","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"uint32","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_uint32_21","sha256":["d51a347256e5181e72c7d237b254da92c9d90963ef405c0753c1b41280b943cf","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d51a347256e5181e72c7d237b254da92c9d90963ef405c0753c1b41280b943cf","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"uint32","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_uint32_22","sha256":["5a29066356798127fc8f665adfb6eb8da1b419fdd87c8579a91e50d9bd7371c7","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","5a29066356798127fc8f665adfb6eb8da1b419fdd87c8579a91e50d9bd7371c7","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"uint32","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_int64_0","sha256":["b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","b90779f9a6ca5515696d08429d609304c0dd63980d95409a9c634207606d711f","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"int64","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_int64_1","sha256":["f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","f59f8d676e90d315b9b5357a3e8b1c414c40bcc2e9bf7e5112b7be34ae415645","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"int64","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_int64_2","sha256":["4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","4994e7b272ed7b3fd817e7d65028026c253559d9fca8bc4691bf6f8188d8214a","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"int64","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_int64_3","sha256":["3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","3e4ebcf2b795d66696d371a53e2b6f8c906b78c867bdcfd53939511c189833a0","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"int64","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_int64_4","sha256":["19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","19f20f130e58a9f5cb7260d913bf4d2bca504f1fc15742340f6813ad35242369","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"int64","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_int64_5","sha256":["c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","c8e6e65cfce6469cb0a0bf1629a03ff5335401d4fbe95773e90bdc9d663ec98b","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"int64","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_int64_6","sha256":["4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","4bc4d44e56c587fb608740f5e2fbbf484975116aed15a7357f3ad36771b40398","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"int64","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_int64_7","sha256":["972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","972819247d0674b9f6d72fcb0b515ecfcb4649a99ea6eb34452102ccf4f11bbb","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"int64","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_int64_8","sha256":["66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","66efcc490bf332200d79b1875676723a2f96e25a0bfc574a88ea24246cbf603e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"int64","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_int64_9","sha256":["4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","4c314422a7d1d8186c5db37f6e5b68f62faad927781967c123d834fca3095faf","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"int64","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_int64_10","sha256":["9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","9cc705cfb4002ac43952bb27d9c459d32989b156944ec556f859910305e76838","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"int64","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_int64_11","sha256":["07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","07e0e55c0621f683b30f1e21fdf996e385127c537fd5d7d419ab835b1f1c150c","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"int64","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_int64_12","sha256":["daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","daae309472afdce82c5e30c92e83022dbe3a5e00bd1806171e3846e221ece627","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"int64","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_int64_13","sha256":["f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","f555d32633beba7db4038c2d8aa6833cb9427281477dd9b27a9622c926a70232","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"int64","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int64_14","sha256":["87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","87e29041d6fa3bab72688ad5e39ae8e75fca96598c7078e87d6d0a28a29beb57","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"int64","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int64_15","sha256":["1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","1353e7e7bb7697711f2cd2187ee8a5f7eb023510e0d8951a8ae9b35c5d7bca8c","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"int64","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_int64_16","sha256":["203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","203f7f926d4bd79c926b334c263064c1fb54ba546fe9c9a5d0cb503ca50bdd73","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"int64","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int64_17","sha256":["5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","5f3a22d44451783aa040cc1c9b4e1387759a69c9e6e82f9600dbc3ed225bcba0","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"int64","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int64_18","sha256":["9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","9e7744c012bab7c49abb8334ef3ceafc3d4a7b62d4ef582fd47f8762b12b6a2a","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"int64","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_int64_19","sha256":["ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","ec16666b39e246fae9faef3a8140f54cd0d0c58eb4a0dbf367061dc9dc2636bc","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"int64","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_int64_20","sha256":["a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","a3bcbd9ee7ccc9790d05f5a78d3fb2a421fb4238a888639d7c29859d40eb545c","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"int64","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_int64_21","sha256":["d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d287362fdfd12224c2237c68c42e2aa08f9bdb4fa3c5fb78a7badd7457f12e73","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"int64","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_int64_22","sha256":["f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","f24328ece5db2e3342f4975720454180ab622dc0ad01e61f95b17a8d1893def2","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"int64","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} +{"kernel":"sort_graph_uint64_0","sha256":["d193d60e12a6cce8686140a96af876cbd46a7ad979bdb8a158ff8cd02495e668","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc","d193d60e12a6cce8686140a96af876cbd46a7ad979bdb8a158ff8cd02495e668","af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc"],"dtype":"uint64","profile":0,"shape":[2,1],"axis":-1,"kind":"plain","kth":-1,"output_shape":[2,1]} +{"kernel":"sort_graph_uint64_1","sha256":["d6bd5ee9e6e5dbaddff5b3acb22f8d159ec4bf671da6ad66c49c34fecb4548ed","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3","d6bd5ee9e6e5dbaddff5b3acb22f8d159ec4bf671da6ad66c49c34fecb4548ed","eba2883dcc22f0ce3f567df79e30795e34032cc9b6fd9b1d781da53befcf95f3"],"dtype":"uint64","profile":1,"shape":[2,128],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,128]} +{"kernel":"sort_graph_uint64_2","sha256":["2e21201e34c0202d7b54cb1276e21a8ac56cc2843bc29ec8218bffdedcc38b4d","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1","2e21201e34c0202d7b54cb1276e21a8ac56cc2843bc29ec8218bffdedcc38b4d","693be91eb2bdd7991e853b6cea697235677daf8f52c4f3da10335106b7e3d1a1"],"dtype":"uint64","profile":2,"shape":[2,129],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,129]} +{"kernel":"sort_graph_uint64_3","sha256":["7a7b9f4bc5b89e918c11a4b6e2e9ebabe34644483564630dccde6844effb3029","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b","7a7b9f4bc5b89e918c11a4b6e2e9ebabe34644483564630dccde6844effb3029","cea092c7211de891315a20d1469660c463f6a9b49bd3108df37137a2b7bcec5b"],"dtype":"uint64","profile":3,"shape":[2,256],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,256]} +{"kernel":"sort_graph_uint64_4","sha256":["5381fa58bf49b69f11f91364ecf81dd2fe807319517c9a3add5ff7a1e265dfc1","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0","5381fa58bf49b69f11f91364ecf81dd2fe807319517c9a3add5ff7a1e265dfc1","8301a697bb28254f7f7022febcfa9f6af8f6a2a8105eb8ba25eece073207def0"],"dtype":"uint64","profile":4,"shape":[2,257],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,257]} +{"kernel":"sort_graph_uint64_5","sha256":["0cb9915041dd61c9c4cf707885b636c8c225a8af37cca61a33011bdd0652d7e4","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce","0cb9915041dd61c9c4cf707885b636c8c225a8af37cca61a33011bdd0652d7e4","bcbb7ad8b0df65dd1627e1b1acda335c3fec92dc760681165217e50a4331e3ce"],"dtype":"uint64","profile":5,"shape":[2,512],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,512]} +{"kernel":"sort_graph_uint64_6","sha256":["c5ad75e83eb2bb191ef0ec9611ca189efc4d57cf994a77348c40306b98262792","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f","c5ad75e83eb2bb191ef0ec9611ca189efc4d57cf994a77348c40306b98262792","2b3c1905554445e5ad6249da034d70bef98425c1c3be899163c3500ab3a72a8f"],"dtype":"uint64","profile":6,"shape":[2,513],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,513]} +{"kernel":"sort_graph_uint64_7","sha256":["29d39f28d89b8c1745a4176989b03cc8ddfeb1eccba6a34c6aebf82cbfa40d2f","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff","29d39f28d89b8c1745a4176989b03cc8ddfeb1eccba6a34c6aebf82cbfa40d2f","d5d4986025c4d66ae34f6e485e710e7477a6eeb838fe0c600c9787c83e4562ff"],"dtype":"uint64","profile":7,"shape":[2,1024],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1024]} +{"kernel":"sort_graph_uint64_8","sha256":["f30f8d8e42c7eccef8a0e5780fc2e2477ef49a6eac916bfe90f160bbe240ec0e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a","f30f8d8e42c7eccef8a0e5780fc2e2477ef49a6eac916bfe90f160bbe240ec0e","db264185538e876de33ea3e2456d54bd45bb207199827a84a91dfd823248e49a"],"dtype":"uint64","profile":8,"shape":[2,1025],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,1025]} +{"kernel":"sort_graph_uint64_9","sha256":["04114d74fa9f814f707766e3212f4bfc4f787577ff7a05000d8dc3e5b09aeeff","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3","04114d74fa9f814f707766e3212f4bfc4f787577ff7a05000d8dc3e5b09aeeff","adb155402e9f4d7186db87d8d0e0f6df9ffa6dfa71fc8ada6ee70a8711f9f7c3"],"dtype":"uint64","profile":9,"shape":[2,2048],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2048]} +{"kernel":"sort_graph_uint64_10","sha256":["3b3f01d0238490f2ff3463679ada3662dd91910d9c819e1be88c5afdb71b3f89","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40","3b3f01d0238490f2ff3463679ada3662dd91910d9c819e1be88c5afdb71b3f89","085f51105b90e90d966042cfe465ce2cd9c311800800ee79a62526cf57b09d40"],"dtype":"uint64","profile":10,"shape":[2,2049],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,2049]} +{"kernel":"sort_graph_uint64_11","sha256":["0208dd21f5156f7d2e3d3d36353ae2088b7a0fc5d2cb1f1e1fc37b90ffaa6dd2","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468","0208dd21f5156f7d2e3d3d36353ae2088b7a0fc5d2cb1f1e1fc37b90ffaa6dd2","5a0f6696085afbb46ca725e46474b19f7c0e4f3bbbfd7a34cababdb14de0c468"],"dtype":"uint64","profile":11,"shape":[2,4097],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,4097]} +{"kernel":"sort_graph_uint64_12","sha256":["d0b21d4130926ff5bfc5469477ecbbc15b4fcfd244f9c2275dee2ca39efe519d","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea","d0b21d4130926ff5bfc5469477ecbbc15b4fcfd244f9c2275dee2ca39efe519d","ff436898498ee429e7c69e028d840c7c7f5e5379d66811d8b38b3b133a7bc9ea"],"dtype":"uint64","profile":12,"shape":[2,8193],"axis":-1,"kind":"plain","kth":-3,"output_shape":[2,8193]} +{"kernel":"sort_graph_uint64_13","sha256":["970e1ebe6c43b70e1f7a515339d1165203d8133e19ffc8145710fe38eb340454","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a","970e1ebe6c43b70e1f7a515339d1165203d8133e19ffc8145710fe38eb340454","52ad0ec7cb8b11aff1f9f5ab1e66aabfd84893b08fc44ed84cafd0b9bd52e79a"],"dtype":"uint64","profile":13,"shape":[3,7,5],"axis":0,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint64_14","sha256":["48adeaaf2265225724f2b4bee46364b2096820622b470aacadf700a9303a9524","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b","48adeaaf2265225724f2b4bee46364b2096820622b470aacadf700a9303a9524","a1aff3045b898b58b87fe6aaaeba35877dba4c5131432c0b4c7b08f314c1670b"],"dtype":"uint64","profile":14,"shape":[3,7,5],"axis":1,"kind":"plain","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint64_15","sha256":["083f8a5148e68b28ff6c03f4790c340b743cca06ab503a140fea3260fece39b8","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc","083f8a5148e68b28ff6c03f4790c340b743cca06ab503a140fea3260fece39b8","84fb5f9b1f30471ddac5cf3ec8e2a7c26806f04fb1f4c6f43a9103f44afeddbc"],"dtype":"uint64","profile":15,"shape":[3,7,5],"axis":2,"kind":"transpose","kth":-3,"output_shape":[5,7,3]} +{"kernel":"sort_graph_uint64_16","sha256":["adcc6c85ae8ebab9a3921e7ad20890913b4553f985b9aea0ffd33a3e743d7256","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded","adcc6c85ae8ebab9a3921e7ad20890913b4553f985b9aea0ffd33a3e743d7256","54ae3bb2a8ab6f605ad6d7bc7686d16ba6186d0cc40569f8528f71b9bf775ded"],"dtype":"uint64","profile":16,"shape":[3,7,5],"axis":1,"kind":"strided","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint64_17","sha256":["6168942714284a3dfc3d9bfd1a11e054cd12be434276909c68bc75f540ed5ad7","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628","6168942714284a3dfc3d9bfd1a11e054cd12be434276909c68bc75f540ed5ad7","d4a4990536866e827dacc5ebcc34c82f177b9fed9a439d205c7f4fd07c3a0628"],"dtype":"uint64","profile":17,"shape":[3,7,5],"axis":-1,"kind":"reverse","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint64_18","sha256":["10d18bea41ca0c22a53fb852c2f7264f6e874d4b4395fe06e9ffc8ca45b74b0d","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6","10d18bea41ca0c22a53fb852c2f7264f6e874d4b4395fe06e9ffc8ca45b74b0d","8cf98f9a540b19d674d5653487f44b83d250de898880dfa4dec93c5342d73ea6"],"dtype":"uint64","profile":18,"shape":[3,7,5],"axis":1,"kind":"broadcast","kth":-3,"output_shape":[3,7,5]} +{"kernel":"sort_graph_uint64_19","sha256":["a0efb663e641375b5e9cc86f7ad911a456d3ef6f0cd8adcd1a2f91e089c3eb38","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281","a0efb663e641375b5e9cc86f7ad911a456d3ef6f0cd8adcd1a2f91e089c3eb38","616906d1e68b9d1d158121c492a488f758aa2f85a99e61be9da329fac1eab281"],"dtype":"uint64","profile":19,"shape":[3,7,5],"axis":null,"kind":"transpose","kth":-3,"output_shape":[105]} +{"kernel":"sort_graph_uint64_20","sha256":["e8129d773ed240b9e695499913d16bea7cd1473885cd80cf459fd4b0e1248407","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6","e8129d773ed240b9e695499913d16bea7cd1473885cd80cf459fd4b0e1248407","3206aec7eafc0d83fcb7736680268d47f8fba231dd884d6676ae4200852b4cf6"],"dtype":"uint64","profile":20,"shape":[2049,3],"axis":0,"kind":"plain","kth":-3,"output_shape":[2049,3]} +{"kernel":"sort_graph_uint64_21","sha256":["d51a347256e5181e72c7d237b254da92c9d90963ef405c0753c1b41280b943cf","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb","d51a347256e5181e72c7d237b254da92c9d90963ef405c0753c1b41280b943cf","078b7d0fe7bf317bc0277b43416a44c8749f61c57eebbd5491dea476a8ea33fb"],"dtype":"uint64","profile":21,"shape":[2,2049,3],"axis":1,"kind":"strided","kth":-3,"output_shape":[2,2049,3]} +{"kernel":"sort_graph_uint64_22","sha256":["5a29066356798127fc8f665adfb6eb8da1b419fdd87c8579a91e50d9bd7371c7","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70","5a29066356798127fc8f665adfb6eb8da1b419fdd87c8579a91e50d9bd7371c7","1e91c79cf9eb0127cf6cae88695abfffd8734962e7767129713edc4aab5c2e70"],"dtype":"uint64","profile":22,"shape":[4097],"axis":0,"kind":"offset","kth":-3,"output_shape":[4097]} diff --git a/tests/fixtures/mtplx-sparse-attention.jsonl b/tests/fixtures/mtplx-sparse-attention.jsonl new file mode 100644 index 0000000..585ef94 --- /dev/null +++ b/tests/fixtures/mtplx-sparse-attention.jsonl @@ -0,0 +1,50 @@ +{"kernel":"sparse_skip_bfloat16_24_3_plain","sha256":["8e38f869f89ff1fd817e7f894f1dbd96b9ffcee1f34d0745f7b911c85cdefbc9"],"kind":"skip","dtype":"bfloat16","heads":24,"total":3,"nsel":0,"layout":"plain"} +{"kernel":"sparse_skip_bfloat16_24_3_offset","sha256":["cbf9fc0bf7306dbd481385c14a071a071079847d76e84c50931f993439a418b5"],"kind":"skip","dtype":"bfloat16","heads":24,"total":3,"nsel":0,"layout":"offset"} +{"kernel":"sparse_skip_bfloat16_24_3_strided","sha256":["d619b4f87d69852adb083916d445ad24db6f0d0f66355764480da7e30d9445d1"],"kind":"skip","dtype":"bfloat16","heads":24,"total":3,"nsel":0,"layout":"strided"} +{"kernel":"sparse_skip_bfloat16_24_4099_plain","sha256":["76a8d22b2db509aa69e1cb70ba87f9cead45726b14643cdcddddf787b3bc3dbf"],"kind":"skip","dtype":"bfloat16","heads":24,"total":4099,"nsel":512,"layout":"plain"} +{"kernel":"sparse_skip_bfloat16_24_4099_offset","sha256":["2546f4a4218e9aae86f42a68619d9eb20c9ec38712fa9ab5b6bb0a6e7d3eb8e4"],"kind":"skip","dtype":"bfloat16","heads":24,"total":4099,"nsel":512,"layout":"offset"} +{"kernel":"sparse_skip_bfloat16_24_4099_strided","sha256":["485b1df9eb91fb28c947e72c18c9dfcabec36c6f33a34b46d44b070c94b347f9"],"kind":"skip","dtype":"bfloat16","heads":24,"total":4099,"nsel":512,"layout":"strided"} +{"kernel":"sparse_skip_bfloat16_2_2052_plain","sha256":["7483ad6ff679c2613ca631b3edcee63515dc8956d16b8467556e35604e611327"],"kind":"skip","dtype":"bfloat16","heads":2,"total":2052,"nsel":17,"layout":"plain"} +{"kernel":"sparse_skip_bfloat16_2_2052_offset","sha256":["65f3203343b4fefc9aef1125623a4f8532393f0470208996c1c4da0e89a14b78"],"kind":"skip","dtype":"bfloat16","heads":2,"total":2052,"nsel":17,"layout":"offset"} +{"kernel":"sparse_skip_bfloat16_2_2052_strided","sha256":["77ee6edcd0e0661b071e486188aefd4f6970f595022f3aa18204e9009c1e4c46"],"kind":"skip","dtype":"bfloat16","heads":2,"total":2052,"nsel":17,"layout":"strided"} +{"kernel":"sparse_prefill_bfloat16_2_2050_plain","sha256":["80ae0b6e924dd63841e7e05b9b994ca327a47af2b02bdbf962461203c164caf9"],"kind":"prefill","dtype":"bfloat16","rows":2,"pos":2050,"total":2052,"layout":"plain"} +{"kernel":"sparse_prefill_bfloat16_2_2050_offset","sha256":["e53581bf15296f58913c8fd31f05e976eeb6a55e57cb0543308a48a74045320b"],"kind":"prefill","dtype":"bfloat16","rows":2,"pos":2050,"total":2052,"layout":"offset"} +{"kernel":"sparse_prefill_bfloat16_2_2050_strided","sha256":["00b7e03c093b4f2d832b91906842a978a435df69bcb29e8b5f8ef1bf97012a67"],"kind":"prefill","dtype":"bfloat16","rows":2,"pos":2050,"total":2052,"layout":"strided"} +{"kernel":"sparse_prefill_bfloat16_2_2050_holes","sha256":["a143bf2a4aca111d3fd388ec92b7695d8103ffa6920bbee16c281c7d8a4491dc"],"kind":"prefill","dtype":"bfloat16","rows":2,"pos":2050,"total":2052,"layout":"holes"} +{"kernel":"sparse_prefill_bfloat16_8_8191_plain","sha256":["f1a9e18b2500a20a481504be7c42b7913491c497d0e6166728a43c8f0fc52442"],"kind":"prefill","dtype":"bfloat16","rows":8,"pos":8191,"total":8199,"layout":"plain"} +{"kernel":"sparse_prefill_bfloat16_8_8191_offset","sha256":["66181f62f181e796dca2a53769a599eba7bc2ab4b1e7fc01b3bef1a2d571508b"],"kind":"prefill","dtype":"bfloat16","rows":8,"pos":8191,"total":8199,"layout":"offset"} +{"kernel":"sparse_prefill_bfloat16_8_8191_strided","sha256":["c418a8e2867a7842a3cfda9c32ad3c05551d4097a95669af2baf1e664675b745"],"kind":"prefill","dtype":"bfloat16","rows":8,"pos":8191,"total":8199,"layout":"strided"} +{"kernel":"sparse_prefill_bfloat16_8_8191_holes","sha256":["1b3bf5286751f1b96be3eab1f5c16b42d4ca1e9b7ddf8ca945a81982fdad88e6"],"kind":"prefill","dtype":"bfloat16","rows":8,"pos":8191,"total":8199,"layout":"holes"} +{"kernel":"sparse_prefill_bfloat16_137_32767_plain","sha256":["ed80fe1a3f8936e7207cc781232f856e7f305a09b557c65d3b97c10a5675acce"],"kind":"prefill","dtype":"bfloat16","rows":137,"pos":32767,"total":32904,"layout":"plain"} +{"kernel":"sparse_prefill_bfloat16_137_32767_offset","sha256":["7448a273bb87c168bbe76436fad09e407566613d45a39fc52edeb6f1c5c5e58c"],"kind":"prefill","dtype":"bfloat16","rows":137,"pos":32767,"total":32904,"layout":"offset"} +{"kernel":"sparse_prefill_bfloat16_137_32767_strided","sha256":["d81c5adbd916c24a34a3fc0435d6a8747c82acec7d9a821f825d75881f211e21"],"kind":"prefill","dtype":"bfloat16","rows":137,"pos":32767,"total":32904,"layout":"strided"} +{"kernel":"sparse_prefill_bfloat16_137_32767_holes","sha256":["97ac13750740c639b1464260ff3020b5c6cc1f3c3a9faba1a445346d5274a831"],"kind":"prefill","dtype":"bfloat16","rows":137,"pos":32767,"total":32904,"layout":"holes"} +{"kernel":"sparse_prefill_bfloat16_2048_2048_plain","sha256":["f2c096b4a74b4f7a7953902b0f410ed5c8d0441aeac6eb356295f40e29948357"],"kind":"prefill","dtype":"bfloat16","rows":2048,"pos":2048,"total":4096,"layout":"plain"} +{"kernel":"sparse_prefill_bfloat16_2048_2048_offset","sha256":["14cacbf064d58199028eb3c6b8fedb9d4938727a2343bda2533001733e3a54ec"],"kind":"prefill","dtype":"bfloat16","rows":2048,"pos":2048,"total":4096,"layout":"offset"} +{"kernel":"sparse_prefill_bfloat16_2048_2048_strided","sha256":["6078c670595ca41f38b315863a1b0bac30b4ec14eebc8f045611e7370684bf0f"],"kind":"prefill","dtype":"bfloat16","rows":2048,"pos":2048,"total":4096,"layout":"strided"} +{"kernel":"sparse_prefill_bfloat16_2048_2048_holes","sha256":["0d462fff32985a29f496f50c80c4fe0e3f8a6dc04160d84664f4b4d9b8060819"],"kind":"prefill","dtype":"bfloat16","rows":2048,"pos":2048,"total":4096,"layout":"holes"} +{"kernel":"sparse_skip_float16_24_3_plain","sha256":["7f8389693e4be61f604f0167b46e6dfe00cd29f42a33816a6122f047794dddac"],"kind":"skip","dtype":"float16","heads":24,"total":3,"nsel":0,"layout":"plain"} +{"kernel":"sparse_skip_float16_24_3_offset","sha256":["4f663f516877ae499532a310a003b36a433fa44a3aebc70bee9cc8ca5373e5d8"],"kind":"skip","dtype":"float16","heads":24,"total":3,"nsel":0,"layout":"offset"} +{"kernel":"sparse_skip_float16_24_3_strided","sha256":["763ffb1363359ef06f8b6b333cf499bcf43b9829a5d2e46ca590832cbe61b923"],"kind":"skip","dtype":"float16","heads":24,"total":3,"nsel":0,"layout":"strided"} +{"kernel":"sparse_skip_float16_24_4099_plain","sha256":["352673180109067594d63803cd3f710758f5c5ba159ccbdd66072c36daa7c1d9"],"kind":"skip","dtype":"float16","heads":24,"total":4099,"nsel":512,"layout":"plain"} +{"kernel":"sparse_skip_float16_24_4099_offset","sha256":["e8f03fa38e01377627f93bd64388e8eee8001c438c4e84d5eb4786ddeaff0e26"],"kind":"skip","dtype":"float16","heads":24,"total":4099,"nsel":512,"layout":"offset"} +{"kernel":"sparse_skip_float16_24_4099_strided","sha256":["b38b2f596eee4799dd4357be9677f7419b06a73e37dbb69d1ee8879d3738392c"],"kind":"skip","dtype":"float16","heads":24,"total":4099,"nsel":512,"layout":"strided"} +{"kernel":"sparse_skip_float16_2_2052_plain","sha256":["16dc49ff9daa174e701b9008ef5995a1b6f34a5243fb41a3e99120c0eaafb607"],"kind":"skip","dtype":"float16","heads":2,"total":2052,"nsel":17,"layout":"plain"} +{"kernel":"sparse_skip_float16_2_2052_offset","sha256":["a7bcdba8de7bf9a349c3168bd4a6e47212cc4b11ad3c606f5557389c201455d3"],"kind":"skip","dtype":"float16","heads":2,"total":2052,"nsel":17,"layout":"offset"} +{"kernel":"sparse_skip_float16_2_2052_strided","sha256":["5f1b1a8e06e7fcaabe7984b36855e0f19b0473713f41cf6dd6aec7ba23c4509c"],"kind":"skip","dtype":"float16","heads":2,"total":2052,"nsel":17,"layout":"strided"} +{"kernel":"sparse_prefill_float16_2_2050_plain","sha256":["7d754ac9e018827adb7f25e288d10930e5a101e288a0f973f198b7cebca5cacd"],"kind":"prefill","dtype":"float16","rows":2,"pos":2050,"total":2052,"layout":"plain"} +{"kernel":"sparse_prefill_float16_2_2050_offset","sha256":["b39d70a0a6e1e250d108c7cf7bd8e10b227c265670bd9747f1b5b21920e68fa3"],"kind":"prefill","dtype":"float16","rows":2,"pos":2050,"total":2052,"layout":"offset"} +{"kernel":"sparse_prefill_float16_2_2050_strided","sha256":["bb113b1847b8af462aa1668f737cd67bc6f10fd78eb7c61be787073f5ab6d20f"],"kind":"prefill","dtype":"float16","rows":2,"pos":2050,"total":2052,"layout":"strided"} +{"kernel":"sparse_prefill_float16_2_2050_holes","sha256":["221b92b9a57f0fc15dfcb2666a08b1f23a7bbeddb3976a67fadb489e1fdfc343"],"kind":"prefill","dtype":"float16","rows":2,"pos":2050,"total":2052,"layout":"holes"} +{"kernel":"sparse_prefill_float16_8_8191_plain","sha256":["adcb4cfba96b00b9c0c447d670b0cc77216698ca8cfc44adfba6e5db7e469bc1"],"kind":"prefill","dtype":"float16","rows":8,"pos":8191,"total":8199,"layout":"plain"} +{"kernel":"sparse_prefill_float16_8_8191_offset","sha256":["0a431d43b5cd08fd151c65d33c13405115e69e916593a90de87bad02165bf866"],"kind":"prefill","dtype":"float16","rows":8,"pos":8191,"total":8199,"layout":"offset"} +{"kernel":"sparse_prefill_float16_8_8191_strided","sha256":["bd355334e8ba1e598c40da7eb40c34350806c728ab16501217e4764f21ad6915"],"kind":"prefill","dtype":"float16","rows":8,"pos":8191,"total":8199,"layout":"strided"} +{"kernel":"sparse_prefill_float16_8_8191_holes","sha256":["99592be1640e9444e1717bdadfa7b768f2fc2222f9f83a4762adf3076610167c"],"kind":"prefill","dtype":"float16","rows":8,"pos":8191,"total":8199,"layout":"holes"} +{"kernel":"sparse_prefill_float16_137_32767_plain","sha256":["435b374aecfa149b8d476459eb8a3b47a81d3983660c8a6fbb164340038c5af3"],"kind":"prefill","dtype":"float16","rows":137,"pos":32767,"total":32904,"layout":"plain"} +{"kernel":"sparse_prefill_float16_137_32767_offset","sha256":["b3429a44f0502f059bd8a8f9a082c34a4d46fb150392b41a75c0a7e1ad67e0f8"],"kind":"prefill","dtype":"float16","rows":137,"pos":32767,"total":32904,"layout":"offset"} +{"kernel":"sparse_prefill_float16_137_32767_strided","sha256":["b77f57c4405923d55543df03831bf6b64adfae49f22ea795676a618af0bb50c3"],"kind":"prefill","dtype":"float16","rows":137,"pos":32767,"total":32904,"layout":"strided"} +{"kernel":"sparse_prefill_float16_137_32767_holes","sha256":["33e50302bd09d44067485c4d0fb06ebab66b1aefcdca6b1fcfbc5dd7376b8a81"],"kind":"prefill","dtype":"float16","rows":137,"pos":32767,"total":32904,"layout":"holes"} +{"kernel":"sparse_prefill_float16_2048_2048_plain","sha256":["47343e1bd79e725e7e4eb5d2949fc638e72b522796578fcfa6d3815a7e875da8"],"kind":"prefill","dtype":"float16","rows":2048,"pos":2048,"total":4096,"layout":"plain"} +{"kernel":"sparse_prefill_float16_2048_2048_offset","sha256":["0d6c82d9e01ec32d98b8209e70e4ec26a5a49f490c78947401db790169c0c754"],"kind":"prefill","dtype":"float16","rows":2048,"pos":2048,"total":4096,"layout":"offset"} +{"kernel":"sparse_prefill_float16_2048_2048_strided","sha256":["154259f81d23923943d195d24279c80407c30c8b13192a2b219d1debbae4b6cd"],"kind":"prefill","dtype":"float16","rows":2048,"pos":2048,"total":4096,"layout":"strided"} +{"kernel":"sparse_prefill_float16_2048_2048_holes","sha256":["646c3d40fb556accf92be1b24b18fc11c48f88b33184c095741a26dda5128a59"],"kind":"prefill","dtype":"float16","rows":2048,"pos":2048,"total":4096,"layout":"holes"} diff --git a/tests/fixtures/mtplx-sum-graph.jsonl b/tests/fixtures/mtplx-sum-graph.jsonl new file mode 100644 index 0000000..4791649 --- /dev/null +++ b/tests/fixtures/mtplx-sum-graph.jsonl @@ -0,0 +1,232 @@ +{"kernel":"sum_graph_bfloat16_0_False","sha256":["16ebddf56437e41959de077d0dbc31243c7cff5dae559540474f86e02cd89249","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"bfloat16","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":false,"output_shape":[]} +{"kernel":"sum_graph_bfloat16_0_True","sha256":["16ebddf56437e41959de077d0dbc31243c7cff5dae559540474f86e02cd89249","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"bfloat16","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_bfloat16_1_False","sha256":["c0c1933345bb1dc8fad450c0af207d7ec6de88a700f9bfab09204f977607c35b","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"bfloat16","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":false,"output_shape":[]} +{"kernel":"sum_graph_bfloat16_1_True","sha256":["c0c1933345bb1dc8fad450c0af207d7ec6de88a700f9bfab09204f977607c35b","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"bfloat16","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_bfloat16_2_False","sha256":["6f6fda22c0a4a2a7a4d677c9fd60faf6817c104883729838dd2da11a074f7ebb","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"bfloat16","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[31]} +{"kernel":"sum_graph_bfloat16_2_True","sha256":["6f6fda22c0a4a2a7a4d677c9fd60faf6817c104883729838dd2da11a074f7ebb","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"bfloat16","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[31,1]} +{"kernel":"sum_graph_bfloat16_3_False","sha256":["7d6c2416e7a58b4e62851222104382dc35c1f6f26d646dd4d985351fc8d63fd8","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"bfloat16","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_bfloat16_3_True","sha256":["7d6c2416e7a58b4e62851222104382dc35c1f6f26d646dd4d985351fc8d63fd8","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"bfloat16","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_bfloat16_4_False","sha256":["cb0d94f9ff84979ccc5699fc5c7f82981f59c2d04ac1365e845520f221ed4697","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"bfloat16","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_bfloat16_4_True","sha256":["cb0d94f9ff84979ccc5699fc5c7f82981f59c2d04ac1365e845520f221ed4697","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"bfloat16","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_bfloat16_5_False","sha256":["8b9c74a1e1735232df5978af6a283b09119f7dd8fd3b1e05fe77018b00e4c030","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"bfloat16","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_bfloat16_5_True","sha256":["8b9c74a1e1735232df5978af6a283b09119f7dd8fd3b1e05fe77018b00e4c030","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"bfloat16","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_bfloat16_6_False","sha256":["1accc3d3988a874e0bc67978c4277fb54d9492789fafc41ff6ca18b4f326140e","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"bfloat16","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_bfloat16_6_True","sha256":["1accc3d3988a874e0bc67978c4277fb54d9492789fafc41ff6ca18b4f326140e","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"bfloat16","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_bfloat16_7_False","sha256":["55cb4ce4b42b92a0bed61a9c2467d957be6a3a913757e43f0803b5c9c4a846fa","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"bfloat16","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_bfloat16_7_True","sha256":["55cb4ce4b42b92a0bed61a9c2467d957be6a3a913757e43f0803b5c9c4a846fa","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"bfloat16","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_bfloat16_8_False","sha256":["1e97c4b1b6d5af525d9bf45a5b749737078c1c3e6294039801d3035d6fc6d28c","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"bfloat16","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_bfloat16_8_True","sha256":["1e97c4b1b6d5af525d9bf45a5b749737078c1c3e6294039801d3035d6fc6d28c","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"bfloat16","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":true,"output_shape":[2,1]} +{"kernel":"sum_graph_bfloat16_9_False","sha256":["b596b0a297f34d74668d7d2b3068b62a81eb1b801dba70193fcb19230acc4399","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"bfloat16","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":false,"output_shape":[5]} +{"kernel":"sum_graph_bfloat16_9_True","sha256":["b596b0a297f34d74668d7d2b3068b62a81eb1b801dba70193fcb19230acc4399","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"bfloat16","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":true,"output_shape":[5,1]} +{"kernel":"sum_graph_bfloat16_10_False","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"bfloat16","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,1024,128]} +{"kernel":"sum_graph_bfloat16_10_True","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"bfloat16","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,1024,1,128]} +{"kernel":"sum_graph_bfloat16_11_False","sha256":["55bafc73459408d22f09a1dad7b5493232fbde667cc1edb0b72481d1c3acf44f","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"bfloat16","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,137,513]} +{"kernel":"sum_graph_bfloat16_11_True","sha256":["55bafc73459408d22f09a1dad7b5493232fbde667cc1edb0b72481d1c3acf44f","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"bfloat16","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,137,1,513]} +{"kernel":"sum_graph_bfloat16_12_False","sha256":["26e33c0890555fb52a1f9e2132988902b69d949f0eb3cd9fe2fe9ee70082b938","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"bfloat16","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_bfloat16_12_True","sha256":["26e33c0890555fb52a1f9e2132988902b69d949f0eb3cd9fe2fe9ee70082b938","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"bfloat16","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_bfloat16_13_False","sha256":["39a9ff2a3fc7f6575a8681669bd6dc7e5b00ce85129cb2e23277e26e93c3dbc1","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"bfloat16","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_bfloat16_13_True","sha256":["39a9ff2a3fc7f6575a8681669bd6dc7e5b00ce85129cb2e23277e26e93c3dbc1","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"bfloat16","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_bfloat16_14_False","sha256":["c382272c1719c6ded26615bb61f3b8e1b404734f9d1fe126cf64f0c88f4fc3b3","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"bfloat16","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_bfloat16_14_True","sha256":["c382272c1719c6ded26615bb61f3b8e1b404734f9d1fe126cf64f0c88f4fc3b3","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"bfloat16","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_bfloat16_15_False","sha256":["38c364d9edd410f379581181ee8a587144cf8cbd9eceef613f13657ba65b8660","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"bfloat16","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_bfloat16_15_True","sha256":["38c364d9edd410f379581181ee8a587144cf8cbd9eceef613f13657ba65b8660","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"bfloat16","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_bfloat16_16_False","sha256":["6454846bd30b5959e246c6e7760271edc13c6fc1d3fdeaf31a75ba9f21322a72","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"bfloat16","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_bfloat16_16_True","sha256":["6454846bd30b5959e246c6e7760271edc13c6fc1d3fdeaf31a75ba9f21322a72","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"bfloat16","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_bfloat16_17_False","sha256":["6a096f0133206bfc04e9c90e6d92f30676a850a9d45511a620190b8f7139443e","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"bfloat16","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_bfloat16_17_True","sha256":["6a096f0133206bfc04e9c90e6d92f30676a850a9d45511a620190b8f7139443e","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"bfloat16","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_bfloat16_18_False","sha256":["8c5f6665872d2d8ed068ec57ca250a0db4219358008883b6224810523b4f3743","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"bfloat16","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_bfloat16_18_True","sha256":["8c5f6665872d2d8ed068ec57ca250a0db4219358008883b6224810523b4f3743","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"bfloat16","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,2]} +{"kernel":"sum_graph_bfloat16_19_False","sha256":["9020b944a31a8b4d69f4a9d659308f439bf34b5cd6074f6681396038af6e504c","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"bfloat16","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_bfloat16_19_True","sha256":["9020b944a31a8b4d69f4a9d659308f439bf34b5cd6074f6681396038af6e504c","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"bfloat16","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,5,1,128]} +{"kernel":"sum_graph_bfloat16_20_False","sha256":["799010b22e5fc25b66c3dbf6958f43869f395a08405a331fee1a25189f838b28","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"bfloat16","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":false,"output_shape":[5,9,128]} +{"kernel":"sum_graph_bfloat16_20_True","sha256":["799010b22e5fc25b66c3dbf6958f43869f395a08405a331fee1a25189f838b28","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"bfloat16","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":true,"output_shape":[1,5,1,9,1,128]} +{"kernel":"sum_graph_bfloat16_21_False","sha256":["1f4a33c439310145f72b99031914209ab114084527b7d05b67afec12ff0323fd","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"bfloat16","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_bfloat16_21_True","sha256":["1f4a33c439310145f72b99031914209ab114084527b7d05b67afec12ff0323fd","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"bfloat16","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":true,"output_shape":[1,5,7,1]} +{"kernel":"sum_graph_bfloat16_22_False","sha256":["3dfa3fbf2832ef1d6fc8324c24de4d623400269fafe8aa8259ec13ff0fedac6e","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"bfloat16","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":false,"output_shape":[5,9,2]} +{"kernel":"sum_graph_bfloat16_22_True","sha256":["3dfa3fbf2832ef1d6fc8324c24de4d623400269fafe8aa8259ec13ff0fedac6e","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"bfloat16","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":true,"output_shape":[1,5,1,9,2,1]} +{"kernel":"sum_graph_bfloat16_23_False","sha256":["7f96f592f3867ee8a57c85dbc0250d5b107730763cbaaa12cd529fd354270aaf","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"bfloat16","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_bfloat16_23_True","sha256":["7f96f592f3867ee8a57c85dbc0250d5b107730763cbaaa12cd529fd354270aaf","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"bfloat16","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_bfloat16_24_False","sha256":["622be4c162f32909ee6013cc472e3a576d97379f82d84a34ad8201bd4ea934d2","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"bfloat16","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_bfloat16_24_True","sha256":["622be4c162f32909ee6013cc472e3a576d97379f82d84a34ad8201bd4ea934d2","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"bfloat16","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_bfloat16_25_False","sha256":["130061e6ea604fc86d4ca5bf67ba67c0221aa5cd36335f35aa6072ef80592d66","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"bfloat16","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":false,"output_shape":[7,5]} +{"kernel":"sum_graph_bfloat16_25_True","sha256":["130061e6ea604fc86d4ca5bf67ba67c0221aa5cd36335f35aa6072ef80592d66","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"bfloat16","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":true,"output_shape":[7,5,1]} +{"kernel":"sum_graph_bfloat16_26_False","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"bfloat16","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_bfloat16_26_True","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"bfloat16","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":true,"output_shape":[7,1,128]} +{"kernel":"sum_graph_bfloat16_27_False","sha256":["35ac3299192d176decb61b67e67f3996334c6dd20045f3672d0caa362ceaa948","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"bfloat16","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":false,"output_shape":[]} +{"kernel":"sum_graph_bfloat16_27_True","sha256":["35ac3299192d176decb61b67e67f3996334c6dd20045f3672d0caa362ceaa948","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"bfloat16","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_bfloat16_28_False","sha256":["62d1fbe96f69bc0e41b42c0f561860c321c6853358f091c7d67bf5901938db4a","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"bfloat16","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_bfloat16_28_True","sha256":["62d1fbe96f69bc0e41b42c0f561860c321c6853358f091c7d67bf5901938db4a","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"bfloat16","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_bfloat16_29_False","sha256":["694ecef8fc32ab323d782133e8a5816cd34ca4f5cfae4ad11edb81a8f9e0dca2","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"bfloat16","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_bfloat16_29_True","sha256":["694ecef8fc32ab323d782133e8a5816cd34ca4f5cfae4ad11edb81a8f9e0dca2","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"bfloat16","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_bfloat16_30_False","sha256":["ff4e8bca750ce5ca8586c395a385d767c291e891613c93dc68a1e86b84d0c3c6","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"bfloat16","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_bfloat16_30_True","sha256":["ff4e8bca750ce5ca8586c395a385d767c291e891613c93dc68a1e86b84d0c3c6","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"bfloat16","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":true,"output_shape":[5,1,128]} +{"kernel":"sum_graph_bfloat16_31_False","sha256":["c6c96c0814774c16d4411003129eab4add25c32977dd18c73e90e9365be1dd5b","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"bfloat16","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_bfloat16_31_True","sha256":["c6c96c0814774c16d4411003129eab4add25c32977dd18c73e90e9365be1dd5b","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"bfloat16","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_bfloat16_32_False","sha256":["3086a06fc62ca33918d2d04d30e242a4b79d5dbb0dd124f851467d3f12e32037","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"bfloat16","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_bfloat16_32_True","sha256":["3086a06fc62ca33918d2d04d30e242a4b79d5dbb0dd124f851467d3f12e32037","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"bfloat16","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_bfloat16_33_False","sha256":["307e1b64c59e9a3aed3e27461f85dd5a3d073c7057ebb1f9a3a7d97d23027cc8","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"bfloat16","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":false,"output_shape":[]} +{"kernel":"sum_graph_bfloat16_33_True","sha256":["307e1b64c59e9a3aed3e27461f85dd5a3d073c7057ebb1f9a3a7d97d23027cc8","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"bfloat16","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_bfloat16_34_False","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"bfloat16","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_bfloat16_34_True","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"bfloat16","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_bfloat16_35_False","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"bfloat16","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_bfloat16_35_True","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"bfloat16","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_bfloat16_36_False","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[5,0]} +{"kernel":"sum_graph_bfloat16_36_True","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"bfloat16","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[5,0,1]} +{"kernel":"sum_graph_bfloat16_37_False","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"bfloat16","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":false,"output_shape":[5,7,128]} +{"kernel":"sum_graph_bfloat16_37_True","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"bfloat16","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":true,"output_shape":[5,7,128]} +{"kernel":"sum_graph_float16_0_False","sha256":["240094c4fd31eebff531d8052ee81462a1123d228000ab57f694d3e2d2c070e3","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"float16","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float16_0_True","sha256":["240094c4fd31eebff531d8052ee81462a1123d228000ab57f694d3e2d2c070e3","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"float16","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_float16_1_False","sha256":["2ab2e1149d6c2f81c67a9b3768e6d1e4d9dfb0e2ca81db345e49a56e45809fd9","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"float16","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float16_1_True","sha256":["2ab2e1149d6c2f81c67a9b3768e6d1e4d9dfb0e2ca81db345e49a56e45809fd9","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"float16","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_float16_2_False","sha256":["c993e26f734da38fb0f79b88d1ac0023bea5cae147fb6ec99c8eda1913b029f3","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"float16","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[31]} +{"kernel":"sum_graph_float16_2_True","sha256":["c993e26f734da38fb0f79b88d1ac0023bea5cae147fb6ec99c8eda1913b029f3","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"float16","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[31,1]} +{"kernel":"sum_graph_float16_3_False","sha256":["abb90dbe086006440f62ffb24b26eddcd618afd3cce57c21334531c5998320ae","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"float16","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float16_3_True","sha256":["abb90dbe086006440f62ffb24b26eddcd618afd3cce57c21334531c5998320ae","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"float16","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float16_4_False","sha256":["582559a434cafc913fe495b3ea97eda0bd9fe82ba9299dc05c95a3f544adda4d","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"float16","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float16_4_True","sha256":["582559a434cafc913fe495b3ea97eda0bd9fe82ba9299dc05c95a3f544adda4d","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"float16","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float16_5_False","sha256":["db9d826458110f026c01b8aceb91dbe68003513f7d87da7e13ce8f2ed260f45f","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"float16","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float16_5_True","sha256":["db9d826458110f026c01b8aceb91dbe68003513f7d87da7e13ce8f2ed260f45f","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"float16","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float16_6_False","sha256":["8f81c239e252d9eac655cf6a617890327ecf2f3b9ef734576aba53d11dd9b0a2","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"float16","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float16_6_True","sha256":["8f81c239e252d9eac655cf6a617890327ecf2f3b9ef734576aba53d11dd9b0a2","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"float16","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float16_7_False","sha256":["8f82659b3e054b74c3831134aa476b1fa186f37feb62e0b94cd58c65c4d943bf","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"float16","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float16_7_True","sha256":["8f82659b3e054b74c3831134aa476b1fa186f37feb62e0b94cd58c65c4d943bf","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"float16","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float16_8_False","sha256":["c3299935e256d12792ef67032c2be49061e37b67b7ce0cca9a2ca83d412900fc","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"float16","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_float16_8_True","sha256":["c3299935e256d12792ef67032c2be49061e37b67b7ce0cca9a2ca83d412900fc","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"float16","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":true,"output_shape":[2,1]} +{"kernel":"sum_graph_float16_9_False","sha256":["80e17d462927e8e54ad63a45bf2f1f932e9b753e369d8012dd6da775bcb642a4","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"float16","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":false,"output_shape":[5]} +{"kernel":"sum_graph_float16_9_True","sha256":["80e17d462927e8e54ad63a45bf2f1f932e9b753e369d8012dd6da775bcb642a4","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"float16","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":true,"output_shape":[5,1]} +{"kernel":"sum_graph_float16_10_False","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"float16","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,1024,128]} +{"kernel":"sum_graph_float16_10_True","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"float16","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,1024,1,128]} +{"kernel":"sum_graph_float16_11_False","sha256":["1f74fc7269ce5f7283d96d0e62efe2e4d423339a25fb454d8a9fe4137bfbea49","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"float16","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,137,513]} +{"kernel":"sum_graph_float16_11_True","sha256":["1f74fc7269ce5f7283d96d0e62efe2e4d423339a25fb454d8a9fe4137bfbea49","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"float16","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,137,1,513]} +{"kernel":"sum_graph_float16_12_False","sha256":["62888862e7fbbab533693b1be847573545c2dba3f51c228d61659c1642dd9787","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"float16","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float16_12_True","sha256":["62888862e7fbbab533693b1be847573545c2dba3f51c228d61659c1642dd9787","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"float16","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float16_13_False","sha256":["e101f102523b65849e716289cd06e2042835ee3b88ca4f85e5ed9455e09db871","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"float16","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float16_13_True","sha256":["e101f102523b65849e716289cd06e2042835ee3b88ca4f85e5ed9455e09db871","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"float16","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float16_14_False","sha256":["6f3bfde1e53b1937ff4036541e982ede9f69349e5a8c1422eca5f8b78d03b974","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"float16","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float16_14_True","sha256":["6f3bfde1e53b1937ff4036541e982ede9f69349e5a8c1422eca5f8b78d03b974","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"float16","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float16_15_False","sha256":["076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"float16","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float16_15_True","sha256":["076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"float16","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float16_16_False","sha256":["1a0ae53216fbc6b4f4d709e32c7b8e760cad6be2b0d6f7695ea256827d4442be","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"float16","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_float16_16_True","sha256":["1a0ae53216fbc6b4f4d709e32c7b8e760cad6be2b0d6f7695ea256827d4442be","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"float16","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_float16_17_False","sha256":["84f4208eee11e323dd8998b3c4ac4d2ae81de4353c76fb4c97a29d5167867748","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"float16","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_float16_17_True","sha256":["84f4208eee11e323dd8998b3c4ac4d2ae81de4353c76fb4c97a29d5167867748","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"float16","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_float16_18_False","sha256":["3e5b22e973f9ee71d3ba1bffd1d68ad2b37f371017d225a4d8962275e0401885","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"float16","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_float16_18_True","sha256":["3e5b22e973f9ee71d3ba1bffd1d68ad2b37f371017d225a4d8962275e0401885","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"float16","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,2]} +{"kernel":"sum_graph_float16_19_False","sha256":["b1761a66b5294b0a71d22fd143033499047292db989e48635e3d1f1ffe1f5938","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"float16","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_float16_19_True","sha256":["b1761a66b5294b0a71d22fd143033499047292db989e48635e3d1f1ffe1f5938","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"float16","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,5,1,128]} +{"kernel":"sum_graph_float16_20_False","sha256":["58d6d67d3a0090bbfc469d1315493db2d27a250bb543a8a7354289d800d6479f","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"float16","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":false,"output_shape":[5,9,128]} +{"kernel":"sum_graph_float16_20_True","sha256":["58d6d67d3a0090bbfc469d1315493db2d27a250bb543a8a7354289d800d6479f","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"float16","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":true,"output_shape":[1,5,1,9,1,128]} +{"kernel":"sum_graph_float16_21_False","sha256":["90ea3e11ea1585b976a5856994b43cbeef97d3da87a119c111f00c853cccbb73","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"float16","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float16_21_True","sha256":["90ea3e11ea1585b976a5856994b43cbeef97d3da87a119c111f00c853cccbb73","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"float16","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":true,"output_shape":[1,5,7,1]} +{"kernel":"sum_graph_float16_22_False","sha256":["665cb90af39eb6b97a7432122bcc7b453cc2c26c5ec638dfd72803f8ccf2ee55","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"float16","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":false,"output_shape":[5,9,2]} +{"kernel":"sum_graph_float16_22_True","sha256":["665cb90af39eb6b97a7432122bcc7b453cc2c26c5ec638dfd72803f8ccf2ee55","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"float16","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":true,"output_shape":[1,5,1,9,2,1]} +{"kernel":"sum_graph_float16_23_False","sha256":["813a73cfcf606949345f8173ddd70ee6ddc651212fc6c6fe3b6c54f92ba6759c","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"float16","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float16_23_True","sha256":["813a73cfcf606949345f8173ddd70ee6ddc651212fc6c6fe3b6c54f92ba6759c","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"float16","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float16_24_False","sha256":["4b930f4c7013d4c6cce5305615dff642449bf0edb0397d062ed55af7102d17a6","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"float16","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float16_24_True","sha256":["4b930f4c7013d4c6cce5305615dff642449bf0edb0397d062ed55af7102d17a6","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"float16","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float16_25_False","sha256":["4ed224f574ed2f1b49e9d0e0cd7ca24c511b7772eeee618eecf5d64407706bd3","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"float16","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":false,"output_shape":[7,5]} +{"kernel":"sum_graph_float16_25_True","sha256":["4ed224f574ed2f1b49e9d0e0cd7ca24c511b7772eeee618eecf5d64407706bd3","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"float16","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":true,"output_shape":[7,5,1]} +{"kernel":"sum_graph_float16_26_False","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"float16","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float16_26_True","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"float16","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":true,"output_shape":[7,1,128]} +{"kernel":"sum_graph_float16_27_False","sha256":["e876ed19c5e6e1f8b90415cff4df43ee168cc01e9fd247a7f4d761562bd241af","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"float16","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float16_27_True","sha256":["e876ed19c5e6e1f8b90415cff4df43ee168cc01e9fd247a7f4d761562bd241af","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"float16","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_float16_28_False","sha256":["38ea6de487c7634e8ddf0287a04a989844ec1675699d50e84ffc6421852f25c0","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"float16","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float16_28_True","sha256":["38ea6de487c7634e8ddf0287a04a989844ec1675699d50e84ffc6421852f25c0","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"float16","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_float16_29_False","sha256":["4bc2c89f7248e371b45417c92c55879abeec67d8f778759275882c62c29590b0","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"float16","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float16_29_True","sha256":["4bc2c89f7248e371b45417c92c55879abeec67d8f778759275882c62c29590b0","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"float16","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float16_30_False","sha256":["3092df10bd88db9d66f42fed11a77da4ba8a6fad780e5fbbc4d0d292aea0f68d","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"float16","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_float16_30_True","sha256":["3092df10bd88db9d66f42fed11a77da4ba8a6fad780e5fbbc4d0d292aea0f68d","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"float16","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":true,"output_shape":[5,1,128]} +{"kernel":"sum_graph_float16_31_False","sha256":["5bdd6654d7545473379e2c2f286cc0454670f5c54a07bb118add8e2550d416c3","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"float16","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float16_31_True","sha256":["5bdd6654d7545473379e2c2f286cc0454670f5c54a07bb118add8e2550d416c3","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"float16","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_float16_32_False","sha256":["3953bb2eb6e60e4d84507aab60c6c28ec64886b0f0491c7a9d91ef0d8a1cdf0a","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"float16","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float16_32_True","sha256":["3953bb2eb6e60e4d84507aab60c6c28ec64886b0f0491c7a9d91ef0d8a1cdf0a","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"float16","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float16_33_False","sha256":["310b0f2a23d3b6694304b7b3f265686148993cfb43264a0cd2ac2ce760b59b4c","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"float16","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float16_33_True","sha256":["310b0f2a23d3b6694304b7b3f265686148993cfb43264a0cd2ac2ce760b59b4c","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"float16","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_float16_34_False","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"float16","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float16_34_True","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"float16","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float16_35_False","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"float16","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float16_35_True","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"float16","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float16_36_False","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[5,0]} +{"kernel":"sum_graph_float16_36_True","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float16","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[5,0,1]} +{"kernel":"sum_graph_float16_37_False","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"float16","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":false,"output_shape":[5,7,128]} +{"kernel":"sum_graph_float16_37_True","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"float16","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":true,"output_shape":[5,7,128]} +{"kernel":"sum_graph_float32_0_False","sha256":["240094c4fd31eebff531d8052ee81462a1123d228000ab57f694d3e2d2c070e3","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"float32","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float32_0_True","sha256":["240094c4fd31eebff531d8052ee81462a1123d228000ab57f694d3e2d2c070e3","29019ceb56dda0197519e79d99e065983f004b77dba79486d149bf83c08bfb9b"],"dtype":"float32","profile":0,"shape":[4096],"axes":[0],"layout":"plain","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_float32_1_False","sha256":["2ab2e1149d6c2f81c67a9b3768e6d1e4d9dfb0e2ca81db345e49a56e45809fd9","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"float32","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float32_1_True","sha256":["2ab2e1149d6c2f81c67a9b3768e6d1e4d9dfb0e2ca81db345e49a56e45809fd9","756551db42a470b37b4898cdb49fb2ec0df3bbe499cd45860249400efe68f982"],"dtype":"float32","profile":1,"shape":[4097],"axes":[0],"layout":"offset","keep":true,"output_shape":[1]} +{"kernel":"sum_graph_float32_2_False","sha256":["c993e26f734da38fb0f79b88d1ac0023bea5cae147fb6ec99c8eda1913b029f3","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"float32","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[31]} +{"kernel":"sum_graph_float32_2_True","sha256":["c993e26f734da38fb0f79b88d1ac0023bea5cae147fb6ec99c8eda1913b029f3","21e629fd5a4f069f29696802fbcce8391ad03cbd17c95e34d879112523b71a4e"],"dtype":"float32","profile":2,"shape":[31,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[31,1]} +{"kernel":"sum_graph_float32_3_False","sha256":["abb90dbe086006440f62ffb24b26eddcd618afd3cce57c21334531c5998320ae","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"float32","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float32_3_True","sha256":["abb90dbe086006440f62ffb24b26eddcd618afd3cce57c21334531c5998320ae","f5d5396a3ae72941c1d91ea3312875ef4ec7ffd9a734b2cff0e85a4609642e29"],"dtype":"float32","profile":3,"shape":[32,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float32_4_False","sha256":["582559a434cafc913fe495b3ea97eda0bd9fe82ba9299dc05c95a3f544adda4d","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"float32","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float32_4_True","sha256":["582559a434cafc913fe495b3ea97eda0bd9fe82ba9299dc05c95a3f544adda4d","de1b377dc24748cc0aea7b01a3e36029ed63e6606d4357df3c3bce0c8d30f577"],"dtype":"float32","profile":4,"shape":[32,512],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float32_5_False","sha256":["db9d826458110f026c01b8aceb91dbe68003513f7d87da7e13ce8f2ed260f45f","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"float32","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float32_5_True","sha256":["db9d826458110f026c01b8aceb91dbe68003513f7d87da7e13ce8f2ed260f45f","bc7a66d93dcc03fba4b4a9f5a05800f812a3b6a795669aec0e2d012dd870c8ed"],"dtype":"float32","profile":5,"shape":[32,513],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float32_6_False","sha256":["8f81c239e252d9eac655cf6a617890327ecf2f3b9ef734576aba53d11dd9b0a2","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"float32","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float32_6_True","sha256":["8f81c239e252d9eac655cf6a617890327ecf2f3b9ef734576aba53d11dd9b0a2","73b59f634c0c325ba1f99c41b5e6b9e24503f47ddf45e92d6cafcdac5f37ed59"],"dtype":"float32","profile":6,"shape":[32,1024],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float32_7_False","sha256":["8f82659b3e054b74c3831134aa476b1fa186f37feb62e0b94cd58c65c4d943bf","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"float32","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":false,"output_shape":[32]} +{"kernel":"sum_graph_float32_7_True","sha256":["8f82659b3e054b74c3831134aa476b1fa186f37feb62e0b94cd58c65c4d943bf","41fa84010f96cbc55621aa61c9019553832380fa356f2b58a7f9205c98d24b5f"],"dtype":"float32","profile":7,"shape":[32,1025],"axes":[1],"layout":"plain","keep":true,"output_shape":[32,1]} +{"kernel":"sum_graph_float32_8_False","sha256":["c3299935e256d12792ef67032c2be49061e37b67b7ce0cca9a2ca83d412900fc","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"float32","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_float32_8_True","sha256":["c3299935e256d12792ef67032c2be49061e37b67b7ce0cca9a2ca83d412900fc","504a52398630387e327c4ecf1f490f2b64af4fdef0caa54a190777ce3450dfbb"],"dtype":"float32","profile":8,"shape":[2,4097],"axes":[1],"layout":"plain","keep":true,"output_shape":[2,1]} +{"kernel":"sum_graph_float32_9_False","sha256":["80e17d462927e8e54ad63a45bf2f1f932e9b753e369d8012dd6da775bcb642a4","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"float32","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":false,"output_shape":[5]} +{"kernel":"sum_graph_float32_9_True","sha256":["80e17d462927e8e54ad63a45bf2f1f932e9b753e369d8012dd6da775bcb642a4","da79e53573571e2693df2683e3f8fc857559b9975c5601056d3d0e049b247bb6"],"dtype":"float32","profile":9,"shape":[5,7],"axes":[1],"layout":"plain","keep":true,"output_shape":[5,1]} +{"kernel":"sum_graph_float32_10_False","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"float32","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,1024,128]} +{"kernel":"sum_graph_float32_10_True","sha256":["a81f320f6e3dc0aff9fb8be8d408ad6fd726ff17dec4d2b72b4a8def1f1e40a9","95008328295907613528d780a132fbe8d04e56de5bf67ea13212887cf895bf74"],"dtype":"float32","profile":10,"shape":[1,1024,4,128],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,1024,1,128]} +{"kernel":"sum_graph_float32_11_False","sha256":["1f74fc7269ce5f7283d96d0e62efe2e4d423339a25fb454d8a9fe4137bfbea49","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"float32","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":false,"output_shape":[1,137,513]} +{"kernel":"sum_graph_float32_11_True","sha256":["1f74fc7269ce5f7283d96d0e62efe2e4d423339a25fb454d8a9fe4137bfbea49","237c5dff61f53d8d6981a6fe603e47697f73c0c4990b7a4ef437d7807d50072b"],"dtype":"float32","profile":11,"shape":[1,137,4,513],"axes":[2],"layout":"plain","keep":true,"output_shape":[1,137,1,513]} +{"kernel":"sum_graph_float32_12_False","sha256":["62888862e7fbbab533693b1be847573545c2dba3f51c228d61659c1642dd9787","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"float32","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float32_12_True","sha256":["62888862e7fbbab533693b1be847573545c2dba3f51c228d61659c1642dd9787","293d460246c28481f902a5dd012e040fbfeb9cd25673ba4894ca4d422d81f986"],"dtype":"float32","profile":12,"shape":[31,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float32_13_False","sha256":["e101f102523b65849e716289cd06e2042835ee3b88ca4f85e5ed9455e09db871","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"float32","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float32_13_True","sha256":["e101f102523b65849e716289cd06e2042835ee3b88ca4f85e5ed9455e09db871","c33f3d3b9d234cf3b51555c88e94282bc7ba462257fe70e0c3aacb442a7cb118"],"dtype":"float32","profile":13,"shape":[32,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float32_14_False","sha256":["6f3bfde1e53b1937ff4036541e982ede9f69349e5a8c1422eca5f8b78d03b974","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"float32","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float32_14_True","sha256":["6f3bfde1e53b1937ff4036541e982ede9f69349e5a8c1422eca5f8b78d03b974","9b7951ba6af40247529491e20fec01838f9c964976a576961fc1c9f8ad485e7c"],"dtype":"float32","profile":14,"shape":[256,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float32_15_False","sha256":["076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"float32","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[128]} +{"kernel":"sum_graph_float32_15_True","sha256":["076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560","076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560"],"dtype":"float32","profile":15,"shape":[257,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,128]} +{"kernel":"sum_graph_float32_16_False","sha256":["1a0ae53216fbc6b4f4d709e32c7b8e760cad6be2b0d6f7695ea256827d4442be","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"float32","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_float32_16_True","sha256":["1a0ae53216fbc6b4f4d709e32c7b8e760cad6be2b0d6f7695ea256827d4442be","f71e850879ec5223032e64d8eb558ed3011e4e0746d2f8358bc0c5bd8a9fbf94"],"dtype":"float32","profile":16,"shape":[1023,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_float32_17_False","sha256":["84f4208eee11e323dd8998b3c4ac4d2ae81de4353c76fb4c97a29d5167867748","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"float32","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":false,"output_shape":[17]} +{"kernel":"sum_graph_float32_17_True","sha256":["84f4208eee11e323dd8998b3c4ac4d2ae81de4353c76fb4c97a29d5167867748","aea764c6343c624ef7dd6182f959a3769979bd841bc2e8d5c9815f41012b23bf"],"dtype":"float32","profile":17,"shape":[1024,17],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,17]} +{"kernel":"sum_graph_float32_18_False","sha256":["427c4a5b010e35b6e76c5a9d02bf7ba9f864acd09fd7dacb67ad8ff49c7de21d","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"float32","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":false,"output_shape":[2]} +{"kernel":"sum_graph_float32_18_True","sha256":["427c4a5b010e35b6e76c5a9d02bf7ba9f864acd09fd7dacb67ad8ff49c7de21d","77d6ebf3a737d5cc92904de951be35c3214de97bdc95a088af497525490467fb"],"dtype":"float32","profile":18,"shape":[32768,2],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,2]} +{"kernel":"sum_graph_float32_19_False","sha256":["b1761a66b5294b0a71d22fd143033499047292db989e48635e3d1f1ffe1f5938","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"float32","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_float32_19_True","sha256":["b1761a66b5294b0a71d22fd143033499047292db989e48635e3d1f1ffe1f5938","9ab9fb3de55baa2177004beca1a75ed597be9cb3f7c03e678d16dc43490ffb8e"],"dtype":"float32","profile":19,"shape":[3,5,7,128],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,5,1,128]} +{"kernel":"sum_graph_float32_20_False","sha256":["58d6d67d3a0090bbfc469d1315493db2d27a250bb543a8a7354289d800d6479f","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"float32","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":false,"output_shape":[5,9,128]} +{"kernel":"sum_graph_float32_20_True","sha256":["58d6d67d3a0090bbfc469d1315493db2d27a250bb543a8a7354289d800d6479f","909c973c09e89b1605afd05294d1cc5b746435e2cf0bdc40b3cc5684d1c5f259"],"dtype":"float32","profile":20,"shape":[3,5,7,9,2,128],"axes":[0,2,4],"layout":"plain","keep":true,"output_shape":[1,5,1,9,1,128]} +{"kernel":"sum_graph_float32_21_False","sha256":["90ea3e11ea1585b976a5856994b43cbeef97d3da87a119c111f00c853cccbb73","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"float32","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float32_21_True","sha256":["90ea3e11ea1585b976a5856994b43cbeef97d3da87a119c111f00c853cccbb73","09d269e168b57db3bbf9387132c454d6f7ff27b88829757f742489af5469bbfd"],"dtype":"float32","profile":21,"shape":[3,5,7,128],"axes":[0,3],"layout":"plain","keep":true,"output_shape":[1,5,7,1]} +{"kernel":"sum_graph_float32_22_False","sha256":["665cb90af39eb6b97a7432122bcc7b453cc2c26c5ec638dfd72803f8ccf2ee55","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"float32","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":false,"output_shape":[5,9,2]} +{"kernel":"sum_graph_float32_22_True","sha256":["665cb90af39eb6b97a7432122bcc7b453cc2c26c5ec638dfd72803f8ccf2ee55","c59be91ea4508311b58cc15a39d12b9c2cfdadea5b7ec5de75a94311e8621c3a"],"dtype":"float32","profile":22,"shape":[3,5,7,9,2,128],"axes":[0,2,5],"layout":"plain","keep":true,"output_shape":[1,5,1,9,2,1]} +{"kernel":"sum_graph_float32_23_False","sha256":["813a73cfcf606949345f8173ddd70ee6ddc651212fc6c6fe3b6c54f92ba6759c","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"float32","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float32_23_True","sha256":["813a73cfcf606949345f8173ddd70ee6ddc651212fc6c6fe3b6c54f92ba6759c","d4f8ae073de53f273f6428d70b19a90277f7ae2ff11798a57e4b354dc910dc5b"],"dtype":"float32","profile":23,"shape":[64,7,4],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float32_24_False","sha256":["4b930f4c7013d4c6cce5305615dff642449bf0edb0397d062ed55af7102d17a6","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"float32","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float32_24_True","sha256":["4b930f4c7013d4c6cce5305615dff642449bf0edb0397d062ed55af7102d17a6","c61e00822beaa9a48dd3ae8668a04a8e2fbf349f6efcc69b27b3679b39af38c6"],"dtype":"float32","profile":24,"shape":[64,7,16],"axes":[0,2],"layout":"plain","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float32_25_False","sha256":["4ed224f574ed2f1b49e9d0e0cd7ca24c511b7772eeee618eecf5d64407706bd3","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"float32","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":false,"output_shape":[7,5]} +{"kernel":"sum_graph_float32_25_True","sha256":["4ed224f574ed2f1b49e9d0e0cd7ca24c511b7772eeee618eecf5d64407706bd3","fbb19850483aba0db09b2f71af7210cc8e24912b5aaa437e54ac079308d16be2"],"dtype":"float32","profile":25,"shape":[5,7,128],"axes":[-1],"layout":"transpose","keep":true,"output_shape":[7,5,1]} +{"kernel":"sum_graph_float32_26_False","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"float32","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float32_26_True","sha256":["595e443174c893c5566bc256f847462945f791c439d53e6ebe74d2f32dc11c28","9188cb2bf6cb3b95cd6d63775ea4245894dfc1ed4e13cea22c3e14e08e73b899"],"dtype":"float32","profile":26,"shape":[5,7,128],"axes":[1],"layout":"transpose","keep":true,"output_shape":[7,1,128]} +{"kernel":"sum_graph_float32_27_False","sha256":["e876ed19c5e6e1f8b90415cff4df43ee168cc01e9fd247a7f4d761562bd241af","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"float32","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float32_27_True","sha256":["e876ed19c5e6e1f8b90415cff4df43ee168cc01e9fd247a7f4d761562bd241af","131a473290a0d2b488602f326f3bd115bc8ff5a8d9d1830eab358119a98711f1"],"dtype":"float32","profile":27,"shape":[5,7,128],"axes":[0,1,2],"layout":"transpose","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_float32_28_False","sha256":["38ea6de487c7634e8ddf0287a04a989844ec1675699d50e84ffc6421852f25c0","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"float32","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float32_28_True","sha256":["38ea6de487c7634e8ddf0287a04a989844ec1675699d50e84ffc6421852f25c0","8d2e51c9f8b59d3bd7dc7abe001271681ff01e153ed78c996ddad843a1cded3f"],"dtype":"float32","profile":28,"shape":[5,7,128],"axes":[-1],"layout":"strided","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_float32_29_False","sha256":["4bc2c89f7248e371b45417c92c55879abeec67d8f778759275882c62c29590b0","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"float32","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float32_29_True","sha256":["4bc2c89f7248e371b45417c92c55879abeec67d8f778759275882c62c29590b0","52de82e7f91e11358e066937366ac04cd246ec7eea71f916117e339cbb8effb5"],"dtype":"float32","profile":29,"shape":[5,7,128],"axes":[0],"layout":"strided","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float32_30_False","sha256":["3092df10bd88db9d66f42fed11a77da4ba8a6fad780e5fbbc4d0d292aea0f68d","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"float32","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":false,"output_shape":[5,128]} +{"kernel":"sum_graph_float32_30_True","sha256":["3092df10bd88db9d66f42fed11a77da4ba8a6fad780e5fbbc4d0d292aea0f68d","007bfb51b638762ee79f286943a7d7296d9700cb37fc010449b3f92c4be13387"],"dtype":"float32","profile":30,"shape":[5,7,128],"axes":[1],"layout":"reverse","keep":true,"output_shape":[5,1,128]} +{"kernel":"sum_graph_float32_31_False","sha256":["5bdd6654d7545473379e2c2f286cc0454670f5c54a07bb118add8e2550d416c3","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"float32","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":false,"output_shape":[5,7]} +{"kernel":"sum_graph_float32_31_True","sha256":["5bdd6654d7545473379e2c2f286cc0454670f5c54a07bb118add8e2550d416c3","189c7f13fbb01069bcc76c370f8bea486b7154d0ef301c2dadda9f1791b941af"],"dtype":"float32","profile":31,"shape":[5,7,128],"axes":[-1],"layout":"broadcast","keep":true,"output_shape":[5,7,1]} +{"kernel":"sum_graph_float32_32_False","sha256":["3953bb2eb6e60e4d84507aab60c6c28ec64886b0f0491c7a9d91ef0d8a1cdf0a","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"float32","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float32_32_True","sha256":["3953bb2eb6e60e4d84507aab60c6c28ec64886b0f0491c7a9d91ef0d8a1cdf0a","f52a251119cd9735bee83073b59e04e6103e3fabf3031d9f66513db9c104761a"],"dtype":"float32","profile":32,"shape":[5,7,128],"axes":[0],"layout":"broadcast","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float32_33_False","sha256":["310b0f2a23d3b6694304b7b3f265686148993cfb43264a0cd2ac2ce760b59b4c","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"float32","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float32_33_True","sha256":["310b0f2a23d3b6694304b7b3f265686148993cfb43264a0cd2ac2ce760b59b4c","08ca3ffc17aeefba5682e707245f628f2f3a658fe2707c1a689d1edc842a1b5c"],"dtype":"float32","profile":33,"shape":[5,7,128],"axes":[0,1,2],"layout":"scalar","keep":true,"output_shape":[1,1,1]} +{"kernel":"sum_graph_float32_34_False","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"float32","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":false,"output_shape":[7]} +{"kernel":"sum_graph_float32_34_True","sha256":["b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097","b81cc5245a268f75e3ded9168c35427f7f22e5efa55f35fc0aa3c5c23bbff097"],"dtype":"float32","profile":34,"shape":[1,7,1],"axes":[0,2],"layout":"offset","keep":true,"output_shape":[1,7,1]} +{"kernel":"sum_graph_float32_35_False","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"float32","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":false,"output_shape":[7,128]} +{"kernel":"sum_graph_float32_35_True","sha256":["6cf1b57d59e7111bc218dfb01dda93ac0f776715599a1c69f89035bd20c16a10","9055311c37a6fde767e38e748c9bbe214f920d4365404e6498cc21c9bc377b39"],"dtype":"float32","profile":35,"shape":[0,7,128],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,7,128]} +{"kernel":"sum_graph_float32_36_False","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":false,"output_shape":[5,0]} +{"kernel":"sum_graph_float32_36_True","sha256":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"dtype":"float32","profile":36,"shape":[5,0,128],"axes":[-1],"layout":"plain","keep":true,"output_shape":[5,0,1]} +{"kernel":"sum_graph_float32_37_False","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"float32","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":false,"output_shape":[5,7,128]} +{"kernel":"sum_graph_float32_37_True","sha256":["bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364","bb52992e68516738cf08f6cb5a07b442ad912ad854be316f9c258d495be33364"],"dtype":"float32","profile":37,"shape":[5,7,128],"axes":[],"layout":"plain","keep":true,"output_shape":[5,7,128]} +{"kernel":"sum_graph_float32_38_False","sha256":["fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471","fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471"],"dtype":"float32","profile":38,"shape":[257,32768],"axes":[0],"layout":"plain","keep":false,"output_shape":[32768]} +{"kernel":"sum_graph_float32_38_True","sha256":["fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471","fa43239bcee7b97ca62f007cc68487560a39e19f74f3dde7486db3f98df8e471"],"dtype":"float32","profile":38,"shape":[257,32768],"axes":[0],"layout":"plain","keep":true,"output_shape":[1,32768]} +{"kernel":"sum_graph_float32_39_False","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"dtype":"float32","profile":39,"shape":[16777217],"axes":[0],"layout":"plain","keep":false,"output_shape":[]} +{"kernel":"sum_graph_float32_39_True","sha256":["df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119","df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119"],"dtype":"float32","profile":39,"shape":[16777217],"axes":[0],"layout":"plain","keep":true,"output_shape":[1]} diff --git a/tests/fixtures/mtplx-swiglu-jit.json b/tests/fixtures/mtplx-swiglu-jit.json new file mode 100644 index 0000000..77c8ee7 --- /dev/null +++ b/tests/fixtures/mtplx-swiglu-jit.json @@ -0,0 +1 @@ +{"source_sha256": "bf78eee5cf96ea7c112c4e61546c12bcacf57fe512e0572182604cb94137510b", "kernels": "[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device bfloat16_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = N_ * pos.x;\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_n\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_n(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device bfloat16_t* C [[buffer(2)]],\n constant const uint& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n uint index = N_ * pos.x;\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_contiguous_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n device bfloat16_t* C [[buffer(2)]],\n constant const int64_t& size [[buffer(3)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int64_t index = N_ * (pos.x + grid.x * int64_t(pos.y));\n for (int i = 0; i < N_ && index < size; ++i) {\n bfloat16_t tmp_A = A[index];\n bfloat16_t tmp_B = B[index];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_1(pos.x, in_strides[0]);\n uint index_B = elem_to_loc_1(pos.x, in_strides[1]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_1_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_1(pos.x, in_strides[0]);\n int64_t index_B = elem_to_loc_1(pos.x, in_strides[1]);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n uint index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_2_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_2({pos.x, pos.y}, in_strides + 0);\n int64_t index_B = elem_to_loc_2({pos.x, pos.y}, in_strides + 2);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n uint index = pos.x + grid.x * (pos.y + uint(grid.y) * pos.z);\n uint index_A = elem_to_loc_3(pos, in_strides + 0);\n uint index_B = elem_to_loc_3(pos, in_strides + 3);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_3_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 1;\n int64_t index = pos.x + grid.x * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = elem_to_loc_3(pos, in_strides + 0);\n int64_t index_B = elem_to_loc_3(pos, in_strides + 3);\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[3];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[3]) + pos.y * uint(in_strides[2]);\n uint index_B = N_ * pos.x * uint(in_strides[7]) + pos.y * uint(in_strides[6]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[4 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[3];\n index_B += in_strides[7];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_4_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[3];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[3]) + pos.y * int64_t(in_strides[2]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[7]) + pos.y * int64_t(in_strides[6]);\n uint zpos = pos.z;\n for (int d = 1; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[4 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[3];\n index_B += in_strides[7];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[4];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[4]) + pos.y * uint(in_strides[3]);\n uint index_B = N_ * pos.x * uint(in_strides[9]) + pos.y * uint(in_strides[8]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[5 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[4];\n index_B += in_strides[9];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_5_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[4];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[4]) + pos.y * int64_t(in_strides[3]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[9]) + pos.y * int64_t(in_strides[8]);\n uint zpos = pos.z;\n for (int d = 2; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[5 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[4];\n index_B += in_strides[9];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[5];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[5]) + pos.y * uint(in_strides[4]);\n uint index_B = N_ * pos.x * uint(in_strides[11]) + pos.y * uint(in_strides[10]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[6 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[5];\n index_B += in_strides[11];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_6_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[5];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[5]) + pos.y * int64_t(in_strides[4]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[11]) + pos.y * int64_t(in_strides[10]);\n uint zpos = pos.z;\n for (int d = 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[6 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[5];\n index_B += in_strides[11];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[6];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[6]) + pos.y * uint(in_strides[5]);\n uint index_B = N_ * pos.x * uint(in_strides[13]) + pos.y * uint(in_strides[12]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 + d]);\n index_B += l * uint(in_strides[7 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[6];\n index_B += in_strides[13];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_7_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[6];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[6]) + pos.y * int64_t(in_strides[5]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[13]) + pos.y * int64_t(in_strides[12]);\n uint zpos = pos.z;\n for (int d = 4; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 + d]);\n index_B += l * int64_t(in_strides[7 + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[6];\n index_B += in_strides[13];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n constant const int& ndim [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 2;\n int xshape = output_shape[ndim - 1];\n uint index = N_ * pos.x + xshape * (pos.y + uint(grid.y) * pos.z);\n uint index_A = N_ * pos.x * uint(in_strides[ndim * 0 + ndim - 1]) + pos.y * uint(in_strides[ndim * 0 + ndim - 2]);\n uint index_B = N_ * pos.x * uint(in_strides[ndim * 1 + ndim - 1]) + pos.y * uint(in_strides[ndim * 1 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * uint(in_strides[0 * ndim + d]);\n index_B += l * uint(in_strides[1 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[0 * ndim + ndim - 1];\n index_B += in_strides[1 * ndim + ndim - 1];\n index++;\n }\n}\n[[host_name(\"CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic_large\")]]\n[[kernel]] void CV2ISigmoidADV2IBroadcastACEV2IBroadcastCAFV2IMultiplyDEGV2IBroadcastFBHV2IBroadcastBFIV2OMultiplyGH_VV_V2V2_11160318154034397263_strided_dynamic_large(\n device const bfloat16_t* A [[buffer(0)]],\n device const bfloat16_t* B [[buffer(1)]],\n constant const int64_t* in_strides [[buffer(2)]],\n device bfloat16_t* C [[buffer(3)]],\n constant const int* output_shape [[buffer(4)]],\n constant const int& ndim [[buffer(5)]],\n uint3 pos [[thread_position_in_grid]],\n uint3 grid [[threads_per_grid]]) {\n constexpr int N_ = 4;\n int xshape = output_shape[ndim - 1];\n int64_t index = N_ * pos.x + xshape * (pos.y + int64_t(grid.y) * pos.z);\n int64_t index_A = N_ * pos.x * int64_t(in_strides[ndim * 0 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 0 + ndim - 2]);\n int64_t index_B = N_ * pos.x * int64_t(in_strides[ndim * 1 + ndim - 1]) + pos.y * int64_t(in_strides[ndim * 1 + ndim - 2]);\n uint zpos = pos.z;\n for (int d = ndim - 3; d >= 0; --d) {\n uint l = zpos % output_shape[d];\n index_A += l * int64_t(in_strides[0 * ndim + d]);\n index_B += l * int64_t(in_strides[1 * ndim + d]);\n zpos /= output_shape[d];\n }\n for (int i = 0; i < N_ && (int(N_ * pos.x) + i) < xshape; ++i) {\n bfloat16_t tmp_A = A[index_A];\n bfloat16_t tmp_B = B[index_B];\n bfloat16_t tmp_D = Sigmoid()(tmp_A);\n bfloat16_t tmp_E = cast_to(tmp_A);\n bfloat16_t tmp_F = cast_to(tmp_D);\n bfloat16_t tmp_G = Multiply()(tmp_E, tmp_F);\n bfloat16_t tmp_H = cast_to(tmp_G);\n bfloat16_t tmp_I = cast_to(tmp_B);\n bfloat16_t tmp_C = Multiply()(tmp_H, tmp_I);\n C[index] = tmp_C;\n index_A += in_strides[0 * ndim + ndim - 1];\n index_B += in_strides[1 * ndim + ndim - 1];\n index++;\n }\n}\n"} diff --git a/tests/fixtures/mtplx-weight-fusion.jsonl b/tests/fixtures/mtplx-weight-fusion.jsonl new file mode 100644 index 0000000..85f6194 --- /dev/null +++ b/tests/fixtures/mtplx-weight-fusion.jsonl @@ -0,0 +1,18 @@ +{"mask":0,"profile":"normal","fusions":{},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,320],"sha256":"3954880a15bd19c135403b7908b5dfe89f45914b48d9d7390d5c0b5721d828de"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.biases","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.scales","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.weight","shape":[4,320],"sha256":"102d250f8e3223ff4a07b32ae21da305982eeeafe25d569fb64d408ee205a699"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.biases","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.scales","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.weight","shape":[4,320],"sha256":"fafcd9dcd7459bcd6db2929be8a67f3b7ae0140f1446f240c7b83d2713575867"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight","shape":[2,4,320],"sha256":"7506968c7bf5d98034f3d0d5122e8619b4c17c8938400528ddf94a7cabb7848b"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.biases","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":1,"profile":"normal","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,320],"sha256":"3954880a15bd19c135403b7908b5dfe89f45914b48d9d7390d5c0b5721d828de"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":2,"profile":"normal","fusions":{"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.biases","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.scales","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.weight","shape":[4,320],"sha256":"102d250f8e3223ff4a07b32ae21da305982eeeafe25d569fb64d408ee205a699"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.biases","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.scales","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.weight","shape":[4,320],"sha256":"fafcd9dcd7459bcd6db2929be8a67f3b7ae0140f1446f240c7b83d2713575867"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight","shape":[2,4,320],"sha256":"7506968c7bf5d98034f3d0d5122e8619b4c17c8938400528ddf94a7cabb7848b"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.biases","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":3,"profile":"normal","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":4,"profile":"normal","fusions":{"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,320],"sha256":"3954880a15bd19c135403b7908b5dfe89f45914b48d9d7390d5c0b5721d828de"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.biases","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.scales","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.weight","shape":[4,320],"sha256":"102d250f8e3223ff4a07b32ae21da305982eeeafe25d569fb64d408ee205a699"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.biases","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.scales","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.weight","shape":[4,320],"sha256":"fafcd9dcd7459bcd6db2929be8a67f3b7ae0140f1446f240c7b83d2713575867"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight","shape":[2,4,320],"sha256":"7506968c7bf5d98034f3d0d5122e8619b4c17c8938400528ddf94a7cabb7848b"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.biases","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":5,"profile":"normal","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,320],"sha256":"3954880a15bd19c135403b7908b5dfe89f45914b48d9d7390d5c0b5721d828de"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":6,"profile":"normal","fusions":{"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.biases","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.scales","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.weight","shape":[4,320],"sha256":"102d250f8e3223ff4a07b32ae21da305982eeeafe25d569fb64d408ee205a699"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.biases","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.scales","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.weight","shape":[4,320],"sha256":"fafcd9dcd7459bcd6db2929be8a67f3b7ae0140f1446f240c7b83d2713575867"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight","shape":[2,4,320],"sha256":"7506968c7bf5d98034f3d0d5122e8619b4c17c8938400528ddf94a7cabb7848b"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.biases","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"normal","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"qsa_bias","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.bias","shape":[5],"sha256":"de47c9b27eb8d300dbb5f2c353e632c393262cf06340c4fa7f1b40c4cbd36f90"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":7,"profile":"indexer_mixed","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,640],"sha256":"5d66d71c3d3e2ca1f88145ba9c56d9e36f01a60b010f3968d54ba6a694fcfb59"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[9,40],"sha256":"7842994a9311147878aa9815eeab8feb8ce0958cd893b576ff3c3c9895ec02db"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[9,40],"sha256":"7842994a9311147878aa9815eeab8feb8ce0958cd893b576ff3c3c9895ec02db"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[9,320],"sha256":"cd9c264e5527c297097b2e7cfb16fbeb5069092138cb60ac47cc7b85478a7e4d"}]} +{"mask":7,"profile":"qkv_mixed","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,640],"sha256":"620d3bcfabb09531befc6d79df95d7fcd26f5342f1af24289302e5d9029358be"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":7,"profile":"gdn_mixed","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,640],"sha256":"5960d935462afb14142cd594f11be0ee621a7d6ca32a681a0702e5e3841a27b9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"gdn_missing","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,320],"sha256":"3954880a15bd19c135403b7908b5dfe89f45914b48d9d7390d5c0b5721d828de"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,320],"sha256":"ca845474d18d0fc0ae5d66e884ed3f933b1ee2c0c9af7c3c4b34a1416739639e"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,320],"sha256":"e7955ba6c02e956caea42526136b0f41c29cc3066eefe8a2c6a71bed9dc9da11"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,320],"sha256":"3b1cab4c5a92b13a4ca492b882ce350b36866dd6b246172046483aad9d82e357"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"indexer_missing","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[9,40],"sha256":"7842994a9311147878aa9815eeab8feb8ce0958cd893b576ff3c3c9895ec02db"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[9,40],"sha256":"7842994a9311147878aa9815eeab8feb8ce0958cd893b576ff3c3c9895ec02db"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[9,320],"sha256":"cd9c264e5527c297097b2e7cfb16fbeb5069092138cb60ac47cc7b85478a7e4d"}]} +{"mask":7,"profile":"no_indexer","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.biases","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.scales","shape":[3,40],"sha256":"95f422d87acf791e984abd847ed88b7e7b0ea2d68c1551493460ca6ed70b1a04"},{"name":"language_model.model.layers.1.self_attn.indexer.index_qk_proj.weight","shape":[3,320],"sha256":"3de0965101509f3b7448fe48331a3d5cc03383edac337d98597a5c122046b50d"},{"name":"language_model.model.layers.1.self_attn.k_proj.biases","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.scales","shape":[2,40],"sha256":"232a4c45122a0e17b33bcafa70e313d3cbcbac0436066caf6660d5bfdbc115f8"},{"name":"language_model.model.layers.1.self_attn.k_proj.weight","shape":[2,320],"sha256":"f7d11c32334014020edcd53479ba08c7235c7779fe7be62af8a25a3bdd56f315"},{"name":"language_model.model.layers.1.self_attn.q_proj.biases","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.scales","shape":[5,40],"sha256":"3dbadbdc762991a12c532218f3b14845cee793cd01894d9a21b19e91991f8130"},{"name":"language_model.model.layers.1.self_attn.q_proj.weight","shape":[5,320],"sha256":"56b2d930469ab03a73e4f24448aa4b9ad2a4b634df5f7498966f43a94ba55e73"},{"name":"language_model.model.layers.1.self_attn.v_proj.biases","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.scales","shape":[2,40],"sha256":"97d50c02e62d40b6049e08441573ea5c2850acd8175a9e78050360c50fee96e7"},{"name":"language_model.model.layers.1.self_attn.v_proj.weight","shape":[2,320],"sha256":"a8ba87d8b51862aa10ebf5c0f67f22b3f9a11991992e90911be9e707d706635a"}]} +{"mask":7,"profile":"gate_missing_bias","fusions":{"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.weight","shape":[2,4,320],"sha256":"7506968c7bf5d98034f3d0d5122e8619b4c17c8938400528ddf94a7cabb7848b"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"shared_only","fusions":{"language_model.model.layers.0.linear_attn.in_proj_fused":{"bits":4,"group":64,"splits":[5,8,9]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.biases","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.scales","shape":[10,40],"sha256":"5a2483da6433a2e53182a5f3acdfb6f6ea3646947527a87211354bbcee15dfd5"},{"name":"language_model.model.layers.0.linear_attn.in_proj_fused.weight","shape":[10,320],"sha256":"84703ee405db83d0cd5f823950a6f244a727432729299a4138e12a3c7f244335"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.biases","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.scales","shape":[4,40],"sha256":"765708c88ebadb8446fe8fac04f627a928498202c1e108a61fe816772e7460f7"},{"name":"language_model.model.layers.0.mlp.shared_expert.gate_proj.weight","shape":[4,320],"sha256":"102d250f8e3223ff4a07b32ae21da305982eeeafe25d569fb64d408ee205a699"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.biases","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.scales","shape":[4,40],"sha256":"2f56a66287bb3cba50ca9b47df972ebaa483d83e6a9a74391ed044e54b0002c2"},{"name":"language_model.model.layers.0.mlp.shared_expert.up_proj.weight","shape":[4,320],"sha256":"fafcd9dcd7459bcd6db2929be8a67f3b7ae0140f1446f240c7b83d2713575867"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.biases","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gate_proj.scales","shape":[2,4,40],"sha256":"80dca76d4ead1253410b9c4352909882e73a90241ef0a0c7b28506f727b13c95"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.biases","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.scales","shape":[2,4,40],"sha256":"79d157796e519f46fa701dbe0ae0136cef75da591467b58c6a31b46cdb04d8bb"},{"name":"language_model.model.layers.0.mlp.switch_mlp.up_proj.weight","shape":[2,4,320],"sha256":"074f9a181bd0604c53d2c54d74c272117fe237cd4b29503a944f95932c444fcb"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} +{"mask":7,"profile":"gdn_2bit","fusions":{"language_model.model.layers.0.mlp.switch_mlp":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.0.mlp.shared_expert":{"bits":4,"group":64,"splits":[]},"language_model.model.layers.1.self_attn.qkv_fused":{"bits":4,"group":64,"splits":[5,7,9]}},"tensors":[{"name":"language_model.model.layers.0.linear_attn.in_proj_a.biases","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.scales","shape":[1,40],"sha256":"3cc64281a64367b9cd3208a0690290c9f33d3e430f23fdc1629e912e4aebc646"},{"name":"language_model.model.layers.0.linear_attn.in_proj_a.weight","shape":[1,160],"sha256":"913f665297f94f2247ac5826cc34718f9529387df89f66a8bc806615a9d6e5a8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.biases","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.scales","shape":[1,40],"sha256":"0f2a0cf1884b62d37e48589848b2e621fbd9105f9ed398b08cd1a05563e12a6f"},{"name":"language_model.model.layers.0.linear_attn.in_proj_b.weight","shape":[1,160],"sha256":"a3679076f09417d2724b6e38d8b6d6221dad6ada610463fecf937fff43c812d2"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.biases","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.scales","shape":[5,40],"sha256":"fd85f811b5562e5bae2bc05832f1027a57a234a1df7d9e8f4d99416b931983c9"},{"name":"language_model.model.layers.0.linear_attn.in_proj_qkv.weight","shape":[5,160],"sha256":"96496ab8bb1ff1da1ba829b81ae3a83776fb3d0103858f1e85d308c5d3e2cc6c"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.biases","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.scales","shape":[3,40],"sha256":"243eb49ade9062ffcac3214e640b24995402febcfd7a9aafdae8682d7cbb2cc8"},{"name":"language_model.model.layers.0.linear_attn.in_proj_z.weight","shape":[3,160],"sha256":"53cf7d49e00085ac4b215707a74eeceac69984bd12b75f7bf5f88c52315cc54b"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_biases","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_scales","shape":[8,40],"sha256":"ccc740c7994dd6367548fb81759a1916e3ed492b6c137b1337cdabe3ca453332"},{"name":"language_model.model.layers.0.mlp.shared_expert.gu_weight","shape":[8,320],"sha256":"393fc4f46b05750db834b2a79ccbeef674d7b073a73edd51e67510e177beccb2"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_biases","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_scales","shape":[2,8,40],"sha256":"592f72b7046080a0c440832a296bf061ee56d889b0e75f3308774c1d7cfa1f99"},{"name":"language_model.model.layers.0.mlp.switch_mlp.gu_weight","shape":[2,8,320],"sha256":"c59e7fcfc36b3d60bc29d59592c841efaf9434de2379190942f68625636abf17"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.biases","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.scales","shape":[12,40],"sha256":"cf540511bc52e64fe93a6cbcfc075af24e29f0ae5124482fb982d406bfbcfb7d"},{"name":"language_model.model.layers.1.self_attn.qkv_fused.weight","shape":[12,320],"sha256":"4200990ccbbcd1a186b7e02ddb7978e75e212d03fd4e219de6ea7e627f12334d"}]} diff --git a/tools/metal-trace-summary.py b/tools/metal-trace-summary.py new file mode 100644 index 0000000..9396b64 --- /dev/null +++ b/tools/metal-trace-summary.py @@ -0,0 +1,202 @@ +"""Summarize exported xctrace intervals for the attached target only. + +Reads XML incrementally; never prints the TOC environment or other processes. +GPU intervals are not shader timings. Nested intervals are not added to level 0. +Per-buffer covered time merges overlaps; group sums are not GPU utilization. +""" + +import argparse +import io +import json +import math +import re +import statistics +import sys +import xml.etree.ElementTree as ET + + +def summarize(source, schemas, pid): + ids, totals, buffers = {}, {}, {} + scalar_tags = {"start-time", "duration", "process", "gpu-channel-name", + "gpu-state", "metal-nesting-level", "metal-command-buffer-id"} + schema = None + + def value(element): + if element is None: + return None + if "ref" in element.attrib: + return ids[element.attrib["ref"]] + return element.get("fmt") if element.tag == "process" else element.text + + for event, element in ET.iterparse(source, events=("start", "end")): + if event == "start": + if element.tag == "node": + index = int(re.search(r"table\[(\d+)\]$", element.attrib["xpath"])[1]) + schema = schemas[index - 1] + continue + if element.tag in scalar_tags and "id" in element.attrib: + ids[element.attrib["id"]] = value(element) + if element.tag == "row": + process = value(element.find("process")) + if process and process.endswith(f"({pid})"): + duration = value(element.find("duration")) + if duration is not None: + ms = int(duration) / 1e6 + channel = value(element.find("gpu-channel-name")) + state = value(element.find("gpu-state")) + depth = value(element.find("metal-nesting-level")) + key = "/".join(str(x) for x in (schema, channel, state, depth)) + total = totals.setdefault(key, {"rows": 0, "sum_ms": 0, "max_ms": 0}) + total["rows"] += 1 + total["sum_ms"] += ms + total["max_ms"] = max(total["max_ms"], ms) + if (schema == "metal-gpu-intervals" and channel == "Compute" + and depth == "0" and state == "Active"): + command = value(element.find("metal-command-buffer-id")) + start = int(value(element.find("start-time"))) / 1e6 + record = buffers.setdefault(command, {"command_buffer": command, + "start_ms": start, "end_ms": start, "gpu_interval_sum_ms": 0, + "max_interval_ms": 0, "intervals": 0, "_spans": []}) + record["start_ms"] = min(record["start_ms"], start) + record["end_ms"] = max(record["end_ms"], start + ms) + record["gpu_interval_sum_ms"] += ms + record["max_interval_ms"] = max(record["max_interval_ms"], ms) + record["intervals"] += 1 + record["_spans"].append((start, start + ms)) + element.clear() + elif element.tag == "node": + element.clear() + for record in buffers.values(): + covered, end = 0, float("-inf") + for start, stop in sorted(record.pop("_spans")): + covered += max(0, stop - max(start, end)) + end = max(end, stop) + record["gpu_covered_ms"] = covered + return {"pid": pid, "interval_groups": totals, + "largest_compute_buffers": sorted(buffers.values(), + key=lambda x: x["gpu_interval_sum_ms"], reverse=True)[:12]} + + +def self_test(): + xml = """ + 10000002000000 + Compute + Active0 + 100 + 4000000 + + + 2000000 + + + 1000000 + 1 + + + """ + result = summarize(io.StringIO(xml), ["metal-gpu-intervals"], 42) + assert list(result["interval_groups"].values()) == [ + {"rows": 3, "sum_ms": 6, "max_ms": 2}, {"rows": 1, "sum_ms": 2, "max_ms": 2}] + assert result["largest_compute_buffers"] == [{"command_buffer": "100", "start_ms": 1, + "end_ms": 6, "gpu_interval_sum_ms": 6, "gpu_covered_ms": 5, + "max_interval_ms": 2, "intervals": 3}] + print("PASS: XML references, PID filtering, depth filtering and overlap union") + + +def summarize_stages(source): + """Validate native counter receipts; group encoder spans, never shaders.""" + headers, stages, groups = {}, {}, {} + for line in source: + # Supervisor JSON can precede a worker's complete native stderr record. + # Keep strict field/completeness checks; never discard a damaged record. + _, marker, record = line.partition("ds4: stage-counter ") + if not marker: + continue + values = dict(word.split("=", 1) for word in record.split()) + cb = int(values["cb"]) + if "stages" in values: + assert cb not in headers, f"duplicate CB {cb}" + assert values["resolved"] == "1" and values["dropped"] == "0", values + headers[cb] = values + stages[cb] = {} + continue + assert cb in headers and values["valid"] == "1", values + index = int(values["stage"]) + assert index not in stages[cb], (cb, index) + start, end = int(values["start"]), int(values["end"]) + duration = float(values["ms"]) + scale = float(headers[cb]["ns_per_tick"]) + assert end >= start and math.isfinite(duration) and duration >= 0 + assert abs(duration - (end - start) * scale / 1e6) <= 0.000002 + stages[cb][index] = (start, end) + key = (values["first"], values["last"], int(values["qwen_dispatches"])) + groups.setdefault(key, []).append(duration) + assert headers, "no counter receipts" + covered_total, cb_total = 0.0, 0.0 + for cb, header in headers.items(): + assert set(stages[cb]) == set(range(int(header["stages"]))), cb + covered, prior_end = 0, 0 + for start, end in sorted(stages[cb].values()): + covered += max(0, end - max(start, prior_end)) + prior_end = max(prior_end, end) + covered_ms = covered * float(header["ns_per_tick"]) / 1e6 + cb_ms = float(header["cb_ms"]) + assert math.isfinite(cb_ms) and cb_ms > 0 + assert covered_ms <= cb_ms * 1.05 + 0.002, (cb, covered_ms, cb_ms) + covered_total += covered_ms + cb_total += cb_ms + return {"scope": "Qwen four-row command buffers, existing compute encoder boundaries", + "command_buffers": len(headers), "encoder_spans": sum(map(len, stages.values())), + "counter_covered_ms": covered_total, "command_buffer_gpu_ms": cb_total, + "groups_are_encoder_spans_not_individual_kernels": True, + "encoder_groups": sorted([ + {"first_qwen_kernel": first, "last_qwen_kernel": last, + "qwen_dispatches": dispatches, "samples": len(values), + "sum_ms": sum(values), "median_ms": statistics.median(values), "max_ms": max(values)} + for (first, last, dispatches), values in groups.items() + ], key=lambda row: row["sum_ms"], reverse=True)} + + +def stage_self_test(): + log = ("ds4: stage-counter cb=1 rows=4 stages=2 dropped=0 resolved=1 ns_per_tick=1 cb_ms=0.05\n" + "ds4: stage-counter cb=1 stage=0 valid=1 start=100000 end=130000 ms=0.03 qwen_dispatches=2 first=a last=b\n" + "ds4: stage-counter cb=1 stage=1 valid=1 start=120000 end=140000 ms=0.02 qwen_dispatches=1 first=c last=c\n") + result = summarize_stages(io.StringIO(log)) + assert result["encoder_spans"] == 2 and result["counter_covered_ms"] == 0.04 + assert summarize_stages(io.StringIO(log.replace("ds4:", '{"event":ds4:'))) == result + for bad in (log.replace("resolved=1", "resolved=0"), log.replace("dropped=0", "dropped=1"), + log.replace("ms=0.03", "ms=1.25"), "\n".join(log.splitlines()[:-1])): + try: + summarize_stages(io.StringIO(bad)) + except AssertionError: + continue + raise AssertionError("invalid stage trace accepted") + print("PASS: stage completeness, failure reporting, clock scale and overlap coverage") + + +if __name__ == "__main__": + if sys.argv[1:] == ["--self-test"]: + self_test() + stage_self_test() + else: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("toc", nargs="?") + parser.add_argument("intervals", nargs="?") + parser.add_argument("--stage-log", help="Native DS4_METAL_STAGE_PROFILE stderr receipt") + args = parser.parse_args() + if args.stage_log: + if args.toc or args.intervals: + parser.error("do not combine --stage-log with XML inputs") + with open(args.stage_log) as source: + print(json.dumps(summarize_stages(source), indent=2)) + sys.exit(0) + if not args.toc or not args.intervals: + parser.error("provide both TOC and intervals, or --stage-log") + toc = ET.parse(args.toc) + if len(toc.findall("./run")) != 1: + parser.error("export a trace containing exactly one run") + pid = int(toc.find("./run/info/target/process").attrib["pid"]) + schemas = [table.attrib["schema"] for table in toc.findall("./run/data/table")] + result = summarize(args.intervals, schemas, pid) + result["trace_duration_seconds"] = float(toc.findtext("./run/info/summary/duration")) + print(json.dumps(result, indent=2)) diff --git a/tools/mtplx-allocator-reference.py b/tools/mtplx-allocator-reference.py new file mode 100644 index 0000000..c27c795 --- /dev/null +++ b/tools/mtplx-allocator-reference.py @@ -0,0 +1,108 @@ +"""Model-free allocation/cache receipts from the installed pinned MTPLX runtime. + +No replacement allocator, timings, model loading or downloads. stdout is JSONL. +Physical addresses are replaced with run-local identities before emission. +""" +import gc +import json +import os + +import mlx.core as mx +import numpy as np + + +def main(): + assert mx.__version__ == "0.32.2" + arrays = {} + identities = {} + page = os.sysconf("SC_PAGE_SIZE") + mx.set_cache_limit(4 * 1024 * 1024) + mx.clear_cache() + assert mx.get_active_memory() == 0 + + def emit(op, **fields): + print(json.dumps(dict(op=op, active=mx.get_active_memory(), + cached=mx.get_cache_memory(), **fields)), flush=True) + + def alloc(name, size): + before = mx.get_active_memory() + arrays[name] = mx.array(np.zeros(size, dtype=np.uint8)) + mx.eval(arrays[name]) + mx.synchronize() + pointer = np.asarray(arrays[name]).__array_interface__["data"][0] if size else None + identity = identities.setdefault(pointer, len(identities)) if size else None + emit("alloc", name=name, size=size, buffer=identity, + storage=mx.get_active_memory() - before) + + def free(name): + del arrays[name] + gc.collect() + mx.synchronize() + emit("free", name=name) + + def clear(): + assert not arrays + mx.clear_cache() + emit("clear") + + def limit(size): + mx.set_cache_limit(size) + emit("limit", size=size) + + emit("init", page=page, limit=4 * 1024 * 1024, runtime=mx.__version__) + for i, size in enumerate([0, 1, 255, 256, 257, page - 1, page, page + 1, + 2 * page - 1, 2 * page, 2 * page + 1]): + alloc(str(i), size) + for name in list(arrays): + free(name) + for i, size in enumerate([256, 1, page, page + 1, 2 * page + 1]): + alloc(str(i), size) + for name in list(arrays): + free(name) + clear() + + # Equal-size multimap entries reuse the oldest insertion, not the newest. + for name in "abc": + alloc(name, 257) + for name in "bac": + free(name) + for name in "xyz": + alloc(name, 256) + for name in "xyz": + free(name) + clear() + + # Strict upper bounds: min(2 * request, request + 2 * page). + for stored, requested in [(512, 256), (511, 256), + (4 * page, 2 * page), (3 * page, 2 * page), + (6 * page, 4 * page), (5 * page, 4 * page)]: + alloc("old", stored) + free("old") + alloc("new", requested) + free("new") + clear() + + for name, size in zip("abcd", [64, 128, 256, 512]): + alloc(name, size) + for name in "cadb": + free(name) + limit(600) + alloc("e", 2048) # trim from oldest, overshooting by complete buffers + free("e") # free checks the pre-insertion size, allowing overshoot + alloc("f", 10000) + free("f") + limit(1) + alloc("g", 20000) # >=90% requested release clears the whole pool + free("g") + clear() + limit(4096) + alloc("old", 64) + free("old") + limit(0) # changing the limit does not clear; reuse is still attempted first + alloc("new", 64) + free("new") + clear() + + +if __name__ == "__main__": + main() diff --git a/tools/mtplx-binding-reference.py b/tools/mtplx-binding-reference.py new file mode 100644 index 0000000..a3194ba --- /dev/null +++ b/tools/mtplx-binding-reference.py @@ -0,0 +1,81 @@ +"""Real MTPLX module construction/strict lazy loading, no model inference. + +Only MTP's two small pre-FC norms are evaluated. Run under test-supervisor. +""" +import sys +print("binding reference: importing pinned runtime", file=sys.stderr, flush=True) +import hashlib +import json +import os +from contextlib import redirect_stdout +from pathlib import Path +import mlx.core as mx +import numpy as np +from mlx.utils import tree_flatten +from mlx_lm.utils import load_model +from mtplx.models import qwen4_exp as qwen + + +def main(root, mode=None): + assert mx.__version__ == "0.32.2" + name_in_bank = lambda name: "mtp." + name[len("language_model.mtp."):] if name.startswith("language_model.mtp.") else name + for mask, mtp in ((0, False), (7, False), (0, True), (7, True)): + print(f"binding reference: mask={mask} mtp={mtp}", file=sys.stderr, flush=True) + os.environ.update(MTPLX_FUSED_GATE_UP=str(mask & 1), MTPLX_FUSED_GDN_INPROJ=str((mask >> 1) & 1), MTPLX_FUSED_QSA_QKV=str((mask >> 2) & 1)) + with redirect_stdout(sys.stderr): + model, _ = load_model(Path(root), lazy=True, strict=True, get_model_classes=lambda **_: (qwen.Model, qwen.ModelArgs)) + if mtp: + assert model.attach_mtp(Path(root)) + if mode == "--parameter-order": + names = [name_in_bank(name) for name, _ in tree_flatten(model.parameters())] + print(json.dumps(dict(mask=mask, mtp=mtp, names=names),separators=(",", ":")),flush=True) + del model, names + continue + if mode == "--post-weight-load": + from mtplx.memory_plan import ngram_table_resident_policy + assert not ngram_table_resident_policy(), "this test must not make the full table resident" + with redirect_stdout(sys.stderr): + model.post_weight_load(Path(root)) + tables = [] + for i, layer in enumerate(model.layers): + if getattr(layer, "ple", None) is None: + continue + table = layer.ple.ple_embedding.ngram_embedding + sidecar = table._sidecar + out = table(mx.array([0, 1, 255, 1], dtype=mx.int64)) + mx.eval(out) + tables.append(dict(layer=i, resident=getattr(table, "_lazy_parts", None) is not None, + hot_mb=sidecar._hot_cap_rows * sidecar._hot_row_bytes // 2**20, + prefetch=sidecar._pool is not None, shape=list(out.shape), + sha256=hashlib.sha256(np.asarray(out.astype(mx.float32)).astype('